搜档网
当前位置:搜档网 › 使用compxlib命令编译Xilinx的ModelSim仿真库_20110104

使用compxlib命令编译Xilinx的ModelSim仿真库_20110104

使用compxlib命令编译Xilinx的ModelSim仿真库_20110104
使用compxlib命令编译Xilinx的ModelSim仿真库_20110104

使用compxlib命令编译Xilinx的ModelSim仿真库

Xilinx提供的HDL仿真模型位于ISE安装路径下的verilog\src目录(对应Verilog仿真模型)和vhdl\src目录(对应VHDL仿真模型)下。在编译Xilinx 仿真模型的时候,我们可以使用多种方法,例如直接使用ModelSim的vlib、vmap、vlog等命令进行编译、使用ISE集成开发环境进行编译等。本文描述的方法是采用ISE 7.1i自带的compxlib命令在命令行下进行编译,这种方法不需要我们手动干预而且最为简单。

(compxlib.exe位于Xilinx ISE安装文件夹\bin\nt\下,需要命令行方式运行,新版本的ISE提供了compxlibgui工具,以图形化方式编译,参考见https://www.sodocs.net/doc/384653673.html,/blog/628)

在使用compxlib命令之前,我们首先需要将modelsim.ini文件的只读属性去掉,使其变为可写的。这样做的目的是使compxlib命令能够修改modelsim.ini 文件以便在库的逻辑名字和库的实际存放路径之间建立一个永久的映射关系。modelsim.ini文件位于ModelSim安装路径下,缺省情况下它是只读的。

在介绍compxlib命令的详细语法之前,我们先通过一个实际使用的例子对compxlib命令的用法做一个简要的说明。在这个例子中,我们的使用的仿真器是ModelSim SE,并且为Xilinx的所有器件族产生Verilog和VHDL仿真库。在Windows的DOS命令行中,输入如下的命令(其中的“C:

\Modeltech_6.5a\xilinx_lib”使用您自己的实际路径代替)。

compxlib -s mti_se -arch all -l all -dir C:\Modeltech_6.5a\xilinx_lib

-w

当这一命令执行完成后,Xilinx器件的ModelSim SE仿真库便生成了,编译后的仿真库位于“C: \Modeltech_6.5a\xilinx_lib”目录下。而且这个命令自动修改了modelsim.ini文件,将仿真库的逻辑名字与它的实际存放路径作了永久的映射。现在运行ModelSim,如果已经自动打开了以前的工程则将这个工程关闭,我们可以看到,所有的Xilinx仿真库都出现了!

在对compxlib命令有了初步的认识后,我们来详细介绍compxlib命令的语法。

compxlib命令的语法如下:

compxlib -s -arch

[-l ] [-lib ] [-dir ]

[-w] [-log ] [-p ]

[-smartmodel_setup] [-verbose]

compxlib -cfg

compxlib -info

compxlib -f

compxlib -help

compxlib -help

●-s

-s 选项用于指明为哪一种仿真器编译仿真库,用户必须为compxlib 命令指定该选项。-s选项的有效值如下:

-s mti_se // 为ModelSim? SE编译仿真库;

-s mti_pe // 为ModelSim? PE编译仿真库;

-s ncsim // 为NCSIM? 编译仿真库;

-s vcs_mx // 为VCS-MX? 编译仿真库;

-s vcs_mxi // 为VCS-MXi? 编译仿真库;

对ModelSim仿真器来说,我们可以使用-s mti_se或-s mti_pe,例如在上面的例子中我们使用了-s mti_se选项。

●-arch

-arch 选项用于指明为哪一个器件族编译仿真库,用户必须为compxlib命令指定该选项。-arch选项的有效值如下:

-arch all // 为所有支持的器件族编译仿真库;

-arch virtex // 为Virtex器件族编译仿真库;

-arch virtexe // 为VirtexE器件族编译仿真库;

-arch virtex2 // 为Virtex-II器件族编译仿真库;

-arch virtex2p // 为Virtex-II Pro器件族编译仿真库;

-arch virtex4 // 为Virtex-4器件族编译仿真库;

-arch spartan2 // 为Spartan-II器件族编译仿真库;

-arch spartan3 // 为Spartan-3器件族编译仿真库;

-arch spartan2e // 为Spartan-II E器件族编译仿真库;

-arch spartan3e // 为Spartan-3 E器件族编译仿真库;

-arch fpgacore // 为Xilinx提供的IP Core编译仿真库;

-arch cpld // 为Xilinx的CPLD编译仿真库;

-arch cr2s // 为Xilinx的CoolRunner-II CPLD编译仿真库;

-arch xpla3 // 为Xilinx的CoolRunner XPLA3 CPLD编译仿真库;

-arch xc9500 // 为Xilinx的XC9500 CPLD编译仿真库;

-arch xc9500xl // 为Xilinx的XC9500XL CPLD编译仿真库;

-arch xc9500xv // 为Xilinx的XC9500XV CPLD编译仿真库;

●-l

-l 选项用于指明为哪一种HDL语言编译仿真库。

-l 选项是可选的,在缺省情况下,compxlib命令根据-s 选项检测语言类型。如果目标仿真器既支持Verilog也支持VHDL,则compxlib命令将-l 选项设置成all,也就是说为两种语言产生仿真库。否则,compxlib命令根据目标仿真器支持的语言类型选择相应的-l选项。如果使用了-l 选项,则compxlib命令根据-l选项来选择为哪种语言编译仿真库。-l选项的有效值如下:

-l verilog // 为Verilog语言编译仿真库;

-l vhdl // 为 VHDL语言编译仿真库;

-l all // 为Verilog和VHDL两种语言编译仿真库;

●-lib

-lib 选项用于选择编译哪一个HDL仿真库。-lib 选项是可选的,如果未指定该选项,则compxlib命令自动编译所有的仿真库。另外,如果指定多个仿真库,则“-lib”的各个有效值之间以空格分割。-lib选项的有效值如下:-lib unisim // 该仿真库用于Xilinx器件的功能仿真;

-lib simprim // 该仿真库用于Xilinx器件的时序仿真;

-lib uni9000 // 该仿真库用于Xilinx CPLD器件的功能仿真;

-lib xilinxcorelib // 该仿真库用于Xilinx IP Core的功能仿真;

-lib smartmodel // 该仿真库用于SmartModel Library?的功能仿真和时序仿真;

-lib coolrunner // 该仿真库用于Xilinx CoolRunner?器件的功能仿真;

-lib abel // 该仿真库用于功能仿真;

在上面的例子中,我们没有使用该选项,也就是说自动编译所有的仿真库。

●-dir

该选项指明编译后的仿真库存储的目录路径。缺省情况下,compxlib命令将仿真库编译到$XILINX/language/target_simulator目录下。在上面的例子中,我们将仿真库编译到了D:\EDASoft\Modeltech_6.1a\xilinx_lib目录下,用户需要根据实际情况修改。当然也可以不使用该选项,而是编译到缺省目录下。

●-w

可以使用这个选项覆盖预编译的仿真库,缺省情况下不会覆盖预编译的仿真库。

●-log

可以使用这个选项来产生自己的编译日志文件。如果不使用该选项,则compxlib

命令会自动产生一个日志文件,这个文件存放于运行compxlib命令的目录,文件名为compxlib.log。

●-p

该选项用来指定仿真器可执行文件存在的路径。缺省情况下,compxlib命令自动从$PATH或%PATH%环境变量中搜索仿真器可执行文件存在的路径。如果$PATH或%PATH%环境变量中没有指定仿真器可执行文件存在的路径,则需要使用此选项指定。

●-smartmodel_setup

该选项为SWIFT接口更新设置文件。

●-verbose

该选项使compxlib命令执行的时候能够打印更多的消息。

●-cfg

使用该选项可以产生具有缺省设置的配置文件。缺省情况下,如果在当前的目录中没有compxlib.cfg文件,则compxlib命令会产生一个。

●-info

该选项用于打印预编译库的信息,用于指定预编译库存在的路径。例如:如果执行compxlib –info D:\EDASoft\Modeltech_6.1a\xilinx_lib命令,则在屏幕上显示如下的信息:

Release 7.1.02i - COMPXLIB H.40

Copyright (c) 1995-2005 Xilinx, Inc. All rights reserved.

Pre-Compiled Library Info :-

---------------------------------------------------------------

Library =: unisim

Mapped Name =: unisim

Language Name =: vhdl

Version =: 7.1i

Library Path =: D:\EDASoft\Modeltech_6.1a\xilinx_lib

Compiled By =: mti_se

Simulator Used =: Model Technology ModelSim SE vlog 6.1a Compiler 2005.07 Jul 19 2005

Compiled On =: Wed Aug 03 19:22:51 2005

Errors =: 0

Warnings =: 0

Library Log =:

D:\EDASoft\Modeltech_6.1a\xilinx_lib\unisim\cxl_XilinxCoreLib.log

---------------------------------------------------------------

●-f

使用该选项可以使compxlib命令从文件中读取compxlib命令的选项和参数。

●-help

使用该选项可以将compxlib命令的帮助打印到标准输出设备上。

●-help

该选项可以打印扩展帮助信息。我们可以使用compxlib -help list命令来获得

的可用值。

至此,compxlib命令的用法便介绍完了,读者在使用该命令的时候,应充分利用compxlib -help命令和compxlib -help 命令来获得帮助信息。另外需要注意的是,本文的介绍是基于Xilinx ISE 7.1i所作的介绍,如果您正在使用其它版本,该命令的具体参数可能会有所不同,此时您可以使用compxlib -help命令获得特定版本的使用帮助

modelsim使用 + 前仿真 + 后仿真 + verilog

Modelsim 6.0 使用教程 1. Modelsim简介 Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。 对于初学者,modelsim自带的教程是一个很好的选择,在Help->SE PDF Documentation->Tutorial里面.它从简单到复杂、从低级到高级详细地讲述了modelsim的各项功能的使用,简单易懂。但是它也有缺点,就是它里面所有事例的初期准备工作都已经放在example文件夹里,直接将它们添加到modelsim就可以用,它假设使用者对当前操作的前期准备工作都已经很熟悉,所以初学者往往不知道如何做当前操作的前期准备。 2.安装 同许多其他软件一样,Modelsim SE同样需要合法的License,通常我们用Kengen产生license.dat。 ⑴.解压安装工具包开始安装,安装时选择Full product安装。当出现Install Hardware Security Key Driver时选择否。当出现Add Modelsim To Path选 择是。出现Modelsim License Wizard时选择Close。 ⑵.在C盘根目录新建一个文件夹flexlm,用Keygen产生一个License.dat,然后 复制到该文件夹下。 ⑶.修改系统的环境变量。右键点击桌面我的电脑图标,属性->高级->环境变量-> (系统变量)新建。按下图所示内容填写,变量值内如果已经有别的路径了, 请用“;”将其与要填的路径分开。LM_LICENSE_FILE = c:\flexlm\license.dat

ModelSim使用的一点心得体会

ModelSim使用的一点心得- - 1、至今还没有弄明白为什么要用ModelSim,因为看波形Quartus II自带的工具就可以了啊。 2、我刚刚接触modelsim,我想大多数菜鸟跟我一样,看过如何使用ModelSim的介绍,说句实话,那些介绍写的都太过简单,仿佛大家都不屑写上一些比较“弱智”的步骤,恰恰就是这些看似累赘的步走,难为我好久。 教程上都写道,modelsim的简单使用方法如下:建立库- 影射库到物理目录- 编译代码- 启动仿真。首先建立库就叫我头晕。库的概念用在这儿实在不合适,把我吓坏了,也就没心思看下一步了。在我看来,教程应该这么写: <1> 建立一个目录modelsimStudy。用任何文本编辑器编辑一个简单的例子程序,比如计数器counter.vhd。有clk、ena、reset输入,cnt作为输出。 <2> 打开Modelsim,首先create project,工程名随意取了,比如命名为test,目录设在modelsimStudy下,默认的库work不变(这样就不用管什么建立库之类的东西了)。然后add existing file,把counter.vhd加入当前工程。 <3> 编译这个文件,通过之后,work下面会出现counter这个实体。然后选中它,右键,simulate(左键双击也可)。 <4> ModelSim有很多窗口(新手就怕这个),一开始只要选择view下面的objects 和wave窗口就行了。旧版的signal窗口在6.0的版本改名为Objects(这个我是摸索了好久才发现的,是不是太笨了?)。wave窗口刚打开时是空的,需要在objects窗口的add -> wave -> signals in region。这时,wave上就有clk\ ena \ reset等信号了。 <5> 我们给clk来个输入激励,在object窗口中选中clk,右键选clock,给它定义个时钟。

modelsim完美教程

准备事项 1.ModelSim试用版下载 2.范例程序下载(史丹佛大学一门课的期末专题Implememtation of Viterbi Decoder:constrain length K=3, code rate R=1/2, register-exchange) 整个project共含7个Verilog程序:system.v (top-level) |-- clkgen.v |-- chip_core.v |-- controller.v |-- spu.v |-- acs4.v |-- acs1.v (或是另外一个Verilog的简单例子,可以从C:\ SynaptiCAD\ Examples\ TutorialFiles\ VeriLoggerBasicVerilo gSimulation\ add4.v and add4test.v) (或是另外一个VHDL的简单例子,可以从C:\ Modeltech_5.7e\ examples\ adder.vhd and testadder.vhd) ModelSim PE /LE /SE 差别在哪? 本篇文章内容主要在教导软件使用,以Verilog程序为范例。假设各位读者已经熟悉Verilog,废话不多说,让我们马上来见识一下ModelSim ... 快速上手四部曲:建立Project、引进HDL Files、Compile、模拟(Simulate/Loading and Run) 1.建立一个新的Project 1-1 第一次执行程序时,可以从[开始] \ [程序集] \ ModelSim SE \ ModelSim;或是执行ModelSim在桌面的快捷方式

ModelSim的前后仿真(Quartus)

利用Quartus5.0实现功能仿真 1)打开一个工程文件。 2)打开Settings设置栏,选择Fitting Settings下的Simulator栏。在右边出现的设置栏中将 “Simulation Mode”的下拉菜单选择“Functional”,即可以实现软件下的功能仿真。(下拉菜单中有“Functional”、“Timing”和“Timing using Fast Timing Model”,分别代表可以在Quartus软件下实现功能仿真,时序仿真和快速时序仿真。最后一项一般不选,如果在Settings->Timing Requirement->More Settings下“Report Combined Fast/Slow Timing” 选项设为“On”,就可以选择最后一项。编译的报告里也会分别列出最快和最慢的时序报告。) 3)选择“Processing”菜单下的“Generate Functional Simulation Netlist”命令,否则将无法 启动仿真。 4)新建一个波形仿真文件,文件后缀名为.vwf。选择File菜单下的New->Other Files->Vector Waveform File。如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间。将新建的波形仿真文件保存下来。

