找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

1

主题

61

帖子

-8962

积分

未知游客(0)

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

EDA365欢迎您!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑
- f# h. P& i) W% }$ P/ a) f
/ x& _& U" y- o$ t, H5 \双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。) b! E+ G6 {* E4 r: t* \; n- O  [
用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。
5 [. Y& l/ k! C  Y, X2 @( E7 \3 T/ R问题1:  [; V& |, s9 I3 |
          这样写正确么?
; q/ y- ?( ?2 @" K0 p& U9 h问题2:4 v4 R7 M7 y4 P- ^, V7 R, s
         怎么样使用波形仿真才正确?5 I" O; k" z' ^1 z; c* B2 ]
2 N2 h" y$ {  J. R% J' Q3 s7 g  l6 ?
请高手解答,谢谢!" Z" B6 k( v) {+ A( s
* q) \1 M- h( U( B
程序如下:
# i1 w- T  \: U1 C1 xmodule tri_bibuffer(a,b,en,dr);
4 k* W& \' E4 |  t5 O  m! dinout [7:0] a,b;
1 |+ F6 N4 D' X6 j4 Kinput en,dr;
# V& Z! E1 T. i& O7 x3 Y
2 i3 \; T" W! W2 \( V3 ^" Areg [7:0] a,b;
  k; h# `6 K/ `! Wwire en,dr;4 N3 m' @9 u; X
* F, Y/ `4 c$ H! o. C
always @ (dr,en)
9 i5 q, K2 l& v) vbegin: K' s1 Z. H. }4 t  ?, M% f, u
  if(dr)
4 z, O$ a0 `$ m4 \! L  w   begin% {( G1 U# K4 v+ L: }
    if(en)
8 q" J, y+ G& N# ?$ g/ R  x     b <= a;/ c/ }7 N: L4 ]7 W$ A% o
    else
' T$ m( m  ~6 ]$ c% N( e     b <= 'bz;
! q+ u# n% N) t3 `   end
& v& j" `5 i0 D8 t  else1 w( i. y) b& m
   begin
( V3 U4 E, m$ e1 w1 K    if(en)6 J# Y0 \3 S( Z/ U
     a <= b;6 `8 M8 K" F: f6 ^4 C
    else/ ~2 o3 o7 W3 D6 J" p2 b
     a <= 'bz;
' H' K  H; N; @1 z7 b   end
/ l$ E" i& Y  t0 lend
+ @% i- V  x* _4 X1 g; ~endmodule
( f2 q" P# g) X% v  t7 O
- T- W0 O, x8 t' H4 |2 Z仿真波形如下:9 y( t  m) |8 ]( C% s+ }

未命名.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 | 只看该作者
再上张图
+ h& ?) ^2 G+ X; L; F7 g# J/ ~* @% d9 O0 }

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 编辑 $ g9 M; y& F( [2 k3 W7 s+ D9 ^8 P

( `- N" w# k9 [! d上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。5 \. E/ P6 M6 ^5 Z+ v
module tri_bibuffer(a,b,en,dr);/ p' Q1 L% x# ], T( V  f- b0 f

* W: z# ]0 m% n: J        inout [7:0] a,b;7 i7 n5 }- j; e- A1 h% Z$ m# D
        input en,dr;
" v+ s) l' _) B3 S        
4 O8 y* I2 j2 v# C        assign b = (dr & en)        ?        a        :        'bz;* z1 b8 R) u' v  d6 o; e9 t$ g
        assign a = ((!dr) & en)        ?        b        :        'bz;/ ]8 Y5 N. |# Q9 E

7 @  Y+ R  |8 B( T6 X. aendmodule
9 U1 z0 c" ^; |5 a+ G3 p3 l/ K! G- @$ L. y1 S1 I8 ?: v& R
, U" b1 y3 m8 r( e

1

主题

61

帖子

-8962

积分

未知游客(0)

积分
-8962
5#
 楼主| 发表于 2010-11-24 16:04 | 只看该作者
分析综合后的RTL级电路
- ]# B. t4 d4 P7 F  I8 a , N+ t7 m0 o5 y' I$ M2 c  P& f, Y

1 Q; S$ I4 e' T3 ~功能仿真图
5 O+ Y( [- ~' x
5 F& C1 W$ B# x- F2 v+ B6 l; R! D

1

主题

61

帖子

-8962

积分

未知游客(0)

积分
-8962
6#
 楼主| 发表于 2010-11-24 16:25 | 只看该作者
本帖最后由 Supercommando 于 2010-11-24 16:26 编辑
; Q" q* X% f' O9 f
( q! @( ?# h! e6 }- Y- D回复 00750 的帖子
, p3 X. n* u, ?: H" X: [4 o; @/ b) _+ @5 H1 d8 a! c
程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?3 K( s/ j' @; ]$ Q6 h9 G
谢谢!: }; G, ]' ^$ s$ d) F4 V
, c9 ?  z9 b6 D9 M3 C" \! {
仿真图如下:, b0 ]) d$ ~" n) B) z% G

$ O3 b* n4 X/ L1 Z% g6 \4 q5 E% A
  Y* ]2 J: Z. {) Q2 c/ ]; e' h9 ?' d, u" a9 Z8 [
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-20 16:08 , Processed in 0.060179 second(s), 35 queries , Gzip On.

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

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

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