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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑 6 w8 z  d0 F) G! w

0 g: \3 s7 t/ z2 Z双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。4 r4 F" y/ N5 Z# G" x
用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。
# {0 O# A6 J3 k; o; v; w# P问题1:$ r- y3 j( a* N3 h8 E/ {' F
          这样写正确么?9 ^0 {& n6 E% I
问题2:
2 o& P, u4 W; ?5 A         怎么样使用波形仿真才正确?
6 {+ R  n8 s1 O7 V
& j' Z4 v" s: |0 M/ }# M% X; H请高手解答,谢谢!
6 {! M; [4 D6 t8 R* B* `1 W" c0 o4 B5 d, ?$ N3 j& y  A
程序如下:) ^. t. g& A1 ^( f% W
module tri_bibuffer(a,b,en,dr);! ?3 c% d$ X# L9 {
inout [7:0] a,b;
" ]+ f! D- d5 t. Ginput en,dr;
/ D5 x+ h2 t; g7 [
/ C/ a9 l8 Y* preg [7:0] a,b;9 R  a( ?2 Y; P0 B
wire en,dr;
8 Z; `7 W2 x# J' O6 m+ s9 P+ ]- W5 o- P9 b) O1 K* L& j
always @ (dr,en)
. L  g4 K; x/ o0 g$ U1 ^1 Xbegin
) U5 f% Q& u: _" C# d; @  if(dr)
' p, ^  P6 B7 \2 R' [; o, F) @   begin
7 F& W* I! x) p    if(en)( A) G4 p! P& ]7 z$ f) X
     b <= a;, o0 j! _  n0 I. A8 A  P$ s2 {
    else
$ f' J+ W6 h- p/ [* P! W7 ~     b <= 'bz;
: ]3 t0 d% m0 B/ \   end
% |/ j- y" F8 g9 r  N0 M  else
  X2 \. \' s: }2 L( f( G- P   begin
; f( }3 @! d0 l% Z/ Z6 ~# K    if(en)5 H  G& \9 Y/ _1 [8 [/ T0 ~* Q
     a <= b;
' n% d9 T! `1 [- X" d' t7 l    else
& C6 p0 w5 `* z9 I1 B. r' T% r     a <= 'bz;* A' F4 j: x  e, p" ^
   end
& X" R0 u4 Q, B5 T1 L, o& g' [end% R3 \# P- j; [4 K
endmodule
5 b+ _, ^0 _) m. v- i. w8 V2 V
# c4 \( i% Q  l, j' b仿真波形如下:
: g9 Y  \1 ~4 D7 O+ V) T  z

未命名.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 | 只看该作者
    再上张图
    8 ~4 a0 {  ]0 H& H5 l2 m- M) v% ~5 P9 _- a  ~& t# {4 N

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

    1.JPG

    该用户从未签到

    4#
     楼主| 发表于 2010-11-24 16:01 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:05 编辑
    8 g8 N7 L+ `. Z; `! ]) ~! A& u5 }+ c3 m
    % ]( S' w+ F4 e8 S上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。
    ) i4 g; r1 Q* D5 Y$ D4 a" omodule tri_bibuffer(a,b,en,dr);
    9 ]. x: W& R- F8 h( L. V# ?; M
    * k% ~4 J8 t  i7 c7 p' A: J        inout [7:0] a,b;
    - }0 e0 `; e- `& ]6 Y5 ?        input en,dr;  ~# J! x: x2 }7 D' p- _
            
    % g* \% R9 c8 b. v$ F* H/ A( i        assign b = (dr & en)        ?        a        :        'bz;
    $ A2 n+ I% x. K( k6 k0 N        assign a = ((!dr) & en)        ?        b        :        'bz;6 K$ m$ G2 b; ^. q: p

    . |7 A2 ~; j' Y7 g, j* _, k# b5 y9 fendmodule' E+ [+ J2 G2 }( X& i1 p/ F

    * N2 j3 x' ^8 X% ?5 f( H- D4 e/ G3 d8 Y# q+ F( o

    该用户从未签到

    5#
     楼主| 发表于 2010-11-24 16:04 | 只看该作者
    分析综合后的RTL级电路3 W$ U- V& a1 ]" \9 U9 U- ~
    # _* R( F& p3 k4 \, i

    - z; F* e/ v/ Z功能仿真图- O; x! G8 x7 P6 g' m1 ?

    7 i; _! N# X" J" \" u  k+ ~

    该用户从未签到

    6#
     楼主| 发表于 2010-11-24 16:25 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:26 编辑
    6 f$ f# w5 ~+ J. b: P8 n& [1 Z7 w4 l
    5 C3 c3 e- h; j/ N+ Q回复 00750 的帖子
    . S5 a5 ~! ?" w* [" |6 Q* b
    0 `% X! r6 F& G7 u程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?+ p, G  \/ h- a1 a% _6 }
    谢谢!
    + k% P6 W  g7 R  E; C9 g$ q" K$ r& _6 F' V3 o
    仿真图如下:2 q, N( J- p# @4 \
    ' Z3 a9 j( c! s4 b1 ~& n

    ; N( \  y5 t4 x% J1 h* [
    8 P1 }& M0 Q, f0 ?( B$ C
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-25 16:01 , Processed in 0.093750 second(s), 27 queries , Gzip On.

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

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

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