5)将需要仿真的信号加入波形编辑窗口。在列表区任一位置双击或者点击右键选择“Insert Node or Bus…”,弹出的对话框点击“Node Finder”按钮。在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。界面中“Filter”下拉框中默认的是“Pins: all”,也就是说将要列出的信号都是IO管脚。如果需要观察一些内部信号,可以改变下拉框的参数,比如“Registers: Pre-Synthesis”。下图显示了仿真信号加入波形编辑窗口的情况。对于有些总线信号可以改变其显示的进制格式,比如二进制、八进制、十进制和十六进制。在列表中对应信号点击右键选择 “Properties”,弹出的对话框中选择“Radix”下拉框实现进制的转换。

ModelSim用户手册

MODEL SIM 5.4版 使用指南 世界上最流行的VHDL语言模拟器 ModelSim /VHDL, ModelSim /VLOG, ModelSim /LNL, 和ModelSim /PLUS是由Model Technology开发,未经授权不得拷贝,复制,没有Model Technology 公司的书面许可不得进行其他任何形式的复制。 本手册上对程序的描述是经过许可的,未经允许不得使用和拷贝。 最终用户可以打印随产品附送的联机文件。 通过购买许可证可以获得数字和拷贝的打印权。 Microsystems公司的注册商标。 其他商标和注册商标都是其拥有者的财产ModelSim 是Model Technology公司的注册商标。 PostScript是Adobe Systems公司的注册商标。 UNIX是AT&T公司在美国和其他国家的注册商标。 FLEXlm是Globetrotter软件公司的商标。 IBM, AT,PC,ATX和RISC System/6000是IBM公司的商标。 Windows,Microsoft,和MS-DOS是Microsoft公司的注册商标。 OSF/Motif是OSF公司的商标。 SPARC(SUN公司的工作站系统)是SPARC国际公司的商标。 Sun Microsystems,Sun, SunOS 和 OpenWindows 是Sun Model Technology公司版权受保护,Model Technology公司授权用户可以打印在线文档(只能用于内部商业目的)。 2000年3月出版 Model Technology公司地址: 10450 SW Nimbus Avenue / Bldg. R-B Portland OR 97223-4347 USA 电话: 503-641-1340 传真: 503-526-5410 e-mail: support@https://www.sodocs.net/doc/384653673.html,, sales@https://www.sodocs.net/doc/384653673.html, 主页: https://www.sodocs.net/doc/384653673.html, 目录 介绍 5 前言 9 第一章创建一个项目 1-11 第二章 VHDL基础 2-19 第四章批模式仿真的运行 4-41 第五章在启动中执行指令 5-45 第六章 Tcl/Tk 和 ModelSim 6-47 第七章 Verilog 基础 7-63 第八章 VHDL/Verilog的混合仿真 8-81

