您现在的位置是:首页 > Javascript
当前栏目
Verilog基本语法之模块以及模块调用详解(2)
2023-04-18 16:41:58 时间
模块结构
一、模块结构组成
模块由三个元素组成,分别是模块起始、接口说明、逻辑功能描述
1. 模块起始:每个模块都要进行端口定义,格式为:module 模块名(端口1, 端口2, 端口3),
2. I/O接口说明:input输出,output输出,inoutput双向接口
3. 逻辑功能描述:always、assign等功能描述。
二、模块详解
组合成为完整程序如下:
module <模块名> (<端口列表>)
<I/O接口说明>
<内部信号声明>
<逻辑功能定义>
Endmodule
拿与门、或门举例:
module AndOR(a, b, c)//模块起
input a,b;//接口方向为输入
output c,d;
assign c = a & b;//组合逻辑-与
assign d = a | b;//组合逻辑-非
endmodule //模块终
注意:每条逻辑功能语句和数据定义的最后必须有分号。
程序模块---->>>到电路模块
注意
Verilog模块中的过程块(initial/always)、模块调用、assign赋值间是并行的
连续赋值语句不能独立于always块存在;
能独立存在的只有assign赋值,以及模块调用;
**
二、模块调用
**
模块调用包括元件库的调用以及已设计模块的调用,设计模块调用如下
1.模块例化有两种方法:按位置顺序调用、按名词调用
-
1.位置相关:
1)例化时,例化的参数顺序必须和模块顺序一致 2)例化时,只要写端口名字
-
2.名称相关:
1)必须指定当前例化的端口名称 2)端口的顺序可以自由排序
位置相关举例:
wire [3:0] x1;
wire [3:0] x2;
wire [4:0] x3;
add add_inst0
(
x1, //对应 模块本身的a,顺序必须一一对应
x2, //对应 模块本身的b
x3 //对应 模块本身的c
);
名称相关举例:
wire [3:0] x1;
wire [3:0] x2;
wire [4:0] x3;
add add_inst1
(
.a (x1),
.c (x3),//用“.”指定例化端口名,例化顺序可打乱
.b (x2)
);
三、调用实例
拿一个二选一多路选择器举例,二选一多路选择器代码如下:
module mux21 (dataa,datab, outdata, sel);
input [2:0] dataa;
input [2:0] datab;
inpur sel;
outdata [2:0] outdata;
········
········
endmodule
那么我们应该怎么样去调用它呢?如下:
<模块名><实例名>(
.端口(连线),
.端口(连线)
);
下面是用结构建模的方式调用上述二选一模块,实现三选一:
module mux31 (dataa, datab, datac, sel1, sel2, outdata);
input[2:0] dataa;
input[2:0] datab;
input [2:0] datac;
input sel1;
input sel2;
output [2:0] outdata;
wire [2:0] data;
mux21 mux21_dut1(
.dataa(dataa),
.datab(datab),
.outdata(data),
.sel(sel1)
);
mux21 mux21_dut2(
.dataa(data),
.datab(datac),
.outdata(outdata),
.sel(sel2)
);
endmodule
上述建模是利用了两个二选一多路选择器来构成了一个三选一多路选择器。
------->下一章: Verilog语法之模块巩固(3)(实例练习篇)
章节进程条-STEP1
相关文章
- 如何避免 JS 内存泄漏?
- 前端百题斩之网络七层模型及HTTP进化史
- HTTPS是怎么保证安全的?
- IPv6深入推进会议在京召开,中国为什么要“玩命”的推广IPv6?
- 腾讯开源之道:基于Apache之道的开源实践与探索
- 一篇文章带你了解HTML的网页布局结构
- 深度解析SSL数字证书,为企业网站保驾护航
- Strategy Analytics:尽管组件短缺,5G仍在快速增长
- 盘点HTML中常见的Ul Ol 列表和常见的列表标记图标
- 面试官:说说 HTTP 常见的请求头有哪些?
- 免费的SSL证书和收费的证书有什么区别?
- 一文走进 HTTP 与 TCP 协议
- 《Spring Boot 实战纪实》之过滤器
- 《Spring Boot 实战纪实》之缺失的逻辑
- 《Spring Boot 实战纪实》之关键点文档
- 《Spring Boot 实战纪实》之如何攥写需求文档
- 《Spring Boot 实战纪实》之需求管理
- 《Spring Boot 实战纪实》之前言
- 我的AngularJS 学习之旅(二)
- Silverlight TreeView 动态绑定Xml 文件