当前位置:文档之家› 测试仿真

测试仿真


Example
同波形进行 对比
基于FPGA的仿真
前仿真
(功能仿真)
基于FPGA 的仿真 综合后仿真 后仿真 布局布线后仿真
对比三类仿真
名称 功能仿真 综合后 仿真 目的 验证电路在理想条件下 是否符合设计构想 验证综合后的电路结构 是否与设计意图相符 延时 不考虑 只考虑 门延时 考虑 门延时 线延时
布局布线 在电路已经映射到特定的电 后仿真 路环境后,验证电路的行为
是否满足设计构想的功能。
本次仿真所采用的软硬件
软件:
ISE 12.2 Modelsim 6.1b 硬件: Xilinx Spartan3E XC3S500E
Example
功能仿真波形
实现5+2
Xilinx 的库文件
常用的调试系统任务ຫໍສະໝຸດ $random $display/$monitor
$random
基本结构: $random %b
其中b>0,给出了一个范围在 (-b+1):(b-1)中的随机数。
EP:reg [23:0] rand;
rand=$random %60;
$display/$monitor
建立仿真配置
添加综合后 仿真库
建立仿真配置
选择要仿真 的文件
添加波形并观察结果
从仿真波形上可以看出,门延迟给电路带来了119ps 的延时。
布局布线后仿真
建立工程并添加设计文件
依次为寄存器全局置位复位文件、测试 激励文件、网表文件
建立仿真配置
添加仿真库
建立仿真配置
添加标准延 时文件.sdf
基本结构: for(初始值;终止表达式;增量) begin loop body end 应用: 用于仿真文件,来生成可控的连续激励。
采用同步数据
基本结构:@(时钟沿) 延时时间 激励
EP: @(posedge clk) #3 x=$random;
应用:用于仿真文件,来保证数据和时钟不 会同时变化。
基于FPGA的测试平台与验证
主要内容
Testbech 的编写
基于FPGA的仿真
Testbech 的结构
端口声明
模块例化
测试激励
几种常用的生成测试激励的方法
直接赋值
在always块中进行赋值 采用for循环进行赋值 采用同步数据
采用for循环进行赋值
for 语句块:
Simprims :用于布局布线后仿真
Unisims :用于综合后仿真 XilinxCoreLib :用于Xilinx IPcore仿真
采用Xilinx生成用于后仿真的文件
生成用于综合后仿真的 文件ALU_synthesis.v
生成用于布局布线后 仿真的网表文件 ALU_timesim.v和 标准延时文件 alu_timesim.sdf
Modelsim 中的操作
建库
采用命令: vlog -work simprim
D:/Xilinx/12.2/ISE_DS/ISE/verilog/src/simprims
库名
ISE库的所在位置
完成后如图所示:
更改modelsim.ini文件
综合后仿真
建立工程并添加设计文件
依次为综合后仿真文件、寄存器全局置位复位文件、 测试激励文件
$display:最基本的显示任务,可以在指
定的时间显示变量的值。
$monitor:提供了监控和输出参数列表中 的表达式或变量值的功能。
Example
1101 Moore 序列检测器
Example
1101 Moore 序列检测器测试平台片段
Example
在循环运行的过程中,每个时钟上升沿到来1ns后,为x生成 新的随机数。
添加应用域: /测试模块名/调 试模块的例化名
建立仿真配置
选择要仿真 的文件
添加波形并观察结果
从仿真波形上可以看出,门延时和布线延时将给电 路带来了总共5595ps的延时。
相关主题