ModelSim软件仿真步骤教程

使用ModelSim模擬驗證HDL code 1.在模擬前先準備好我們要模擬的電路檔案(Verilog HDL,TestBench,…) 2. 打開ModelSim,新建一個Project,鍵入Project name 按OK。此處我們的library name 為default library name “work”不必更改。 3.然後再加入我們所要模擬的電路檔案(若尚未準備,可開啟新檔案再將code 鍵入)選Add Existing File,將我們已編輯好的檔案加入。 將我們所需要的檔案加入,按Browse選擇我們所需檔案count.v,

count_test.vt),按下OK。 再將先前所開啟的增加檔案的視窗關閉,按close。 4.按下compile all。

Compile成功沒有顯示出錯誤訊息, 則開始模擬波形 5.按下Simulation, 選擇檔案所在的Library (work), 點選TestBench的Module Name t_Gap_finder 按OK 6.承接上步驟將會跳出以下視窗,若要將所有訊號加入波型中觀察則選擇在 testbench的module name: count_tst按滑鼠右鍵選擇→ Add → Add to Wave。

7.在波型畫面按下Run All開始模擬 跑完後會跳出下面視窗選擇否則可觀察模擬波形,若按下是則會將ModelSim關閉。

8.觀察波形圖是否與功能符合,若與設計不符則修改設計並重複執行Step 4到 Step 8 Testbench語法 `timescale 1 ps/ 1 ps 前面的1ps代表程式中最小的時間單位 後面的1ps代表運算的精準度

ModelSim作布局布线后仿真的库问题

ModelSim作布局布线后仿真的库问题 Modelsim是目前最流行的应用最广泛的FPGA仿真器,是Mentor Graphics的子公司Model T echnology开发的。因为Modelsim好学易用,调试方便,仿真速度快,功能强大,所以很多芯片厂商的开发系统都OEM Mentor Graphics公司的Modelsim仿真器,包括Xilinx,Alter a,Lattice和Actel等。Modelsim是一个单内核仿真器,同一个内核可以进行VHDL仿真、V erilog仿真和VHDL/Verilog混合仿真;支持所有的VHDL和Verilog标准;采用直接编译技术 (Direct-Compiled),大大提高了HDL编译和仿真速度。 Modelsim支持三个层次的仿真:RTL仿真、综合后仿真和布局布线后仿真。为了加快仿真速 度,一般情况下设计中调用的库都是已经进行编译过的,然后对设计进行仿真,此时仿真器直接调用库中已经编译过的单元,而不是再次对设计中的单元模块进行编译。所以如果要对设计进行综合后仿真和布局布线后仿真,必须先对设计中调用的库进行编译处理。这也是本文的重点内容。因为每个厂商的库不一样,而且同一个厂商,不同的器件库就有可能不同,所以下面就目前国内比较常用的几个公司的芯片的库问题分别进行探讨。1.Xilinx公司的器件: 其库的处理方式有两种,一种是在Xilinx的网站上,我们可以下载到压缩文件xilinx_lib _4.zip,解压缩后有一个xilinx_lib_4.tcl(将来的版本可能会升级)。单独运行Models im,然后在工具菜单中有一项是执行宏(这里Modelsim5.5 和5.6、5.7有一些差异,不过在5.5中仍可以找到执行宏Execute Macro),运行xilinx_lib_4.tcl后可以看到。 你可以根据你的厂商软件版本选择,指定Xilinx 的安装路径,在Install Path中指定你编 译后的数据将要放的目录位置(可以是任何一个目录,最好是设计者数据盘中的某个目录,因为库编译一次就可以了,重新安装软件不需要重新编译库)。对于Xilinx作布局布线后仿真只需要simprim库即可;如果要作综合后仿真,就需要编译Unisim库;如果设计中调用了 CoreGen产生的核就需要编译CoreGen库。这应该根据设计者的具体情况进行选择。 如果编译完了后,在Modelsim中库会自动变为标准库(注意:Xilinx提供的早期脚本文件作不到这一点)。所谓标准库,也就是说这个库会和IEEE这些库一样,当Modelsim启动时,这 些库会自动加载,里面的单元在VHDL代码中可以随意调用。比如:在布局布线后的VHDL 文 件中大家可以看到Library simprim这样的语句。当然也可以自己手动改变这些库的性质,只用修改在Modelsim安装路径下的Modelsim.ini文件即可。比如:修改后的Modelsim.ini 可以看到为 [Library] std = $MODEL_TECH/../std ieee = $MODEL_TECH/../ieee verilog = $MODEL_TECH/../verilog std_developerskit = $MODEL_TECH/../std_developerskit synopsys = $MODEL_TECH/../synopsys modelsim_lib = $MODEL_TECH/../modelsim_lib

ModelSim入门指导答辩

QUESTA-SIM(QuestaSim)10.2入门指南平台 软件:Questa-Sim 10.2 版本Starter Edition,也适用于高版本的ModelSim软件。内容 一. 设计流程 典型设计流程包括如下所示: (1)设计输入 设计的行为或结构描述 (2)RTL仿真(ModelSim) 功能仿真 验证逻辑模型(没有使用时间延迟) 可能要求编辑设计 (3)综合 把设计翻译成原始的目标工艺 最优化——合适的面积要求和性能要求 (4)布局和布线 映射设计到目标工艺里指定位置 指定的布线资源应被使用 (5)门级仿真(ModelSim) 时序仿真 验证设计一旦编程或配置将能在目标工艺里工作 可能要求编辑设计 (6)时序分析 (7)验证合乎性能规范 可能要求编辑设计 (8)版图设计 (9)仿真版图设计 (10)在板编程和测试器件 使用QuestaSi/ModelSim仿真的基本流程为: 图1.1 使用QuestaSim仿真的基本流程 2 开始 1.1 新建工程 打开QuestaSim后,其画面如图2.1所示。

图2.1 QuestaSim画面 1. 创建工作目录E:/QuestaSim/, 在其路径下创建子文件夹/ip、/prj、/rtl、/tb, prj是QuestaSim工程主文件夹,ip是仿真模型目录,rtl 是代码目录,tb是testbench目录。 2. 选择File>New>Preject创建一个新工程。打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。一般情况下,设定Default Library Name为work。指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。该对话框如图2.2所示,此外还 允许通过修改初始化文件QuestaSim.ini文件来映射库设置。 图2.2 创建工程的对话框 2. 设置Project Name为BG0806,Project Location为E:/QuestaSim/prj, 勾选Copy Library Mappings ,点击OK。 3. 出现Add Items to the Project的对话框,如图2.3所示,

modelsim 使用指南

Modelsim使用简明指南 1 前言 作为一种简单易用,功能强大的逻辑仿真工具,Modelsim具有广泛的应用。这里对ModelSim作一个入门性的简单介绍。首先介绍ModelSim的代码仿真,然后介绍门级仿真和时序验证。 2 代码仿真 在完成一个设计的代码编写工作之后,可以直接对代码进行仿真,检测源代码是否符合功能要求。这时,仿真的对象为HDL代码,比较直观,速度比较快,可以进行与软件相类似的多种手段的调试(如单步执行等)。在设计的最初阶段发现问题,可以节省大量的精力。 2.1 代码仿真需要的文件 1.设计HDL源代码:可以使VHDL语言或Verilog语言。 2.测试激励代码:根据设计要求输入/输出的激励程序,由于不需要进行综合,书写具有很大的灵活性。 3.仿真模型/库:根据设计内调用的器件供应商提供的模块而定,如:FIFO(Altera常用的FIFO有:lpm_fifo /lpm_fifo_dc等)、DPRAM等。 2.2 代码仿真步骤 1.建立工程:在ModelSim中建立Project。如图2.1所示,点击File?New?Project,得到Creata Project的弹出窗口,如图2.2所示。在Project Name栏中填写你的项目名字,建议和你的顶层文件名字一致。Project Location是你的工作目录,你可通过Brose按钮来选择或改变。Ddfault Library Name可以采用工具默认的work。

图2.1 图2.2 2.给工程加入文件:ModelSim会自动弹出Add Items to the project窗口,如图2.3所示。选择Add Exsiting File后,根据相应提示将文件加到该Project中。 图2.3 3.编译:编译(包括源代码和库文件的编译)。编译可点击Comlile?Comlile All来完成。 4.装载文件:如图2.4,点击Simulate?Simulate…后,如图2.5所示,选定顶层文件(激励文件),ADD加入,然后点击LOAD,装载。

modelsim仿真详细过程

由于我们只需要了解仿真的完整过程,所以不需要自己写源文件和测试文件(也称为testbench)。一下就是简单的源文件和测试文件(亲自测试过)。 //源文件 module compare(equal,a,b); input a,b; output equal; assign equal=(a==b)?1:0; endmodule //测试文件 `timescale 1ns/1ns `include"./compare.v" module comparetest; reg a,b; wire equal; initial begin a=0; b=0; #100 a=0;b=1; #100 a=1;b=1;

#100 a=1;b=0; #100 $stop; end compare compare1(.equal(equal),.a(a),.b(b)); endmodule 有了源文件和测试文件下面就开始用modelsim进行仿真了。 步骤一:新建工程和.v文件(也就是源文件和测试文件) 打开modelsim软件,点击file,选择new—>project 然后就会弹出下面窗口: 然后在project name那一栏写上工程名(随便去,一般是字母),在project location选择工程路径(路径最好没有中文,听说的),然后点OK。进入下个界面:

然后点击小框里面的“create new file”.弹出界面: 在file name中写下源文件名,由于这是比较两数的大小,我取为:compare。在“add file as type”中选择verilog,点OK,然后有:

Modelsim 仿真步骤总结

Modelsim 仿真步骤总结 Modelsim 仿真主要有以下三个方面:各版本的方法大体一致。(1)建立库并映射库到物理目录; (2)编译源代码(包括testbench); (3)执行仿真; 下面具体演示每一步的操作方法及流程,为力求简洁,其中有多种操方法的只介绍一种。 一)建立库的演示: 步骤为——启动modelsim>点击file菜单>(Change Directory)>new>(project)>library.注括号内的步骤非必须。 1.1)启动modelsim; (1.2)点击file菜单,此时若需更改路径,可以点击其中的Change Directory.(注modelsim会自动默认路径。我们也可以在1.1步骤之前建立一个文件夹用于modelsim的工程,再将路径更改到我们新建的文件夹路径。)

(1.3)点击file子菜单中的new,选择project用于新建立一个modelsim工程。(虽然此步非必须,但是建立一个新工程有益 于接下来整个仿真文件的管理。)

1.4)点击file子菜单new,再点击new下的library,用于建立 一个库。(仔细观察1.3步,新建工程的同时亦可建立库)。 至此,modelsim仿真第一大步建立库的工作完毕。

二)编译源代码(包括testbench): 大家都已知道在quartus中编译源代码的方法,这里说明一下在modelsim中编译源代码及testbench的方法。 步骤为——建立一个新工程(同时建立库)后,会自动提示你四个选项。如图: 选create new file后提示对话框,(也可以在有源文件的情况下选择add existing file到工程中。例如我们用quartus写好文件后,可以用此方法将quartus中的文件添加到modelsim工程中来)让你命名你即将创建的新文件,完毕后,会自动出现一个空白的编辑窗口,在那里输入源代码和testbench。(提示:这样编写完后点保存,便可以直接保存到上面设臵好的work库中。比起另一种方法,不建工程直接建库,再通过菜单栏source添加源

ModelSim-Altera使用方法.pdf[1]

平台 软件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容 1 设计流程 使用ModelSim仿真的基本流程为: 图1.1 使用ModelSim仿真的基本流程 2 开始 2.1 新建工程 打开ModelSim后,其画面如图2.1所示。

图2.1 ModelSim画面 1. 选择File>New>Preject创建一个新工程。打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。一般情况下,设定Default Library Name 为work。指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。该对话框如图 2. 2所示,此外还允许通过选择.ini文件来映射库设置,或者将其直接拷贝至工程中。

图2.2 创建工程的对话框 2. 按照图2.3所示,设置Project Name为LED_FLOW,Project Location为D: /led_flow。 图2.3 输入工程信息 当单击OK按钮后,在主体窗口的下方将出现Project标签,如图2.4所示。

图2.4 Project标签 3. 之后,将出现Add Items to the Project的对话框,如图2.5所示。 图2.5 在工程中,添加新项目 2.2 在工程中,添加新项目 在Add Items to the Project对话框中,包括以下选项: ?Create New File——使用源文件编辑器创建一个新的Verilog、VHDL、TCL 或文本文件 ?Add Existing File——添加一个已存在的文件 ?Create Simulation——创建指定源文件和仿真选项的仿真配置 ?Create New Folder——创建一个新的组织文件夹 1. 单击Create New File。打开图 2.6所示窗口。

modelsim新手入门仿真教程

Modelsim新手入门仿真教程 1.打开modelsim软件,新建一个library。 2.library命名 3.新建一个工程。

3.出现下面界面,点击close。 4.新建一个verilog文件 键入主程序。下面以二分之一分频器为例。

文件代码: module half_clk(reset,clk_in,clk_out); input clk_in,reset; output clk_out; reg clk_out; always@(negedge clk_in) begin if(!reset) clk_out=0; else clk_out=~clk_out; end endmodule 编辑完成后,点击保存。

文件名要与module后面的名称相同。 5.再新建一个测试文件,步骤同上面新建的主程序文件,文件名后缀改为.vt 程序代码如下: `timescale 1ns/100ps `define clk_cycle 50 module top; reg clk,reset; wire clk_out; always #`clk_cycle clk=~clk; initial

