最近用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器件库的方法相关推荐

  1. modelsim编译Xilinx器件库

    modelsim编译Xilinx器件库的另一种方法(节省时间) 以前在用modelsim对Xilinx进行器件库编译时,我用的比较多的是直接在ISE中编译器件库,感觉很方便简单,就是编译时间有点长.自 ...

  2. 基于Quartus II+ModelSim SE的后仿真(Verilog版)

    基于Quartus II+ModelSim SE的后仿真(Verilog版) 一.Quartus 中的相关设置 在Quartus中建立名为counter的工程,设置仿真工具为ModelSim(Veri ...

  3. Quartus 与modelsim se联合仿真

    ** 1.首先下载并安装两个软件 ** modelsim se是从下面网址下载并破解的(未使用altera-modelsim,这两个是不一样的) http://www.xue51.com/ 至于qua ...

  4. 记录一次quartus II prime standard 18添加器件库的方法

    Quartus II 18 prime standard 我很早之前就已经安装好了,但是一直没用,所以当时为了节约内存就没有安装device,我一直用的quartus 13.0 .今天我想着是要解决一 ...

  5. Xilinx ISE 调用 ModelSim SE 库编译

    在d:\ModelTech_6.1d\下建立新目录,并命名为Xilinx_Lib      到DOS环境下(命令行),并切到ISE安装目录下\Bin\Nt (dir D:\xilinx\bin\nt) ...

  6. Quartus调用ModelSim进行仿真的步骤

    1.建立工程,在建立工程的第四步中的Simulation下选择Tool Name为ModelSim-Altera,再在后面的Format(s)中选择Verilog HDL.继续构建完工程: 2.在工程 ...

  7. 使用modelsim编译altera库

    本文简单介绍如何使用modelsim单独编译altera 器件库,如果采用modelsim编译其他厂家的器件库该方法也适用. 1.在modelsim安装路径新建altera_lib文件夹用于存放编译a ...

  8. 用Modelsim SE 直接仿真 Altera(Intel PSG) IP核 需要注意的问题

    如果我们直接用Modelsim SE仿真 Altera IP核,首先会进入Quartus II目录下找到IP核对应的仿真库源文件,然后在Modelsim SE中进行编译,添加到Modelsim SE的 ...

  9. Modelsim SE仿真之器件库的编译与使用

    最近常用Vivado自带的仿真工具,以至于Modelsim SE的使用变得非常陌生,这里针对Modelsim SE自动化仿真使用过程进行一个学习总结,温故而知新. 常用的Altera和Xilinx两家 ...

最新文章

  1. Anaconda中文版
  2. flex 文字竖排_flex button字竖排展示
  3. postman模拟HTTP请求
  4. Markdown 编辑器才是yyds|CSDN编辑器测评
  5. 【机器学习】feature_importances_ 参数源码解析
  6. 一个SPS + K2 + InfoPath + Mobile + Exchange的工作流程演示系统
  7. jupyter问题: failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
  8. script和scriptreplay命令实现终端录制和回放。
  9. 笨办法学 Python · 续 练习 11:`uniq`
  10. LinkedHashMap入门
  11. curl基于URL的文件传输工具
  12. java正则匹配_Java正则表达式详解
  13. JDBC部署到Tomcat驱动加载失败
  14. Azure云服务器搭建
  15. 数据分析师就业前景怎么样?零基础能成为数据分析师吗?
  16. gradle buildTypes
  17. 有哪些适合新手的练手Java项目?
  18. 前端有必要学习算法吗 前端如何学习算法 前端算法
  19. Python创建递增数列、递减数列、等差数列
  20. linux获取时间戳+时间戳转换日期

热门文章

  1. 《Head First Java》读书笔记(3) - 异常和IO
  2. python3中的一些小改动
  3. Android基本概念(一)
  4. 【转】Android -- Looper.prepare()和Looper.loop()
  5. UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
  6. 图像旋转的MATLAB和OpenCV源码
  7. 配置SpringCloud Config Client连上Config Server
  8. feign调用如何传递token_feign加入熔断器之后转发不了token等header信息
  9. leetcode算法题--Z字型变换
  10. Shell命令-搜索文件或目录之whereis、locate