顶层模块【FPGA】

1顶层模块:

                不能像C语言的h文件那样,把io的定义放在其他文件。

在Verilog中,顶层模块是整个设计的最高层次,它包含了所有其他模块和子模块。
顶层模块定义了整个设计的输入和输出端口,以及各个子模块之间的连接方式。IO的定义通常是放在顶层模块内部,用来定义整个设计的输入和输出端口。
在顶层模块中,我们可以使用  模块IO  来声明下方的空间来定义模块的功能,
通常使用RTL(Register Transfer Level)来实现,也可以编写结构代码或描述性原语。

2顶层模块模板:

module   top_PGL22G
//顶层参数,在加载改模块时,先加载参数
#(parameter CNT_1US_MAX =  6'd49	,//因为主晶振50MHz【计数0~49】parameter CNT_1MS_MAX = 10'd999	,// 1ms=1000us;parameter CNT_1S_MAX  = 10'd999	//最后一个参数不加【,】逗号
)//模块的io,跟PLC的io一样,程序以集成块的方式展现
(input  FPGA_CLK_50M_b5,input  reset_e8,input  key1_k18,input  key2_n17,input  key3_n18,input  key4_h17,
//output led1_d15,output led2_c15,output led3_a12,output led4_b12,output beep_h13   
//【注】最后一个参数不加逗号
);
//===================================
//===内部成员//===================================
//===并联运行的程序//usalways@(posedge FPGA_CLK_50M_b5 or negedge reset_e8) //【死循环】@敏感【触发条件:上升沿 clk】【运行副本】if(reset_e8==1'b0)begin        //50Mhz晶振,   49_999_999 是 1秒1次cnt_1us <= 6'b0;// cnt_en <= 1'b0;endelse if(cnt_1us == CNT_1US_MAX)// 0~49cnt_1us <= 6'b0;else cnt_1us <= cnt_1us + 6'b1 ;//msalways@(posedge FPGA_CLK_50M_b5 or negedge reset_e8) //【死循环】@敏感【触发条件:上升沿 clk】【运行副本】if(reset_e8==1'b0)begin        //50Mhz晶振,   49_999_999 是 1秒1次cnt_1ms <= 10'd0;endelse if((cnt_1ms == CNT_1MS_MAX ) && (cnt_1us == CNT_1US_MAX))// ms满,cnt_1ms <= 10'd0;else if(cnt_1us == CNT_1US_MAX)cnt_1ms <= cnt_1ms + 10'd1 ;// ms加1//salways@(posedge FPGA_CLK_50M_b5 or negedge reset_e8) //【死循环】@敏感【触发条件:上升沿 clk】【运行副本】if(reset_e8==1'b0)begin        //50Mhz晶振,   49_999_999 是 1秒1次cnt_1s <= 10'd0;endelse if((cnt_1s == CNT_1S_MAX ) && (cnt_1ms == CNT_1MS_MAX) &&(cnt_1us == CNT_1US_MAX))// s满,cnt_1s <= 10'd0;else if((cnt_1ms == CNT_1MS_MAX)&&(cnt_1us == CNT_1US_MAX))cnt_1s <= cnt_1s + 10'd1 ;// s加1endmodule

原来可以,写法上要稍微改下格式

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

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

相关文章

大数据毕业设计选题推荐-旅游景点游客数据分析-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

使用vscode开发uniapp项目常用的辅助插件,提升开发效率

为什么不使用hbuilder开发呢&#xff1f;因为hbuilder对ts和vue3语法支持并不友好&#xff0c;而且代码提示不智能&#xff0c;也不能使用最近很流行的coplit和CodeGeex智能提示&#xff0c;所以就换掉hbulider&#xff0c;使用我们熟悉的vscode开发吧。 第一个&#xff1a;un…

【Linux】Linux+Nginx部署项目(负载均衡动静分离)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Linux的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Nginx负载均衡 1.什么是负载均衡 2.实…

我终于学会的前端技能——代码调试、打断点

在技术的世界里&#xff0c;要用魔法来打败魔法 说来惭愧我做前端已近三年了竟然还没有学会如何调试代码&#xff0c;也就是给自己的代码打上断点一步步看它的运行状态以达到理清代码运行逻辑、排查问题提升开发效率的目的。直到最近我才学会了这一技能&#xff0c;在这之前我用…

单行自动横向滚动——css实现

效果 封装组件 <template><div ref"container" class"scroll-area"><divref"content":class"[isScroll ? scroll : no-scroll]":style"{ color: fontColor }">{{ content }}</div></div> &…

Android Studio的笔记--SerialPort串口通讯学习和使用

SerialPort串口通讯学习和使用 SerialPortandroid-serialport-api源码下载 Android-SerialPort-API源码下载readme版本 Android-SerialPort-Tool源码下载 Android-Serialport源码下载使用方法readme android中使用串口通信使用android-serialport-api方式第1种 链接第2种 导入S…

