Quartus调用Modelsim SE避免重复编译Altera器件库的方法
最近用Quartus 15.0配合Modelsim SE 10.4的64位版本,简直就是闪电一般的仿真速度。但是众所周知,SE版本最大的问题就是每次由Quartus自动调用时,都要重新编译所使用的器件库,特别是使用Stratix等含有收发器、PCIE硬核等单元时,仿真库编译时间实在太长。为了避免这个问题,一个方法就是采用Modelsim Altera版本,其含有已经编译好的Altera器件库,但是存在软件需要破解和仿真速度慢的问题。最近研究了很久,终于完美地解决了这个问题。
需要的工具:Quartus 15.0、Modelsim SE 10.4 64位版、Modelsim Altera Editon 10.3。
1.先将这三个工具软件都安装好,然后,将Modelsim Altera安装目录下的altera文件夹(我的是D:\Altera\15.0\modelsim_ae\altera)剪切到Modelsim SE安装目录(我的是D:\modeltech64_10.4)下,其作用是将Modelsim Altera编译好的器件库转移至Modelsim SE下。
2.打开Modelsim Altera的Modelsim.ini文件(D:\Altera\15.0\modelsim_ae\modelsim.ini),将其中的以下一段文字拷贝出来:
; Altera Primitive libraries
;
; VHDL Section
;
altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf
altera = $MODEL_TECH/../altera/vhdl/altera
altera_lnsim = $MODEL_TECH/../altera/vhdl/altera_lnsim
lpm = $MODEL_TECH/../altera/vhdl/220model
220model = $MODEL_TECH/../altera/vhdl/220model
maxii = $MODEL_TECH/../altera/vhdl/maxii
maxv = $MODEL_TECH/../altera/vhdl/maxv
fiftyfivenm = $MODEL_TECH/../altera/vhdl/fiftyfivenm
sgate = $MODEL_TECH/../altera/vhdl/sgate
arriaii = $MODEL_TECH/../altera/vhdl/arriaii
arriaii_hssi = $MODEL_TECH/../altera/vhdl/arriaii_hssi
arriaii_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaii_pcie_hip
arriaiigz = $MODEL_TECH/../altera/vhdl/arriaiigz
arriaiigz_hssi = $MODEL_TECH/../altera/vhdl/arriaiigz_hssi
arriaiigz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaiigz_pcie_hip
stratixiv = $MODEL_TECH/../altera/vhdl/stratixiv
stratixiv_hssi = $MODEL_TECH/../altera/vhdl/stratixiv_hssi
stratixiv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixiv_pcie_hip
cycloneiv = $MODEL_TECH/../altera/vhdl/cycloneiv
cycloneiv_hssi = $MODEL_TECH/../altera/vhdl/cycloneiv_hssi
cycloneiv_pcie_hip = $MODEL_TECH/../altera/vhdl/cycloneiv_pcie_hip
cycloneive = $MODEL_TECH/../altera/vhdl/cycloneive
stratixv = $MODEL_TECH/../altera/vhdl/stratixv
stratixv_hssi = $MODEL_TECH/../altera/vhdl/stratixv_hssi
stratixv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixv_pcie_hip
arriavgz = $MODEL_TECH/../altera/vhdl/arriavgz
arriavgz_hssi = $MODEL_TECH/../altera/vhdl/arriavgz_hssi
arriavgz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriavgz_pcie_hip
arriav = $MODEL_TECH/../altera/vhdl/arriav
cyclonev = $MODEL_TECH/../altera/vhdl/cyclonev
twentynm = $MODEL_TECH/../altera/vhdl/twentynm
twentynm_hssi = $MODEL_TECH/../altera/vhdl/twentynm_hssi
twentynm_hip = $MODEL_TECH/../altera/vhdl/twentynm_hip
;
; Verilog Section
;
altera_mf_ver = $MODEL_TECH/../altera/verilog/altera_mf
altera_ver = $MODEL_TECH/../altera/verilog/altera
altera_lnsim_ver = $MODEL_TECH/../altera/verilog/altera_lnsim
lpm_ver = $MODEL_TECH/../altera/verilog/220model
220model_ver = $MODEL_TECH/../altera/verilog/220model
maxii_ver = $MODEL_TECH/../altera/verilog/maxii
maxv_ver = $MODEL_TECH/../altera/verilog/maxv
fiftyfivenm_ver = $MODEL_TECH/../altera/verilog/fiftyfivenm
sgate_ver = $MODEL_TECH/../altera/verilog/sgate
arriaii_ver = $MODEL_TECH/../altera/verilog/arriaii
arriaii_hssi_ver = $MODEL_TECH/../altera/verilog/arriaii_hssi
arriaii_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaii_pcie_hip
arriaiigz_ver = $MODEL_TECH/../altera/verilog/arriaiigz
arriaiigz_hssi_ver = $MODEL_TECH/../altera/verilog/arriaiigz_hssi
arriaiigz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaiigz_pcie_hip
stratixiv_ver = $MODEL_TECH/../altera/verilog/stratixiv
stratixiv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixiv_hssi
stratixiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixiv_pcie_hip
stratixv_ver = $MODEL_TECH/../altera/verilog/stratixv
stratixv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixv_hssi
stratixv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixv_pcie_hip
arriavgz_ver = $MODEL_TECH/../altera/verilog/arriavgz
arriavgz_hssi_ver = $MODEL_TECH/../altera/verilog/arriavgz_hssi
arriavgz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriavgz_pcie_hip
arriav_ver = $MODEL_TECH/../altera/verilog/arriav
arriav_hssi_ver = $MODEL_TECH/../altera/verilog/arriav_hssi
arriav_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriav_pcie_hip
cyclonev_ver = $MODEL_TECH/../altera/verilog/cyclonev
cyclonev_hssi_ver = $MODEL_TECH/../altera/verilog/cyclonev_hssi
cyclonev_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cyclonev_pcie_hip
cycloneiv_ver = $MODEL_TECH/../altera/verilog/cycloneiv
cycloneiv_hssi_ver = $MODEL_TECH/../altera/verilog/cycloneiv_hssi
cycloneiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cycloneiv_pcie_hip
cycloneive_ver = $MODEL_TECH/../altera/verilog/cycloneive
twentynm_ver = $MODEL_TECH/../altera/verilog/twentynm
twentynm_hssi_ver = $MODEL_TECH/../altera/verilog/twentynm_hssi
twentynm_hip_ver = $MODEL_TECH/../altera/verilog/twentynm_hip
3.将上述文本拷贝到Modelsim SE的modelsim.ini(D:\modeltech64_10.4\modelsim.ini)中,记得先将文件的只读属性去除,然后保存后再恢复只读,这一步的作用是在Modelsim SE中映射相应的器件库。
4.最关键的一步!也是费了我最多精力才发现的;打开D:\Altera\15.0\quartus\common\tcl\internal\nativelink\modelsim.tcl,这个脚本文件的作用就是生成仿真所需的.do批处理文件,在大约223行处有这样一句语句:
……
# if its not modelsim-altera
if {$tool_type != "0" } {
# Compile libraries for SE version or Questasim
……
这意思很明白了,如果你调用的不是Modelsim的Altera版本,那对不起,所有的器件库都需要重新编译,哼哼,只好欺骗一下Altera的感情了,直接把if {$tool_type != "0" }判断条件改成if {"0"},这样不管你调用什么版本的Modelsim都不再编译器件库,否则,生成的.do文件中就将包含一大堆的vlib和vmap语句,也就要浪费大把时间重新编译。改好之后保存,从Quartus里直接调用Modelsim SE,完全不需要再编译器件库了。
还有,改造完后,Modelsim Altera版本完全没有存在的必要了,可以卸载。如果想让Altera版和SE版共享器件库也很简单,就是不必做第一步的altera目录转移,在修改SE版的modelsim.ini时,将
altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf
之类的语句改成:
altera_mf = D:/Altera/15.0/modelsim_ae/altera/vhdl/altera_mf
即可,其实就是换了一个映射路径而已。
但是有一个问题请注意,就是Modelsim SE的版本号一定要大于或等于和Modelsim Altera的版本号,且最好不要差距太远。否则会出现无法识别器件仿真库的现象。比方说Modelsim SE10.1版就无法识别Modelsim Altera 10.3d的器件库;人既然不能预知未来,那么软件也是一样的道理。
嘿嘿,这个移花接木的方法是不是很拽呢?
转载自:http://blog.csdn.net/cyx/article/details/51043948
转载于:https://www.cnblogs.com/chengqi521/p/6949970.html
Quartus调用Modelsim SE避免重复编译Altera器件库的方法相关推荐
- modelsim编译Xilinx器件库
modelsim编译Xilinx器件库的另一种方法(节省时间) 以前在用modelsim对Xilinx进行器件库编译时,我用的比较多的是直接在ISE中编译器件库,感觉很方便简单,就是编译时间有点长.自 ...
- 基于Quartus II+ModelSim SE的后仿真(Verilog版)
基于Quartus II+ModelSim SE的后仿真(Verilog版) 一.Quartus 中的相关设置 在Quartus中建立名为counter的工程,设置仿真工具为ModelSim(Veri ...
- Quartus 与modelsim se联合仿真
** 1.首先下载并安装两个软件 ** modelsim se是从下面网址下载并破解的(未使用altera-modelsim,这两个是不一样的) http://www.xue51.com/ 至于qua ...
- 记录一次quartus II prime standard 18添加器件库的方法
Quartus II 18 prime standard 我很早之前就已经安装好了,但是一直没用,所以当时为了节约内存就没有安装device,我一直用的quartus 13.0 .今天我想着是要解决一 ...
- Xilinx ISE 调用 ModelSim SE 库编译
在d:\ModelTech_6.1d\下建立新目录,并命名为Xilinx_Lib 到DOS环境下(命令行),并切到ISE安装目录下\Bin\Nt (dir D:\xilinx\bin\nt) ...
- Quartus调用ModelSim进行仿真的步骤
1.建立工程,在建立工程的第四步中的Simulation下选择Tool Name为ModelSim-Altera,再在后面的Format(s)中选择Verilog HDL.继续构建完工程: 2.在工程 ...
- 使用modelsim编译altera库
本文简单介绍如何使用modelsim单独编译altera 器件库,如果采用modelsim编译其他厂家的器件库该方法也适用. 1.在modelsim安装路径新建altera_lib文件夹用于存放编译a ...
- 用Modelsim SE 直接仿真 Altera(Intel PSG) IP核 需要注意的问题
如果我们直接用Modelsim SE仿真 Altera IP核,首先会进入Quartus II目录下找到IP核对应的仿真库源文件,然后在Modelsim SE中进行编译,添加到Modelsim SE的 ...
- Modelsim SE仿真之器件库的编译与使用
最近常用Vivado自带的仿真工具,以至于Modelsim SE的使用变得非常陌生,这里针对Modelsim SE自动化仿真使用过程进行一个学习总结,温故而知新. 常用的Altera和Xilinx两家 ...
最新文章
- Anaconda中文版
- flex 文字竖排_flex button字竖排展示
- postman模拟HTTP请求
- Markdown 编辑器才是yyds|CSDN编辑器测评
- 【机器学习】feature_importances_ 参数源码解析
- 一个SPS + K2 + InfoPath + Mobile + Exchange的工作流程演示系统
- jupyter问题: failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
- script和scriptreplay命令实现终端录制和回放。
- 笨办法学 Python · 续 练习 11:`uniq`
- LinkedHashMap入门
- curl基于URL的文件传输工具
- java正则匹配_Java正则表达式详解
- JDBC部署到Tomcat驱动加载失败
- Azure云服务器搭建
- 数据分析师就业前景怎么样?零基础能成为数据分析师吗?
- gradle buildTypes
- 有哪些适合新手的练手Java项目?
- 前端有必要学习算法吗 前端如何学习算法 前端算法
- Python创建递增数列、递减数列、等差数列
- linux获取时间戳+时间戳转换日期
热门文章
- 《Head First Java》读书笔记(3) - 异常和IO
- python3中的一些小改动
- Android基本概念(一)
- 【转】Android -- Looper.prepare()和Looper.loop()
- UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
- 图像旋转的MATLAB和OpenCV源码
- 配置SpringCloud Config Client连上Config Server
- feign调用如何传递token_feign加入熔断器之后转发不了token等header信息
- leetcode算法题--Z字型变换
- Shell命令-搜索文件或目录之whereis、locate