找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 2378|回复: 5
打印 上一主题 下一主题

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

[复制链接]

1

主题

61

帖子

-8962

积分

未知游客(0)

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

EDA365欢迎您!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑 8 g8 B; }- P# ^3 F5 x% g
8 P) t6 F/ C% A1 {  `
双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。
% i5 B" V' B" _1 @4 X/ Y7 |( _2 {2 W用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。/ T2 v0 c8 l4 u* @( R5 y8 f
问题1:
8 J9 Y) j1 R% z8 D& i9 c          这样写正确么?
0 [' M1 |* _. v, |问题2:8 R4 B  U$ X* Z1 d7 J) e
         怎么样使用波形仿真才正确?
5 N% W5 }# v5 A5 Z* Y* ^; l
: K2 ?9 [1 l' ~8 g1 d9 f请高手解答,谢谢!
4 ~' C; _2 d% ~/ N3 w  u* ~  p3 I4 k0 P! P
程序如下:2 ?5 K9 o; C. |0 w% ]
module tri_bibuffer(a,b,en,dr);
4 a/ L' Z7 D% b/ v  ~6 P5 a$ {  dinout [7:0] a,b;
: }+ b# r) o$ l& l& Zinput en,dr;
! {6 J' B1 A* L% f- p. @/ a2 A' C& L
reg [7:0] a,b;- W# D9 R" i2 s1 H! x- h+ a+ _6 w
wire en,dr;
( Y/ u% r% q. d% `' b6 C- C9 d$ r" Z5 l9 W0 Q' X0 d
always @ (dr,en)& ^- B6 N3 P  W
begin4 w8 B9 r7 e0 N. L2 K
  if(dr)
' {1 ~* k8 S) d9 p   begin
( m1 C" N% N3 u/ e, E    if(en)8 r! \- h5 C5 ^; S+ K
     b <= a;
, s3 z5 `! ~: L2 Q( g    else, T( a2 e7 w/ A% s9 A/ w
     b <= 'bz;6 l# c" x* b) Z5 y8 A& z
   end
7 W6 c. R+ S; I/ b' n/ l  else' j* f' P; ^- R- {) K' J& y
   begin
' J. A) }8 r: o, R* k+ d' k    if(en)3 m1 J4 O1 ^, ?7 P0 Q) ^
     a <= b;
9 A% _6 \% N6 Y/ E/ }# w* H# z  G    else
* O; S. ]( i$ ^; P1 |: t     a <= 'bz;$ v' H4 O' q) ^/ w0 p( B3 N7 K$ B
   end: l! [) A9 B; m8 s. A( d6 v, T2 C
end* U, N: f4 Q0 z7 h: U
endmodule5 t7 ^8 _& S  N+ j/ B% i" ^& ~* S. J

) R1 G& _! A, {仿真波形如下:
$ t1 a3 Y5 P7 }+ E. ~7 B& g0 Z

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

未命名.JPG
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

898

帖子

1万

积分

六级会员(60)

Rank: 6Rank: 6

积分
10052
2#
发表于 2010-11-24 13:43 | 只看该作者
你的波形设置是有问题的,你的想法是在dr=1,en=1时数据由a向b,在你的图中,在a向b输出数据的同时,你的b输入端同样也有输入,两个数据同时驱动一个端口,你在图上看到的是全X,也就是未定值。更改方法是,在dr=1时,b输入设为Z,在dr=0时,a设置为Z。另外你的编码也不是太好,加油吧。

6

主题

898

帖子

1万

积分

六级会员(60)

Rank: 6Rank: 6

积分
10052
3#
发表于 2010-11-24 13:48 | 只看该作者
再上张图; v: I, J8 W' l& [. {7 j" \9 s  ?4 C

7 g5 {2 s6 X- \! u" f# K

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

1.JPG

1

主题

61

帖子

-8962

积分

未知游客(0)

积分
-8962
4#
 楼主| 发表于 2010-11-24 16:01 | 只看该作者
本帖最后由 Supercommando 于 2010-11-24 16:05 编辑   R# C$ G% d4 h' T

# \# N) A, p- u# G) v' y$ W上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。' x& Z1 x0 x6 D
module tri_bibuffer(a,b,en,dr);
$ p3 ?1 Y! b3 f: R: n3 c6 p, c
        inout [7:0] a,b;  c$ f. H" s  ?& I" e! W+ e7 \) S: I9 N
        input en,dr;
* X0 h) N/ Q3 G" R2 p+ M  P* r        
8 k! v" R3 o% M& j/ \' P        assign b = (dr & en)        ?        a        :        'bz;
6 i+ R2 A5 C! n1 @- v- t( p        assign a = ((!dr) & en)        ?        b        :        'bz;2 k+ @- R9 I6 g( {/ Z5 J
; N" J, V$ l9 R+ Q* q3 i
endmodule9 D% ^- r/ Q2 i: ^

8 n. X+ I# w) k. K8 Z* G* r
1 W& h1 @/ u( x

1

主题

61

帖子

-8962

积分

未知游客(0)

积分
-8962
5#
 楼主| 发表于 2010-11-24 16:04 | 只看该作者
分析综合后的RTL级电路
8 W: B. w+ L. @  X 6 ?8 F* X& ~. z/ s

) ^7 i# l- _# E( Q) e功能仿真图3 {& A7 R& Y1 l8 [! P

1 R5 v% _4 x& I$ K) ?' o, B

1

主题

61

帖子

-8962

积分

未知游客(0)

积分
-8962
6#
 楼主| 发表于 2010-11-24 16:25 | 只看该作者
本帖最后由 Supercommando 于 2010-11-24 16:26 编辑 8 D, ?+ [( Y1 d% |3 o( G' G

* {1 V/ {9 a2 f2 A回复 00750 的帖子9 E2 ]+ ?( o' `8 k/ y
- K" [' H, D+ Q7 I. R) ]/ w4 l
程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?! W# `+ e4 K2 \; D- Z
谢谢!
/ q; I6 v5 W& v3 @# Y! R- n" L" }+ H$ u7 v+ a+ V
仿真图如下:) l; O" N2 `. v9 [/ L1 c

3 i) }4 x. n8 \: T
( G, p7 R- \' e" Q; }5 Z
8 e. J; S. ~5 V% ~* f% R3 ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-9 06:05 , Processed in 0.061994 second(s), 35 queries , Gzip On.

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

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

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