Verilog复习(一)| 模块的定义

模块(module)是Verilog的基本描述单位,用于描述某个设计的功能或结构,及其与其他模块通信(连接)的外部端口。

Verilog程序由关键词moduleendmodule进行定义。

定义模块的步骤:

  • 定义模块的端口
  • 定义模块内部连接到端口的信号类型
  • 定义内部信号
  • 描述模块内部实现的功能

定义端口:

端口的类型:input、output

Scalar (single bit) - 不需要给出信号的位数

verilog 复制代码
input  cin;

Vector (multiple bits) - 需要定义具体的位数,范围从左往右

verilog 复制代码
output 	[7:0] OUT;

结构描述

一般使用内部元件、自定义的下层模块对电路进行描述。

数据流描述

一般使用连续赋值assign语句描述。

verilog 复制代码
 assign [delay] LHS_net = RHS_ expression

行为描述

一般使用InitialAlways语句描述。

  1. initial语句:此语句只执行一次。
  2. always语句:此语句总是循环执行, 或者说此语句重复执行。

只有寄存器类型数据能够在这两种语句中被赋值。寄存器类型数据在被赋新值前保持原有值不变。所有的初始化语句和always语句在0时刻并发执行。

来自always语句和initial语句(只有寄存器类型数据可以在这两种语句中赋值)的值能够驱动门或开关。

而来自于门或连续赋值语句(只能驱动线网)的值能够反过来用于触发always语句和initial语句。


相关推荐
小米里的大麦8 分钟前
【C++】深入理解引用:从基础到进阶详解
c++·经验分享·笔记·引用·引用和指针
MowenPan199517 分钟前
高等数学 3.5 函数的极值与最大值最小值
笔记·学习·高等数学
晚睡早起₍˄·͈༝·͈˄*₎◞ ̑̑18 分钟前
苍穹外卖学习笔记(七)
java·windows·笔记·学习·mybatis
天下无贼!35 分钟前
2024年最新版Vue3学习笔记
前端·vue.js·笔记·学习·vue
HinsCoder2 小时前
【渗透测试】——Upload靶场实战(1-5关)
笔记·学习·安全·web安全·渗透测试·测试·upload靶场
听风若依2 小时前
排序学习笔记
笔记·学习
Filotimo_2 小时前
【自然语言处理】实验三:新冠病毒的FAQ问答系统
人工智能·经验分享·笔记·python·学习·自然语言处理·pycharm
Rookie也要加油3 小时前
WebRtc一对一视频通话_New_peer信令处理
笔记·学习·音视频·webrtc
liangbm34 小时前
MATLAB系列09:图形句柄
图像处理·笔记·计算机视觉·matlab·matlab绘图·工程基础·图形句柄
liangbm34 小时前
MATLAB系列05:自定义函数
开发语言·笔记·matlab·教程·函数·自定义函数·按值传递