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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑 ' M$ E# n- e5 b: G2 w+ ?

7 M6 Y% x  q8 d  }双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。
" `4 ~4 V- A# ?/ l5 ~& f7 i用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。* s6 {7 w+ w  u! B
问题1:0 x3 e4 I: w0 e& E
          这样写正确么?, Y: ~8 z$ u8 ]4 k5 d
问题2:
) U% v# A  s# J  _! K         怎么样使用波形仿真才正确?
: C1 O% u! C# U$ S3 S4 ^5 x- T% [( C4 K7 N6 k
请高手解答,谢谢!( K2 F* z9 d9 H6 d
* Q5 {% V* L( }+ @- [2 B# i! a/ a
程序如下:( c6 N7 \$ e8 V7 d; Z! J, T7 y* K
module tri_bibuffer(a,b,en,dr);0 p3 X' `( J: x1 h" e& r
inout [7:0] a,b;* k- c" q4 h8 P$ E1 M5 ^
input en,dr;9 @* h0 n" v* V6 O; o& h  i
% P2 W, m! t* H. |$ C) y
reg [7:0] a,b;
4 M+ K% S; w; `& S8 a" ^wire en,dr;
& O4 k# q* \) a1 e  k
% m7 d( c$ ~; b, S/ ?: ~* t" P* d5 Lalways @ (dr,en)
4 e5 I  \* e- w9 c7 lbegin
, m1 o' @" n9 l) X: X. o  if(dr)
, I; d9 H9 z4 d; A4 L- H) N5 k   begin) f6 l# }2 S) J$ l0 Z0 C+ o" S* J
    if(en)
6 Q* S* H$ F1 R( k" `/ Y     b <= a;
7 F4 a# ^0 \7 q3 w) E    else" P. r% D  l: o- t4 e
     b <= 'bz;
: i" G6 b7 k, R- {; m9 ~# c1 B   end- t* Y% q$ t6 n3 l
  else
  @! G3 b0 ~  E6 R) `  K5 y; p   begin
6 ^2 X7 c& F# h. _    if(en)7 Q# q1 i9 |4 W# P
     a <= b;
; I* |- A2 S' a/ a3 Q2 b3 b4 I    else
% v8 U& t1 Y1 p  K3 X4 S     a <= 'bz;* B1 K. c) `$ v! x4 Z+ c# s
   end! ~8 b* x  A  R+ ~3 O" J
end% V* d5 r2 T0 J) b( x
endmodule% m; h7 n; w3 e* J; B5 o, n" {" T) @
& }9 G. T6 Y' I' @5 S9 j
仿真波形如下:5 ~: v  P3 n4 Z( a

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

未命名.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 | 只看该作者
    再上张图& E- K: e9 f1 `$ t( D3 G
    $ E) C( w7 q% ^( m# t

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

    1.JPG

    该用户从未签到

    4#
     楼主| 发表于 2010-11-24 16:01 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:05 编辑 . d7 t+ u3 J& ~  m* V; F/ ^' @

    8 P4 j5 c3 C) j. `  S" {0 J8 ]上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。
    7 U/ `- U3 x3 V0 F# ^module tri_bibuffer(a,b,en,dr);
    % _! P6 V( q! s* |' J8 n# c9 Q* U& ~
            inout [7:0] a,b;7 n! }3 c& q" R
            input en,dr;1 W, P  G+ _7 y# s) j
            
    $ h( ~. P" [+ v3 G8 A1 N        assign b = (dr & en)        ?        a        :        'bz;
    / A. N1 X  V: v        assign a = ((!dr) & en)        ?        b        :        'bz;9 v9 R8 u! d& V

    2 ~/ N0 Z6 m8 M+ s! X& L% yendmodule5 n) h6 z/ C' u, B9 _8 s
    9 c3 K+ m/ H4 s1 e
    1 w6 k0 w% C2 A/ |6 r

    该用户从未签到

    5#
     楼主| 发表于 2010-11-24 16:04 | 只看该作者
    分析综合后的RTL级电路3 j: v& C4 q) \9 l* d+ P2 P
    ' a* w! d7 R4 R1 u

    + g2 M1 Q0 r7 a& [) Y* V功能仿真图
      |- T8 T0 F1 A8 P  G' H " f) u1 w1 k7 ?& m

    该用户从未签到

    6#
     楼主| 发表于 2010-11-24 16:25 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:26 编辑
    & O0 Y' N7 i/ T$ N/ Z4 l0 `2 i& ~. _0 l* z
    回复 00750 的帖子
    $ x! o- v7 b/ ]$ t5 s6 N3 g- R2 {7 M, u; c8 L% n/ L1 ?. c
    程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?4 f" {+ Y6 M! D' b
    谢谢!8 Z1 N$ \* k- d( Q( @$ V9 X
    4 t% O2 T( H2 {0 p1 j
    仿真图如下:9 l; |7 w6 x8 c% k

    2 i7 d0 s8 N7 J; S 7 a! [! i" y% l6 n& S+ Z

    # H0 O! r, n7 ]
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-19 16:15 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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