begin clk=0; reset=1; #10 reset=0; #110 reset=1; #100000 $stop; end half_clk m0( .reset(reset), .clk_in(clk), .clk_out(clk_out)); Endmodule 6.添加文件,编译文件 先右键点击左边空白处,选择add to project→existing File 选择刚刚新建的两个文件。按ctrl键可以同时选择两个,选择打开,下一步点击ok

ModelSim_使用(原创)

ModleSim-Altera 使用流程: 通过quatusll 打开modlesim 的方法 配置生成仿真文件环境 1.Assignments -- settings 2.EDA Tool Settings --simulation -- Tool Name: ModleSim-Altera 3. Format For output netlist --Verilog HDL 4.Time scale : 1ps 也可以指定别的量级 5.output directory :指定测试文件模板生成路径该路径是相对路径 生成仿真文件 1. 生成仿真文件模板:Processing -- Start --Start Tesst Bench Template Writer --提示生成成功 (会在工程文件 modelsim 下的目录找到后缀名为 vt 的 文件) 2. 根据自己想要的条件对模板进行编辑。 配置仿真环境 (指定那个是仿真文件) 0.首先复制一下 仿真 文件 module 关键字后面的 模块名 比如 module key_vlg_tst().. 复制 key_vlg_tst 1.Assignments -- settings 2.EDA Tool Settings -- simulation --NativeLink settings --Compile test bench --点击 后方 test benches 3. new 4.Test bench name :key_vlg_tst(刚才赋值的仿真模块名) | Top level module in test bench : key_vlg_tst(一样) 5.勾选 use est bench to pergorm VHDL timing simulaion -- Design instance name in test bench :填写 i1 6.file name --浏览 找到上面创建的仿真文件 --add 进行仿真 Tool -- Run EDA Simulation Too -- EDA RTL Simulation 稍微等一下 就可以看见相应的仿真波形图。通过modlesim 打开 test bench 进行仿真的方法 1. 通过trascript 栏中 cd 到我的工程目录下面 比如:cd E:/icore3/icore3_fpga/mytest2/simulation 注意: 在modlesim 中用 / 作为分隔符 2. 新建立一个文件夹 mkdir test :这个时候就会出现一个test 文件夹 可以通过 ls -l 3. file - new project -- project name: work 随便选 比如 work 4. add Existing file -- 添加你想要进行仿真的test bench 文件 一般将该文件放在 放在 src 文件下 ,以顶层_tb 的方式进行命名。 比如有一个 顶层为key.v 文件 那么我会在放同一个目录下面 命名一个 key_tb.v 文件写test bench -- OK -- close 注 :在进行这一步的时候 你已经写好test bench 了 5.右键添加的 .v 文件 然后进行编译 ,看报错情况并进行修改,双击错误的地方,可以查看错误的位置和信息,最后compile all 通过方可停止。w a j a

