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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑
  t5 T( V/ h. d+ _4 J7 ?% k. h7 W8 a( h1 Z# S- h+ o$ w+ j. H. }
双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。
& d" l( f4 X2 p& v% t用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。
- |: n2 j! }5 i问题1:
4 X% X8 V3 B! Q: U3 ]6 g" M( Z7 ]% U          这样写正确么?
3 N& ~2 ^. [: n1 N$ G问题2:. }0 p' x- O  E1 ^9 i5 I) q
         怎么样使用波形仿真才正确?
7 I( z% E+ t+ g6 t. `+ m0 ]4 B7 ~& L% s" K  I: i& I
请高手解答,谢谢!
9 u& v" N4 |8 D4 ^; E0 d3 f6 C4 y+ z& s1 p3 i0 t. M
程序如下:1 H9 Z9 z5 h7 v5 O! U" b
module tri_bibuffer(a,b,en,dr);
0 h' c" n: z  l- M( p6 e2 a  Uinout [7:0] a,b;/ G  S- L, x# ~
input en,dr;
! M/ x) K* }( O1 f+ J) ^! D, g: E& I% H- Q: M; K! D
reg [7:0] a,b;
+ k# B7 o" T: \$ @1 t$ ewire en,dr;
% g# e3 n6 a" w- {6 U- f5 s6 E* {8 K6 [$ z- U* R8 w- @
always @ (dr,en)2 k$ A4 v: q2 O' n
begin' n% K" Y4 c# r1 h
  if(dr)' m2 U5 i7 x1 I" h. l( K
   begin
% {% N- L" O5 ^2 V4 h. K4 m    if(en)* L7 P5 Q) Q; E. n' z1 k% b; z2 {
     b <= a;; p: A* F/ O% n$ b
    else
3 W! V0 W4 S- u! K$ P$ y8 l, W     b <= 'bz;/ ~( ~! {5 D" Q1 D# T/ r9 E
   end
) ~( V6 q9 h* |- [3 ~- h  else
8 a$ [0 e- K1 ?8 w1 H0 l3 }' `& s/ E   begin+ z7 j* t& f1 j( K
    if(en)
7 j1 A+ J- `, x" Y8 e     a <= b;
+ I; X! t7 ]! L/ B    else: ]9 X% }. `4 N
     a <= 'bz;3 H2 F8 u: O$ S8 I0 i; M" h
   end
. Z2 ]* s$ k) M; H7 P; v) n# I7 m# Rend
3 o5 b7 C8 J5 s9 Z& v. m# l  Eendmodule$ ]& L! A& I$ h, T" k
' K& Q9 c2 G! U# e/ k: i
仿真波形如下:
9 W; _+ |8 a2 b

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

未命名.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 M& B1 N9 C+ e' |) @0 G9 P
    . N% {: T" O9 U- s7 I* G4 h

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

    1.JPG

    该用户从未签到

    4#
     楼主| 发表于 2010-11-24 16:01 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:05 编辑 . g' G$ _8 {% L- h  t

    9 p% u6 n( d- ], X! A8 V, Z/ `5 D上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。% S% C5 D: F' \. w- Y  s
    module tri_bibuffer(a,b,en,dr);- k' G9 c! h$ E+ r" V0 B
    & }; H1 Z; P0 H/ `# A8 c% e
            inout [7:0] a,b;* k$ r+ C. k! D8 y/ e2 x) N; {
            input en,dr;
    % J7 V% n. \& L+ p4 c3 u2 `8 k1 G        
    + L( ?# d0 z7 M' z2 `! c' G& O& t        assign b = (dr & en)        ?        a        :        'bz;
    % v$ i6 _! F2 x        assign a = ((!dr) & en)        ?        b        :        'bz;. w3 [" @7 l) V9 F% [
    5 C# g- b( }' V, a+ e  w2 U
    endmodule  _' i6 Z1 [' ~$ c' b9 {' `
    2 x  N5 t; X) C% A0 q
    ! c: J* n/ H) g1 G; [3 c& d

    该用户从未签到

    5#
     楼主| 发表于 2010-11-24 16:04 | 只看该作者
    分析综合后的RTL级电路
    8 M0 C/ n. V7 g6 v% X( t. s3 u 9 \2 n. R' n+ ^

    , a* I7 v: @  u( U功能仿真图
    5 F4 Z8 T3 y+ e- Q% m% ~ ; e  k6 {; x" t; {, V1 r

    该用户从未签到

    6#
     楼主| 发表于 2010-11-24 16:25 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:26 编辑 7 t8 I$ A8 M/ R
    % M0 y9 h" g* H, g
    回复 00750 的帖子
    3 r0 W7 p$ [7 D1 q& Q( r8 f( p! u2 y( F# B4 x8 X
    程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?
    3 j+ d5 ]9 C. p谢谢!/ h% D1 @2 c( {( n  _% i2 ^; E' c

    . I6 t/ I3 z; j2 _仿真图如下:8 {; a. J2 Q. ]

    ( `- w; S3 U6 ]3 d) m% F. m) Y8 N
    % k% F4 r4 w1 M: M# A4 y. E6 H
    9 k. w8 ]+ b/ v$ F
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-9-7 05:45 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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