# 怎么进行ModelSim独立仿真ISE的仿真工程 ## 前言 在FPGA开发流程中,功能仿真是验证设计正确性的关键环节。虽然Xilinx ISE自带集成仿真工具,但许多工程师更倾向于使用专业仿真软件ModelSim进行独立仿真。本文将详细介绍如何用ModelSim独立仿真ISE工程,涵盖环境配置、文件准备、脚本编写等全流程。 ## 一、准备工作 ### 1.1 软件环境要求 - **Xilinx ISE 14.7**(或兼容版本) - **ModelSim SE/PE 10.4+**(需匹配ISE版本) - **Xilinx仿真库**(必须预先编译) ### 1.2 库文件编译 ```bash # 在ISE命令行中执行(示例路径需替换) compxlib -s mti_se -arch all -l all -dir D:/Xilinx_lib
编译完成后会生成: - unisims_ver
- unisim
- xilinxcorelib_ver
等库文件
Properties
→ 勾选Generate Post-Synthesis Simulation Model
.vhd
/.v
源代码文件.ngc
网表文件(Post-Synthesis).ucf
约束文件(仅参考)/project ├── src/ # 源代码 ├── sim/ # 仿真文件 │ ├── modelsim.ini │ └── tb/ # 测试平台 └── xilinx_lib/ # 预编译库
# modelsim.do 初始化脚本 vlib work vmap work work vmap unisim xilinx_lib/unisim vmap xilinxcorelib xilinx_lib/xilinxcorelib
必须严格按依赖顺序编译: 1. Xilinx原语库文件 2. 用户设计文件 3. 测试平台文件
# 示例编译命令 vlog -work work src/*.v vcom -work work src/*.vhd
vsim -t ps -L unisim -L xilinxcorelib work.tb_top
# 添加信号到波形窗口 add wave * # 设置时钟显示格式 wave clock /clk -period 10
run 100us # 或带断言检查 run -all
Error: (vsim-19) Failed to access library 'unisim'
解决方案: - 检查modelsim.ini
中的库映射路径 - 重新执行vmap
命令
现象:后仿真与功能仿真结果不一致 处理方法: 1. 确认是否加载了正确的SDF
时序文件 2. 检查仿真时间单位设置
# 解决信号显示为二进制 radix hex # 显示多维数组 array set wave_display_limit {100}
完整的run.do
脚本:
# 环境初始化 do init.do # 编译设计文件 vcom -93 -work work ../src/clock_div.vhd vlog -work work ../src/adc_interface.v # 加载仿真 vsim -voptargs="+acc" work.tb_adc # 波形配置 configure wave -timelineunits ns add wave -position insertpoint sim:/tb_adc/* # 运行仿真 run 1ms
代码覆盖率分析:
vsim -coverage work.tb_top coverage save coverage.ucdb
批处理模式:
vsim -c -do "run.do; quit"
TCL调试: 使用transcript
命令记录仿真日志
通过ModelSim独立仿真ISE工程,可以获得更专业的仿真分析和调试能力。关键点在于正确配置Xilinx库路径、保持文件编译顺序一致,以及合理使用自动化脚本。建议保存标准化的仿真脚本模板,可大幅提升后续项目的仿真效率。 “`
注:本文以Windows平台为例,Linux/Mac用户需注意路径格式差异(将
\
替换为/
)。实际路径请根据具体安装位置调整。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。