ModelSim新手使用手册

ModelSim最基本的操作,初次使用ModelSim的同学,可以看看,相互学习。 无论学哪种语言,我都希望有个IDE来帮助我创建一个工程,管理工程里的文件,能够检查我编写代码的语法错误,能够编译运行出现结果,看看和预期的结果有没有出入,对于Verilog语言,我用过Altera的Quartus II,Xilinx的ISE,还有ModelSim(我用的是Altera 官网的ModelSim_Altera),甚至MAXPlus II,不过感觉这软件太老了,建议还是前三者吧。 学Verilog,找一本好书很重要,参考网友的建议,我也买了一本夏宇闻老师的《Verilog 数字系统设计教程》,用Quartus II来编写代码,个人觉得它的界面比ISE和ModelSim友好,我一般用它编写代码综合后自动生成testbench,然后可以直接调用ModelSim仿真,真的很方便,但学着学着,发现夏老师书里的例子很多都是不可综合的,比如那些系统命令,导致很多现象都发现不了,偶然间我直接打开了ModelSim,打开了软件自带的英文文档,步骤是:Help ->PDF Documentation->Tutorial如下所示: 打开文档的一部分目录: 往下读发现其实ModelSim可以直接创建工程,并仿真的。下面以奇偶校验为例叙述其使用过程(当然前提是你在Altera官网下载了ModelSim并正确安装了)。 1.打开软件,新建一个工程,并保存到自定义的目录中(最好别含中文路径) 2.点击Project,弹出窗口问是否关闭当前工程,点击Yes,接着又弹出如下窗口

