modelsim 订阅
Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。 展开全文
Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。
信息
领    域
计算机软件
开发商
Mentor公司
性    质
HDL语言仿真软件
外文名
ModelSim
modelsim主要特点
· RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;· 单内核VHDL和Verilog混合仿真;· 源代码模版和助手,项目管理;· 集成了性能分析、波形比较、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;· C和Tcl/Tk接口,C调试;· 对SystemC的直接支持,和HDL任意混合;· 支持SystemVerilog的设计功能;· 对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;· ASIC Sign off。· 可以单独或同时进行行为(behavioral)、RTL级、和门级(gate-level)的代码。
收起全文
精华内容
下载资源
问答
  • ModelSim

    千次阅读 2016-11-12 10:33:00
    VHDL学习之路——工具篇——modelsim-win64-10.1c的安装和基本使用 现在好多同学的操作系统都是64位的win8或者win10系统,在学习vhdl,安装软件时可能会遇到一些问题,下面我将介绍一些软件的安装以及基本...

    VHDL学习之路——工具篇——modelsim-win64-10.1c的安装和基本使用

    现在好多同学的操作系统都是64位的win8或者win10系统,在学习vhdl,安装软件时可能会遇到一些问题,下面我将介绍一些软件的安装以及基本使用的知识,希望能够帮到大家~

    (1)modelsim-win64-10.1c的安装

    我使用的系统是win10 64位专业版,在我的机器上成功安装并运行了modelsim,下面我说一下安装方法
    1        运行modelsim-win64-10.1c-se.exe安装软件(软件和破解包下载地址:http://pan.baidu.com/s/1kUz6zVT);
              注意事项:安装路径可自行设置,但不要出现汉字,(本例:D:\modeltech64_10.1c)
    2        安装过程中一直选择yes即可,最后reboot(重启)询问选YesNo似乎都可以,我在安装的过程中选择的是No,即我没有重启系统;
    3        将解压的破解文件(MentorKG.exepatch_dll.bat)复制到安装目录下的win64文件夹中。(本例:D:\modeltech64_10.1c\win64文件夹中);
    4        进入安装目录下的win64文件夹找到mgls.dll mgls64.dll两个文件,去掉只读属性;
    5        运行patch_dll.bat,稍等一段时间后即可生成一个TXT文本,将其另存为LICENSE.TXT,另存路径选择你安装目录的win64文件夹下;(本例:D:\modeltech64_10.1c\win64文件夹中)
    6        恢复mgls.dllmgls64.dll两个文件的只读属性;
    7        环境变量设置:win10中是这样的 这台电脑》右键选择【属性】》【高级系统设置】》【环境变量】点击【新建】打开编辑对话框,【变量名】命名为MGLS_LICENSE_FILE【变量值】为你LICENSE.TXT的文件路径,
    (本例变量值  D:\modeltech64_10.1c\win64\LICENSE.TXT)
    win10环境变量页面有用户变量和系统变量两个环境变量,我是选择两个都设置了。
    8   运行一下程序试试看吧~
     
    (2)软件的基本使用
    新建工程以及实验的相应代码都在老师的ppt中给出了,敲进去就可以了(注意不要敲错喽)。
    举例说明一下:
    1、比如lab1的第一题,是仿真一个加法器,那么就需要一个adder.vhd的源程序,为了模拟信号输入,还需要testbench,我有在同一个工程中创建了一个名为testbench.vhd的源程序,并将ppt中的代码写进去。文件结构如下:
     
     
    2、点击“compile”——“compile all”编译这两个文件,如果绿颜色的提示“# Compile of adder.vhd was successful.# Compile of testbench.vhd was successful with warnings.# 2 compiles, 0 failed with no errors.”,就是没有错误,此时点击上图中的“library”切换视图,展开“work”工作目录,就可以看到如下图:
     
     
    3、在testbench上面点击右键,选择第一个“simulate”,如下图:
     
     
    4、就可以看到仿真的界面了,离成功就差一步喽:
     
     
    5、如果“Objects”栏中看不到任何变量,那么尝试一下下面的方法:
    在编译成功后,进行仿真时,不直接右键选择“simulate”,而是点击工具栏中的“simulate”按钮,或用菜单中的命令“simualte->start simulation”调出start smulation窗口,关键是把窗口中最下边optimization栏中的Enable optimization项目前的钩钩去掉,然后选择仿真的文件,点击OK,就一切正常了,能看到objects了。
    6、如果可以看到“Objects”中的变量,那么全选,右键,选择“add wave”,如下图:
     
     
    7、然后点击下图的按钮,进行波形仿真输出:
     
     
    8、这样就可以看到波形啦,大功告成(千里之行开始啦~)
     
     
    综上:
    这是我写实验时遇到的问题,成功解决后写的心得,希望可以帮到大家,之后还会写一些具体的知识讲解,希望大家多多支持!
     
    (作者:yang_zcybb,博客地址:http://www.cnblogs.com/yang-zcybb/,交流邮箱:yang_zcybb@126.com)
    (如需转载,请注明作者信息和出处,谢谢~)
    展开全文
  • Modelsim

    2015-04-29 08:42:18
    一、 Modelsim简介  Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻...

    一、 Modelsim简介

        Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。

        对于初学者,modelsim自带的教程是一个很好的选择,在Help->SE PDF Documentation->Tutorial里面.它从简单到复杂、从低级到高级详细地讲述了modelsim的各项功能的使用,简单易懂。但是它也有缺点,就是它里面所有事例的初期准备工作都已经放在example文件夹里,直接将它们添加到modelsim就可以用,它假设使用者对当前操作的前期准备工作都已经很熟悉,所以初学者往往不知道如何做当前操作的前期准备。

     

    二、 安装

      同许多其他软件一样,Modelsim SE 同样需要合法的License,通常我们用Kengen产生license.dat。

    1 解压安装工具包开始安装,安装时选择Full product安装。当出现Install Hardware Security Key Driver时选择否。当出现Add Modelsim To Path选择是。出现Modelsim License Wizard时选择Close。

    2 在C盘根目录新建一个文件夹flexlm,用Keygen产生一个License.dat,然后复制到该文件夹下。 若License通过,但是打开ModelSim仍出错,则将系统时间调到2008年之前,重新生成License,再将时间调回来即可。

    3 修改系统的环境变量。右键点击桌面我的电脑图标,属性->高级->环境变量->(系统变量)新建。按下图所示内容填写,变量值内如果已经有别的路径了,请用";"将其与要填的路径分开。LM_LICENSE_FILE = c:\flexlm\license.dat

    4 安装完毕,可以运行。

     

    注意:1、电脑的用户名不能为中文;

            2、安装路径不能出现中文和空格,只能有数字、英文字母和下划线"_"组成;

            3、若计算机还需要使用ModelSim-Altera 6.4a (Quartus II 9.0),可不需做任何额外的设定,ModelSim SE 6.3g会自动抓到这个系统变量,并使用这个license file;反之亦然。 

    图1 设置modelsim所需环境变量(用户)

     

    PS :建立 Quartus II 和 modelsim 的联系

    ①  完成上述工作之后需要在 Quartus II 中设置 modelsim 路径,Quartus II 菜单Tools ——>General——>EDA Tool Options,进行相关设置,如modelsim:C:\Modeltech_6.3g\win32  如图2所示。

    图2 设置modelsim路径

     

    ② 在Quartus II建立工程时,设置 modelsim 作为仿真软件,或者是在Assignments——>EDA Tool Settings进行设置。

     

    三、 Modelsim仿真方法

    Modelsim的仿真分为前仿真和后仿真,下面先具体介绍一下两者的区别。

    3.1 前仿真

      前仿真也称为功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致。可综合FPGA代码是用RTL级代码语言描述的,其输入为RTL级代码与Testbench.

    3.2 后仿真

      后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。其输入文件为从布局布线结果中抽象出来的门级网表、Testbench和扩展名为SDO或SDF的标准时延文件。SDO或SDF的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。一般来说后仿真是必选的,检查设计时序与实际的FPGA运行情况是否一致,确保设计的可靠性和稳定性。选定了器件分配引脚后在做后仿真。

    3.3 Modelsim仿真的基本步骤

    Modelsim的仿真主要有以下几个步骤:

    (1)建立库并映射库到物理目录;

    (2)编译原代码(包括 Testbench);

    (3)执行仿真。

    上述3个步骤是大的框架,前仿真和后仿真均是按照这个框架进行的,建立modelsim工程对前后仿真来说都不是必须的。

    3.3.1建立库

      在执行一个仿真前先建立一个单独的文件夹,后面的操作都在此文件下进行,以防止文件间的误操作。然后启动Modelsim将当前路径修改到该文件夹下,修改的方法是点File->Change Directory选择刚刚新建的文件夹见下图。

    图3 新建文件夹

     

      做前仿真的时候,推荐按上述建立新的文件夹。

      做后仿真的时候,在 Quartus II 工程文件夹下会出现一个文件夹:工程文件夹\simulation\modelsim,前提是正确编译 Quartus II 工程;因此,不必再建立新的文件夹了。

     

      仿真库是存储已编译设计单元的目录,modelsim 中有两类仿真库,一种是工作库,默认的库名为work,另一种是资源库Work库下包含当前工程下所有已经编译过的文件。所以编译前一定要建一个work库,而且只能建一个work库。资源库存放work库中已经编译文件所要调用的资源,这样的资源可能有很多,它们被放在不同的资源库内。例如想要对综合在cyclone芯片中的设计做后仿真,就需要有一个名为cyclone_ver的资源库。

      映射库用于将已经预编译好的文件所在的目录映射为一个modelsim可识别的库,库内的文件应该是已经编译过的,在Workspace窗口内展开该库应该能看见这些文件,如果是没有编译过的文件在库内是看不见的。

     

      建立仿真库的方法有两种。一种是在用户界面模式下,点File->New->Library出现下面的对话框,选择a new library and a logical mapping to it,在Library Name内输入要创建库的名称,然后OK,即可生成一个已经映射的新库。另一种方法是在Transcript窗口输入以下命令:

    vlib work

     

    vmap work work

     

    图4 建立仿真库

     

      如果要删除某库,只需选中该库名,点右键选择Delete即可。

      需要注意的是不要在modelsim外部的系统盘内手动创建库或者添加文件到库里;也不要modelsim用到的路径名或文件名中使用汉字,因为modelsim可能无法识别汉字而导致莫名其妙的错误。

    3.3.2编写与编译测试文件

        在编写Testbench之前,最好先将要仿真的目标文件编译到工作库中,点Compile->Compile或 ,将出现下面的对话框,

     图5 编译目标文件

     

      在Library中选择工作库,在查找范围内找到要仿真的目标文件(Library选择刚才建立的库,查找范围选择目标文件所在的文件夹),然后点Compile和Done;或在命令行输入vlog Counter.v。此时目标文件已经编译到工作库中,在Library中展开work工作库会发现该文件。  

        当对要仿真的目标文件进行仿真时需要给文件中的各个输入变量提供激励源,并对输入波形进行的严格定义,这种对激励源定义的文件称为Testbench,即测试台文件。下面先讲一下Testbench的产生方法。

        方法一:我们可以在modelsim内直接编写Testbench,而且modelsim还提供了常用的各种模板。具体步骤如下:

        ⑴ 执行File->New->Source->verilog,或者直接点击工具栏上的新建图标,会出现一个verilog文档编辑页面,在此文档内设计者即可编辑测试台文件。需要说明的是在Quartus中许多不可综合的语句在此处都可以使用,而且testbench只是一个激励源产生文件,只要对输入波形进行定义以及显示一些必要信息即可,切记不要编的过于复杂,以免喧宾夺主。

        ⑵ Modelsim提供了很多Testbench模板,我们直接拿过来用可以减少工作量。在verilog文档编辑页面的空白处右键点Show Language Templates然后会出现一个加载工程,接着你会发现在刚才的文档编辑窗口左边出现了一个Language Templates窗口,见下图。

    图6 应用模板生成 Testbench文件

     

    双击Creat Testbench会出现一个创建向导,见下图。

     图7 创建向导

     

    选择Specify Design Unit工作库下,work工作库下的目标文件,点Next,出现下面对话框: 

    图8 设置Testbench向导

     

      可以指定Testbench的名称以及要编译到的库等,此处我们使用默认设置直接点Finish。这时在Testbench内会出现对目标文件的各个端口的定义还有调用函数接下来,设计者可以自己往Testbench内添加内容了(有注释的为添加的内容),然后保存为.v格式即可。按照前面的方法把Testbench文件也编译到工作库中。

    图9 生成及修改后的Testbench文件

     

      方法二:在 Quartus II 内编写并编译 Testbench ,之后将 Testbench 和目标文件放在同一个文件夹下,按照前面的方法把 Testbench 文件和目标文件都编译到工作库中之后。

    PS:如果在工作库中没有该文件(在Testbench文件没有端口的情况下),则在Simulate——>Start Simulate卡片中去掉优化选项,如下图所示。之后再重新编译,即可在工作库中找到该文件。 

    图10 去掉优化选项

     

    3.3.3执行仿真

        因为仿真分为前仿真和后仿真,下面分别说明如何操作。

    ⑴ 前仿真

        前仿真,相对来说是比较简单的。在上一步我们已经把需要的文件编译到工作库内了,现在我们只需点simulate->Start Simulation或快捷按钮 会出现start simulate对话框。点击Design标签选择Work库下的 Testbench 文件,然后点 OK 即可,也可以直接双击 Testbench文件Counter_tb.v,此时会出现下面的界面。

    图11 start simulate

     

      在主界面中会多出来一个Objects窗口,里面显示 Testbench 里定义的所有信号引脚,在Workspace里也会多出来一个Sim标签。右键点击Counter_tb.v,选择Add->Add to Wave,如下图所示。然后将出现Wave窗口,现在就可以仿真了,见下图。

    图12 Wave窗口

     

        窗口里面已经出现了待仿真的各个信号,点 将开始执行仿真到100ns,继续点仿真波形也将继续延伸,见下图。

     图13 仿真波形

     

    若点 ,则仿真一直执行,直到点 才停止仿真。

    也可以在命令行输入命令: run @1000

    则执行仿真到1000ns,后面的1000也可以是别的数值,设计者可以修改。在下一次运行该命令时将接着当前的波形继续往后仿真。 至此,前仿真步骤完成。

    ⑵ 后仿真

      这里是采用的Cyclone ii做的一个counter的例子。

      后仿真与前仿真的步骤大体相同,只不过中间需要添加仿真库(和所选器件及所有IP Core相关)、网表和延时文件的步骤。

      后仿真的前提是quartus已经对要仿真的目标文件进行编译,并生成modelsim仿真所需要的.vo文件(网表文件)和.sdo文件(时延文件),具体操作过程又有两种方法,一种是通过Quartus调用Modelsim,Quartus在编译之后自动把仿真需要的.vo文件以及需要的仿真库加到modelsim中,操作简单;一种是手动将需要的文件和库加入modelsim进行仿真,这种方法可以增加主观能动性,充分发挥modelsim的强大仿真功能。

    ① 通过Quartus调用Modelsim

      使用这种方法时首先要对Quartus进行设置。 先运行Quartus,打开要仿真的工程,点菜单栏的Assignments,点EDA Tool settings,选中左边Category中的Simulation.,在右边的Tool name中选ModelSim(Verilog),选中下面的Run Gate Level Simulation automatically after complication.见下图。

    图14 对Quartus进行设置

     

      Quartus中的工程准备好之后点击start complication按钮,此时modelsim会自动启动,而quartus处于等待状态(前提是系统环境变量中用户变量中PATH要设置好modelsim安装路径,如:D:\Modeltech_6.3\win32)。在打开的modelsim的Workspace窗口中你会发现多了工作库和资源库,而且work库中出现了需要仿真的文件。Modelsim自动将quartus生成的.vo文件编译到work库,并建立相应的资源库。如图所示。

    图15 Quartus II 编译之后自启动modelsim

     

      观察库,可以发现,多了verilog_libs库、gate_work库和work库,但是在"工程文件夹\simulation\modelsim"下,只有verilog_libs和gate_work文件夹,为什么库里面却多了一个work库呢?而且gate_work库和work库文件内容相同!

      gate_work 库是Quartus II 编译之后自动生成的,而work库是modelsim默认库。仔细观察二者路径,二者路径相同,均为gate_work文件夹,可知 modelsim 将 gate_work 库映射到 work 库。因此,在后续的工作中操作gate_work 库或者 work 库都能得到正确结果。

      编写测试台程序Counter_tb.v ,最好放在生成的.vo文件所在的目录,以方便在需要手动仿真时使用。点Compile在出现的对话框中选中Counter_tb.v文件,然后点Compile按钮,编译结束后点Done,这时在Work库中会出现测试台文件。如下图所示。

    图16 编译测试文件

     

      点击simulate->Start Simulation或快捷按钮 会出现start simulate对话框。点击Design标签选择Work库下的Counter_tb.v文件,然后点击Libraries标签在Search Library中点击Add按钮,选择仿真所需要的资源库(如果不知道需要选择哪个库,可以先直接点Compile看出现的错误提示中说需要的库名,然后再重复上述步骤)见下图。

     图17 选择仿真所需要的资源库

     

      再点start simulate对话框的SDF标签。在出现的对话框的SDF File框内加入.sdo时延文件路径。在Apply To Region框内有一个“/”, 在“/”的前面输入测试台文件名,即“Counter_tb”,在它的后面输入测试台程序中调用被测试程序时给被测试程序起的名称,本例中为“DUT”,见下图。然后点OK。后面观察波形与前仿真步骤相同。

     图18 添加.sdo文件

     

    自动仿真和手动仿真的区别:

      这种方法比较简单,因为Quartus II调用Modelsim ,所以除了生成自动生成了modelsim仿真所需要的.vo文件(网表文件)和.sdo文件(时延文件)外,还生成了gate_work文件夹、verilog_libs文件夹;gate_work文件夹(可以叫工作库,也可以叫编译库)下存放了已编译的文件,verilog_libs文件夹下存放了仿真所需要的资源库,上例是cycloneii_ver库(文件夹)。而手动仿真则需要自己添加这些文件和库。具体如下。

    ② 手动仿真

      手动仿真需要自己添加文件和编译库,但可以充分发挥modelsim强大的仿真功能。操作时也要先对quartus进行设置,设置与前面相同只是不要选中Run Gate Level Simulation automatically after complication。然后启动modelsim,将当前路径改到"工程文件夹\simulation\modelsim"下。如下图所示。

    图19 启动modelsim

     

      相比①中,这里少了一些库(实际是verilog_libs库、gate_work库和work库),因此下面要添加一个库。新建一个库,此处默认库名为work,此时,"工程文件夹\simulation\modelsim"文件夹下出现了一个work文件夹,work库下面没有目标文件和测试文件,即work文件夹下没有任何文件,建库的目的就是将编译的文件都放在该库里,即放在该文件夹下。编译之前,还需要添加仿真所需要的资源库cycloneii_atoms(用到EP2C8),将D:\altera\90\quartus\eda\sim_lib目录下的cycloneii_atoms文件复制到.vo所在的目录,即"工程文件夹\simulation\modelsim"下。

      如果按照①中的方法编写testbench并同样放在.vo所在的目录,这时点Compile下的Compile或点 将会出现下面的对话框,将所选文件进行编译。

     图20 编译所需文件和资源库

     

      编译完成之后,work工作库下多了很多文件,同样work文件夹下也多了很多文件(夹),建库的目的可见一斑,其中有Counter_tb测试文件和counter目标文件。点击simulate->Start Simulation或快捷按钮 会出现start simulate对话框。这里和①相比只有Libraries标签在Search Library时不一样,其余2项都一样。Libraries标签在Search Library的设置如下图。

    图21 选择仿真所需要的资源库

     

    后面的观察波形步骤跟前面一样。

     

    四、观察波形的一些方法和技巧。

    4.1 手动创建输入波形(待定)

      对于复杂的设计文件,最好是自己编写testbench文件,这样可以精确定义各信号以及各个信号之间的依赖关系等,提高仿真效率。

    对于一些简单的设计文件,也可以在波形窗口自己创建输入波形进行仿真。具体方法是鼠标右击work库里的目标仿真文件counter.v,然后点create wave,弹出wave default窗口。如下图所示。

    图22 Add to Wave

     

      在wave窗口中选中要创建波形的信号,如此例中的CLK,然后右键点击,选择Create/Modify/Wave项出现下面的窗口:

    图23 设置输入波形

     

      在Patterns中选择输入波形的类型,然后分别在右边的窗口中设定起始时间、终止时间以及单位,再点Next出现下面的窗口,我们把初始值的HiZ改为0,然后修改时钟周期和占空比,然后点Finish。

    图24 设置输入波形

     

      接着继续添加其他输入波形,出现下面的结果。前面出现的红点表示该波形是可编辑的。后面的操作与用testbench文本仿真的方法相同 。

    图25 仿真波形

     

    4.2 观察特定信号波形

      如果设计者只想查看指定信号的波形,可以先选中objects窗口中要观察的信号,然后点右键选择Add to Wave->Selected signals,见下图,那么在Wave窗口中只添加选中的信号。 

    图26 查看特定信号波形

     

    4.3 保存和导入波形文件(待定)

      如果要保存波形窗口当前信号的分配,可以点File->Save,在出现的对话框中设置保存路径及文件名,保存的格式为.do文件。

    如果是想导出自己创建的波形(在文章最后有详细的解释)可以选择File->Export Waveform在出现的对话框中选择EVCD File并进行相关设置即可。

    如果导入设计的波形选择File->Import ECVD即可。

    4.4 Dataflow窗口观察信号波形

      在主界面中点View->Dataflow可以看到会出现dataflow窗口,在objects窗口中拖一个信号到该窗口中,你会发现在dataflow窗口中出现你刚才选中信号所在的模块,如果双击模块的某一引脚,会出现与该引脚相连的别的模块或者引线,见下图。

    图27 Dataflow窗口

     

      在dataflow窗口中点View->Show Wave,会在dataflow窗口中出现一个wave窗口,双击上面窗口中的某一模块,则在下面的wave窗口中出现与该模块相连的所有信号,如果已经执行过仿真,在wave窗口中还会出现对应的波形,见下图。

    图28 Dataflow窗口观察仿真波形

     

      在波形窗口中拖动游标,上面模块的引脚信号的值也会随着游标当前位置的改变而改变。

    如果要在modelsim中修改原设计文件,在文档页面点击右键,取消Read Only,即可修改,修改后继续仿真。如果想结束仿真可以点Simulate->End Simulation,或直接在命令行输入quit -sim,此时quartus也会显示结束所有编译过程。

     

    五、 一些说明

    关于在testbench里使用`timescale的问题

    `timescale 是编译器指令,用来定义时延精度和时延单位,命令格式为

       `timescale time_unit/time_precision

        其中time_unit定义时延单位,即后面模块中出现的时延数值的单位,time_precision定义时延精度。例如

       `timescale 1ns/100ps  表示时延单位为1ns,时延精度为100ps。

        如果后面有语句 #5.22 a=1;

        此时时延值5.22ns应该对应为5.2ns,因为精度为0.1ns。

    如果设计中多个模块带有自身的`timescale,编译时模拟器总是定义在所有模块的最小时延精度上,并且所有模块中的时延都自动地换算为到最小试验精度上。

      

     

     

    附录:

    Counter源代码:

     `timescale 1ns/100ps

     

     module Counter (

     input        CLK,

     input        RST_N,

     output [3:0] CNT

     );

     

     reg [3:0] cnt;

     assign CNT = cnt;

     always@(posedge CLK, negedge RST_N) begin

     if (!RST_N)

         cnt <= #5 4'h0;

     else

         cnt <= #0 cnt + 1'b1;

     end

     

     endmodule

     

     Counter_tb源代码:

    `timescale 1ns/100ps

     

    module Counter_tb  ;

     

      wire  [3:0]  CNT   ;

      reg    RST_N   ;

      reg    CLK   ;

      Counter 

       DUT  (

           .CNT (CNT ) ,

          .RST_N (RST_N ) ,

          .CLK (CLK ) );

    //http://wenku.baidu.com/view/cd93f34ecf84b9d528ea7a95.html     

     initial begin

     #0 CLK   = 1'b0;

        RST_N = 1'b0;

     #5 RST_N = 1'b1;

     end

     

     // 50MHz

     always #10 CLK = ~CLK;

     

    endmodule

    展开全文
  • modelsim

    2010-03-18 13:43:00
    在Vista系统中,装modelsim。首先,下载一个modelsim注册机,产生license.dat。将license.dat单独放在flexm的文件夹中。然后“我的电脑”--属性--高级--环境变量,新建文件变量名“lm_license..dat”,变量值为c:...

    在Vista系统中,装modelsim。

    首先,下载一个modelsim注册机,产生license.dat。将license.dat单独放在flexm的文件夹中。

    然后“我的电脑”--属性--高级--环境变量,新建文件变量名“lm_license..dat”,变量值为c:flexm/license.dat.

    然后确定就可以了。

    展开全文
  • modelsim KG

    2018-08-09 21:09:51
    用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim 破解用于modelsim ...
  • modelsim10.7

    2019-02-27 14:25:47
    Mentor, a Siemens business, has unveiled ModelSim 10.7, is unified debug and simulation environment gives today's FPGA designers advanced capabilities in a productive work environment. About Mentor ...
  • modelsim安装

    2016-04-15 21:32:51
    modelsim 仿真
  • modelsim10.6d & modelsim10.4

    2018-11-22 16:44:30
    都是在别的地方下载的资源要分都那么贵。自己搞一个1分的。内含modelsim10.6d & modelsim10.4 的下载链接请自行下载,有问题私信。
  • install modelsim

    2020-12-26 02:25:24
    <div><p>The pulpino require to install modelsim. Which modelsim do I install ModelSim*-Intel FPGA(https://www.altera.com/products/design-software/model---simulation/modelsim-altera-software.html) or ...
  • modelsim教程

    2018-11-28 21:45:24
    modelsim的使用方法 根据ppt的讲解 基本基本基本基本进行操作
  • modelsim软件

    2018-08-14 15:14:54
    Windows7的64位的modelsim软件,用于波形仿真,可以联合quartus。
  • modelsim使用教程

    2018-08-02 17:48:10
    modelsim使用教程,modelsim使用教程,modelsim使用教程,modelsim使用教程,
  • modelsim crack

    2016-07-21 10:04:56
    用于硬件开发仿真工具modelsim软件的破解文件
  • Modelsim issue

    2020-12-08 22:50:02
    Currently i have been working on PULPissimo installation and I have installed Modelsim 10.4d, since 10.6c wasn't available. Is there any probelm of using 10.4d version instead of 10.6c as the ...
  • modelsim常见问题

    2019-01-06 19:44:05
    modelsim常见问题,针对FPGA开发仿真中modelsIM常见的问题
  • MODELSIM破解

    2014-04-12 10:25:15
    用于modelsim的破解,s modelsim10.1的版本,喜欢的人可以下载看看哦
  • modelsim 教程

    2014-12-09 12:15:07
    modelsim 用于verilog or VHDL 设计仿真工具
  • Modelsim 10.1c

    2020-11-12 20:28:30
    Modelsim10.1c是用来编写Verilog HDL代码的IDE兼仿真平台,用于FPGA的开发
  • MODELSIM培训

    2011-11-28 15:53:58
    MODELSIM 培训
  • 初学modelsim

    2021-03-06 21:58:24
    modelsim初学前言一、编写一个按键控制流水灯程序二、编写modelsim驱动程序1.新建project2.仿真总结 前言 ModelSim 是一款功能强大的HDL语言仿真软件,该软件支持VHDL,Verilog,SystemVerilog等多种混合语言,拥有...

    前言

    ModelSim 是一款功能强大的HDL语言仿真软件,该软件支持VHDL,Verilog,SystemVerilog等多种混合语言,拥有易于使用,统一的调试和仿真环境,新版本对软件进行了全面升级和优化,提供全面完善以及高性能的验证功能,可以在不离开ModelSim环境的情况下编辑,重新编译和重新模拟,所有用户界面操作都可以编写脚本,模拟可以批量或交互模式运行。

    本文是我顺利的跑通一个自己写的小程序,一步一步的讲解,如果你是一个初学者,这再适合你不过了!

    一、编写一个按键控制流水灯程序

    用Quartus II 编写一个按键控制流水灯程序

    module lesson14_key(
    	input sys_clk,
    	input sys_rst,
    	input [2:0] key,
    	output reg [3:0] led
    );
     reg [7:0] count;  //[]
     reg [1:0]  key_c;
     always @(posedge sys_clk or negedge sys_rst)begin
        if(!sys_rst)
            count<=8'b0;
        else
            if(count<8'd20)
                count<=count+1'b1;
            else
                count<=8'd20;
     end
     always @(posedge sys_clk or negedge sys_rst)begin
        if(!sys_rst)
            key_c<=2'b00;
        else
            if(count==28'd20)
                key_c<=key_c+1'b1;
            else
                key_c<=key_c;
     end
     
     always @(posedge sys_clk or negedge sys_rst)begin
        if(!sys_rst) begin
              led<=4'b0000;
        end
        else
            if(key[0]==0)
                case(key_c)
                    2'd0: led<=4'b1010;
                    2'd1: led<=4'b0101;
                    2'd2: led<=4'b1010;
                    2'd3: led<=4'b0101;
                endcase
            else 
                if(key[1]==0)
                    case(key_c)
                        2'd0: led<=4'b1111;
                        2'd1: led<=4'b0000;
                        2'd2: led<=4'b1111;
                        2'd3: led<=4'b0000;
                    endcase
                else
                    if(key[2]==0)
                        case(key_c)
                            2'd0: led<=4'b0001;
                            2'd1: led<=4'b0100;
                            2'd2: led<=4'b0010;
                            2'd3: led<=4'b1000;
                        endcase
                    else
                        led<=4'b0000;
     end
     endmodule
    

    该段程序是按键控制流水灯变化闪动状态,在Quartus II 编译无误后保存如图。
    在这里插入图片描述

    二、编写modelsim驱动程序

    1.新建project

    在这里插入图片描述
    然后会弹出create project 对话框
    在这里插入图片描述
    然后点击ok
    在这里插入图片描述
    在这里插入图片描述
    然后点击ok,再创建新文件,编写驱动程序
    在这里插入图片描述
    选择新建文件>>选择verilog>>再选择保存路径
    再新建文件中编写驱动程序

    代码如下:

    `timescale 1ns/1ns
    module lesson14_key_tp();
    
    parameter T = 20;
    reg  [2:0]  key;
    reg  sys_clk;
    reg  sys_rst;
    reg  key_value;
    wire [3:0]  led;
    
    initial begin   
         key              <=3'b000;
         sys_clk          <=1'b0;  
         sys_rst          <=1'b0;  
    #T   sys_rst          <=1'b1;  
    #600 key     <=3'b001;      
    #800 key     <=3'b000;  
    #800 key     <=3'b010;   
    key          <=3'b000; 
    #800 key     <=3'b100;   
    end 
    
    always # (T/2) sys_clk <= ~sys_clk;
    
    lesson14_key   u_lesson14_key(
          .sys_clk(sys_clk),       
          .sys_rst(sys_rst),     
          .key(key),                  
          .led(led)          
          );
    endmodule
    

    在这里插入图片描述

    2.仿真

    右键点击文件>>compile>>compile ALL 编译程序
    没有错误点击library
    在这里插入图片描述
    右键点击驱动程序
    在这里插入图片描述
    如果没有波形图界面选择View>>Wave
    右键点击需要观测的变量>>add to>>Wave>>selected signals
    在这里插入图片描述
    在这里插入图片描述
    点击单步运行出现波形

    在这里插入图片描述


    总结

    以上就是第一个modelsim小程序,大家可以举一反三,编写FPGA时一定要在做好文件夹梳理在这里插入图片描述

    展开全文
  • Modelsim使用方法

    万次阅读 多人点赞 2018-10-24 18:58:28
    Modelsim使用方法 啦啦啦~接上一篇文章,今天来讲讲Modelsim的使用方法。 (1)打开Modelsim,如果是第一次使用请看(2),不是就看(3) (2)如果是新手,首先要在File—&gt;New—library,新建一个我们自己...
  • Modelsim10.6c

    2020-11-04 21:03:47
    Modelsim10.6c,完美运行,有需要的朋友可以下载使用,配合我的博客食用更佳。仅供学习参考使用。
  • 本文档利用截图详细介绍了ISE与modelsim联合仿真利用modelsim查看覆盖率的整个操作过程

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,016
精华内容 2,406
关键字:

modelsim