#()的用法【FPGA】

news2024/10/5 13:34:36

用法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 <= 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




时间延时:

`timescale  1ns/1ns

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

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

#10  //延时10ns

assign  led_out = ~key_in ;

endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1165031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GCC 编译器 详细总结

前言&#xff1a; 源文件需要经过编译才能生成可执行文件。 在 Windows 下进行开发时&#xff0c;只需要点几个按钮即可编译&#xff0c;集成开发环境(比如 Visual studio)已经将各种编译 工具的使用封装好了。 Linux 下也有很优秀的集成开发工具&#xff0c;但是更多的时候…

oracle如果不适用toad或者plsql工具如何获取索引建表语句

select dbms_lob.substr(dbms_metadata.get_ddl(INDEX,INDEX_NAME,DIXON))||; from dba_indexes where ownerDIXON这个语句可以获取dixon用户的所有索引创建语句&#xff0c;sql脚本形式呈现 点开一个语句查看 如果不使用dbms_lob.substr这个函数最后得到是一个clob selec…

基于Python+Django+Vue在线图书借阅网站、图书管理系统 - 毕业设计 - 课程设计

文章目录 源码下载地址项目介绍项目功能界面预览项目备注毕设定制&#xff0c;咨询 源码下载地址 点击这里下载代码 项目介绍 这是一个基于pythonvue开发的图书借阅网站。平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行…

牛客网刷题-(10)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

Mongoose 开源库--SNTP 网络校时使用笔记

一、SNTP介绍 SNTP是一种简单的网络时间协议&#xff0c;它可以通过网络协议同步计算机的时间&#xff0c;时间的精度不如NTP。 关于SNTP介绍&#xff0c;可以参考 https://www.ionos.com/digitalguide/server/know-how/sntp-simple-network-time-protocol/ 或者 https://time…

docker部署Jenkins(Jenkins+Gitlab+Maven实现CI/CD)

GitLab介绍 GitLab是一个用于仓库管理系统的开源项目&#xff0c;使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的Web服务&#xff0c;可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能&#xff0c;能够浏览源代码&#xff0c;管理缺陷和注释。…

开发项目管理必备神器!10款好用的在线看板工具推荐!

在当今高速发展、竞争激烈的商业环境中&#xff0c;项目管理已经成为了许多组织的生存之道。项目管理可以有效地协调资源&#xff0c;监控进度&#xff0c;把握风险&#xff0c;并实现组织的策略目标。然而&#xff0c;传统的项目管理方法已经无法满足日益复杂和变化的工作需求…

框架安全-CVE 复现Apache ShiroApache Solr漏洞复现

文章目录 服务攻防-框架安全&CVE 复现&Apache Shiro&Apache Solr漏洞复现中间件列表常见开发框架Apache Shiro-组件框架安全暴露的安全问题漏洞复现Apache Shiro认证绕过漏洞&#xff08;CVE-2020-1957&#xff09;CVE-2020-11989验证绕过漏洞CVE_2016_4437 Shiro-…

JS动态转盘可手动设置份数与概率(详细介绍)

这个案例是我老师布置的一项作业&#xff0c;老师已详细讲解&#xff0c;本人分享给大家&#xff0c;详细为你们介绍如何实现。 我们转盘使用线段来实现 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title></title>&l…

2023云栖大会:揭示未来科技的璀璨星辰

翻开科技世界的崭新篇章&#xff0c;2023年的云栖大会将在星光璀璨的杭州盛大开启。这一盛会&#xff0c;是科技创新的聚集地&#xff0c;也是前沿科技展示的殿堂。每年&#xff0c;无数优秀的科技人才和业内精英汇聚于此&#xff0c;共同探讨科技的未来趋势和人类发展的无限可…

编写shell脚本,利用mysqldump实现MySQL数据库分库分表备份

查看数据和数据表 mysql -uroot -p123456 -e show databases mysql -uroot -p123456 -e show tables from cb_d 删除头部Database和数据库自带的表 mysql -uroot -p123456 -e show databases -N | egrep -v "information_schema|mysql|performance_schema|sys"编写…

【Java 进阶篇】Java ServletContext详解:在Web应用中获取全局信息

在Java Web开发中&#xff0c;ServletContext是一个重要的概念&#xff0c;它允许我们在整个Web应用程序中共享信息和资源。本篇博客将深入探讨ServletContext的作用、如何获取它&#xff0c;以及如何在Web应用中使用它。无论您是刚刚入门的小白还是有一定经验的开发者&#xf…

QML WebEngineView 调用 JavaScript

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 QML 与 Web 混合开发时,除了使用 WebEngineView 加载网页之外,我们还可以在 QML 层运行 JavaScript 代码,这样就能更灵活地操作浏览器窗口和网页内容,从而实现丰富的交互功能了。例如:获取网页标题、…

【JavaEE初阶】 初识网络原理

文章目录 &#x1f332;网络发展史&#x1f6a9;独立模式&#x1f6a9;网络互连&#x1f4cc;局域网LAN&#x1f388;基于网线直连&#x1f388;基于集线器组建&#x1f388;基于交换机组建&#x1f388;基于交换机和路由器组建 &#x1f4cc;广域网WAN &#x1f340;网络通信基…

人工智能与脑机接口:开启人机融合的新时代

人工智能与脑机接口&#xff1a;开启人机融合的新时代 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;我们正与一个全新的时代相遇——人工智能与脑机接口相融合的时代。这个时代将带来前所未有的变革&#xff0c;让人类与机器的交互方式发生根本性的改变。…

洒洒水阿萨阿萨

1. 多表查询 多表查询(也叫关联查询, 联结查询): 可以用于检索涉及到多个表的数据. 使用关联查询, 可以将两张或多张表中的数据通过某种关系联系在一起, 从而生成需要的结果集.前提条件: 这些一起查询的表之间它们之间一定是有关联关系.# 先熟悉一下三张表: -- 1. 员工表(11个…

微信小程序快速备案的通道揭秘方法

随着国家政策的调整&#xff0c;微信小程序备案已变得刻不容缓。传统备案路径较为繁琐&#xff0c;耗时较长&#xff0c;为解决此痛点&#xff0c;今天我们将揭示一个快速备案的新通道。 步骤1&#xff1a;探索智慧助手 打开微信&#xff0c;探索“智慧商家服务助手”公众号。…

阿里云OS系统Alibaba Cloud Linux 3系统的安全更新命令

给客户部署的服务&#xff0c;进入运维阶段&#xff0c;但是经常被客户监测到服务器漏洞&#xff0c;现在整理一下&#xff0c;服务器漏洞问题更新命令步骤。 服务器系统&#xff1a; 阿里云linux服务器&#xff1a;Alibaba Cloud Linux 3 漏洞类型和描述&#xff1a; #3214…

[ASP]校无忧在线考试系统 v3.7

校无忧在线考试系统采用互联网技术,快速搭建在线考试系统平台,全面实现了考试工作的网络化、无纸化、自动化。系统操作简单,题型丰富,广泛用于企事业单位,学校教育培训机构等在线考试,网络考试,在线考核…… 系统主要功能&#xff1a; 1、设置基本考试系统信息(开通/关闭考试等…