专业资料
Verilog 语法基础讲解之参数化设计
在 Verilog 语法中,可以实现参数化设计。所谓参数化设计,就是在一个功能模块中,
对于一个常量,其值在不同的应用场合需要设置为不同的置,则将此值在设计时使用
parameter 关键字声明,那么在上层模块例化使用该功能模块时,可以根据具体需求重新配
置该常量的值,从而实现不同应用场合对对应常量的灵活调整。
以下为使用 Verilog 设计的一个控制 LED 闪烁灯的模块代码:
01 module counter(Clk,Rst_n,led);
02
03
04
05
06
07
08
09
10 //计数器计数进程
11
12
13
14
15
16
17
18
19 //led输出控制进程
20
21
22
23
24
25
26
27
28 endmodule
always@(posedge Clk or negedge Rst_n)
if(Rst_n == 1'b0)
led <= 1'b1;
led <= ~led;
led <= led;
else if(cnt == 25'd24_999_999)
else
always@(posedge Clk or negedge Rst_n)
if(Rst_n == 1'b0)
cnt <= 25'd0;
cnt <= 25'd0;
cnt <= cnt + 1'b1;
else if(cnt == 25'd24_999_999)
else
input Clk; //系统时钟,50M
input Rst_n; //全局复位,低电平复位
output reg led; //led输出
reg [24:0]cnt; //定义计数器寄存器
在此设计中,定义了一个名为cnt的计数器,该cnt在输入时钟”Clk”的驱动下,每个
时钟的上升沿执行一次自加操作,当计数到达24999999后,计数器清零,同时led驱动状态
发生翻转。由于系统时钟为50M,即周期为20ns,cnt每计数25000000次,即500ms,驱动led
状态翻转一次,从而可以实现控制led以1s为周期进行亮灭闪烁。在这个系统中,我们可以
word 完美格式
评论1
最新资源