我个人的习惯是把Project Name和Default Library Name写成一样,自己定义Project Location。又弹出如下窗口: 3.点击Close(我的版本不能Create New File,其实新建好了工程一样可以新建.v文件),然后点击屏幕下方的Project标签: 如果一开始不是如上图所示的界面,那么可以点击如下图所示红色标记的按键变成上图界面:

利用ModelSim进行的功能仿真,综合后仿真,时序仿真

利用ModelSim进行的功能仿真,综合后仿真,时序仿真 功能仿真,就是在理想状态下(不考虑延迟),验证电路的功能是否符合设计的要求。 功能仿真需要: 1.TestBench或者其他形式的输入激励 2.设计代码(HDL源程序) 3.调用器件的模块定义(供应商提供,如FIFO,RAM等等) 值得一提的是,可以在ModelSim直接编写TestBench,使用View->Source->Show language templates. 综合后仿真(门级仿真),实际上就是将对综合后的门级网表进行仿真,只考虑门延迟,而没有加入时延文件。在功能仿真之后检验综合的结果是否满足功能要求。 综合后仿真需要: 1.综合后的门级网表,注意这里变成了*.vo文件,而不是原来功能仿真中所需要的HDL源代码. 2.测试激励 3.元件库Altera的仿真库位置为 *:\altera\quartus\eda\sim_lib 所谓时序仿真,就是在综合后仿真的基础上加上时延文件(sdf文件),综合考虑了路径延迟和门延迟的情况,验证电路是否存在时序违规。 时序仿真需要: 1.综合后的门级网表,注意这里变成了*.vo文件,而不是原来功能仿真中所需要的HDL源代码. 2.测试激励 3.元件库Altera的仿真库位置为 *:\altera\quartus\eda\sim_lib 4.较门级仿真还需要具有包含时延信息的反标记文件*.sdf 可以有两种方法实现门级仿真,或时序仿真。

