初级会员
主题
回帖0
积分55
阅读权限10
注册时间2014-7-25
最后登录1970-1-1
在线时间 小时
|
代码如下:
* }& r3 v7 i x5 `" H// decoder 3 to 8 decoder with an enable control;1 P5 A* O4 k/ |. h, A
module decoder ( y , en , a );4 L- G4 D1 ^* `+ V4 v' m
output [ 7:0 ] y; // 八位输出6 L: k& a- N7 W" I* G8 S3 P; n$ e
input en; // 使能端
" w. e/ K& X/ X. _input [ 2:0 ] a; // 三位地址端
; D* W0 h4 o3 o5 R2 m/ [
4 p1 R# J' y- E6 B4 u- sreg [ 7:0 ] y;7 b" R7 q6 y! V% ^( X
always @ ( en or a )
$ ^2 \1 Q, i$ K% K% p; T B, i if ( en )! D% F5 [4 g. t
case ( a ). M. z% T, x+ A( L! E; M y
3'b000 : y = 8'b1111_1110;
4 ^( E; Y- z# Y! L 3'b001 : y = 8'b1111_1101; t9 ?- V4 U& K2 I" B# O u
3'b010 : y = 8'b1111_1011;
8 U& p |9 U# N) ?+ I* A 3'b011 : y = 8'b1111_0111;3 ?+ g' H, @6 t$ [/ m8 X' X! v
3'b100 : y = 8'b1110_1111;5 v0 u8 ]% I. x0 [: \
3'b101 : y = 8'b1101_1111;% F: \" A1 ~8 e2 X/ p
3'b110 : y = 8'b1011_1111;- {6 s4 V5 Q% h* m7 C
3'b111 : y = 8'b0111_1111;9 p) E( m+ \# ?, ], \2 K
default : y = 8'b1111_1111;( M" A$ z1 {& w# l
endcase7 V+ M& Y- @ n+ w5 ?
else
5 x5 p% ]* }7 |4 f y = 8'b1111_1111;: X( l0 s, g; H$ G7 @+ ]* @ ?- [* I- @
- j" L0 C& x9 Q u$ ~0 C) oendmodule // end of decoder;
, M( C. u* d, e1 |7 e* q; v5 N) {- a9 \3 |3 h7 Z6 K: B% t% s
产生的波形文件见下图。9 V/ C) P" e9 p+ q9 @
本来应该是,en=1,a=000的时候,输出y=1111_1110;结果y=1111_1110却跑到a=001的时候去了。。。。。
1 r/ b" \, L8 Q. @+ V: z% Y8 E本人小白,刚学verilog hdl,写一个3-8译码器就出错了,还望各位大哥大姐多多指教! |
-
结果像产生了延迟了一样。
|