夏宇闻Verilog教程中卷积器设计部分问题

夏宇闻Verilog教程中卷积器设计部分问题,第1张

能不能等一段时间呢?我这两周忙着期末考试,等考完可以帮你看看,我也有那本书。

不过你应该先搞清数字信号卷积的原理,就是两个信号(这里姑且设为a,b),一个信号不动,另一个reverse后(设为b'),b'经过时移,每移一位得道result的一位结果,这个结果等于当前a的每一位*对应的b'的每一位的和。要是不清楚你去看下信号或者DSP的书吧~

修改了一下,加了输入输出端口,以及触发条件

module test(red,amber,green ,able)

input able

output red,amber,green

reg clock,red,amber,green

parameter on=1,off=0,red_tics=350,green_tics=200,amber_tics=30

//交通灯初始化

initial red=off

initial amber=off

initial green=off

//交通灯控制时序

always

wait(able)

begin

red=on//开红灯

light(red,red_tics)//调用等待任务

green=on//开绿灯

light(green,green_tics)//等待

amber=on//开黄灯

light(amber,amber_tics)//等待

end

//定义交通灯开启时间的任务

task light

output color

input [31:0]tics

begin

repeat(tics)

@(posedge clock)

color=off

end

endtask

always

begin

#100 clock=0

#100 clock=1

end

endmodule

<<和>>是移位运算符,x<<y的意思就是把x按照位左移y位。比如x = 1100 1010, y = 2那么x <<y = 1100 1010 00.

同理>>就是右移啦,一样的。

在verilog中,因为FPGA不太好实现乘除之类的运算,所以有时会用左移右移来表示某些特殊情况的乘除法。比如这句ClkFrequency>>5就是相当于ClkFrequency/(2^5).


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

原文地址:https://54852.com/yw/11340806.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存