博客
关于我
ModelSim-Altera版本仿真流程
阅读量:751 次
发布时间:2019-03-23

本文共 1623 字,大约阅读时间需要 5 分钟。

ModelSim-Altera版本仿真流程

1. ModelSim-Altera工作环境的设置

ModelSim-Altera是Altera公司提供的一个综合性仿真工具,支持从设计输入到时序分析的全流程仿真。以下是设置工作环境的主要步骤:

1.1 ModelSim版本信息
  • ModelSim-Altera OEM版本 6.4a
  • Quartus II版本 9.0
  • 该版本支持所有Quartus II支持的Altera器件
1.2 设置EDA工具
  • 为了使用第三方EDA工具(如ModelSim),需在Tools菜单->Options中找到EDA Tool Options选项。
  • 确保ModelSim的可执行文件路径已正确配置。

2. ModelSim-Altera工程的创建

2.1 文件准备
  • 避免直接使用ازیاد_BUFFER或其他Altera特有语言。
  • 如果需要进行时序仿真,需先编译Verilog(.vo)或VHDL(.vho)输出文件。
2.2 工作库的创建
  • 在File->New->Library中创建新的工库。
  • 如果希望ModelSim独立运行,库名需为“work”;如果由Quartus II自动运行,则库名为ModelSim_work。
2.3 工作目录的设置
  • 项目目录应包含设计文件(.vo/.vho等)。
  • 时序仿真时,需包含IMAG/vc/trento/...等目录下IMAG文件。

3. 功能仿真流程

3.1 文件编译
  • 使用ModelSim的Compile菜单进行编译。
  • 选择work库,并上传需要仿真的Verilog或VHDL文件。
  • 如果使用已经编译过的输出文件,需重新运行Start EDA Netlist Writer以生成新的.sdo文件。
3.2 加载设计
  • 在Simulate菜单中启动仿真。
  • 添加search libraries中ModelSim的预编译库。
  • 在Name列表中选择work库并定位顶层测试模块。
3.3仿真过程
  • 需要在test bench中定义全局复位和上电信号。
  • ModelSim自动解析且调用相应的仿真库。

4.时序仿真流程

4.1文件准备
  • 确保Verilog/HDL文件中定义全局复位和上电信号。
  • 根据信号类型(例如全局复位)添加相应代码。
4.2仿真设置
  • 在Simulate菜单中手动设置或根据QuartusII自动生成的参数。
  • 使用.sdo文件添加延迟信息。
  • 对于VHDL设计,需手动调用force命令。
4.3 仿真运行
  • 确保在Pulse Options中设置合适的误差和拒绝限值(Verilog仿真),并添加.sdo文件(VHDL仿真)。
  • 设置时序缩放因子,默认情况下为1ps。

5. 与Quartus II合作

5.1 自动运行ModelSim
  • 需要配置Native Link settings。
  • 在EDA Tool Settings中设置仿真工艺和最终输出形式。
5.2 仿真结果导出
  • 提取.vcd文件用于PowerPlay功耗分析。
  • 导出波形数据文件和时间域分析结果。

个人使用心得

RTL仿真

  • 仅需设计文件和test bench文件,无需综合或布局步骤。
  • 使用适当的RTL仿真库,以适应不同器件familia。

综合仿真(功能仿真)

  • 依赖于测试模块和Verilog或VHDL输出文件。
  • 使用门级仿真库,需添加LPM、IP核等 مappings。

时序仿真

  • 需要处理全局信号和超时。
  • VHDL仿真需要额外的force命令。
  • 设置合理的时序缩放因子,避免性能问题。

提示与注意事项

  • 路径正确性:确保所有路径无汉字,避免程序出错。
  • 文件冲突:如果多次仿真,请确保前一次ModelSim已退出。
  • 依赖项:添加LPM或IP核时,需保留其预编译库路径。
  • 波形文件导出:仅导入输入信号,避免仿真冲突。

通过以上步骤,可以顺利完成ModelSim-Altera的仿真流程并获取准确的仿真结果。

转载地址:http://kquzk.baihongyu.com/

你可能感兴趣的文章
Mysql 拼接多个字段作为查询条件查询方法
查看>>
mysql 排序id_mysql如何按特定id排序
查看>>
Mysql 提示:Communication link failure
查看>>
mysql 插入是否成功_PDO mysql:如何知道插入是否成功
查看>>
Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
查看>>
mysql 数据库中 count(*),count(1),count(列名)区别和效率问题
查看>>
mysql 数据库备份及ibdata1的瘦身
查看>>
MySQL 数据库备份种类以及常用备份工具汇总
查看>>
mysql 数据库存储引擎怎么选择?快来看看性能测试吧
查看>>
MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
查看>>
MySQL 数据库的高可用性分析
查看>>
MySQL 数据库设计总结
查看>>
Mysql 数据库重置ID排序
查看>>
Mysql 数据类型一日期
查看>>
MySQL 数据类型和属性
查看>>
mysql 敲错命令 想取消怎么办?
查看>>
Mysql 整形列的字节与存储范围
查看>>
mysql 断电数据损坏,无法启动
查看>>
MySQL 日期时间类型的选择
查看>>
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>