verilog 程序问题,初学者,请见谅,程序代码如下

verilog 程序问题,初学者,请见谅,程序代码如下,第1张

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

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

差分编码(英文名称:differential

encoding)指的是对数字数据流,除第一个元素外,将其中各元素都表示为各该元素与其前一耐液元素的差的编码。

对上述差分编码进行通信行业重新定义,如下:

通信中的差分编码,差分编码输入序列{an},差分编码输出序列{bn},二者都为{0、1}序列,则差分编码输出结果为bn=an异或bn-1,并不是bn=an异或an-1(即所谓的:对数字数据流,除第一个元素外,将其中各元素手做都表示为各该元素与其前一元素的差的编码。这么定义是不准确的。)。前者多用在2DPSK调制,后者多用在MSK调制预编码。同时昌薯物后者是码反变换器的数学表达式,即用来解差分编码用的。

<<和>>是

移位运算符

,x<<y的意思就首岩是把x按照位左移y位。比如x

=

1100

1010,

y

=

2那么x

<<

y

=

1100

1010

00.

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

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存