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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑
3 o4 a3 Q% [9 L8 Z, b
. s& \$ f4 p, u- x4 Z  k双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。
1 o* u* B+ l. P6 l, n5 v, w, i用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。
/ G" S8 X, g8 N+ ~  ^5 X( B问题1:
# S8 i. T# _. Y: D          这样写正确么?, L5 d& G& i" ~# S& V- O, ^
问题2:
6 C( b: ]8 ^# `$ j; P& F4 L# i0 U$ ]6 F         怎么样使用波形仿真才正确?/ C3 d. z. f. T, j' R9 g3 |

# E6 ?8 D0 w# x0 i( X% B$ K' h请高手解答,谢谢!
0 K: i. U, w3 i: P) [- @. c& t) S! {- [
程序如下:
; Z- b% `) e# R% \3 N- @module tri_bibuffer(a,b,en,dr);3 A4 r. l3 ?" `
inout [7:0] a,b;
  u! y' r! K: i0 Jinput en,dr;
4 I% e1 E% i$ [% C; u6 n& E9 R7 y8 ~; R! @
reg [7:0] a,b;
! d5 K$ ]; N) K; j1 `+ fwire en,dr;
3 |% g6 e' A+ E  E! |. R' Q
" y4 }7 ~/ y+ N! i9 P2 |+ f/ falways @ (dr,en)  t  c0 `6 m  H  K
begin  S( ?* x1 D5 S% j) P* g% ]- H- o; R* }
  if(dr)8 A: p- I8 O  \
   begin7 ?" C" M" f. C- d5 e2 ^3 b, k6 B
    if(en)- ^8 D! Y, E/ [& u6 ?8 ], T
     b <= a;8 y8 `5 [+ t9 t
    else
4 W2 z! d+ O, [6 E     b <= 'bz;/ y+ K7 i- H- `2 Z
   end
: @3 G* N) G: Q6 i5 C  else
5 c, a* _% i5 p( P; Y   begin' ~  h3 }, Z3 z; ?5 ^+ n
    if(en)/ F+ l+ N; l) Z3 _/ {
     a <= b;; O, P4 d; \; ^
    else1 H( X3 Q8 ~% O! j1 P1 t
     a <= 'bz;
1 \$ y1 |7 u9 c6 S3 b( H   end& `$ Y6 g" v7 ]; H3 ^5 I% {' Y
end+ z  H6 [. B& W$ v1 L
endmodule' `  m4 k; E, n7 h: M+ x
! k- d" z7 F- D  S1 _
仿真波形如下:
0 T. V+ d5 Z4 i

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

未命名.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 | 只看该作者
    再上张图
    : J) c; V: _, B. ?8 E# d# M- K/ b1 Z

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

    1.JPG

    该用户从未签到

    4#
     楼主| 发表于 2010-11-24 16:01 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:05 编辑
    6 X9 e% }! c# a' g" a, t! C8 C) I' J2 a$ S1 |5 Z( j4 k: \
    上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。
    - S  N4 ^$ z% d. p9 smodule tri_bibuffer(a,b,en,dr);* h) [( c9 {3 s/ ^, x- E
    0 k  z3 m& R& y; j/ O( E0 ^
            inout [7:0] a,b;
    : n7 V% A  A, `/ p6 ?        input en,dr;4 f3 w) W" L  Y& X! b/ M
            
    , J4 z$ m% H' m# [- X/ t$ J6 l        assign b = (dr & en)        ?        a        :        'bz;9 s/ M! _$ I, \* t8 ~  `9 m
            assign a = ((!dr) & en)        ?        b        :        'bz;, [  @' f/ p, J1 u4 [! O
    % v/ S8 g! |  L6 z
    endmodule
    - K/ K" n( ~8 [# J
    0 ^  K" o- j( G) x: W; N
    7 k) h& o" N) G1 K1 X: Q; k

    该用户从未签到

    5#
     楼主| 发表于 2010-11-24 16:04 | 只看该作者
    分析综合后的RTL级电路
    9 D2 V0 E9 @" ~7 X! T+ M 0 G0 k; f% ]- B# G4 W" x
    3 M  q7 a3 B, `+ e) t+ a# f
    功能仿真图
    8 o' Y7 n! ^) g2 ^6 i- @ 4 T; y7 _# B' f) n

    该用户从未签到

    6#
     楼主| 发表于 2010-11-24 16:25 | 只看该作者
    本帖最后由 Supercommando 于 2010-11-24 16:26 编辑 ! U+ `0 m0 Z4 D& h

      E4 s4 c; J8 W回复 00750 的帖子
    / c5 J7 b$ r+ v; e2 N. Y( C( I: X6 S0 M8 {7 \6 b' ?
    程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?5 y/ E, h& @! n* v/ L
    谢谢!, Z# P4 K* M0 a' A6 z  O

    $ R- @& ?( }' A- _, t* H( R仿真图如下:5 s# M6 A! W8 F* q/ M

    9 o/ Q3 L8 y' A" ~6 v " G8 X/ l, L" w7 K6 K# I

      k1 h, Q' R/ _6 d  b! Q
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-26 10:10 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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