ModelSim,synplify,ISE后仿真流程

article/2025/9/18 5:36:29
首先,我把我用到的软件说明一下。如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。
1, ModelSim Se 6.1b
2, Synplify Pro 7.5.1
3, ISE 5.2i  (这个是老了点)
4, WindowsXP(这个应该没有多大的关系)
   还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。下面的这些方法,是我这3天搞出来的。当然也参考了一些文章。如果谁有更方便的方法,欢迎指出来。我的邮箱是 vf1983cs@163.com。有空大家多交流。

一、 为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。所谓的标准库就是modelsim运行后,会自动加载的库。不过这方面我还不是很肯定。因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
 
第二步:新建库,库名起作simprim_ver。我们首先就是要建的就是这个库。
          
第三步:在modelsim的命令栏上,打下如下命令:
           vlog -work simprim_ver d:/Xilinx/verilog/src/simprims/*.v    
其 中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。以下凡是要根据自己系统环境改变的内容,我都会用绿色标出,并加一个下划 线。编译完之后,你会发现你的工程文件夹下出现了一个simprim文件夹,里面又有很多个文件夹。这些就是我们要的库了。
第四步 按照上面的方法,编译另外两个库。所需要键入的命令分别如下:
        vlog -work unisim_ver d:/Xilinx/verilog/src/unisims/*.v
        vlog -work xilinxcorelib_ver d:/Xilinx/verilog/src/XilinxCoreLib/*.v
如果你想要编译的是VHDL的库,你需要建立的库分别是simprim,unisim和xilinxcorelib。这三个库所需要的modelsim指令分别如下:
vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_Vcomponents.vhd
vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_Vpackage.vhd
vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_VITAL.vhd

vcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VCOMP.vhd
vcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VPKG.vhd
vcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VITAL.vhd
vcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VCFG4K.vhd

vcom –work xilinxcorelib d:Xilinx/VHDL/src/ XilinxCoreLib/*.vhd
关于VHDL方面,我没有实践过,如果有误的话,改一下应该问题也不大。
第五步:把库建好后,接下来的事情就是使它成为modelsim的标准库。这只要修改modelsim安装目录下的modelsim.ini文件就可以了。修改后的内容如下:
[Library]
std = $MODEL_TECH/../std
ieee = $MODEL_TECH/../ieee
verilog = $MODEL_TECH/../verilog
vital2000 = $MODEL_TECH/../vital2000
std_developerskit = $MODEL_TECH/../std_developerskit
synopsys = $MODEL_TECH/../synopsys
modelsim_lib = $MODEL_TECH/../modelsim_lib
simprim_ver = G:/EDA/Xilinx/simprim_ver(库的路径,以下同)
unisim_ver = G:/EDA/Xilinx/unisim_ver
xilinxcorelib_ver = G:/EDA/Xilinx/xilinxcorelib_ver

注意的是,这个文件是只读属性。修改之前要把这个属性去掉。
第六步:关掉工程,重启modelsim。查看这3个库是否在library框里面。
              
    如果你看到了,那么恭喜!你已经完成了第一个大步骤!!接下来,就是在ISE环境下如何用synplify对设计进行综合的方法了。还要说明的是,这一步是一劳永逸的!有了第一次,第二次就不用了。

二、 在ISE环境下,调用synplify,生成后仿真所需要的文件。
       之所以要在ISE环境下调用synplify,主要是因为方便!我也尝试过在synplify环境下综合设计文件,然后在ISE里编译synplify生 成的edif文件。但是不成功。ISE在第三方工具支持方面做的是比较好的,感觉跟用ISE直接综合一样。不过有一个缺点是看不了RTL原理图。你可以在 synplify中打开ISE生成的synplify工程文件,解决在ISE中不方便查看synplify综合结果的问题。现在,就要开始第二个大步骤 了!
第一步:创建ISE工程文件。选择好器件。注意Design Flow中一定要选择Synplify Pro Verilog。
 
第二步:综合设计文件,也就是verilog文件。
双击下图中的按钮,ISE就会自动调用synplify。(如果没有的话,那可能是你的系统环境变量没有设置好)。此时会弹出一个对话框,要你选择synplify的liscense。(这步本来不用说的。如果没有对话框弹出来的话,也不要紧)随便选择一个,就等结果了。
 
第三步:生成后仿真需要的文件。
如下图,我们可以看到在Implement Design中有三个大分支,这对应着三种仿真。按你的需要按下相应的图标,生成modelsim后仿真所需要的文件,下面对生成的文件和生成这些文件的图标进行说明。

图标生成文件
Generate Post-Translate Simulation Modelxxx_translate.v
Generate Post-Map Simulation Model xxx_map.v,xxx_map.sdf
Generate Post-Place&Route Simulation Model xxx_timsim.v,xxx_timsim.sdf
  
在 这3种仿真中,只有第一种没有生成sdf文件。也就是说在modelsim中,只有第一种可以不用把sdf添加到仿真器中(废话!!)。到这时,所有为后 仿真所做的准备工作就都完成了。下面就后仿真举例。我们要进行的是Place&Route Simulation!所以按下图标,生成为下一步的工作所需要的文件吧。

三、用modelsim进行后仿真。
       在开始这一步之前,建议为你的设计新建一个文件夹。当然你也可以不这样做,不过对于所造成的麻烦,本人不负责!
       后仿真总共需要3个*.v文件。一个是你的模块的测试文件,一个是ISE生成的xxx_timsim.v(注意,我们要更改这个文件的文件名,改为 xxx.v,也就是你的顶层模块名了。这也是我要求新建文件夹的原因了,重名这件事比尔.盖茨是不答应的)。另一个是glbl.v文件。这个文件在 Xilinx安装盘:/Xilinx/verilog/src下。VHDL不需要第3个文件。复制这3个文件到新建的文件夹下,开始我们的第一步工作。
[转载者注:需要将ise工程下的netgen目录拷贝到后仿真工程目录下。ISE8.1,Modelsim 5.8环境]
第O步:为xxx_timsim.v改名!!!
第一步:新建工程,把3个文件添加到这个工程里。(大家都这么熟了,不用教了吧)
第二步:在project框里按右键—》add to project –》adding simulation configuration,如下图:
 
第三步:在弹出的对话框里,选择SDF项。把ISE生成的SDF文件添加进出。如下图:
记 住Apply to Region这一项要写好。它对应的是你的tb文件(就是测试文件)调用的顶层模块名。(不是顶层模块名!!)比如你的测试文件是text,例化顶层模块 top为i_top,那你应该这样填:text/i_top或者/text/i_top。如果是第一种仿真,此步可以省略。
[转载者注:如果text文件中的顶级模块是top_module,这里应该是./top_module/i_top, Modelsim 5.8环境下]
 
第四步:添加library。
我们创建的那三个库终于派上用场了!我们要添加的就是这3个。选择library项,添加这3个库。你的库建在哪里,就去哪里找!这个也不用说了吧!如下图:
 
第五步:选择要仿真的模块。
你先不要急,看清楚再选。(有些朋友性子急,驾轻就熟就选了)
我们要选的仿真模块可不止一个,如下图,用CTRL键实现!!选了之后点0k!!
 
第六步:进行后仿真!
完成上一步后,project框如下图所示,双击Simulation 1,modelsim就进入仿真了,是不是很方便!
 
第七步:做你该做的!  

http://chatgpt.dhexx.cn/article/WDwRaP0B.shtml

相关文章

Python 中的Sympy详细介绍

Python 中的Sympy详细使用 遇到复杂计算找python绝对不让你失望,sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题。虽然Matlab的类似科学计算能力也很强…

如何使用synplify综合ISE Core Generate生成的IP核

Xilinx的ISE软件有自带的综合工具XST,但是我们有时候需要使用第三方的综合工具(例如Synopsys的Synplify Pro,Synplify Primier,其中,Synplify Primier可以综合synopsys的DesignWare库),这时候就需要在synpl…

synplify 9.6.2 download

现在这种工具太难找了,找了一上午才搞定;唉,还是贡献出来吧,最好别被河蟹掉 链接:http://pan.baidu.com/s/1pJv7ovx 密码:um2k 里面的破解方法有点问题, 一、install exe,选Fl…

如何破解Synplify Pro 9.6.2? (SOC) (Synplify)

软件安装与注意事项如下: Introduction Step 1: 安裝Synplify Pro Step 2: 選擇Floating (License is on a license server) Step 3: 稍後會設定SYNPLCTYD_LICENSE_FILE(我认为是LM_LICENSE_FILE)系統變數&…

lattice 的Synplify pro综合工具,以及RTL寄存器查看

对于diamond来说,查看RTL级的示图时,必须以LSE(自带的综合工具)来编译综合代码。 而经常会出现Synplify pro编译通过,LSE编译出现bug的情况,所以用LSE编译代码,总不让人放心。 默认使用Synpli…

Synaplify综合的常用命令(1)

在芯片设计中大都绕不开用Synaplify来对数字代码进行综合,特别是在大系统中,资源很多,这样会导致FPGA中的资源不够用,就需要我们在综合中加一些限定来解决一些问题,这篇文章先介绍一些自己遇到的和资源相关的问题以及相…

ISE工程导入Vivado

在介绍工程模式下的设计方式时,提到了Vivado一个选项Imported Project能够导入本由synplify、xst或者ISE设计套件所创建的RTL工程数据。参见:https://blog.csdn.net/qq_26652069/article/details/91562652 下面尝试将ISE中的一个实现UART回显的工程导入…

Synaplify综合报错Signal 011 error in m_xilinx

在用Synaplify2020的版本综合的时候会报出错误,E:Internal Error in m_xilinx Stack trace或者是Signal 011 error in m_xilinx Stack trace。乍一看像是环境问题,其实是你的代码里面用到的ram的问题,当然也可能是rom的问题,总之和…

Synaplify综合Removing

记录一下用Synaplify综合出现的Removing警告问题,在用Synaplify综合的时候,你可能综合完之后发现有的port不见了,或者instance不见了,这都是很常见的问题,这个时候你只要去搜索log关键词Removing,再和你要找…

Vivado与Synplify联合设计FPGA

这篇文章主要记录近几天在使用Vivado以及Synplify工具进行FPGA的Synthesis、Implementation、以及BitStream出现的相关问题。 一、工具使用 RTL代码编辑:修改Vivido内置编辑器为VSCode编辑器,个人习惯,偏好VSCode。修改内置编辑器&#xff…

如何使用Synplify综合vivado带IP核的工程

文章目录 使用Synplify综合的好处synplify的教程方法1(无效)方法2 VIVODO工程遇到的问题 使用Synplify综合的好处 下面的说法来自网上: 综合时间更好,综合出来所使用的逻辑更少综合的时序更好 在IC设计中,使用Synplif…

Oracle分析函数取平均值,7-oracle_分析函数(一)

1.分组聚合函数 聚合函数主要有求和:sum();最大数:max();最小数:min();平均值:avg();统计数:count()等,在应用此类函数的时候,要么是从全集合来看…

oracle分析函数-RATIO_TO_REPORT() OVER()

1、RATIO_TO_REPORT()为比例函数 2、创建测试表,并插入数据 CREATE TABLE TEST_V( DEPTNO VARCHAR2(10), NAME VARCHAR2(10), SAL NUMBER ); 3、实例1:要求计算各部门工资合计,以及该工资合计占总工资的比例: SELECT TT.DEPT…

Oracle分析函数之Rank函数

本文主要讲述Oracle分析函数之Rank函数的用法 最近接触到Oracle这个功能强大而灵活的函数。这个函数特别适用于各种统计查询,下面就来说一说。 首先存在 product 表 SELECT p.create_time, p.name, p.service_evaluate_fee, p.product_type FROM product p 表数…

oracle 分析函数之分组求和、连续求和

最近在《sql cookbook》书上发现了名叫 分析函数 的东西,之前学 oracle 时没有印象,现在感觉其分析函数的功能相当强大、神奇, 就特意去找到了 chm 文档研究了一下,想要的朋友在本文末尾自行下载。 本文的例子都来源于 chm 文档…

在Oracle分析函数中使用FIRST_VALUE和LAST_VALUE

FIRST_VALUE and LAST_VALUE in Oracle Oracle中的FIRST_VALUE和LAST_VALUE These are Oracle analytical functions used to return the first value or the last value from a set of ordered rows. These functions can get the first value or the last value within a co…

Oracle 分析函数over,列转行函数pivot理解及综合运用(报表中的小计和合计)

1、Over函数(分析统计函数) 1.1语法 sum/avg/count() over(partition by ..)over()在什么条件之上;partition by 按哪个字段划分组; 1.2示例 SELECT E.ENAME,E.JOB,E.SAL,E.DEPTNO,SUM(E.SAL) OVER(PARTITION BY E.DEPTNO) SUM_SAL, …

oracle 百分位数,oracle分析函数 percent_rank, percentile_cont, percentile_disc

)*20=18 percentile_disc() PERCENTILE_DISC 这里就不做详细分析。 Syntax Purpose PERCENTILE_DISC is an inverse distribution function that assumes a discrete distribution model. It takes a percentile value and a sort specification and returns an element from t…

Oracle所有分析函数

Oracle分析函数 Oracle分析函数——函数列表 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算…

oracle分析函数over(Partition by...)及开窗函数详解

说明:聚合函数(如sum()、max()等)可以计算基于组的某种聚合值,但是聚合函数对于某个组只能返回一行记录。若想对于某组返回多行记录,则需要使用分析函数。 1、rank()/dense_rank over(partition by ... order by ...) …