#()的用法【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
相关推荐
ShiMetaPi13 小时前
操作【GM3568JHF】FPGA+ARM异构开发板 使用指南:蓝牙
arm开发·嵌入式硬件·fpga开发·rk3568
知识充实人生21 小时前
静态时序分析详解之时序路径类型
fpga开发·时序路径·关键路径
9527华安2 天前
Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率,提供2套工程源码和技术支持
fpga开发·音视频·dp1.4·4k60帧
cycf2 天前
高速接口基础
fpga开发
forgeda2 天前
从Vivado集成Lint功能,看FPGA设计的日益ASIC化趋势
fpga开发·vivado·lint·eco·静态检查功能
hexiaoyan8272 天前
国产化FPGA开发板:2050-基于JFMK50T4(XC7A50T)的核心板
fpga开发·工业图像输出·vc709e板卡·zynq 通用计算平台·模拟型号处理
雨洛lhw2 天前
The Xilinx 7 series FPGAs 设计PCB 该选择绑定哪个bank引脚,约束引脚时如何定义引脚电平标准?
fpga开发·bank·电平标准
红糖果仁沙琪玛3 天前
FPGA ad9248驱动
fpga开发
minglie13 天前
XSCT/Vitis 裸机 JTAG 调试与常用命令
fpga开发
沐欣工作室_lvyiyi3 天前
基于FPGA的电梯控制系统设计(论文+源码)
单片机·fpga开发·毕业设计·计算机毕业设计·电子交易系统