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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑 ( t* D% m1 O/ a" x, {6 a6 r$ w' N
) C2 g7 K" ?$ j' O2 ]
双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。; I) C! n5 f  ^7 B& \! Q5 T8 V
用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。1 Y8 q9 ~0 x3 P" ]$ I
问题1:
3 }1 s# y# }( @          这样写正确么?
& j) z9 M' O$ ~6 x问题2:
- B# v; ]; ^/ |' v, ?' H& y8 \4 a         怎么样使用波形仿真才正确?0 I( r! a6 P- u- D1 ^6 f
. k- k( \3 |: ~. Z; W4 R
请高手解答,谢谢!
  Y! v0 |* J) ]  K0 X3 E1 L- l
, h) u! u+ y2 q: H程序如下:
0 W: C2 h( _$ b: U, S9 imodule tri_bibuffer(a,b,en,dr);
: T1 b* B9 h( ?: h% ~inout [7:0] a,b;
$ U9 {' [% {6 x- R. y" Z/ z3 L7 hinput en,dr;
4 H- d: Q/ g. H) J7 A4 p& ^/ \7 m
reg [7:0] a,b;
% E! g: d* S+ {7 q7 J; u9 Fwire en,dr;
& ?* j; h2 V0 K" ~% O0 i
; m0 b  b9 O4 m+ w6 z1 aalways @ (dr,en)0 N3 q. I+ K% J5 K/ y% F& _! \
begin" L" q7 ]$ E2 c4 n! S) A/ @* b
  if(dr)5 H# z% Q0 ~* m7 Y
   begin; B- b8 Z" F* |0 l1 u1 u
    if(en)# k# e8 [# Y) l( S  L2 y; i
     b <= a;) k' \  U! G0 y. d. k
    else
6 ]: q' R- n, ~) k1 y3 W     b <= 'bz;
' Z0 D; _/ {6 _' C   end
( E6 u* _0 B. I& N4 z6 n  else
9 S: N/ n6 C/ h& y   begin
+ f+ e1 H' O- K) K" Z+ R( i    if(en)
, w: O: o5 q3 c' a: u     a <= b;
2 T4 e& l1 t( w    else
3 |3 G: U& {2 X% }     a <= 'bz;
, q; `# ?+ ?1 \5 f  P3 n4 B/ j1 v   end
9 Z7 B# M' W! iend
6 ?* ]- I4 l' y3 V4 C4 w/ Aendmodule% O% I8 O+ Q8 f) c7 Q* o

2 J) r2 j. E& u! o仿真波形如下:2 @- T8 ?6 R4 ?# K+ o) {

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

未命名.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 | 只看该作者
    再上张图
    $ O) y2 v$ A, D9 }3 O
    $ s& B& b8 ]: ]* Z6 x& E' t: r  Q

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

    1.JPG

    该用户从未签到

    4#
     楼主| 发表于 2010-11-24 16:01 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:05 编辑
    " y5 @* C% q+ D! _) H$ Y
    ; j, C2 I0 b8 d4 d) ?& F上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。
    + T$ ]# s4 M7 `. vmodule tri_bibuffer(a,b,en,dr);# D+ ?) m. ]: W) Y$ S

    * ~9 V: v/ T4 V" I: G+ i8 y        inout [7:0] a,b;$ X6 }' w! ^- }& G
            input en,dr;% l3 C+ h2 I3 ^: D7 _4 X! b
            $ b. H7 ^, S9 Y7 \
            assign b = (dr & en)        ?        a        :        'bz;: O# U1 V" m# x; F$ _) ]1 M& G
            assign a = ((!dr) & en)        ?        b        :        'bz;
    # m) O) j' e. c8 n7 [' G" U6 ]8 n9 J( O$ s; e" W2 M8 h
    endmodule$ d' z7 {& S* ~6 [, q$ W

    4 X6 \6 f! h, Z: [" E
    3 N: A( w2 ?2 J$ U" [9 D& D

    该用户从未签到

    5#
     楼主| 发表于 2010-11-24 16:04 | 只看该作者
    分析综合后的RTL级电路* k) m. l) B5 T$ F) V4 g3 T' p
    : f. F3 m: f# J6 U

    3 I$ m" Z) j1 a  c, N功能仿真图" ~- v- \8 k4 w' v4 h

    # {4 ^- |8 y" J- `( p- d

    该用户从未签到

    6#
     楼主| 发表于 2010-11-24 16:25 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:26 编辑 0 j. n3 G  a2 H( o
      a8 n4 o2 y. H) {2 ]
    回复 00750 的帖子' E7 h8 E2 d& h8 w( h
    , |% [3 T! q' K9 d/ M4 k
    程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?) \) I1 D, U" Y, `) \2 I& y0 I) @# j
    谢谢!
    , }  I6 H9 W  A5 z7 X
    6 x) T* l0 q2 W9 T: r7 R仿真图如下:4 _( }9 m5 O3 S

    " Y0 |1 ]% M2 |" {4 t! b
    , o. o* N3 w/ y2 ?# U0 B1 `: K3 R; Z$ G+ U& D$ w5 n
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-9-10 03:00 , Processed in 0.140625 second(s), 28 queries , Gzip On.

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

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

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