累加器verilog语言编程问题

累加器verilog语言编程问题,第1张

两个问余悔败题:

1、accum_k==8'd16

等你发现计数器已经等于16,实际信号输出时已经又过了一个时钟周期了,相当于每竖颤逢17个数输出一次。

accum_k从0开始到14一共才是十五个,即accum_k==14时就应该输出并清零了。

2、else

accum_k <= 0

你的使能信号是怎么定义的?使能的作用应该是:有效时正常工作;无效时什么都不做,但保持原有状态(即寄存器的值)。使能无效时对仅仅计数器清零是不对的,如果要清零前历,累加器也应该一起清零,这样就成了reset,并不是使能的功能。因此,这句else画蛇添足

供参考

module Verilog(A,B,C,D,Y)

input [3:0] A,B,C,D

output Y

wire [7:0] X

reg Y

assign X={A,3'b0}+{B,2'b0}+{C,1'茄纯b0}+D

always @(X)

begin

if ((X>8'h4)&&(X<=8'hf))

Y=1'b1

else

Y=1'b0

end

endmodule

该消纳塌程序经过仿真,结果正拿圆确。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12545380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存