• ModelSim-Altera版本仿真流程


    ModelSim-Altera版本仿真流程

    1、建立ModelSim-Altera工作环境

    1.1版本说明

    ModelSim-Altera(OEM)version 6.4a

    QuartusII version 9.0

    该ModelSim版本支持所有QuartusII支持的Altera器件。

    1.2要自动从Quartus II运行EDA设计输入、综合、仿真或者时序分析工具,您必须指定第三方EDA工具的可执行文件位置,通过单击Tools菜单上的Options供然后点击EDA Tool Options选项。

    2、用ModelSim-Altera建立工程

    2.1 如果要执行时序仿真,需要产生Verilog(.vo)或者VHDL(.vho)输出文件。

    a. 选择EDA Tool Settings

    b. 用QuartusII编译设计文件

    注:如果已经编译过设计,要重新产生.vo、.vho和.sdo(标准延迟输出文件)的话,只需要运行Start EDA Netlist Writter即可。同时也可以用于产生.vcd文件。

    如果要执行功耗估算,确保在Simulator Settings下的Settings对话框选择合适的参数。

    2.2 启动Modelsim软件,选择工程目录:File—>Change Directory.

        注:如果要执行功能仿真,工程目录就是包含设计文件的目录;

        如果要进行时序仿真,工程目录务必设在包含.vo、.vho和.sdo的目录下。

    2.3 创建新的工作库:

        a. File—>New—>Library,出现创建新库的对话框

        b. 在Create选项下,选择a new library and a logical mapping to it.

        c.在Library Name中输入库的名称

        注:如果你想要脱离QuartusII独立运行Modelsim,库文件名必须是work如果是由QuartusII自动运行Modelsim,则库的名称被自动名为ModelSim_work,并且位于QuartusII的过程目录下。

    3、用ModelSim-Altera执行功能仿真

    3.1 编译Verilog或者VHDL文件和Test Bench文件(如果你使用testbench的话)

        a. Compile menu, 点击Compile.

        b. 在Library列表下选择work库

        c. 选择需要的Verilog或者VHDL文件

        注:如果选择.vo、.vho文件作为功能仿真的话,必须在下面操作前进行编译。

        d. 执行编译

        e. 重复上面操作,编译testbench文件

        f. 点击done完成。

    3.2 加载设计:

        a. 在Simulate菜单中,点击Simulate.出现Simulate对话框

        b. 如果要仿真Verilog HDL设计文件,指定ModelSim预编译库

            i. 点击Libraries标签

            ii.在Search Libraries (-L)中,点击Add选择适当的库

            iii. 点击OK完成

        c. 在Name 列表中,点击+展开work库,选择要仿真的顶层文件(一般是testbench)

        d. 点击OK完成

    3.3 在ModelSim中执行功能仿真

    4、用ModelSim-Altera执行时序仿真

    重要提示:强烈建议在进行RAM仿真时,将Time scale设置为飞秒ps级别!

    4.1 编译Verilog或者VHDL输出文件和testbench文件,方法同功能仿真。

    4.2 如果你的设计包含全局复位或者全局上电信号,并且还没这么做,可以在Verilog或者VDHL输出文件中建立这些信号。方法如下:

    对于Verilog,在仿真前,将下列代码加到testbench文件中:

    reg <device-wide reset>;
    reg <device power up>;
    initial
    begin
    <device power up> = 0;
    #<time> <device power up> = 1;

    对于VHDL,在仿真前运行下列命令:

    force /<design>/<entity>/<device power up> 0 0 ns 
    force <design>/<entity>/<device power up> 1 <time> ns 
    force /<design>/<entity>/<device-wide reset> 1 0 ns 

    注: <device-wide reset> 是全局复位信号名称,<device power up> 是全局上电信号,<time> 是一个时间值,它介于0和实际开始仿真的时间之间。

    4.3 在Simulate菜单中,点击Simulate.出现Simulate对话框

    4.4 如果是仿真verilog语言,点击verilog标签,在Pulse Options中的Error Limit 和Rejection Limit中填入0.

    4.5 如果仿真的是VHDL设计,指定.sdo标准延迟文件:

        a. 点击SDF标签,点击ADD

        b. 在Add SDF Entry对话框中,点击Browse,出现Select SDF File对话框

        c. 选择标准延迟输出.sdo文件

        注:如果使用的是test bench文件作为设计的激励,那么在Apply to region 框中,从顶层设计文件开始,将路径指向test bench中的instance

    4.6 如果仿真的是verilog设计,要指定预编译库(ModelSim precompiled libraries

        a. 点击Library标签,在Search Libraries (-L)中,点击Add.

        b. 指定目录<ModelSim-Altera install directory>alteraverilog<device family>,点击OK;

    4.7 点击Design标签,在Name列表中,点击+展开work库,并选择标准延时输出文件对应的设计实体(entity),点击OK完成。

    4.8 如果要仿真高速电路(包括HSSI, LVDS, PLLs等),点击Others标签,在Other vsim options中输入+transport_int_delays +transport_path_delays,点击OK完成;

    4.9 要直接从ModelSim中生成.vcd(Value Change Dump File)文件用于QuartusII中PowerPlay Power Analyzer分析,可以在ModelSim中输入命令:

    source <test bench or design instance name>_dump_all_vcd_nodes.tcl

    4.10 Tcl脚本文件指示ModelSim-Altera监视Tcl脚本文件中的输出信号并在仿真过程中写入到.vcd文件中去。

    4.11 在ModelSim-Altera进行时序仿真。

    重要提示:强烈建议在进行RAM仿真时,将Time scale设置为飞秒ps级别!

    个人使用心得

    ★RTL仿真

        这个仿真过程最简单,不需要综合,也不需要经过布局布线,只需要编写好设计文件,和testbench文件直接导入ModelSim里边编译仿真即可。同时对于Verilog语言,需要选择相应的RTL仿真库。主要的RTL仿真库如下表:

    ★综合后仿真(功能仿真)

    注:此过程需要在综合后才能进行。需要的是Verilog输出文件,而不是设计文件!同时对于仿真库而言,用到的是门级仿真库,而不是RTL仿真库(也就是器件对应系列的仿真库)。常用的门级与编译仿真库如下:

    1、步骤:选目录—>建库—>编译—>仿真

    1.1    目录选在QuartusII产生的EDA网表目录下,路径:<工程目录>simulationmodelsim,这样做是为了方便文件的调用;

    1.2    在此目录下建库。为了独立于QuartusII工作,库名必须是work;

    1.3    编译文件。一般来说都使用testbench,因此可以使用(.vo+.vt)结合的方法进行仿真,.vo是verilog输出文件,.vt是verilog测试文件;若是VHDL则分别是.vho和.vht。编译顺序最好是先输出文件(.vo、.vho文件)再是测试文件(.vt、vht文件)

    1.4    开始仿真。如果用到相关的LPM、MF或者IP等,要添加相应的预编译仿真库。在Library—>Search Libraries(-L)中点击Add添加。然后在Design—>Name—>work下选中仿真顶层文件,有testbench的话一般就选testbench。

    2、关于QuartusII自动生成的testbench文件

        QuartusII自动生成的testbench文件中包含一个全局寄存器eachvec,其包含一个语句@eachvec,记得把它注释掉,否则可能会因为它没有触发而导致仿真失败。

    ☆在QuartusII中自动生成仿真网表:Assignments->EDA Tool Settings

    ☆在QuartusII中自动生成TsetBench:Processing->Start->Start Test Bench Template Write

    ★门级仿真(时序仿真)

        ModelSim的时序仿真跟功能仿真基本一致,但要注意下面几点区别:

        1、如果包含全局复位或者全局上电信号,需做相应处理,具体看前文;

    2、对Verilog程序进行仿真时,则无需添加.sdo文件,Verilog是通过添加预编译库自动调用.sdo文件的。同时,在Pulse Options中的Error LimitRejection Limit中输入0;

    3、对VHDL文件进行时序仿真时,必须要添加.sdo文件,同时在Apply to region中将其指定到testbench中对应的模块;

    关于testbench

    在testbench中,每个连续的信号最好是用独立的always语句来描述,否则可能发生冲突导致仿真出错。

    使用QuartusII自动运行ModelSim仿真

    首先注意几点:

    1、切记用Modelsim仿真时路径不能包含汉字!!!

    2、要再次仿真时,确保前一次仿真的ModelSim程序已经退出,否则会报类似下面的错误!

    3、产生上面错误的原因也可能是使用了不支持RTL级仿真的IP核,但是不影响时序仿真。

    4、用波形文件产生testbench文件时,最好只有输入信息,不要包含任何输出信息;

    下面是操作方法:

    1、配置NativeLink

    1.1 进入EDA Tool Settings,在EDA Tool Settings中选择Simulation,如图:

    1.2 在simulation右侧对话框配置如下(Verilog):

    ☆如果要编译后自动运行门级仿真,可以勾选Run gate-level simulation after complilation.

    1.3 编译testbench文件

    在NativeLink settings中点击Test Benches,出现对话框中点击New,出现如下对话框:

    Testbench name中可以随便填一个名字,是指定当前Testbench文件的别名;

    Top level module in test bench中填的是Testbench中要仿真的顶层模块;

    Design instance name in test bench:填上Testbench中顶层模块对源程序的实例化名。

    在Test bench files拦中添加对应的Testbench文件,点击Add添加,再点击OK完成配置。

    2、运行仿真

    如果要手动进行仿真,也可以在QuartusII中调用Modelsim,方法如下:

    其中,RTL Simulation是寄存器传输级仿真,它是理想化的仿真,不包含任何延时信息,通常用作功能检验,也称作前仿真或功能仿真;

    Gate-Level Simulation是门级仿真,通常也称为后仿真或时序仿真,它包含逻辑电路、布局布线等延时信息,是对真实电路情况的仿真。要仿真门级仿真,需要在Fitter之后进行。

    3、产生Testbench

    从QuartusII中产生Testbench,有两种方法:

    (1)从波形文件导出,方法如下:

    打开波形仿真文件,编辑输入信息,

    点击Flie—>Export,直接导出即可。

    (2)也可以利用QuartusII产生Testbench模板,再自行输入测试信息。


    摘自文档:

     About Usingthe ModelSim Software with the Quartus II Software

                                                                                                              Author: Kerwin. Xie

  • 相关阅读:
    LibreOJ 6003. 「网络流 24 题」魔术球 贪心或者最小路径覆盖
    LibreOJ #6002. 「网络流 24 题」最小路径覆盖
    LibreOJ #6000. 「网络流 24 题」搭配飞行员 最大匹配
    LibreOJ 2003. 「SDOI2017」新生舞会 基础01分数规划 最大权匹配
    hdu 1011 Starship Troopers 树形背包dp
    Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland dfs
    hdu 6199 gems gems gems dp
    hdu 5212 Code 筛法或者莫比乌斯
    hdu 3208 Integer’s Power 筛法
    hdu 5120 Intersection 两个圆的面积交
  • 原文地址:https://www.cnblogs.com/time93/p/9347564.html
Copyright © 2020-2023  润新知