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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑 0 i' j0 v" _$ D$ Y1 `5 x% \3 H$ v6 M

  l( G4 G1 w1 C* B6 y$ ]* ?! |双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。3 }6 X2 }" M; F$ i
用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。0 q+ _' I5 q9 d1 A8 z, G; V' n; `
问题1:2 I7 e, q/ P! ?& }+ A! e$ r
          这样写正确么?6 C3 a* q9 b% t0 x' l, x8 ~
问题2:1 F  R4 G5 H% o" a
         怎么样使用波形仿真才正确?
! Z6 c, }) N- b* Q/ F7 {' k: S& i, r; U' h
请高手解答,谢谢!# T  J: l" v8 ~: r1 u
( d/ R! E$ s" n0 Q2 Q
程序如下:  ?1 o( l1 x4 l0 j% ^7 K  l" G
module tri_bibuffer(a,b,en,dr);- k  O8 J0 \, C0 l
inout [7:0] a,b;
+ o' K0 P) t( D7 finput en,dr;
1 H3 a# `1 I" X8 E
" R+ U& g( U  n  o1 \" c3 Ureg [7:0] a,b;6 |3 N/ D5 h: U  Q) m2 \
wire en,dr;; ?) X6 I# b  z. p

; `- y1 w1 v3 X2 |6 ~* [always @ (dr,en)
* C9 [% j0 g4 ?( Gbegin2 c- U. m. Y1 Z& X8 c
  if(dr)
- @( N  M) k0 y6 V. o; P5 m   begin( b  k  r6 q: ?7 L2 ~+ _
    if(en)2 p6 |! Z1 R! u5 Y2 c4 s' K- h
     b <= a;
! n9 Q) R4 Q  e; n' \+ u  i. u6 [9 R    else
0 E3 ~' ]: X) _$ y% e4 c     b <= 'bz;
) F8 w+ O( N: ?- \( l# L   end
% E+ u$ e4 S* i  else
: f! l! C9 d+ f5 j+ w! E$ ~   begin
3 M1 i5 a% m* H    if(en)0 J7 u" o1 k1 V3 i2 K4 y$ ?  b; ^% ?5 |
     a <= b;
0 E7 \0 l) P& [+ m    else; H9 B6 x' U( w8 [0 a
     a <= 'bz;1 L; |4 |. U% C: b
   end
7 ?- w( K3 ?; X- s! gend4 E+ m. |% G% A) ?, G
endmodule
4 z9 @! c  z5 d& B: m" I2 E! D! [/ Q" v
仿真波形如下:, u& s/ d( V; i0 g0 y

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

未命名.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 | 只看该作者
    再上张图
    $ R0 U1 {! w  G2 Q: ]
    " K7 o0 x6 n+ G' o: X

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

    1.JPG

    该用户从未签到

    4#
     楼主| 发表于 2010-11-24 16:01 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:05 编辑 # y0 ?! j1 k0 ]% p, _
    5 ^8 |4 A7 Z4 Z4 O2 K
    上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。' e( U7 Z: ~  v) h1 }. ?, q& L( |0 g
    module tri_bibuffer(a,b,en,dr);
    ' Z  a" h4 H6 i
    0 h( }4 x" v" N        inout [7:0] a,b;
    4 X, D0 u& g8 _# W. |; W4 }0 v        input en,dr;5 a' M9 L5 n# a$ W9 Y" }" U
            % h! i$ \5 W1 I: v$ k
            assign b = (dr & en)        ?        a        :        'bz;% p; z, {2 a7 a8 M1 r8 z
            assign a = ((!dr) & en)        ?        b        :        'bz;
    6 W/ o/ e0 {+ \( }+ W
    / ^$ [1 D- G5 D- ^2 c/ Rendmodule
    ; j( V& z, B+ P$ X7 m6 P5 G; k5 b2 s  w+ W

    ( X9 r; v7 T5 N/ e  S' i

    该用户从未签到

    5#
     楼主| 发表于 2010-11-24 16:04 | 只看该作者
    分析综合后的RTL级电路8 Q6 A7 |  ]. ^8 d9 |
      N3 d; ^/ |& l' A" a

    ; J) Q7 u* P0 ]功能仿真图
    # y* [( c6 P  d/ R0 j5 X8 z 8 ~$ B  @% x- B7 J6 F9 n, e, _

    该用户从未签到

    6#
     楼主| 发表于 2010-11-24 16:25 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:26 编辑
    9 a) U  \4 R0 l# k; D& j. I* e" B/ [* z/ S
    回复 00750 的帖子" K+ H5 j* d5 [  b7 N* }% q
    - R" v* V, |$ C3 f+ ?  ]8 a
    程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?( V' [1 c2 r' ?! E& {
    谢谢!8 z& @0 h& a. q$ W
    : i1 n' Z) d: ?0 L. q1 o( f6 A
    仿真图如下:
    6 ?8 {* f' {+ |' k- q# o! {9 @% n9 F$ ~5 ]
    $ r. ]7 g) d% K& {% w7 Z( `

    / h8 ^# L& {5 T0 R5 l& }- E! U
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-11 21:51 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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