EDA技术与应用
文章目录
课程内容:就学一点点Verilog语法
- 使用工具:
课程资料
电路描述
- 描述电路的级别:
- MOS级别(慢)
- 门电路级别(慢)
- RTL级别(寄存器传输级)成熟、常用
- 功能级、系统级
Verilog支持上述四种级别的描述
综合
RTL代码转化成门级网表
仿真
仿真电路运行,验证功能,合法的HDL均可用于仿真
Verilog语法
与C语言类似,大小写敏感,有关键词,语法结构
基本模块结构
- 标识符:字母开头,无空格,避免特殊字符(转义字符
\
可以将特殊字符转化成普通字符) - 注释:
//
、/* */
- 四值逻辑: 0、1、x(未知值)、z(高阻态)
综合工具不关心x的值,所有真值表都没有输出为z
- 数值表达
[[位宽]'数基]数值
数基:二进制、八进制、十进制、十六进制
- data types:
- 基本门语法:
- 实例化:
- ModelSim仿真过程
仿真命令行代码要考!10分
-novopt
不要优化
不要在中文目录仿真,
PLD器件
原理: 最小项
组合电路无记忆性
时序电路输出依赖当前状态,有记忆
表达组合逻辑(与或非)
真值表、最简式、最小项和
组合逻辑是其他逻辑的基础
FPGA(比CPLD更复杂)
Verilog语法
===只可用于testbech
- !和~的区别:
!操作是变量整体,~是按位操作
最好用括号规定运算符优先级
时延
Verilog中用
#(min:tyo:max,min:typ:max,min:typ:max)
时延语法含义:rise->1、fall->0、turn off->z
软件延时信息在综合时被无视
语法
连续赋值:assign
过程块
系统任务
display
、monitor
、time
、finish
、stop
IEEE中规定的部分系统任务(可以直接调用)
2022/4/25
第六章-时序逻辑描述与实现
- 由基本们构建时序逻辑
组合电路:电路输出至于输入有关,与先前值无关
反馈:
奇数个反相器连接:震荡
偶数个反相器连接:两个稳定状态 - 时序电路:
两个稳定状态,但没有状态控制
复习数电:D锁存器、SR触发器
Latch缺点:CLK = 1的时间内。D的边哈均会传递到Q,实际需要是边沿触发 - 同步电路:比异步电路好设计
- 设计电路避免用锁存器
- 阻塞赋值/非阻塞赋值
通常用非阻塞赋值,- 数字仿真器工作原理:仿真时间只能向前推进,只有当t时刻的事件全部执行完时仿真时间才向前推进,所有事件执行完,仿真结束
always a=b //缺少敏感条件(判定为1),always一直执行,死循环
begin…end //顺序执行
fork… join //并行执行
= //阻塞赋值
<= //非阻塞赋值
阻塞赋值含义:仿真器时间未向前推进
延迟阻塞赋值:
initial begin
#1 a = b; //先延时一个时间单位,再将一个时间单位之后的b的值赋给a
end
内部延迟阻塞赋值语句
initial begin
a = #1 b; //赋延时之前的b的值
end
非阻塞赋值:
initial begin
a <= b;
end
阻塞赋值和非阻塞赋值不能一起用,可以仿真,但综合工具会报错