语言整体介绍
硬件描述语言,用来描述组合电路和时序电路
代码分为 "目标代码" 和 "验证代码"(一般叫TB,testbench) , 都需要用编译器仿真器编译
// iverilog 源码 提供 "编译器 : iverilog" 和 "仿真器 : vvp"
"目标代码" 和 "验证代码" 一起编译 "iverilog adder_rtl.v adder_tb.v", 生成 vvp脚本
运行时 ,由 vvp 解释执行
如果涉及到运行指令,则"验证代码tb"要负责加载 data 文件
// 工程中采用 inst.data
// 在 tinyriscv_soc_tb.sv 中 加载数据到 tinyriscv_soc_top_0.u_rom._rom
tb 要负责什么功能:
提供时钟?
提供原始数据?
参考工程介绍
小型工程
这段时间想以 tinyriscv为工程参考,来学习 verilog
该工程是 以 verilog 编写
用 什么索引 .v 文件的 //"在命令行中index所有的.v文件名"
用 iverilog 编译 仿真(运行)
用 gtkwave 查看波形
小型模块
verilog 介绍
iverilog 介绍
提供了 编译器, 仿真器
提供了二进制可执行文件(iverilog-vpi vvp(仿真器) iverilog(编译器))
gtkwave 介绍
其他的 rtl编译器+波形查看器 组合
- iverilog + gtkwave
iverilog 默认生成 vcd 文件
gtkwave 可以解释 vcd 文件
- iverilog + verdi
iverilog 默认生成 vcd 文件
vcd2sfdb 工具 : 转换 vcd 为 fsdb
vcd2fsdb tinyriscv_soc_tb.vcd -o tinyriscv_soc_tb.fsdb
verdi 可以解释 fsdb 文件
bsub -Is -XF -q xxx-a0-de \
verdi \
-f ../flist.h \
-ssf tinyriscv_soc_tb.fsdb &
- vcs + verdi
vcs 默认生成 fsdb 文件
verdi 可以解释 fsdb 文件
- VIVADO/ISE + Modelsim
- Quartus II + Modelsim