关于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#类的访问修饰符用法,分享给大家供大家参考.具体用 ...
随机推荐
- 爬虫(十五):scrapy中的settings详解
Scrapy设定(settings)提供了定制Scrapy组件的方法.你可以控制包括核心(core),插件(extension),pipeline及spider组件.设定为代码提供了提取以key-va ...
- NetworkX系列教程(2)-graph生成器
小书匠Graph图论 本节主要讲解如何快速使用内置的方法生成graph,官方的文档在这里,里面包含了networkX的所有graph生成器,下面的内容只是我节选的内容,并将graph画出来而已. 声明 ...
- radio回显的
JS回显 var jksp=document.getElementsByName("spjdcyModel.jksp"); // alert(jksp[0].value); //a ...
- 实现一个hoverDelay延迟hover
实现一个hoverDelay延迟hover author: @TiffanysBear 需求背景 经常在页面开发中,需要使用hover事件来触发相应的网络请求或页面DOM元素显示切换,需要考虑的问题就 ...
- 【译】Solr in Action 第二章
2.1 2.2 2.3 基本废话 2.4 基本废话
- mac kafka 环境搭建 以及PHP的kafka扩展
1.kafka安装 brew install kafka 安装会依赖zookeeper. 注意:安装目录:/usr/local/Cellar/kafka/0.10.2.0 2.安装的配置文件位置 /u ...
- Mysql技巧及问题目录
Mysql技巧及问题目录: MySQL批量导入Excel.txt数据 MySQL批量导入Excel数据
- osg osgViewer::View::setUpViewInWindow()
void ViewerBase::frame(double simulationTime) { if (_done) return; // OSG_NOTICE<<std::endl< ...
- Flutter常用命令和mac电脑常用命令
0. flutter create example_demo 新建flutter项目 1.flutter packages get 安装新增的包 2.flutter run 运行flutter项 ...
- Windows server 2008 R2 桌面服务器管理器打开提示:试图引用不存在的令牌
来源:https://social.technet.microsoft.com/Forums/zh-CN/90f376a3-2b52-46c1-be34-4a2dbf4fdea2/winserver2 ...