找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

1

主题

61

帖子

-8962

积分

未知游客(0)

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

EDA365欢迎您!

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

x
本帖最后由 Supercommando 于 2010-11-22 22:11 编辑 5 z/ S7 D& j  @/ V1 e8 O7 d
, a, y7 A5 W6 z5 z9 A8 n/ `- N
双向总线缓冲器,dr=1且en=1时,b<=a;dr=0,且en=1时,a<=b。a、b均为双向端口。
, a' {/ o7 v( c- Q2 t用Verilog编写,在quartus下用波形仿真,怎么仿真结果都不对。
! q( D3 ~: E/ ~( a* J( f问题1:
8 B- ^9 Z! e$ F% q! I          这样写正确么?0 C* N; J6 Q  v" [  d. U  h
问题2:
' V( ]% R5 |( X- d: P1 K         怎么样使用波形仿真才正确?
! w  Y9 @" z: s) N0 ?$ C) F$ E+ h$ t0 t4 U) D# ?
请高手解答,谢谢!
2 @7 u/ n( a7 i' r# }$ G% [- G# n+ i; y
程序如下:
3 X. Q% ~0 @# `; E' Q8 smodule tri_bibuffer(a,b,en,dr);% U' y; m( x  {7 D8 q# d: |9 b/ i
inout [7:0] a,b;
; C* x" P; i# n6 b( s1 ~input en,dr;( f0 K9 j. u8 a
: {5 a* x( M/ g4 Y+ _# I
reg [7:0] a,b;( R- C# t" r6 U; r& ^  R
wire en,dr;2 j! X& F9 `, a3 i. C8 c

$ A9 s" O% a( @0 U" \1 [9 E  Lalways @ (dr,en)! O; l& `3 K# }$ d( A! O6 {1 I( g
begin
+ a, }& Z! a2 a2 e4 C  if(dr)3 p' c" t) l1 k# \, Y  Q; L- I; c
   begin% o' R/ k( p+ O
    if(en)
. C9 ^; S) z3 s# e" G     b <= a;
7 _% o- v$ e8 {; ?  S    else
, y* ~  C2 n; h! B) V     b <= 'bz;9 Q2 K, ~1 K4 A6 O$ Y
   end1 V5 _/ \. r4 d$ i$ v. {
  else6 f% B3 p4 S9 }- m
   begin
+ N: {! ]- n; |. o% y    if(en)1 f+ h- Q2 o4 q
     a <= b;
3 W7 o! I7 P2 e4 @: W9 V    else; g0 c# \! \4 D( y
     a <= 'bz;$ z# Y8 E5 i# h* n
   end! R/ N6 u$ y; ?4 i
end9 h1 ]  D8 z" O+ h
endmodule
; [) q% n) h4 l9 g2 ], r) F; M+ L2 s
仿真波形如下:
+ a' Y8 {0 r& C( \  o. i  R- V; u

未命名.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 | 只看该作者
再上张图
# _2 m. n7 l+ g# T
2 x5 ]; b5 G5 P7 M

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 编辑
8 T9 o; L  w5 Q
) {* f6 }! p% H  D# I上面的代码是书上的,分析综合后发现电路很大,效果也不好,采用新的方法效果很好,看来可综合的代码很重要。
! ^6 v4 I( I+ S" q/ `module tri_bibuffer(a,b,en,dr);1 N: H+ k, h0 h. Z8 i% @, Q9 d

/ z2 ^" M' Y0 ^* [( w0 d0 |        inout [7:0] a,b;
6 ]" {# _* g; _$ Y& t        input en,dr;7 Q6 J- |5 R0 _/ y
        6 Q7 c# L, z$ p$ I+ I, e3 W. Q
        assign b = (dr & en)        ?        a        :        'bz;
$ L6 J* u+ ~  t; A        assign a = ((!dr) & en)        ?        b        :        'bz;
. d: x7 H, q! A8 }: K: h. H7 m, T" W5 T  B3 r  z
endmodule/ ]1 O0 J" f. Y1 c2 a7 l- @  ^$ T

  M$ x  f; J1 |/ B- c3 N+ i/ C( \& s1 f; x6 `1 ^

1

主题

61

帖子

-8962

积分

未知游客(0)

积分
-8962
5#
 楼主| 发表于 2010-11-24 16:04 | 只看该作者
分析综合后的RTL级电路- a% H0 p4 \* ?( N5 m/ i
& h- C8 K8 ~: @  q! e

# M* i3 \: M+ \9 P" M功能仿真图
2 r! I8 `  u* @; L& L 3 M3 u9 g* ?5 x4 d& n* _! n$ o  W' I

1

主题

61

帖子

-8962

积分

未知游客(0)

积分
-8962
6#
 楼主| 发表于 2010-11-24 16:25 | 只看该作者
本帖最后由 Supercommando 于 2010-11-24 16:26 编辑 ) u; D3 \  F( q* h- H! M" |9 @

. W# s2 T* n4 P, W1 O回复 00750 的帖子0 E  B( _  f! C! y

4 U7 f0 B( f7 P* o. g* M程序是书上的,我采用另一种方法后综合的结果很优化,还想问个问题:这个程序的测试的时候,如果输入a,b均为高阻态时,相应的输出是不定态,这是怎么回事?实际应用情况下输入与输出是否会同时为高阻态?为什么?/ f8 K( x3 F" m# o
谢谢!) Z, R1 `2 l  p7 w

: H' y9 T( c' |' l+ f# E) ~仿真图如下:3 A- O3 U7 c& L7 {6 s5 m

4 G! V; U  q" M- W2 X+ m# z: U / F$ {8 P( i! a
7 `1 e' e! R/ T$ j* w) O/ |' A0 J
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-24 16:51 , Processed in 0.064856 second(s), 36 queries , Gzip On.

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

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

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