关于verilog实例化的介绍
概念
当我们完成一个比较完整的系统的时候,通常需要编写一个Testbench来验证自己的设计的功能能否满足设计要求。在这个系统中通常会有一个top模块来连接那些小的模块,verilog通过实例化的方式来完成这些子模块和顶层模块的连接,然后顶层模块可以由此来调用各个子模块。
用法
调用模块的端口一般有两种方式,一种是位置关联,一种是名字关联,顺序关联不容易漏掉端口,名字关联容易理解(两个相同的名字肯定好理解啊)
举例说明
子模块(这里以一个简单的全加器模块说明)描述如下:
module adder(a,b,cin,s,cout);
innput a,b,cin;
output cout,s;
assign {cout,s} = a + b + cin;
endmodule
下面有一个顶层模块调用全加器模块:
module top(A,B,CIN,S,COUT);
...
adder ADDER(A,B,CIN,S,COUT);//这里采用位置关联
...
endmodule
如果采用名称关联
adder ADDER(
.a(A),
.b(B),
.cin(CIN),
.cout(COUT)
);
上面两种关联方式有一些共同点:
1、例化中一定会有一个例化名,比如上面的ADDER,就代表着对adder模块的调用,这个例化名可以自己定,没有什么特别要求。
值得一讲的是名称关联,这种方法注意是前面写的是子模块内的端口名称,括号里面的是顶层模块里面的端口名称。一般我们写模块时都喜欢将两个模块里面的端口名称写成一样的,方便自己理解。
还有就是注意悬空端口的处理。综合时悬空端口会有一定的影响。
关于verilog实例化的介绍的更多相关文章
- 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍
将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第六篇.我尽量每周四篇 2.3 Verilog HDL简单介绍 本书实现的OpenMIPS处理器是使用Verilog HDL编 ...
- jchdl - RTL实例 - MOS6502 ALU (Verilog)
https://mp.weixin.qq.com/s/jLUz757FQZjMEYzYb2AIww MOS6502是简单,但是曾经相当流行的一款CPU.网上有很多模拟程序可供学习使用.这里使用一个 ...
- 至芯FPGA培训中心-1天FPGA设计集训(赠送FPGA开发板)
至芯FPGA培训中心-1天FPGA设计集训(赠送开发板) 开课时间2014年5月3日 课程介绍 FPGA设计初级培训班是针对于FPGA设计技术初学者的课程.课程不仅是对FPGA结构资源和设计流程的描述 ...
- 自己动手写处理器之第二阶段(1)——可编程逻辑器件与PLD电路设计流程
将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第五篇,我尽量每周四篇 通过上一章的介绍,读者应该知道CPU内部有一些主要的电路,比方:译码电路.运算电路.控 ...
- Caffe源码中common文件分析
Caffe源码(caffe version:09868ac , date: 2015.08.15)中的一些重要头文件如caffe.hpp.blob.hpp等或者外部调用Caffe库使用时,一般都会in ...
- ServiceLoader实现原理
在java中根据一个子类获取其父类或接口信息非常方便,但是根据一个接口获取该接口的所有实现类却没那么容易. 有一种比较笨的办法就是扫描classpath所有的class与jar包中的class,然后用 ...
- Unity优化方向——优化Unity游戏中的图形渲染(译)
CPU bound:CPU性能边界,是指CPU计算时一直处于占用率很高的情况. GPU bound:GPU性能边界,同样的是指GPU计算时一直处于占用率很高的情况. 原文:https://unity3 ...
- C#类的访问修饰符
默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它.可以用internal访问修饰符关键字显式指定,但这不是必须的,类在定义时默认为此类型的类.但是C# 方法默认访问级别: private. ...
- C#类、方法的访问修饰符
这篇文章主要介绍了C#类的访问修饰符用法,较为详细的分析了C#类的访问修饰符概念与用法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文详细分析了C#类的访问修饰符用法,分享给大家供大家参考.具体用 ...
随机推荐
- PHP全栈学习笔记23
php,基础,流程控制,函数,字符串,数组,web交互,mysql数据库,PHP数据库编程,cookie与session,日期和时间,图形图形处理,文件和目录处理,面向对象,pdo数据库抽象层,sma ...
- liunx系统下crontab定时启动Scrapy爬虫程序
定时启动爬虫 # 查看命令得绝对路径 # which scrapy # cd到爬虫得项目目录下 + scrapy命令得绝对路径 + 启动命令 */5 * * * * cd /opt/mafengwo/ ...
- python生成二维码(简易)
首先要的配置: pillow image qrcode zxing 然后直接上代码: import PIL import qrcode # 实例化二维码生成类 qr = qrcode.QRCode( ...
- ansible 错误记录(1)
基本环境:docker基于centos7 在docker里面安装ansible 不管是在root还是普通用户下执行 ansible all -m ping 都报如下错误: 172.20.1.1 | ...
- ICEM-一种三维Y型网格
原视频下载地址:https://yunpan.cn/cLHD9ewat8v9a 访问密码 0f0f
- Qt实现原生Flow实现不了的Item错误排列效果,类似淘宝商品展示
main.qml import QtQuick 2.12 import QtQuick.Window 2.12 import QtQml.Models 2.12 Window { visible: t ...
- spring源码分析:PropertyPlaceholderConfigurer
简介 最近工作中需要使用zookeeper配置中心管理各系统的配置,也就是需要在项目启动时,加载zookeeper中节点的子节点的数据(例如数据库的地址,/config/db.properties/d ...
- Ubuntu 16.04安装完重启后黑屏,光标一直闪
原文:https://blog.csdn.net/weixin_38533896/article/details/81023690 版权声明:本文为博主原创文章,转载请附上博文链接! 安装教程网址:h ...
- deepin 删除文件后目录不刷新解决方案
调整最大文件监控数量 sudo vim /etc/sysctl.conf 添加参数 fs.inotify.max_user_watches = 运行使配置生效 sudo /sbin/sysctl -p ...
- sql查询表的所有字段和表字段对应的类型
1.查询表的所有字段 select syscolumns.name from syscolumns where id=object_id('写上要查询的表名') 2.查询表的所有字段+表字段对应的类型 ...