ModelSim入门指导答辩
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精选入门教程
FPGA的设计过程中,modelsin是我们最常用的工具之一,大部分FPGA的初学者对Modelsim的使用不熟练,也只能使用最简单的一部分,其实它的功能很强打,在这里我就modelsim的使用写个详细文档,希望对初学者有帮助。
共13部分,今天先写第一部分,每周写一部分,大家要有耐心,嘿嘿。
一、概述ModelSim能够对VHDL、Verilog、SystemVerilog、SystemC和混合语言设计的仿真和验证。
有三种仿真模式(1)基本仿真流程,这是最简单的仿真方法,不用建立工程创建work库:打开modelsim,在file菜单下,点new-libraryWork 是modelsim 默认的库,也可以改成自己有含义的名字, 也可以通过输入命令建立库 如在modelsim 〉 vlib wwww 回车,则建立了wwww 库编译文件建立库完成后,你该把你的设计文件在库里面进行编译,方法有菜单操作和命令输入两种菜单操作:在copile 菜单下点compile 选项,或 在modelsim 〉下输入 vcom ,回车。
运行仿真编译完成后,唤醒testbench文件进行仿真,在菜单simulate菜单下点击start simulate….按钮或在命令行输入Vsim命令,回车在菜单栏,点击view- Debug Windows –Wave,打开wave窗口,添加需观测的信号进入波形文件。
可以右键添加,也可以用鼠标直接拖进wave中运行输入run 100ns回车或simulate—run—run 100ns 或观看仿真波形(2)通过建立项目进行仿真仿真流程如下图首先建立一个工程添加文件编译文件菜单操作:在copile菜单下点compile all选项,或在modelsim〉下输入vcom ,回车在工程目录下编译文件运行仿真,此过程同前面相同添加信号进入波形文件运行上面三过程均与前面相同。
(3)多个库的仿真流程在modelsim仿真中,也可以使用多个库进行仿真,仿真流程如下。
Modelsim仿真新手入门最详细教程
Modelsim仿真新⼿⼊门最详细教程2021年11⽉15⽇00 安装包/版本我是提前在⽹上下好的(但这⼀点也给我的实验造成了“⿇烦”),⽤的是Modelsim SE-64 2020.4版本的,学校实验室的似乎不同。
但最终没有太⼤影响。
01 配置环境步骤学校有⼀个⽂档,在机房电脑照做就⾏。
我因为是⾃⼰下载的,配置与机房软件有所不同,所以⼜平添了很多⿇烦。
01-0 verilog⽂件这个代码可以在很多地⽅编写:Visual Studio Code⾥有Verilog的插件;还可以有更强⼤的语⾔编辑器:Nodepad++。
这⾥我使⽤的是Nodepad++,因为看上去专业⼀点。
Nodepad++的页⾯效果如图:其实第⼀次上机,⽼师会给⼤家⽰例⽂件(包括设计代码与测试代码),跑出来⽰例波形就⾏。
01-1 具体步骤1. 新建⼀个⽤于安放project的⽂档,放在哪⾥都⾏。
把前⾯做出的.v⽂件添加到这个⽂档。
留意⼀下路径。
2. 打开modelsim,在jumpstart中create a new project。
3. 在弹出的提⽰框⾥browse,找到刚才的⽂件夹。
选中。
填写project 名,注意要与.v⽂件⾥的module名保持⼀致。
点击ok。
4. 进⼊页⾯后会是这样⼦:注意此处两个⽂件后⾯应当都有问号,代表没有编译。
先逐个右击⽂件add to this project确保加⼊。
5. 在上⽅提⽰栏中complie->compile all。
稍等些许会看到⽂件后问号全部变为对勾,表⽰代码编译通过,没有问题。
如果此步出错则代表代码有bug。
在下⾯的Transcript中上翻查找错误。
6. 点击上⽅Simulate->start simulation。
由于注意与实验室不同的,选中下⾯的Enable optimization,再在右侧Optimization Options中的Visibility中选中Apply full visibility....7. 接着在work⾥找到测试代码的⽂件,选中。
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)beginif(!reset)clk_out=0;elseclk_out=~clk_out;endendmodule编辑完成后,点击保存。
文件名要与module后面的名称相同。
5.再新建一个测试文件,步骤同上面新建的主程序文件,文件名后缀改为.vt程序代码如下:`timescale 1ns/100ps`define clk_cycle 50module top;reg clk,reset;wire clk_out;always #`clk_cycle clk=~clk;initialbeginclk=0;reset=1;#10 reset=0;#110 reset=1;#100000 $stop;endhalf_clk m0(.reset(reset),.clk_in(clk),.clk_out(clk_out));Endmodule6.添加文件,编译文件先右键点击左边空白处,选择add to project→existing File选择刚刚新建的两个文件。
按ctrl键可以同时选择两个,选择打开,下一步点击ok7选中其中一个,右键,选择complie→complie all出现两个勾,说明编译通过。
出现×,说明文件编译出错,双击×,可以查看错误。
8.终于可以仿真了选择simulate→start simulate。
选择刚刚新建的库里面的top,或者测试文件名称,左下角的enable optimization一定要去掉勾,有勾的画不会出来波形,一定要去掉勾!一定要去掉勾!一定要去掉勾!(本人也不清楚原因,都是初学者,嘻嘻)跳出界面,右键测试文件,选择如下图接下来,选择仿真,run→run all点击缩小键,如图,就可以看到波形啦到此结束!初学者,如有错误,欢迎指出。
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标签:如果一开始不是如上图所示的界面,那么可以点击如下图所示红色标记的按键变成上图界面:4.在屏幕空白处右击鼠标,出现如下窗口:5.现在可以选New File或者Existing File(首先你已经编写好了)。
Modelsim简明操作指南
Modelsim简明操作指南第一章介绍ModelSim的简要使用方法第一课 Create a Project1.第一次打开ModelSim会出现Welcome to ModelSim对话框,选取Create a Project,或者选取File\New\Project,然后会打开Create Project对话框。
2.在Create Project对话框中,填写test作为Project Name;选取路径Project Location作为Project文件的存储目录;保留Default Library Name设置为work。
3.选取OK,会看到工作区出现Project and Library Tab。
4.下一步是添加包含设计单元的文件,在工作区的Project page 中,点击鼠标右键,选取Add File to Project。
5.在这次练习中我们加两个文件,点击Add File to Project对话框中的Browse 按钮,打开ModelSim安装路径中的example目录,选取counter.v和tcounter.v,再选取Reference from current location,然后点击OK。
6.在工作区的Project page中,单击右键,选取Compile All。
7.两个文件编译了,鼠标点击Library Tab栏,将会看到两个编译了的设计单元列了出来。
看不到就要把Library的工作域设为work。
8.最后一不是导入一个设计单元,双击Library Tab中的counter,将会出现Sim Tab,其中显示了counter设计单元的结构。
也可以Design\Load design 来导入设计。
到这一步通常就开始运行仿真和分析,以及调试设计,不过这些工作在以后的课程中来完成。
结束仿真选取Design \ End Simulation,结束Project选取File \ Close \ Project。
使用Modelsim仿真FPGA工程步骤以及一些问题
使用Modelsim仿真FPGA工程步骤以及一些问题使用Modelsim仿真Altera FPGA工程(包括IP核)步骤以及问题汇总前提:计算机上已经安装QuartusII和Modelsim通用版,并且均已破解。
环境说明:所用的软件版本,QuartusII为9.0,Modelsim为6.5c。
本测试仅在WIN XP SP3上测试,对于VISTA/WIN7/LIN或者其他平台没做过测试。
但其他平台或者其他版本的过程应该都差不多。
其他:感谢teamo版主的破解和编译教程,以及后期对我的热心指导。
如果各位对整个步骤还有什么问题的华可以直接和我联系,我的论坛ID是lanphon,邮箱是*****************。
一、Altera库的编译(本部分基本上全部抄袭teamo版主的教程,懒得写了)1) 先到C:\modeltech_6.5目录下找到文件"modelsim.ini",将其属性改为可写(右键‐>属性)。
2) 启动modelsim se,选择【file】‐>【new】‐>【library】命令,在弹出的【create a newlibrary】窗口中将选项【create】设置为【a new library and a logical mapping to it】,在【libryr name】和【library library】窗口中将选项【create】设置为【a new library and a logical mapping to it】,在【libryr name】和【library physical name】中键入所要创建库名字,如Altera ,此时在主窗口中已多了一个Altera 项。
注:这个过程实质上想当于在modelsim 主窗口中的脚本区域中输入了vlib和vmap命令。
3) 在workspace中的library中选中你健入的库名Altera,在主菜单中选【compile】→【compile…】命令。
使用ModelSim仿真入门
1.点击 ModelSim实验 下载实验文档,保存并解压到D:盘根目录下。
2.启动 ModelSim6.0,执行 File 菜单下的 Change Directory... 命令。
在随后弹出的对话框中,选择 D:\exam 文件夹,点击“OK”按扭。
3.执行 File->New 菜单下的 Library 命令,在随后弹出的对话框上,点击“OK”按钮,建立 work 库。
4.执行 File->New 菜单下的 Project 命令,在随后弹出的对话框的 Project Name 栏,输入 counter,点击“OK”按钮。
5.点击“Use Current Ini”按钮。
6.点击“Add Existing File”图标。
在随后弹出的对话框上,通过点击“Browse...”按钮,选中 D:\exam文件夹下的 tb.v、counter.v 文件,然后点击“OK”按钮。
点击 Add Item to Project 对话框的“Close”按钮。
7.在 Workspace 窗口里,点击右键。
在弹出菜单中点击 Compile 下的 Compile All 命令。
8.在 Simulate 菜单下,点击 Start Simulation... 命令。
9.在随后弹出的对话框中,将 Design Unit 项设为 work 库下 tb 单元,将 Resolution 设为 ns,然后点击“OK”按钮。
10.执行 View->Debug Windows 菜单下的 Wave 命令,打开 Wave 窗口。
11.在 Objects 窗口下,点击右键。
在弹出菜单下,点击 Add to Wave 下的 Signals in Design 命令。
12.在 Transcript 窗口里,输入 run 10 ms 命令。
13.进入 Wave 窗口,观察各个信号的波形,是否与原设计相符。
14.在 Wave 窗口里,双击 cnt 的波形,打开 dataflow 窗口,观察各个信号传递关系。
ModelSim简明使用教程
ModelSim6.1入门教程因为本人在初学Verilog 编程语言时,觉得很难上手的是使用ModelSim ,所以今天和大家交流一下,好了,闲话不多说了,我们开始吧!1,打开ModelSim 的画面如下:标准的windows 界面,最上面是菜单栏,以及菜单栏的一些快捷方式。
左边是工作空间,里面显示的是一些库文件。
右边是编辑区,最下面是交互区,可以通过命令完成所有的操作。
我们在此只讲一些基本的命令输入,以完成仿真。
2,建立工程,如图所示:单击Project 之后,画面如下:菜单快捷栏工作空间栏编辑栏仿真交互栏在图中Project Name中输入AND_2,这也是我们建立的第一个工程,路径选择如下图所示,默认库名我们用默认的work。
这一步完成之后,点击ok,如下图:单击ok后,如下图:其实应该没有右边的那个Creat Project File选择框,只有左边的Add items to the Project,呵呵,在此偷懒了。
单击Add items to the Project中的Creat New File(如果你已经写好了代码,可以通过点击Add Existing Flie添加),如下图:在File Name中输入AND_2,在Add file as type选项中选择Verilog,其他的使用默认即可。
单击ok。
在工作空间中添加了名为AND_2的文件,如图。
状态是“?”,说明没有通过编译。
其实咱还没开始写代码呢!好了,现在开始正式写代码了。
双击图中AND_2文件那一行的任何地方,就会打开右边的编辑区,和其他IDE 工具一样,使用编辑器,输入如下代码:module AND_2(clk,rst,A,B,C);input clk,rst,A,B;output C;reg C;always@(posedge clk or negedgeif(!rst)C <=1'b0;elseC <=A&B;Endmodule 输入完成后,单击保存。
ModelSim入门教程
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器 件的基础上进一步发展的产物。
Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字 系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所 完成的逻辑功能。
Modelsim 入
1
一. Modelsim简介
Modelsim 仿 真 工 具 是 Model 公 司 开 发 的 。 它 支 持 Verilog、VHDL以及他们的混合仿真,它可以将整个程序 分步执行,使设计者直接看到他的程序下一步要执行的语 句,而且在程序执行的任何步骤任何时刻都可以查看任意 变量的当前值,可以在Dataflow窗口查看某一单元或模块 的输入输出的连续变化等,比Quartus自带的仿真器功能 强大的多,是目前业界最通用的仿真器之一。
其所有操作都在后台进行,用户看不到modelsim的界面,也不需要交 互式输入命令。当工程很大,文件比较多时,用批处理比较方便。直 接运行批处理文件,在后台调用modelsim,执行modelsim的脚本文件 * .do,完成操作
注:
8
仿真
仿真分为功能仿真,门级仿真,时序仿真
功能仿真(前仿真,代码仿真)
怎样入门? 对于初学者,modelsim自带的教程是一个很好的选择,在 Help->SE PDF Documentation->Tutorial里面.它从简单到复 杂、从低级到高级详细地讲述了modelsim的各项功能的使 用,简单易懂。
4
Modelsim的安装
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.22.给工程加入文件:ModelSim会自动弹出Add Items to the project窗口,如图2.3所示。
选择Add Exsiting File后,根据相应提示将文件加到该Project中。
图2.33.编译:编译(包括源代码和库文件的编译)。
编译可点击ComlileÖComlile All来完成。
4.装载文件:如图2.4,点击SimulateÖSimulate…后,如图2.5所示,选定顶层文件(激励文件),ADD加入,然后点击LOAD,装载。
Modelsim简单教程.
Modelsim入门技术文档单位:深圳大学EDA中心实验室指导老师:徐渊作者:陈战夫rshamozhihu@时间:2010-1-7说明:本文档作为EDA中心研究生modelsim入门用。
分三个章节阐述。
1.modelsim中库的编译1.自己新建一个文件夹,如D:\modelsimpro\counter,将counter.v与counter_tb.v文件拷贝到该文件夹下。
2.点击modelsim的图标,打开modelsim的界面窗口。
3.选择File > Change Directory,选择步骤1中的目录,点击OK。
4.选择File > New > Library。
5.在library name与library physical name两栏中均填work.点击OK。
(在transcript窗口中可看到vlib workvmap work work)。
6.选择Compile > Compile,出现如下窗口。
同时选中counter.v与counter_tb.v两个文件。
7.点击compile.再点击done.8.在library标签点击work库前面的“+”号,可看到counter.v与counter_tb.v均在其目录下。
9.双击counter_tb.v可将该设计装载到本次工程库中。
10.选择View > Debug Windows >wave.将弹出波形窗口。
11.在workspace窗口下点击sim标签。
12.右击counter_tb.v,在出现的菜单中选择Add > Add to Wave。
13.在transcript窗口中VSIM>后敲入run 1000.则系统将仿真1000ns.我们可根据波形查看仿真结果。
14.在workspace窗口中点击files标签,鼠标左键双击counter.v,打开counter.v文件。
15.在第10行数字10旁鼠标左键点击一下,可出现一小红点,即断点。
ModelSim快速入门
ModelSim快速⼊门ModelSim是业界最优秀的HDL仿真⼯具,在电路设计、FPGA开发中经常使⽤。
笔者在学习FPGA中联合仿真再次⽤到ModelSim时发现课程中学到的已经遗忘过半,所以决定整理成⽂,作为⽇后参考,⽔平有限望批评指正。
ModelSim软件包含多个版本:SE、PE、LE和OEM版本,其中SE版本功能最多仿真速度最快,OEM定制版如:Altera的AE版和Xilinx的XE版功能有⼀定限制。
对于学习⽽⾔可以选择任何版本。
本⽂是第⼀篇,主要介绍了ModelSim的安装和快速⼊门。
软件以ModelSim SE-64 10.4为例,使⽤Verilog HDL语⾔,操作系统为Windows 7 sp1 Ultimate x64。
软件安装ModelSim的安装⽐较简单,1)双击打开软件:等待解压完成后显⽰欢迎界⾯,单击Next:2)选择安装路径。
这⾥注意,很多EDA⼯具安装路径不要出现中⽂和空格,单击Next:3)接受许可条款,单击Agree:4)开始安装,在此过程中会弹出是否创建快捷⽅式和加⼊环境变量对话框,Yes即可,进度条完成后:5)出现install hardware security key driver,选择No:6)安装完成。
此时启动软件会提⽰License错误。
软件激活激活程序通常会随软件⼀起打包,⽅法各不相同,通常只需⽣成License并设置环境变量指向License。
为⽀持正版在此不提供破解⽅法。
启动软件正确激活后可以启动软件,勾选don't show this dialog again并关闭欢迎界⾯后,如图:软件已经包含了⼏个库,在此我们新建⾃⼰的work库,⽤来包含所有编译的设计单元:File > new > Library: 默认使⽤work 即可:快速⼊门ModelSim可以使⽤命令⾏或图形界⾯操作,在此⽰例性的新建⼀个⼯程并完成仿真,认识软件布局和常⽤操作。
modelsim6.2使用指导
下面的例程介绍modelsim6.2在可编程逻辑器件设计中,进行功能仿真,后综合仿真,时序仿真三个重要的仿真。
功能仿真:功能仿真有三种方法:(1)在quartusII中进行本地仿真,这种仿真最为简洁。
那么为了仿真的正确进行,之前要进行一些准备工作。
为了方便,所有的验证都采用D:\Program Files\putkb\fourbits_shift里面工程的程序。
设计源文件为data_shift.vhd, 测试文件tb.vhd,为了以后输入方便,我建议最好把测试文件以简单形式命名(tb=>testbench)。
打开Assignment -> setting 进入setting 对话框,在category 中选择EDA tool setting ->simulation 如下图所示:(2)选择compile testbench 。
并点击右侧的Test Benches,会弹出下列对话框选择new ,新建testbench (3)进入对话,如下所示:在Test bench name 处,为测试平台名一个名字,这里设为tb,同理在下面几项都设置为tb,这个不是很重要。
然后在Test bench files ,选择file name ,把tb.vhd选进来。
选择ok. (4)完毕,在quartusII中选择分析与综合,完成后在tools -> run eda simulation tool -> eda trl simulation (5)这样即可完成功能仿真。
这个步骤比较简单方便,对于很多仿真都能完成。
虽然时间要花长一点,但是比较能完成仿真。
第二种方法:就是modelsim采用手动的方式来启动。
(1)在之前新建一个文件夹。
当然是英文的。
在这里,新建一个文件,命名为data_shift,放在D:\Program Files\putkb中。
把文件从fourbits_shift中,拷贝到此文件夹中。
modelsim使用入门(VHDL_
modelsim使用实例(VHDL)标签: modelsim仿真testbench FPGA看了几天的modelsim以及如何在quartusII中调用,浏览了N个网页,尝试了N次,......终于初步完成。
下面是入门部分介绍。
modelsim是专业的仿真软件,仿真运行速度比同类的其他仿真软件都要快很多。
Quartus 自己都不再做仿真器了,普遍使用modelsim,自有其缘由。
这里用的是modelsim-altera(6.6d)版本,与quartus II 11.0搭配。
据说Altera公司推出的Quartus软件不同版本对应不同的modelsim,相互之间不兼容。
某些功能齐全的modelsim版本可以进行两种语言的混合编程, modelsim-altera只能支持一种语言进行编程(VHDL或者Verilog选其一)。
1、新建工程打开modelsim-->file-->new-->project 新建工程,输入工程名,文件存放路径后(不可直接放在某盘下,必须放入文件夹中),进入下一步。
在主体窗口下方出现project标签。
见下图。
2、新建文件--create new file:输入名称div10,选择语言VHDL --关闭对话框新的工程文件将会在工程窗口出现。
3、写入源程序(VHDL)双击div10.vhd,打开文本编辑器。
实例代码如下(一个十分频的VHDL源代码):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity div10 is --实体要与工程名相同 port(clk :in std_logic;div :out std_logic );end div10;architecture behav of div10 issignal temp :std_logic:='0';signal count :std_logic_vector(2 downto 0):="000";beginprocess(clk)beginif(clk'event and clk='1') thenif(count="100") thencount<=(others=>'0');temp<=not temp;elsecount<=count+1;end if;end if;end process;div<=temp;end behav;4、写testbenchmodelsim单独使用时需要自己写testbench,输入时钟,给测试电路加以激励源以驱动电路。
初学ModelSimSE时被迷糊了几天的若干概念[1].unlocked
ModelSim学习笔记(一)初学ModelSimSE时被迷糊了几天的若干概念黄俊April 2007以前用的是LATTICE的,ispLEVER有自带了一个OEM版的ModelSim。
要仿真时,不需要添加库,用起来比较方便,自己有点懒,所以就一直凑合着用。
现在转向用ALTERA 了,ALTERA也有OEM版的ModelSim,也不用添加库。
后来听说ModelSim SE的功能更强大,速度更快,所以就决定把ModelSim SE好好摸索一下,再多学习一点关于TestBench 技巧方面的知识。
我的学习资料主要是ModelSim SE自带的教程、ALTERA提供的资料以及edacn上面ModelSim专栏由网友们上传的资料。
因为是初学,加上看到英文资料一大堆,烦都烦死,而有些中文文档可能是有些步骤没有讲清楚,我实际按照文档上面说的一步一步做下来也老是完成不了,花了不少时间。
我于是就想自己摸清楚后,把步骤截图下来,整理清楚,做成笔记。
一方面加深自己的认识,另一方面对初学者也许会有些许用处。
我近期计划陆续整理出以下几个方面的学习笔记:初学ModelSimSE时被迷糊了几天的若干概念在ModelSimSE中添加ALTERA仿真库的详细步骤用ModelSimSE进行功能仿真和时序仿真的方法(ALTERA篇)ModelSimSE中常用到的几个命令及DO文件的学习笔记近来学到的几招TestBench的技巧MSN: paulhuang_sz@E-mail: huangjun5927@Blog: /index.php/2599初学ModelSimSE时被迷糊了几天的若干概念1、什么是库?2、什么是设计单元?3、如何添加ALTERA仿真库?4、ModelSim的流程有哪些,实际开发中哪种流程最适用?5、操作ModelSim要学习哪些操控方式?1、什么是库(Library)?(1)我理解的库就是用来存放已编译好的设计单元(Design Units)的文件夹。
ModelSim入门教程
• 在出现的Add Simulation Configuration对话框的右下角打开optimization options, 打开后切换到Options选项卡页面,在optimization Level中选择Disable optimization, 如图:
25
• 点击ok后,返回Add Simulation Configuration对话框,在Optimization栏中关闭 Enable Optimiztion,再展开work目录,选中test_counter8,之后save保存,如图:
它支持verilogvhdl以及他们的混合仿真它可以将整个程序分步执行使设计者直接看到他的程序下一步要执行的语句而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值可以在dataflow窗口查看某一单元或模块的输入输出的连续变化等比quartus自带的仿真器功能强大的多是目前业界最通用的仿真器之一
10
11
3.为工程添加文件 工程建立后,选择Add Exsiting File后,根据相应提示将文件加到该Project中 这里是count4.v和其测试向量count_tp.v,源代码如下:
12
13
4.编译文件 编译(包括源代码和库文件的编译)。编译可点击ComlileComlile All来完成。
注:/electronic/76/electrical202060214186 _1.html
8
仿真
仿真分为功能仿真,门级仿真,时序仿真
功能仿真(前仿真,代码仿真)
主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路 门延迟与线延迟,主要是验证电路与理想情况是否一致。可综合FPGA代 码是用RTL级代码语言描述的,其输入为RTL级代码与Testbench.在设计 的最初阶段发现问题,可节省大量的精力
modelsim初学者教程
Modelsim SE 10.0.c入门教程小小龙结合黑金FPGA开发板的所用的软件quartus 11.0与modelsim10.0c, 本文介绍给初学者介绍Modesim SE 入门,Modesim SE 入门视频可在上下载!大家知道,自从quartus 10以后,quartus就不自带的波形仿真软件,想要仿真需自己安装第三方软件(如modelsim等),闲话我就不多说,下面主要介绍如何在quartus 11.0中如何调用modelsim 10.0c以及testbench的编写。
下面就以一个计数器为例进行讲解(黑金开发板DB4CE平台),前提需安装quartus11.0 、modelsim10.0c,好了,切入正题。
新建工程时在出现的画面中按如下设置根据仿真软件及语言进行选择,上图我们用到的软件为modelsim, 语言:Verilog HDL下面我们编写一个计数器程序,在quartus中编写count128.v文件,代码如下:程序实现对clk的128分频下一步告诉大家怎样编写仿真测试文件testbench,如下操作至此,testbench模板已经OK!,生成的文件为.vt,位于工程文件夹simulation\modelsim中,如下有了模板,但只是给了我们一个架构,还需要编写仿真文件,打开模板,来瞧瞧里面到底有些什么注意:testbench中规定a)输入一律为reg型变量,输出为wire型;b)可以有不可综合的语句;for,while等;根据count128.v,测试文件testbench为只要给时钟clk和rst_n赋值变OK了接下来对工程进行一些设置:让quartus调用modelsim如下设置上图以modelsim安装在D盘为例进行说明,请根据自己安装位置进行选择,至此modelsim调用完成。
进行仿真设置:上图设置与下图testbench文件中画红线的地方对应接下来进行编译,仿真可以看到,出现了仿真波形,要用到的几个波形按钮(放大、缩小,插入\删减光标等)用红色标出,童鞋们自己试试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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所示,图2.3 在工程中,添加新项目1.2 在工程中添加新项目在Add Items to the Project对话框中,包括以下选项:∙Create New File——使用源文件编辑器创建一个新的Verilog、VHDL、TCL或文本文件∙Add Existing File——添加一个已存在的文件∙Create Simulation——创建指定源文件和仿真选项的仿真配置∙Create New Folder——创建一个新的组织文件夹1.2.3 创建新文件1. 单击Create New File。
打开图2.4所示窗口。
图2.4创建工程文件夹2. 输入文件名称:bg0806_dp_top,然后选择文件类型为Verilog。
图2.5 输入工程文件信息3. 单击OK,关闭本对话框。
新的工程文件将会在工程窗口显示。
单击Close,以关闭Add Items to the Project。
图2.6 RTL设计文件4. 双击打开datapath_top.v文件(注意:若是Verilog文件已经关联了其他的文本编辑器,则双击后在关联的文本编辑器中打开)。
每一个.v文件录入完成后,单击Save,保存rtl代码。
1.2.4 添加RTL代码通常情况下,程序员不会在QuestaSim直接录入RTL代码,推荐使用GVIM8.0代码编辑器编辑RTL代码,然后选择Add Existing File 则直接将E:/QuestaSim/rtl/*.v添加到工程,不用特意指定顶层文件,仿真时软件会自动识别顶层文件。
1. 选择Project>Add to Project>Existing File,如图2.14所示。
图2.7添加文件到工程中2. 单击打开,在Add file to the project窗口,单击OK。
1.2.5 添加TestBench代码TB文件保存在E:/QuestaSim/tb/,同样添加到工程目录下,TestBench文件的写法参考相关文献,此处不赘述。
1.3 编译文件在Project标签下的Status列的问号,表示文件尚未编译进工程,或者在最后编译前,源文件有所改动。
欲编译文件,选择Compile<Compile ALL,或者右击Project标签,选择Compile>Compile All。
倘若此处没有错误,编译成功的消息,就会在Transcript窗口如图2.8所示,如果有错误,双击出错的地方,修改RTL代码。
图2.8 编译成功1.4 仿真1.4.1 仿真环境设置1. 点击工具栏上的图2.9 仿真设置1(1) 点击Optimization Options > Visibility,勾选full debug mode图2.9 仿真设置2(2) 点击Libraries,添加仿真库,xilinx仿真库的添加方法参考下文图2.10 仿真设置2(3) 添加define库,在Project工程目录空白处右键选择Propereies,在Project Compiler Setting窗口选择verilog & SystemVerilog>other verilog options>Include Directory添加define文件所在的目录,点击OK。
图2.11 仿真设置31.4.2 开始仿真单击图标,选择Design,然后选择TestBench。
单击OK,如下图所示。
图2.12 开始仿真仿真完之后出现多了2个窗口sim和Objects,sim窗口显示了层次目录,Objects窗口显示了sim窗口选择的模块的所有信号列表,可以筛选所需信号。
图2.13 仿真结束后的界面截图1.4.2 添加波形右键信号,然后选择Add to> Wave>Select Signals,在Wave窗口出现下图所示,在Run Length列输入仿真时间长度为10ms,点击图标,运行若干秒后,查看波形。
Debug 常用按键 f : 可查看仿真的完整波形,也可以单击Zoom Out(O)图标。
ctrl + 鼠标左键选择:选定任意波形区间进行放大。
注:修改完RTL代码之后必须重新编译,然后点击重新仿真。
二. 软件设置常见问题2.1 如何在Questa-Sim软件里添加xilinx的仿真库QuestaSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下。
本人是安装在D:\software\QuestaSim目录下,Xilinx软件也最好安装在不带空格的目录下。
1、找到开始菜单->程序->Xilinx Design Tools 11 -> 64/32-bit tools -> Simulation Library Compilation Wizard.2、选定QuestaSim的版本,以及指定QuestaSim的安装路径。
3、选择Both VHDL and Verilog。
4、选择支持哪些系列的芯片,看自己需要增减。
5、默认选全上即可。
6、指定编译完后的库存放位置,这里作者在QuestaSim安装目录下新建了xilinx_lib的文件夹,并指定到这里。
(注意不要指向带空格的路径)7、运行Lauch Compile Process,即开始编译库文件,需要几十分钟。
编译完成后应该在xilinx_lib目录下多出如下文件夹:8、右键打开QuestaSim目录下的QuestaSim.ini文件,先将其“只读”属性去掉。
然后用记事本打开。
在[Library]下面添加如下代码,即之前编译好的Xilinx库的路径。
unimacro = D:/softwares/QuestaSim/xilinx_lib/unimacrounimacro_ver = D:/softwares/QuestaSim/xilinx_lib/unimacro_verunisim = D:/softwares/QuestaSim/xilinx_lib/unisimunisims_ver = D:/softwares/QuestaSim/xilinx_lib/unisims_versecureip = D:/softwares/QuestaSim/xilinx_lib/secureipxilinxcorelib = D:/softwares/QuestaSim/xilinx_lib/xilinxcorelibxilinxcorelib_ver = D:/softwares/QuestaSim/xilinx_lib/xilinxcorelib_versimprim = D:/softwares/QuestaSim/xilinx_lib/simprimsimprims_ver = D:/softwares/QuestaSim/xilinx_lib/simprims_ver9、再次打开QuestaSim,即可以看到Xilinx的库已经默认出现在了库列表里。
以后仿真Xilinx的IP核时,就不用每次都添加库了。
2.2 如何保存Wave波形文件在Wave窗口选择File->Save Format,保存为*.do文件。
在代码检视窗口打开*.do,文件的代码如下所示,复制需要的代码脚本行至命令窗口,可以直接添加到Wave窗口。
不用每次都拖曳很多的信号至wave窗口,提升效率。
2.3 仿真添加波形时显示vish-4014 错误在QuestaSim的软件安装目录打开QuestaSim.ini文件,将VoptFlow设置成0,即可解决2.4 仿真时报错Glbl错误ERROR软件提示:Unresolved reference to 'glbl' in 'glbl.GSR' 。
仿真缺少glbl文件,在仿真工程中添加glbl.v文件(一般在~/ise/verilog/src/glbl.v),把testbench.v和glbl.v同时选中后进行仿真,即脚本命令中添加vsim -t 1ps -L unisims_ver glbl.v testbench.v。
2.5 IP修改后的错误仿真结果显示:No entity is bound for inst 或CE is not in the entity。
(CE是改动后添加的一个管脚),从而仿真无结果。
解决办法:首先选中该IP核的.xco文件点击右键->属性将属性改为"Synthesis/Imp + Simulation."然后将其对应的.v或.vhd文件的属性也改为"Synthesis/Imp + Simulation."2.6 如何让状态机显示状态的名字在使用Verilog编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示,但当使用ModelSim仿真的时候,状态机变量在wave 窗口中以二进制编码的形式显示,当状态很多时,这种显示形式不是很直观,下文可以使用ModelSim提供的命令将状态机变量以“文本”形式的参数名显示,从而有利于调试。