找回密码
 注册
关于网站域名变更的通知
查看: 3266|回复: 5
打印 上一主题 下一主题

求教!关于双向总线缓冲器的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-11-22 22:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑 8 Y. s: |; {  N2 p% ~! n) y
( ]7 G6 G7 ~+ Z: E2 K
双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。
- r$ ?) s9 P; {1 a  S% _/ E2 b用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。/ F: n) _! w/ \- x5 m
问题1:
1 v0 w$ T& A, a          这样写正确么?
* F' ~* K" r0 H  e& Q+ ^问题2:+ ~+ b3 m! \- T/ ^8 V. \# l# H
         怎么样使用波形仿真才正确?3 C* t$ t, N7 J  b& H
5 O) S& u9 P1 z+ ]9 P! M$ F) f1 r- K
请高手解答,谢谢!
" P; Z  M$ H7 Z$ B  j6 m3 c% J: v0 z# e9 E% E% X/ M* H
程序如下:6 L* Y1 \9 X4 Q6 r1 l2 l  g( [
module tri_bibuffer(a,b,en,dr);0 W. @9 r  D  k" y* Y
inout [7:0] a,b;9 i! G! u4 O# a
input en,dr;
; y' Z5 u* N' Y5 T2 D- n$ D) [! C$ {  W# u6 K" F3 w
reg [7:0] a,b;
- q9 |0 [1 W$ V& m7 vwire en,dr;3 J: d) D" Y8 u' i
! p: Y$ m% v/ I9 K3 `$ d
always @ (dr,en)& \+ P- W: g5 `  \$ a
begin$ I; {* _% {% c$ ?. `) _; K# G: _4 L
  if(dr)
( n7 y& m6 z; k8 Y2 q& @, h   begin
8 K- b0 Y: Y$ Q3 d, q. q4 _% v    if(en)3 ~: u) q  M& e2 I; c7 I$ P
     b <= a;9 P7 o  Z  ?% ]. p9 k
    else
, ~8 C! M% C0 o. Y6 y4 O3 N- p     b <= 'bz;9 ?! ?# w9 y% @; ?4 ]2 {
   end
2 t  O% i' E: O$ @9 s+ }& r8 m  else: M3 }8 m$ W7 r7 C
   begin
4 p/ ]2 g, P4 v1 [! h7 F) W" k    if(en)
3 `# `6 G" [+ k     a <= b;
8 y; j9 r, _8 r: _' W$ C2 H5 l4 D    else9 b8 I& }$ Z' w) D2 f0 L
     a <= 'bz;
  I* ]/ I) q) ^' _% m3 {9 _( q( v   end- |' G+ N, D2 T' K% g
end
6 r0 T. L/ V+ ~& e0 @6 eendmodule" J2 i8 O- |; o* D
, s$ a% W: r  g  d
仿真波形如下:
, r8 S/ c. ]( w( s' M

未命名.JPG (100.32 KB, 下载次数: 5)

未命名.JPG
  • TA的每日心情
    慵懒
    2024-12-9 15:04
  • 签到天数: 384 天

    [LV.9]以坛为家II

    2#
    发表于 2010-11-24 13:43 | 只看该作者
    你的波形设置是有问题的,你的想法是在dr=1,en=1时数据由a向b,在你的图中,在a向b输出数据的同时,你的b输入端同样也有输入,两个数据同时驱动一个端口,你在图上看到的是全X,也就是未定值。更改方法是,在dr=1时,b输入设为Z,在dr=0时,a设置为Z。另外你的编码也不是太好,加油吧。
  • TA的每日心情
    慵懒
    2024-12-9 15:04
  • 签到天数: 384 天

    [LV.9]以坛为家II

    3#
    发表于 2010-11-24 13:48 | 只看该作者
    再上张图
    4 W4 s) p% S9 _  I0 j/ L
    & K3 H4 a: L3 E; w

    1.JPG (58.86 KB, 下载次数: 6)

    1.JPG

    该用户从未签到

    4#
     楼主| 发表于 2010-11-24 16:01 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:05 编辑
    . @+ ]' Z9 K/ f0 K; ?# r5 u
    6 x, q  w$ _# C, w上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。
    & i) p  ]3 @9 P' P0 S* xmodule tri_bibuffer(a,b,en,dr);7 J( b' ~$ _0 L" R+ y  p  ^3 X/ T0 G

    1 f- Q" R! G1 N) ?1 f9 h        inout [7:0] a,b;& |% s# z$ |& I0 S* X& @8 S
            input en,dr;
    * y5 g* w; c" e% u# A; S: ^1 O8 E        5 G* K+ {" R/ t5 g1 G  m3 h
            assign b = (dr & en)        ?        a        :        'bz;
    8 v. E! ^6 l6 t$ S! W# d2 A6 M# K        assign a = ((!dr) & en)        ?        b        :        'bz;
    ; h( D% F7 H1 U/ H0 F( p
    , Z# O2 A: b: J" Xendmodule+ r4 Q+ ^2 `) L" N
    ! K# u4 E& ~! R6 j6 X1 s, k. s1 y

    * V4 u" K  [& N) r

    该用户从未签到

    5#
     楼主| 发表于 2010-11-24 16:04 | 只看该作者
    分析综合后的RTL级电路* M/ p( F3 Z: ?; M0 }) p& d

    ! e2 Q* E$ `8 o0 n* t7 m' _& R/ ~, j& S) ~: @
    功能仿真图
    ! ^" J. L. }6 M' ]# `
    0 X' ~% v* P; w, C& V6 q

    该用户从未签到

    6#
     楼主| 发表于 2010-11-24 16:25 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:26 编辑   U+ b) [  s2 _2 q- B
    / j( W, T, B% i: q' U# I# v$ x
    回复 00750 的帖子0 o) i( B" ]$ m
    7 W/ w: z" m3 N2 C
    程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?# T6 G. k6 |. R+ L+ Y( A& Y1 x
    谢谢!- [& y8 X2 O/ d9 U) L' {

    4 L4 r: P/ t& U1 c# ]6 _! d仿真图如下:
    : E' v* w  Q' l& ^$ K  ^' _
    9 C/ t" `3 Z3 l5 k- z# f ! J) d; n: q' k; C: t' U" @: m; D% w

    7 C# r' `( |8 A
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-19 23:36 , Processed in 0.140625 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表