1.工程编译成功后,自动启用ModelSim来运行门级仿真,前提是要在Quartus II的Options中设置好ModelSim的路径(和有些参考PDF上说的环境变量好像无关,至少我用的Quartus II 9.0 Web Edtion是这样的)具体方法是,进入Quartus9.0->Tools->Options,在Categroy里选中General 下的EDA Tool Options,在ModelSim右边的Location of Executable中双击来改变路径,就并且在工程中设置了自动启动ModelSim,就可以自动启用了。 1.在EDA Tool Settings,首先将仿真工具设置为ModelSim,然后点击让它自动启动。 2.NativeLink settings中选择testbench,完成相关的设置,例如test bench name,top level module in test bench,Design instance name in test bench,仿真时间,然后编译时会自动启动ModelSim然后完成所有操作,大概这就是Altera所指的和很多EDA工具的无缝连接。 另外一种方法,则是现在quartus ii中生成门级网表和延时文件,然后调用ModelSim进行仿真 1.在quartus ii设置仿真工具为ModelSim,这样设置完成后,在当前目录下会生成一个simulation的目录,该目录下有一个simulation文件夹,里面包含了网标文件和时延反标文件,vhdl语言对应的是网表文件为*.vho,时延文件为*.sdo。Verilog则为*.vo,*.sdo。 2.建立库并映射到物理目录,编译TestBench,执行仿真。 对库的理解: 我想所谓库,实际上就是一个代替文件夹的符号,区别就是,库中的文件的表述皆是经过了编译的实体或者module,一切操作都在库中进行。 ModelSim有两种库,一种是资源库,一种是工作库(默认名为work,保存当前工程下已通过编译的所有文件,资源库放置work库已编译文件所要调用的资源)。所以编译前,一定要有work库,而且只能有一个。

