初级会员
主题
回帖0
积分55
阅读权限10
注册时间2014-7-25
最后登录1970-1-1
在线时间 小时
|
代码如下:( x6 Y- X+ S; ~& ~+ O3 g/ M4 d
// decoder 3 to 8 decoder with an enable control;
7 n0 o5 M% e! d1 j: q3 `module decoder ( y , en , a );
' R$ v! D& s6 M: D# Moutput [ 7:0 ] y; // 八位输出6 r( G6 }- K: X" u& Y, L
input en; // 使能端
" H0 s0 w9 |6 j. F5 z/ Yinput [ 2:0 ] a; // 三位地址端
+ } G3 N. u* _* l$ l$ ~- O( z$ }6 P- y- N) t7 P- k* M* F# {1 h( v
reg [ 7:0 ] y;( h+ @4 H; g' [4 e! @
always @ ( en or a )
/ N* }% h. Z( q if ( en )
N G4 G# J2 \ case ( a )
& t# T3 {( G& a% D! K 3'b000 : y = 8'b1111_1110;
* u/ `$ O2 @) c+ H4 T: o 3'b001 : y = 8'b1111_1101;
( E a O% v- V# T" S4 G 3'b010 : y = 8'b1111_1011;
/ ]' o4 j; o0 C. ?* t* y 3'b011 : y = 8'b1111_0111;
# N' ^, U' ]0 C, K3 E% H 3'b100 : y = 8'b1110_1111;
# U4 h: W6 @! P1 r; O4 P 3'b101 : y = 8'b1101_1111;
, ?/ }, P' q+ z3 ^. ^ 3'b110 : y = 8'b1011_1111;: ^) p& r: R9 I9 W9 j' z
3'b111 : y = 8'b0111_1111;" j2 d% m, m& ~/ `! k* {
default : y = 8'b1111_1111;0 y( i% l N0 X* A U
endcase
4 \& d- ]5 g" J3 o else
7 A4 y$ f( a0 G7 k- E- Y3 m: i y = 8'b1111_1111;
# L( ?8 q+ i4 o ) q. `) J `) i6 }8 @* A
endmodule // end of decoder;/ w. f: ]5 E/ u5 b
o. K* U# p) H: R) I) f7 U
产生的波形文件见下图。
! I2 ?- ^3 I7 F5 o8 @5 p1 m0 m本来应该是,en=1,a=000的时候,输出y=1111_1110;结果y=1111_1110却跑到a=001的时候去了。。。。。
# n* D- X9 W* C% a" S8 _3 W本人小白,刚学verilog hdl,写一个3-8译码器就出错了,还望各位大哥大姐多多指教! |
-
结果像产生了延迟了一样。
|