无锡华桑FPGA培训之modelsim仿真篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华桑电子科技有限公司
华桑电子科技有限公司
华桑电子科技有限公司
Modelsim SE 仿真速度快
需要编译库
支持Verilog/vhdl混仿支持代码覆盖率测试Modelsim PE
需要编译库
不支持Verilog/vhdl混仿不支持代码覆盖率测试仿真速度慢
Modelsim XE 针对Xilinx器件
不需要编译Xilinx库Modelsim Altera 针对Altera器件
不需要编译Altera库
华桑电子科技有限公司
华桑电子科技有限公司
功能
仿真验证语言设计的电路结构和功能是否和设计意图相符
(设计电路时不可依赖仿真查错)
综合
后仿真验证综合后的电路结构是否与设计意图相符、是否存在歧义综合结果
(综合后网表文件尚未包含布线延时)
布局布线
后仿真验证是否存在时序违规(布局布线后网表文件包含全部延时)
华桑电子科技有限公司
华桑电子科技有限公司
modelsim.ini Compxlib.exe modelsim.ini
取消
只读属性编译库设置
只读属性
编译Xilinx库步骤:
华桑电子科技有限公司
批处理编译Xilinx库参考:
attrib ‐R D:\modelsim\modeltech_6.6d \modelsim.ini
1modelsim_lib.bat
234
pause D:\xilinx\13.2\ISE_DS\ISE\bin\nt64\compxlib.exe ‐s mti_se ‐arch all ‐lib all ‐l all ‐dir D:\modelsim\modeltech_6.6d\xilinx_libs_13.2 ‐w ‐p D:\modelsim\modeltech_6.6d\win32
attrib +R D:\modelsim\modeltech_6.6d \modelsim.ini
华桑电子科技有限公司
Compxlib常用参数说明:
‐s 仿真器类型(mti_se /mti_pe…vcs_mxi )Device (spartan3/spartan6…/all )
Language (verilog/vhdl/all )仿真库(unisim/simprim /xilinxcorelib /all )Compxlib
‐arch ‐lib ‐l
华桑电子科技有限公司
华桑电子科技有限公司Modelsim仿真步骤:
建立work库映射库到物理目录编译源代码启动仿真器执行仿真
111111
3
2
4
5
华桑电子科技有限公司
华桑电子科技有限公司
仿真环境结构:
RTL 设计
OUTPUT INPUT
输出
校验激励
生成TB_TOP
Device
cmd.txt cmd.txt cmd.txt cmd.txt cmd.txt log.txt
SIM 华桑电子科技有限公司
仿真环境文件夹结构:
tb_ptn
do
wave_do sim_
models
work SIM
wave
log cov Input File Output File
华桑电子科技有限公司
仿真环境搭建步骤:
编写编译、添加波形、运行等do
文件
根据仿真说明书编写测试
pattern
编写仿真激励和输出校验文件
编写仿真说明书
华桑电子科技有限公司
1编写仿真说明书
华桑电子科技有限公司
设计仿真
架构
编写测试操作
说明书
按功能模块细分
测试pattern
123
华桑电子科技有限公司
2编写仿真激励和输出校验文件
华桑电子科技有限公司
输入输出端口定义
信号定义
输出信号初始化
时钟复位生成
激励生成TASK编写
输出校验TASK编写
Log 信息写入Command文件读取
Command 分析编写
Log 文件打开
Log 信息写入
123
华桑电子科技有限公司
Command文件读取
1、宏定义文件路径
parameter p_TB_NAME= "tb_xxxx_xx" ;
parameter p_CMD_IDIR= "tb_pattern/" ;
2、定义寄存器矩阵(二位数组)
reg[1:80] cmd[1:500];
3、读取文件
$readmemh({p_CMD_IDIR,p_TB_NAME,"/cmd.txt"},cmd) ;
华桑电子科技有限公司
时间精度与延时单位设置
时间精度:
格式:`timescale 单位时间/时间精度
例子:`timescale 1ns / 1ps (单位时间为1ns,可精确到0.001)
# 40.001;表示延时40.001ns
延时单位:
格式:#times [ns/us/ms/min]
示例:#2ns; 延时2ns
#40 ; 延时40个单位时间
华桑电子科技有限公司
时钟生成
`timescale 1ps / 1ps
initial begin
r_CLK_100M = 0 ;
# 10000 ;
while (simend== 1'b0) begin
# 5000 r_CLK_100M = ~ r_CLK_100M ;
end
end
华桑电子科技有限公司
Log文件写入
1、宏定义文件路径
parameter p_TB_NAME= "tb_xxxx_xx" ;
parameter p_LOG_ODIR= "tb_pattern/ " ;
2、信号定义
integer LOG ;
3、打开文件,文件写入,文件关闭
LOG = $fopen( { p_LOG_ODIR, p_TB_NAME, "/log.txt" }, "w") ;
4、写入文件
$fdisplay(LOG,"Simulation Successful End ") ;
5、关闭文件
$fclose(LOG) ;
华桑电子科技有限公司
2编写测试pattern
华桑电子科技有限公司
Command
定义
Command
文件编写编写
测试pattern
华桑电子科技有限公司Command定义实例
华桑电子科技有限公司Command文件编写实例
华桑电子科技有限公司
2编写编译、添加波形、运行等do文件
华桑电子科技有限公司
vlib Modelsim常用命令vlib‐建立一个新的工作库
参数:
库名:工作库的名称(缺省值为work)
实例:
vlib work 在工作目录下建立一个work工作库
华桑电子科技有限公司
vmap Modelsim常用命令vmap‐工作库的映射
参数:
库名:工作库的名称
路径:工作库的路径
实例:
vmap work work映射work库work目录下
华桑电子科技有限公司
vlog Modelsim常用命令vlog‐编译verilog源代码
常用参数:
‐work<libname>:指定编译的工作库
‐cover<mode> :添加仿真覆盖率测试
实例:
vlog‐cover sbce‐work work*.v
华桑电子科技有限公司
vcom Modelsim常用命令vcom‐编译vhdl源代码
常用参数:
‐work<libname>:指定编译的工作库
‐cover<mode> :添加仿真覆盖率测试
实例:
vcom‐cover sbce‐work work*.vhd
华桑电子科技有限公司
vsim Modelsim常用命令vsim‐启动仿真器
常用参数:
‐c:让vism工作在命令行模式
‐t:指定仿真的时间分辨率(缺省为ns)
‐l:输出log文件
‐L :指定工作逻辑库
‐wav :添加波形文件
‐do:开始仿真后运行tcl脚本
‐novopt:仿真优化选项
work.*:指定仿真的top module
实例:
vsim‐t 1ps ‐c ‐l tb.log ‐L work ‐wav tb.wlf work.tb_top
华桑电子科技有限公司
run Modelsim常用命令run ‐运行仿真常用参数:<数量><单位>:指定运行时间(如5ns)
@<数量>:运行仿真到<数量>个单位时间
‐all:指定一直运行仿真
‐continue:继续已停止的仿真
实例:
run‐all
run1ms
run@1000
华桑电子科技有限公司
force Modelsim常用命令force ‐强制赋值语法:force <item_name> <value> <time>, <value> <time>
‐value
▶被强制的项的值
‐time
▶指定值的时间单位
▶相对当前仿真时间,用@ character指定绝对时间
▶时间单位能被指定,缺省值是仿真分辨率
实例:
force r_XRST0 @10ps ,1 @100ns , 0 @10ms
华桑电子科技有限公司
add wave Modelsim常用命令add wave ‐添加信号到波形文件
参数:
‐format : 显示格式(analog‐step,logic, literal )
‐color: 波形的颜色(”red”,#257f77 )
‐divider: 添加一个分割线,通常按功能模块分割
‐radix: 数值显示形式(binary, ascii, decimal, octal, hex)
‐group: 信号分组显示
实例:
add wave ‐noupdate‐format Logic ‐radix hexadecimal /tb_top/*
华桑电子科技有限公司
do文件种类
compile_rtl.do compile_sim.do compile_lib.do tb_xx.do wave_xx.do 编译RTL 文件
编译仿真文件
编译其他库文件
起动仿真器并运行仿真添加波形
华桑电子科技有限公司
华桑电子科技有限公司
测试仿真覆盖率步骤:
报告仿真覆盖率
整合
ucdb 文件,生成dat
文件
运行仿真,测试所有仿真
pattern ,生成ucdb
文件
编译RTL
文件时加上测试仿真覆盖率参数
华桑电子科技有限公司
编译RTL加仿真覆盖率参数实例
vlog+cover=sbce‐work work BPI_IF.V
华桑电子科技有限公司
起动仿真器加仿真覆盖率参数实例
vsim‐novopt‐coverage ‐t 1ps ‐c work.tb_top
‐L work work.glbl‐wav ./wave/tb_01.wlf
华桑电子科技有限公司
仿真覆盖率文件整合报告实例
vcover merge cov/merge_all.dat cov/*.ucdb
vcover report ‐html ./cov/merge_all.dat ‐htmldir./cov/html_rpt
华桑电子科技有限公司
华桑电子科技有限公司
待续……。