初级会员
主题
回帖0
积分55
阅读权限10
注册时间2014-7-25
最后登录1970-1-1
在线时间 小时
|
代码如下:
. ^+ \* f( i+ \, o2 J// decoder 3 to 8 decoder with an enable control;( n" S: k" F$ Y2 f# x- j
module decoder ( y , en , a );
2 E( @' n/ @, d/ Z# ]! Q3 S2 routput [ 7:0 ] y; // 八位输出7 Y$ V1 F: z1 `- y
input en; // 使能端" m" o+ h! S' X5 t" S- k% H
input [ 2:0 ] a; // 三位地址端9 W7 l J" v s w+ P
% X) ]( F# X) t% Z2 Ireg [ 7:0 ] y;% f1 o5 J$ N' e4 m
always @ ( en or a )
: }" F; o: N7 J9 p n) q6 g6 k1 n if ( en )6 ^( k. P3 Y4 x0 ~1 y
case ( a )
6 ~' b# X, i2 b7 t6 a 3'b000 : y = 8'b1111_1110;
2 o+ c/ ~: h8 a0 o 3'b001 : y = 8'b1111_1101;
' o4 m8 J. G8 Y6 B 3'b010 : y = 8'b1111_1011;
* D5 A& E. w. l1 R1 z 3'b011 : y = 8'b1111_0111;* t# P3 m6 N0 i' L: S4 o* ~3 \1 V$ z
3'b100 : y = 8'b1110_1111;
, ?3 t* @! }! ] 3'b101 : y = 8'b1101_1111;- Z6 `- O* K0 ]& Z3 b* q1 J! \ S
3'b110 : y = 8'b1011_1111;
1 r/ |1 N, ^( j* q; s: @ 3'b111 : y = 8'b0111_1111;
) Q; M1 B* ?, r7 ]0 d4 Z default : y = 8'b1111_1111;
+ d, F" ? J6 I. j/ b endcase, F- \% P {+ c/ _: Q U7 N
else
( ~% }# g. {( t+ R0 [ y = 8'b1111_1111;
' d7 C0 M& F ?6 f! n+ ~0 n ]
& e k- ~9 e+ n# ?1 K0 d" qendmodule // end of decoder;# Y' r( P- V* |3 R" B- d/ v) X
$ D9 {( i9 z4 G' e8 N产生的波形文件见下图。
% U4 _# z" r/ g1 h! H本来应该是,en=1,a=000的时候,输出y=1111_1110;结果y=1111_1110却跑到a=001的时候去了。。。。。" c/ O0 E3 e* Q/ I
本人小白,刚学verilog hdl,写一个3-8译码器就出错了,还望各位大哥大姐多多指教! |
-
结果像产生了延迟了一样。
|