modelsim详细使用教程(一看就会)

Modelsim详细使用方法 很多的modelsim教程中都讲得很丰富,但忽视了对整个仿真过程的清晰解读,而且都是拿counter范例举例子,有些小白就不会迁移了。这里我们着眼于能顺利的跑通一个自己写的程序,一步一步的讲解,如果你是一个初学者,这再适合你不过了,虽然貌似字写得比较多,那是因为写得相当的详细,一看就会啦O(∩_∩)O~ 一、建立工程 1、在建立工程(project)前,先建立一个工作库(library),一般将这个library命名为 work。尤其是第一次运行modelsim时,是没有这个“work”的。但我们的project 一般都是在这个work下面工作的,所以有必要先建立这个work。 File→new→library 点击library后会弹出一个对话框,问是否要创建work,点击OK。就能看见work.

2、如果在library中有work,就不必执行上一步骤了,直接新建工程。 File→new→project 会弹出 在Project Name中写入工程的名字,这里我们写一个二分频器,所以命名half_clk,然后点击OK。 会出现

由于我们是要仿一个自己写的程序,所以这里我们选择Create New File。 在File Name中写入文件名(这里的file name和刚刚建立的project name可以一致也可以不一致)。注意Add file as type 要选择成Verilog(默认的是VHDL),然后OK。 发现屏幕中间的那个对话框没有自己消失,我们需要手动关闭它,点close。 并且在project中出现了一个half_clk.V的文件,这个就是我们刚刚新建的那个file。 这样工程就建立完毕了。 二、写代码: 1、写主程序:双击half_clk.v文件会出现程序编辑区,在这个区间里写好自己 的程序,这里我们写一个简单的二分频的代码: module half_clk_dai( clk_in, rst, clk_out ); input clk_in; input rst;

modelsim建库流程_vip

Modelsim建库流程 ——在已有的IEEE库中加入新的库文件 1.将所需要的库对应的vhd文件拷贝至C:\Actel\Libero_v9.0\Model\vhdl_src\ieee 文件夹下; 2.确保modelsim不是处于仿真状态下: 3.编译库中的文件,首先需要选中库,确认如下

4.可以在vhdl模块中调用ieee.math_utility_pkg文件了。 采用上述方法,可以加入math_utility_pkg和fixed_pkg等vhdl-93中没有包括的库文件,增加vhdl语言支持的综合功能。 5.点击modelsim项目文件中的presynth.mpf文件,可以打开这个modelsim项目,然后可 以对所有文件进行编译、仿真等操作。 6.对于定点数运算,需要以下两个库: math_utility_pkg.vhdl - Types used in the fixed point package fixed_pkg_c.vhdl - Fixed-point package (VHDL-93 compatibility version) 而这两个库中又会调用floatfixlib库:这个库包含Actel/Libero_v9.1/Model/vhdl_src/floatfixlib 目录下的三个文件:fixed_pkg_c.vhd, float_pkg_c.vhd, math_utility_pkg.vhd,也就是说,要用这三个文件生成floatfixlib库。 ---------------------------------------------------------------------- Modelsim仿真流程-经验总结 7.Modelsim简介 略。 2.modelsim仿真流程:modelsim基本的仿真流程包括建立库、建立工程并编译、仿真、调试、但在libero环境中运行modelsim时,软件自动映射库和生成工程文件。其中功能仿真、综合仿真以及后仿真分别映射presynth、postsynth和postlayout库。 基本流程是:建立工作库→编译源代码→启动仿真→分析、调试。 8.建立库并映射

如何能从Quartus II中调用Modelsim进行仿真

如何从Quartus II中调用Modelsim进行仿真 --穆永强版本说明:Quartus II 11.0版本;ModelSim-Altera 6.6d版本。 一、设置第三方EDA工具 在Tools -> Options中设置ModelSim的安装路径,注意要设置到win32文件夹(64位软件对应的就是win64)。 在Assignments -> Settings中设置仿真工具为ModelSim。这样Quartus就能无缝调用ModelSim了。

二、编写Testbench 我们可以通过Quartus自动生成一个Testbench的模板,选择Processing -> Start -> Start Test Bench Template Writer,等待完成后打开刚才生成的 Testbench,默认是保存在simulation\modelsim文件夹下的.vt格式文件。

打开vt文件后可以看到Quartus已经为我们完成了一些基本工作,包括端口部分的代码和接口变量的声明,我们要做的就是在这个做好的模具里添加我们需要的测试代码。 一个最基本的Testbench包含三个部分,信号定义、模块接口和功能代码。 ‘timescale 1ns/ 1ps表示仿真的单位时间为1ns,精度为1ps。想要进行仿真首先要规定时间单位,而且最好在Testbench里面统一规定时间单位,而不要在工程代码里定义,因为不同的模块如果时间单位不同可能会为仿真带来一些问题,而timescale本身对综合也就是实际电路没有影响。

其实Testbench本身可以看做一个模块或者设备(本例中的模块名为 add_vlg_tst),和你自己编写的模块进行通信。通过Testbench模块向待测模块输出信号作为激励,同时接收从待测模块输出的信号来查看结果。因此,在待测模块中的reg型信号在Testbench中就变成了wire,待测模块中的wire型信号在Testbench 中则对应为reg型。那么inout怎么办呢,inout型信号也要设成wire,同时要用一个reg型信号作为输出寄存器,同时设置一个三态门,由一个使能信号控制,如:assign inout_sig = out_en ? out_reg : 1’bz;

相关主题