verilog夏宇闻第三版 笔记

本文介绍了Verilog HDL的基础知识,包括语言特性、设计流程、语法结构等内容,并详细阐述了不同抽象级别的建模方法,如系统级、算法级、RTL级等。此外,还讨论了模块化设计、数据类型、运算符、赋值语句、结构说明语句等关键概念。
摘要由CSDN通过智能技术生成

Verilog数字基础部分

第一章 关于Verilog基础知识

  1. Verilog是一种硬件描述语言(HDL),该语言是一种形式化的用来描述数字电路和系统的语言。设计者可以利用其进行从上层到下层的逐层的设计,用分层次的模块来描述数字系统。利用EDA工具逐层进行仿真验证,利用自动综合工具转化到门级电路,在用专用集成电路(ASIC)或者FPGA自动布线工具转换为具体电路布线结构的实现。

  2. 该语言可进行数字逻辑系统的仿真验证,时序分析,逻辑综合等。

  3. 其优点是,设计师可以不考虑门级电路及工艺实现的具体细节,利用系统设计时芯片的要求施加不同的约束,即可设计实际电路。设计流程可以归纳为一种自顶向下的设计,可以类比计算机网络中的层次,在这个流程中可以分为两大部分工作,设计和验证,一般同时进行。

    引自夏老师课本

第二章 Verilog语法的基本概念

Verilog模型可以是实际电路的不同级别的抽象:

  • 系统级:外部性能的模型。
  • 算法级:算法运行的模型。
  • RTL级:描述数据在寄存器直接流动和如何处理、控制这些数据的流动。(不知道可否理解为寄存器级别)
  • 门级:逻辑门间模型。
  • 开关级:三极管和存储节点的模型。

该语言十分适合在算法级和RTL级进行模型设计。

既可以进行设计也可以进行测试,其中测试可以在功能(行为)级进行,也可在逻辑网表(布尔表达式)和门级结构级上进行。分别称为前RTL仿真、逻辑网表仿真和门级仿真。

简单归纳:

模块化,module 和 endmodule;
正因为模块化所以可以嵌套;
如果每个模块都可以综合,那么可以通过综合工具来整合为一个大的逻辑系统;
Verilog模块可以分为两种类型,分别为设计和测试。

第三章 模块的结构、数据类型、变量和基本运算符

模块:端口定义、I/O说明、内部信号声明、功能定义
端口定义:.端口名(连接信号名)
I/O:input、output、inout
内部信号声明:wire、reg
功能定义:assign声明、实例元件,例如and #2 u1(a,b,c)、always块,其既可以描述时序逻辑也可描述组合逻辑。注意这三部分是并发执行的,也即同时开始,always块内部是顺序执行的。

共有19种数据类型,最常用四种,reg wire parameter integer <位宽><进制><数字>
在一个模块种改变另一个模块的参数,需要defparam命令
defparam
TEST.T.P = 2;

网络类型变量不能存储值,且需受驱动器驱动。输入输出类型默认为wire。
reg寄存器,默认为x。always块内每一个被赋值的变量都必须reg形。
memory。描述RAM或ROM。reg[7:0] mema[255:0] 256个8位寄存器。

运算符
-10%3 = -1
11%3 = 2
结果符号位跟着第一个操作数的符号位变。是否可以理解为 -(10%3)=-1;+(11%3)=2?
^异或 ^~同或
在这里插入图片描述

第四章 运算符、赋值语句和结构说明语句

==对x z不进行比较,比较结果均为x
===对x和z也进行比较,相等为1,否则为0

移位4b’1001<<1 = 5b’10010 #会加一位

位拼接运算符{} {4(w)}等同于{w, w, w, w}

缩减运算符
在这里插入图片描述
非阻塞<=
always块结束后才进行赋值
阻塞=
立刻赋值且不可被打断
在这里插入图片描述
块语句
begin end顺序块,也称过程块
fork join并行块,fork看作分流而join合并

第五章 条件语句、循环语句、块语句和生成语句

在这里插入图片描述
可以理解为casex为不考虑不定值和高阻值情况,而casez为仅不考虑高阻值情况。

关于因缺少完整性导致生成锁存器问题:
在这里插入图片描述
case语句同理,最好加上default来指定状态。

循环语句:
在这里插入图片描述
块语句特点:
嵌套
命名块
在这里插入图片描述
命名块的禁用:
disable block1;

生成块:
可以简化重复操作的程序,关键字 generate - endgenerate;
在这里插入图片描述
在这里插入图片描述

第六章 结构语句、系统任务、函数语句和现实系统任务

initial:
常用在测试文件和虚拟模块编写,仅执行一次
always:
满足条件反复执行,@(*)对其后所有输入变量均敏感。
task:
在这里插入图片描述
在这里插入图片描述

function:
自动递归调用需要声明automatic
在这里插入图片描述
小结:
在这里插入图片描述
系统任务:
用到查询即可
提一个 s t r o b e 显 示 变 量 比 strobe显示变量比 strobedisplay显示变量时刻更加确定,会赋值完再显示。

第七章 调试用系统任务和常用编译预处理语句

用到即查即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值