初级会员
主题
回帖0
积分55
阅读权限10
注册时间2014-7-25
最后登录1970-1-1
在线时间 小时
|
代码如下: s) M$ v D# ]& t! m$ _# }
// decoder 3 to 8 decoder with an enable control;
/ q( j; }% x+ [' c8 S6 f% n) Kmodule decoder ( y , en , a );9 ?- J) M2 h. D0 r7 W i3 I- K! n+ @
output [ 7:0 ] y; // 八位输出
; Z- U9 a- V- m6 ]input en; // 使能端
w3 ?* a9 i. t; U0 |input [ 2:0 ] a; // 三位地址端# O: g3 J n' a
2 \. }0 R* t& c. \5 _reg [ 7:0 ] y;
* C5 h# b, E( S7 Q& d1 Ualways @ ( en or a )* |+ i6 P# A1 P* S2 S
if ( en )$ N5 o; Y. [+ B' C7 L
case ( a )
& n$ x8 y- o) p$ @1 X 3'b000 : y = 8'b1111_1110;9 x1 m8 ?4 L. j' z* ~
3'b001 : y = 8'b1111_1101;
/ o. m9 \; _/ Z! S2 b 3'b010 : y = 8'b1111_1011;( q5 M4 [. T% P; `# s+ l
3'b011 : y = 8'b1111_0111;5 u/ L$ I5 H- x% ?
3'b100 : y = 8'b1110_1111;+ b. f3 j2 g/ `2 v9 p. ~
3'b101 : y = 8'b1101_1111;
5 A* I5 }% F) A! A. h; Y 3'b110 : y = 8'b1011_1111;
% t' z# S0 Q& h4 c" }: \ 3'b111 : y = 8'b0111_1111;# ]2 W2 I( z, G* O [
default : y = 8'b1111_1111;2 D+ z5 O; J) ]
endcase, @, a) @3 R; l6 @0 A
else
; c9 J" K( S. @ v/ S y = 8'b1111_1111;$ N! H5 P. Z- T$ \5 C6 w
0 B5 l1 Y; S- J; f9 K$ L$ |+ L8 Qendmodule // end of decoder;
+ o3 H8 Q# y0 C3 v) ?% |; f: t# |; a$ T
产生的波形文件见下图。5 I* g0 K! M0 ? D; f8 ^8 L. g
本来应该是,en=1,a=000的时候,输出y=1111_1110;结果y=1111_1110却跑到a=001的时候去了。。。。。0 I( e/ Q5 b: [* |" d
本人小白,刚学verilog hdl,写一个3-8译码器就出错了,还望各位大哥大姐多多指教! |
-
结果像产生了延迟了一样。
|