当前位置: 首页 > news >正文

FPGA学习笔记(四)通过数码管学习顶层模块和例化的编写

目录

  • 模块例化
  • 例子

模块例化

在一个模块中引用另一个模块,对其端口进行相关连接,叫做模块例化。

作用:
将模块端口与外部信号按照其名字进行连接,端口顺序随意。
如果某些输出端口并不需要在外部连接,例化时 可以悬空不连接,甚至删除。
input 端口在例化时不能删除,否则编译报错,output 端口在例化时可以删除。

我的理解:
我认为顶层文件的编写,相当在编写嵌入式裸机开发中的main.c文件,需要将各个子文件综合在一起,其中需要将一些变量关联在一起,C语言中采用的extern的声明方式,将变量在不同的文件中调用,FPGA就使用顶层文件的例化将他们关联在一起。

例子

在正点原子FPGA的开发指南中,在数码管一章中,有一个顶层文件的编写,因为把计时模块和数码管显示的模块分开了,为了实现隔一段时间,数码管显示不同的数字。
计时文件的模块:
在这里插入图片描述
数码管显示的模块:
在这里插入图片描述
顶层文件的编写:
在这里插入图片描述在这里插入图片描述
首先要把外部信号进行模块化,之后要进行引脚的连接。其次就像add_flag这种,因为两个模块公用,所以需要关联在一起。
在time_count文件中:
参考: verilog中参数传递与参数定义中#的作用,说明了参数传递的格式。
这里#的意思是参数传递,将TIME_SHOW传递给MAX_NUM,但是没看懂什么意思,感觉没什么用,删掉下载到板子里试一试。

参数传递的意义:参数型常量经常用于定义延迟时间和变量宽度。在模块和实例引用时,可以通过参数传递改变在被引用模块或实例中已经定义的参数。

但是我没有改变这个值
在这里插入图片描述
只能是这里MAX_NUM定义的时候不能写空,上层文件可以随便修改,程序方便。

相关文章:

  • kafka 代码使用
  • 两个单链表相交的一系列问题
  • 连接查询
  • ArrayList源码解析
  • iptables防火墙 (SNAT、DNAT)
  • idea2021.3.3 创建maven-scala项目并解决遇到的问题:通过add frameworks support找到不到scala插件
  • 模板模式【Java设计模式】
  • openGL 材质
  • windows 10 局域网设置固定 IP 地址
  • Python之猜数字游戏
  • Python 程序的输出 | 第十套(异常处理)
  • 【Android入门】8、Service 后台线程、多线程、IntentService
  • 面向医学图像语义分割-MedISeg
  • puzzle(017.9)HueBots
  • SIM卡被锁怎么办
  • angular学习第一篇-----环境搭建
  • Druid 在有赞的实践
  • FineReport中如何实现自动滚屏效果
  • gulp 教程
  • Linux CTF 逆向入门
  • node.js
  • Ruby 2.x 源代码分析:扩展 概述
  • Spark学习笔记之相关记录
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • vue总结
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 学习HTTP相关知识笔记
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​用户画像从0到100的构建思路
  • #{} 和 ${}区别
  • #每天一道面试题# 什么是MySQL的回表查询
  • #数学建模# 线性规划问题的Matlab求解
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $(function(){})与(function($){....})(jQuery)的区别
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (ZT)一个美国文科博士的YardLife
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (利用IDEA+Maven)定制属于自己的jar包
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net framework profiles /.net framework 配置
  • .NET MVC 验证码
  • [C++]高精度 bign (重载运算符版本)
  • [CISCN2019 华东北赛区]Web2
  • [flask]http请求//获取请求头信息+客户端信息
  • [go] 迭代器模式
  • [IE编程] 了解Urlmon.dll和Wininet.dll
  • [LeetCode] NO. 169 Majority Element
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
  • [Luogu 2816]宋荣子搭积木
  • [Noi2015]程序自动分析
  • [Oh My C++ Diary]operator++()和operator++(int)的区别