用法2种:
1预处理参数。
2时间延时。
在Verilog中,#()是一个参数化的模块声明,用于定义模块的参数。这些参数可以在模块实例化时被传递,以便在模块内部使用。#()中的参数可以是数字、字符串或其他参数化模块。具体说明如下:
1. #()中的参数可以是数字、字符串或其他参数化模块。
2. 参数可以在模块实例化时被传递,以便在模块内部使用。
3. #()中的参数可以有默认值,如果没有传递参数,则使用默认值。
4. #()中的参数可以在模块内部使用,例如用于计算延迟时间等。
下面是一个简单的Demo,展示了服务器托管网如何在Verilog中使用#()声明一个参数化模块:
默认参数:
module sleep_led #
(
parameter CNT_1US_MAX = 6'd49,// 有默认值的,实例化时可以传入新值
parameter CNT_1MS_MAX = 10'd999,// 没有新值传入,就使用默认值
服务器托管网 parameter CNT_1S_MAX = 10'd999
)
(
input clk,
input rst,
input button,
output reg led
);
reg [9:0] cnt_1us;
reg [9:0] cnt_1ms;
reg [9:0] cnt_1s;
always @(posedge clk or posedge rst)
begin
if (rst)
begin
cnt_1us
时间延时:
`timescale 1ns/1ns
module led
(
input wire key_in , //输入按键
output wire led_out //输出控制led灯
);
#10 //延时10ns
assign led_out = ~key_in ;
endmodule
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 痞子衡嵌入式:在IAR开发环境下手动拷贝自定义程序段到RAM中执行的方法
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是IAR下手动拷贝自定义程序段到RAM中执行的方法。 在痞子衡旧文 《IAR下RT-Thread工程自定义函数段重定向失效分析》 里,我们知道 IAR 链接器处理自定义程序段重定向是有一些限…