ZZ308 物联网应用与服务赛题第A套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 &#xff08;A卷&#xff09; 赛位号&#xff1a;______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等&#xff1b; 2.竞赛任务中所使用的…

【npm run dev 报错:error:0308010C:digital envelope routines::unsupported】

问题原因&#xff1a; nodejs版本太高&#xff08;nodejs v17版本发布了openSSL3.0对短发和密钥大小增加了更为严格的限制&#xff0c;nodejs v17之前版本没有影响&#xff0c;但之后的版本会出现这个错误&#xff0c;物品的node版本是20.9.0&#xff09; 解决方式&#xff1…

6.Spark共享变量

概述 共享变量 共享变量的工作原理Broadcast VariableAccumulator 共享变量 共享变量的工作原理 通常&#xff0c;当给 Spark 操作的函数(如 mpa 或 reduce) 在 Spark 集群上执行时&#xff0c;函数中的变量单独的拷贝到各个节点上&#xff0c;函数执行时&#xff0c;使用…

毅速丨3D打印在压铸模上大有所为

压铸模是压铸件成型不可缺少的工具。它的作用是将液态的金属或合金浇入到预先准备好的型腔中&#xff0c;并在压力的作用下凝固、成形。3D打印技术在压铸模上的使用&#xff0c;尤其是随形水路的应用&#xff0c;将大幅度提升制造效率。 在传统的压铸模制造中&#xff0c;水路的…

uniapp 解决H5跨域的问题

uniapp 解决h5跨域问题 manifest.json manifest.json文件中&#xff0c;点击“源码视图”,在此对象的最后添加以下代码&#xff1a; "h5" : {"devServer" : {"port" : 8080, //端口号"disableHostCheck" : true,"proxy" :…

云安全—docker Deamon攻击面

0x00 前言 本篇文章主要是讲docker Deamon的原理以及docker Deamon攻击面相关的内容&#xff0c;属于抛砖引玉系列&#xff0c;如有不妥之处还请斧正。 0x01 docker Deamon 还是先来看一下docker Deamon的一些相关知识&#xff0c;依旧是采用问答的方式来进行。为了文章的整…

2023全新小程序广告流量主奖励发放系统源码 流量变现系统 带安装教程

2023全新小程序广告流量主奖励发放系统源码 流量变现系统 分享软件&#xff0c;吃瓜视频&#xff0c;或其他资源内容&#xff0c;通过用户付费买会员来变现&#xff0c;用户需要付费&#xff0c;有些人喜欢白嫖&#xff0c;所以会流失一部分用户&#xff0c;所以就写了这个系统…

C++二叉搜索树

本章主要是二叉树的进阶部分&#xff0c;学习搜索二叉树可以更好理解后面的map和set的特性。 1.二叉搜索树概念 二叉搜索树的递归定义为&#xff1a;非空左子树所有元素都小于根节点的值&#xff0c;非空右子树所有元素都大于根节点的值&#xff0c;而左右子树也是二叉搜索树…

GEE数据集——原住民土地(原住民土地地图)数据集

原住民土地&#xff08;原住民土地地图&#xff09; 土地承认是人们在日常生活中融入原住民存在和土地权利意识的一种方式。这通常在仪式、讲座或教育指南开始时进行。它可以是一种明确但有限的方式来认识殖民主义和第一民族的历史以及定居者殖民社会变革的需要。在这种情况下…

053基于web+springboot的宠物咖啡馆平台的设计与实现

欢迎大家关注&#xff0c;一起好好学习&#xff0c;天天向上 文章目录 一项目简介技术介绍 二、功能组成三、效果图四、 文章目录 一项目简介 本基于Spring Boot的宠物咖啡馆平台的设计与实现有管理员和用户以及看护师三个角色。用户功能有个人中心&#xff0c;咖啡菜品管理&a…

微信小程序授权登录获取用户的openid

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识&#xff0c;快速建立小程序内的用户体系然而因为小程序中的openid不可以直接使用需要用code&#xff08;登录凭证&#xff09;去换取openid 获取openid的思路 获取openid首先需要调用小程序的login方法…

S5PV210(十):LCD

本文主要探讨210的LCD相关知识。 LCD LCD称液晶(透光背光呈色),可在电信号驱动下使液晶分子旋转,呈现不同的颜色(被动发光) lcd接口为TTL接口(5V为1&#xff0c;0V为0),不能传输太远,远距离传输方式:SoC(TTL) ->VGA-> LCD(TTL) 其他显设备:CRT(…

基于STM32设计的室内环境监测系统(华为云IOT)_2023

一、设计需求 基于STM32+华为云物联网平台设计一个室内环境监测系统,以STM32系列单片机为主控器件,采集室内温湿度、空气质量、光照强度等环境参数,将采集的数据结果在本地通过LCD屏幕显示,同时上传到华为云平台并将上传的数据在Android移动端能够实时显示、查看。 【1…

windows自动登陆

新建文本粘贴下面代码&#xff0c;另存为注册表文件 Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing] "Policy"hex:00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]"DefaultUserN…