一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 3454|回复: 2

用quartusII编程3-8译码器,时序仿真出错,类似延迟,求指教

[复制链接]
发表于 2014-8-10 21:50 | 显示全部楼层 |阅读模式
代码如下:
. ^+ \* 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译码器就出错了,还望各位大哥大姐多多指教!

结果像产生了延迟了一样。

结果像产生了延迟了一样。
发表于 2014-8-11 12:01 | 显示全部楼层
看了你一下这个写法不怎么好!暂时不说你输出延迟的问题,单单你从输出的部分已有好多的毛刺了。这是不允许的,解决的办法是用寄存器,还有尽量不能用always @ ( en or a ) 这样的写法,你可以用always @(posedge en )5 Y3 s" l! p9 T8 V! b5 ?3 |1 l
还有a作为输入的判断不怎么好,不建议这样写,还有最好加复位REST。推荐的写法是用状态机,决不会产生你这样的延迟和毛刺。
回复

使用道具 举报

发表于 2014-8-11 12:05 | 显示全部楼层
状态机你从我发的帖子上找,不能全部相信国内书的写法,好多是误导人的,状态机是最适合VERILG上用的。
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-20 12:12 , Processed in 0.034485 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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