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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑 : c6 y7 z0 x% p0 z5 n
0 k- m$ s# d; [* W9 v
双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。9 k1 W5 S" K9 p9 W- _
用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。
. u4 e% O6 A! I问题1:
( W2 N( l# G# t! i/ l# m          这样写正确么?
  f* m# F8 t) ~; w6 m! Z5 w问题2:/ {3 I6 m! G7 p; }7 \; T: ^, r
         怎么样使用波形仿真才正确?1 c3 a2 G* s, }* J

/ `  |& A8 }6 n2 V请高手解答,谢谢!; R# K) W8 p& x% ?# y- K; p7 i

) d! J: `: F) j/ d( h( p( X程序如下:
: @* v# V' z8 g' D6 ymodule tri_bibuffer(a,b,en,dr);
( L1 T6 n7 C- ^' H( Dinout [7:0] a,b;
8 n& ?+ H% s" q8 Q, J8 H# Kinput en,dr;7 [  q' K7 J: {; h( W" J3 ]
5 q0 }8 ^. H) ]6 a
reg [7:0] a,b;- r: |/ U% `. l! E1 m+ ?/ H, r; x
wire en,dr;. c3 P/ U( S- T8 P, A5 _# Q

8 B* d2 ]9 U# K3 w! g/ U. `always @ (dr,en)2 M4 O  a; h# Z6 r7 q. J8 w
begin, _7 Y' h( B5 `7 C3 _
  if(dr)
4 A2 ?9 I1 Y; J. g" s3 d' {1 Q   begin
3 |# _" ^. A/ c    if(en)3 A! w3 z2 D6 i5 W) ]% W! Q. Z' c
     b <= a;
0 s1 w' ?5 v% W9 u* y. }1 n2 j    else0 ?1 |7 Y8 K2 h  B. W$ _3 }
     b <= 'bz;( i0 }% ~1 O7 S6 N4 x
   end& f3 z1 H0 `+ _! g0 S- v4 {
  else
( z7 Y" X& M. w) O$ J   begin% K4 I- {  N- k9 |: u, \% c2 S
    if(en)
: Z, n  R" E5 J% B+ C     a <= b;
( A# @. d+ `0 r+ v( G) Y    else
! Z1 a/ U* h- w8 U     a <= 'bz;2 V4 j' D3 \8 i: m) g2 T0 r1 i' r/ c
   end; p! [! d) O$ `3 A
end
0 s9 X0 r+ i7 F) I; Hendmodule2 e, q% b& L& B$ m
6 _! o; L6 A  p% V1 Q3 J' P
仿真波形如下:
1 b' z9 ?/ ^4 Z. b/ U

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

未命名.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 | 只看该作者
    再上张图$ V" o) Z+ K- i3 z& @

    7 V0 M, z8 z  q5 B  E

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

    1.JPG

    该用户从未签到

    4#
     楼主| 发表于 2010-11-24 16:01 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:05 编辑 " K  I+ N8 i* W$ l

    : i9 l5 m5 M. k7 w2 Q/ N上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。0 G+ ?; H: P1 X, o: I
    module tri_bibuffer(a,b,en,dr);9 M4 N- p$ q8 A0 S) ]  I
    ; S9 ?. G8 z4 ]
            inout [7:0] a,b;6 P2 v& O! G# u8 q! P" w
            input en,dr;
    8 X) U' P3 K7 }! h% C        ! }* Y. [- M  ]- A. z* O. |7 M/ v
            assign b = (dr & en)        ?        a        :        'bz;
    ) i3 M, i) }  w& u        assign a = ((!dr) & en)        ?        b        :        'bz;
    / T3 v7 _. q6 S; y; A- K! W+ N- x3 E4 Y$ R3 P8 h0 H
    endmodule
    ( o9 i3 v+ n7 V* a
    $ S+ R, g+ r% N* w  G) q) f2 C# n# w) _- x0 y8 ]

    该用户从未签到

    5#
     楼主| 发表于 2010-11-24 16:04 | 只看该作者
    分析综合后的RTL级电路
    8 b2 u7 ]0 B) v# F; f; h4 O1 C ; t& {' [; U5 x) L. ?
    9 h3 _5 o" L5 P; E% E9 `3 y$ k
    功能仿真图
    7 Z: ^5 b: j8 \) r7 m9 Q
    ) b3 R6 {. J) Q: x5 C% e; K1 O

    该用户从未签到

    6#
     楼主| 发表于 2010-11-24 16:25 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:26 编辑 - _- H4 l" _1 }" h: P0 @$ `0 X8 z

      d3 _& b3 l$ C6 t* Y# v回复 00750 的帖子' y* {9 O/ b4 Z" f4 L

    , X4 F2 r1 a+ G程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?4 S* f6 t: ^* b
    谢谢!$ o- r1 H1 f# |; ^

    7 ~' i7 q/ f; E7 e仿真图如下:
    7 z& c1 |  o; j# W, P4 {  |; x/ \8 D+ n3 c$ t, K+ y0 L" H8 g
    1 x. x0 ?" ^9 t$ r7 I. ?$ G$ j

    , w- S5 a6 f7 U& `! p
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-5 06:15 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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