#()的用法【FPGA】

用法2种:

1预处理参数。

2时间延时。

在Verilog中,#()是一个参数化的模块声明,用于定义模块的参数。这些参数可以在模块实例化时被传递,以便在模块内部使用。#()中的参数可以是数字、字符串或其他参数化模块。具体说明如下:

  1. #()中的参数可以是数字、字符串或其他参数化模块。

  2. 参数可以在模块实例化时被传递,以便在模块内部使用。

  3. #()中的参数可以有默认值 ,如果没有传递参数,则使用默认值。

  4. #()中的参数可以在模块内部使用,例如用于计算延迟时间等。

下面是一个简单的Demo,展示了如何在Verilog中使用#()声明一个参数化模块:

默认参数:

cs 复制代码
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 <= 0;
        cnt_1ms <= 0;
        cnt_1s <= 0;
    end
    else
    begin
        if (cnt_1us == CNT_1US_MAX)
        begin
            cnt_1us <= 0;
            cnt_1ms <= cnt_1ms + 1;
        end
        else
        begin
            cnt_1us <= cnt_1us + 1;
        end

        if (cnt_1ms == CNT_1MS_MAX)
        begin
            cnt_1ms <= 0;
            cnt_1s <= cnt_1s + 1;
        end

        if (cnt_1s == CNT_1S_MAX)
        begin
            cnt_1s <= 0;
            if (button)
            begin
                led <= ~led;
            end
        end
    end
end

endmodule

时间延时:

cs 复制代码
`timescale  1ns/1ns

module  led 
(
    input   wire    key_in  ,   //输入按键

    output  wire    led_out     //输出控制led灯
);

#10  //延时10ns

assign  led_out = ~key_in ;

endmodule
相关推荐
FPGA小迷弟7 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整指南
fpga开发·dsp开发·fpga·1024程序员节·sdr·无线电
专注仿真13 小时前
Vivado FPGA 开发实战项目:从入门到上板
fpga开发
NamoAmitabha12818 小时前
BSP,板级支持包--deepseek
单片机·嵌入式硬件·fpga开发
szxinmai主板定制专家19 小时前
ARM 还是 x86?CODESYS 数控机床控制器选型、FPGA 取舍与实时性真相
arm开发·人工智能·fpga开发·zynq·1024程序员节·codesys
星夜离尘561 天前
FPGA 小数据字如何纠错:完整实现并验证扩展 Hamming (13,8) SECDED
fpga开发
通信王662 天前
ZYNQ架构下的AXI_Lite 总线详解(1)
fpga开发
星夜离尘562 天前
FPGA 不用浮点开平方:逐位恢复整数平方根、余数与完整握手验证
fpga开发
Enclustra_China2 天前
FPGA设计的隐藏难题:算力、功耗与散热如何平衡?
fpga开发·fpga·fpga解决方案
好焊孙辉2 天前
从六代螺柱焊机到AI质检:鸿栢科技的螺柱焊国产化路径
人工智能·python·科技·fpga开发
unicrom_深圳市由你创科技2 天前
高帧率机器视觉 FPGA 图像板卡及传输开发定制解决方案
fpga开发