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 小时前
你收藏的资料,有多少真的被你第二次打开过?
笔记·知识管理·效率提升·个人知识库
小刘在重生~9 小时前
Java Lock 显式锁案例|ReentrantLock 解决多线程安全问题(超详细实战)
java·笔记·面试
职豚求职小程序9 小时前
中国人寿27秋招笔试[特殊字符]北森机考|备考攻略
笔记
江湖人称菠萝包10 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
乐橙开放平台10 小时前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居
山岚的运维笔记11 小时前
mysql 专业笔记 -- 第 36 章:MySQL 管理
运维·数据库·笔记·后端·mysql·oracle·dba
江湖人称菠萝包12 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization
笔记·qt·qt5
老当益壮梁奶奶13 小时前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件
既然如此,那就开摆13 小时前
2023_Kirillov_SAM_总结
笔记·学习·遥感
志尊宝13 小时前
Vue3 零基础每日笔记(048):嵌套路由与命名视图——后台管理系统布局雏形
前端·javascript·vue.js·笔记·html5