Modelsim中文教程
ModelSim简明教程
建立库的具体操作
• 选择File→New →Library,出现下面的对话框 选择a new library and a logical mapping to it和输 入库名
• 库的编译:选择Compile→Compile…,出现 如下对话框:
库文件存放的库名
库文件存放的路径
• 映射逻辑新库:选择File→New →Library,出
• Main窗口(1):
ModelSim> 这是设计加载前的提示符 能浏览帮助, 编辑库, 编辑源代码而不用调 用一个设计 VSIM> 设计加载后显示的提示符 告诉我们仿真器的行为动作 命令 信息 声明
Main窗口(2)
Main窗口(3)
• Structure窗口:
-VHDL (o) - Package, component instantiation, generate and block statements -Verilog (¡ – module实例, ) named fork, named begin, task, 和 function -Instantiation label, entity/module, architecture -成为当前层 for Source 和 Signals 窗口, updates Process 和Variables 窗口
在弹出的对话框中输入 描述D触发器电路的文 件名:dff 该对话框一定要选择 Verilog
再重复一次上面的步骤,选择Create New File,弹出相同的对话框:
文件名为dff_test,表示 测试文件。(一般测试文 件的文件名都在原文件名 后加test)
此对话框依然选择Verilog
(2):双击Project列表中的文件dff,打开文件编 译的界面。在该界面中,可以输入D触发器的门 级描述源代码,也可输入D触发器的行为级描述 源代码。(如下图):
Modelsim使用说明
Modelsim 使用简明指南1 前言作为一种简单易用,功能强大的逻辑仿真工具,Modelsim 具有广泛的应用。
这里对ModelSim 作一个入门性的简单介绍。
首先介绍ModelSim 的代码仿真,然后介绍门级仿真和时序验证。
和时序验证。
2 代码仿真在完成一个设计的代码编写工作之后,可以直接对代码进行仿真,检测源代码是否符合功能要求。
这时,仿真的对象为HDL 代码,比较直观,速度比较快,可以进行与软件相类似的多种手段的调试(如单步执行等)。
在设计的最初阶段发现问题,在设计的最初阶段发现问题,可以节省大量的精力。
可以节省大量的精力。
2.1 代码仿真需要的文件1.设计HDL 源代码:源代码:新建一个“文本文档”文件,在记事本中输入HDL 源代码,使用V erilog 语言编程。
语言编程。
2.测试激励代码:.测试激励代码:在同一个文件中,根据设计要求输入/输出的激励程序,由于不需要进行综合,书写具有很大的灵活性。
有很大的灵活性。
3.保存该文件后退出,然后重命名该文件,.保存该文件后退出,然后重命名该文件,使该文件后缀名由使该文件后缀名由.txt 变为.v 。
如:t81.v 。
4. 该文件保存在你所建立的工作目录中,如:D\VLSItext\t1如果要修改该文件,仍然可以选择用仍然可以选择用记事本记事本打开编辑再保存,记事本相当于是一源代码输入软件。
输入软件。
注:所有的文件名及目录名均要求是英文,无中文字符。
2.2 代码仿真步骤1.建立工程:在ModelSim 中建立Project 。
如图2.1所示,点击File ðNew ðProject ,得到Creata Project 的弹出窗口,如图2.2所示。
在Project Name 栏中填写你的项目名字,建议和你的顶层文件名字一致,如t81。
Project Location 是你的项目目录,你可通过Brose 按钮来选择或改变,建议项目目录选择为你所保存源代码的目录,如:D\VLSItext\t1。
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使用技巧ModelSim是一款常用的仿真工具,用于学习、开发和测试各种数字电路和系统设计。
它提供了大量的功能,可以帮助我们更好地进行仿真、调试和性能优化。
但是,对于初学者来说,熟练使用ModelSim可能需要一些时间和实践。
在本文中,我们将介绍一些ModelSim的使用技巧,以帮助读者更好地掌握这个工具。
一、基本操作1.创建工程在ModelSim中,创建工程是第一步。
可以通过File -> New -> Project来创建一个新的工程。
在工程创建过程中,需要指定工作目录、项目名称和工具链等信息。
在创建工程后,可以右键单击仿真文件夹,并选择添加到工程来添加设计文件。
2.添加仿真文件在ModelSim中,添加仿真文件非常简单。
可以将文件拖放到仿真文件夹、使用File -> Add to Project选项或使用命令行方式添加文件。
一旦添加了仿真文件,可以使用filelist命令查看所有添加的文件。
3.编译设计在ModelSim中,编译由两个阶段组成。
第一阶段称为分析阶段,在此阶段中,设计的各个模块被分析、组合并建立数据结构。
第二阶段称为综合阶段,在此阶段中,数据结构被综合成一个整体,并生成仿真网表。
可以通过compile option来指定编译选项,比如-v库等。
4.运行仿真在ModelSim中,可以通过三种方式来运行仿真。
第一种是在命令行中使用run命令,第二种是通过菜单和工具栏选项来启动仿真,第三种是使用脚本方式启动仿真。
在仿真过程中,可以使用wave、add wave、force、release等命令来控制信号的行为。
二、ModelSim高级技巧1.波形窗口波形窗口是ModelSim中最有用的窗口之一。
可以使用Add Wave按钮打开该窗口。
在波形窗口中,可以查看所有信号的变化情况。
可以使用full view、zoom in、zoom out等选项来放大或缩小波形窗口。
modelism简明操作指南
第一章介绍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使用说明
1在quartus中设置第三方仿真工具,选择assignments-settings-eda tool settings-simulatin选择modelsim-verilog2编译工程3编译完成后会在工程目录下生成simulation-modelsim的目录,打开Wave.vo是仿真网表文件,可以用来代替设计文件;.xrf是quartus编译生成的信息文件;.sdo是工程延时信息4、加入仿真库文件:路径C:\altera\quartus50\eda\sim_lib220model.v:带有用户原语类型的quartus自带的ip核的库文件altera_mf.v:quartus自带的ip核的库文件cyclone_atoms.v:相应系列的器件库在本例中需要添加altera_mf.v,cyclone_atoms.v5、编写测试模块6、把这些文件粘贴到刚才生成的目录中7、打开modelsim8、选择file-new-project9、指定工程名称,路径,工作目录10、添加设计文件(1)(2)(3)(4)11、编译工程全部编译功能仿真12、修改wave.vo文件把延时信息注释掉//initial $sdf_annotate("WA VE_v.sdo");13、重新编译wave.vo14、选择simulate开始仿真15、选择顶层模块,然后确定16、右键选择添加信号到波形图17、在命令行中敲入run 1ms回车,开始仿真18、观察波形二进制显示十进制显示没有延时时序仿真19、把wave.vo的修改过的注释改回来,重新编译20选择simulate21、选择sdf标签22、加入.sdo文件,把下面的sdf options都选中23、选择ok进行仿真24、和功能仿真一样加入波形图,仿真25、看延时。
modelsim教程
Secondary
– Units in the same library may use a common name – VHDL • Architectures • Package bodies – No Verilog secondary units
VHDL Predefined Libraries
Where
– – – – _primary.dat - encoded form of Verilog module or VHDL entity _primary.vhd - VHDL entity representation of Verilog ports <arch_name>.dat - encoded form of VHDL architecture verilog.asm and <arch_name>.asm - executable code files
ModelSim Design Units
Primary
– Must have a unique name in a given library – VHDL • Entities • Package Declarations • Configurations – Verilog • Modules • User Defined Primitives
Model Technology’s ModelSim
Main Window: Source Window:
Structure Window Wave & List Windows:
Process Window:
Signals & Variables Windows: Dataflow Window:
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使用指南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入门教程
门级仿真和时序列仿真 (后仿真)
使用综合软件综合后生成的门级网表进行仿真,不加入时延文件的仿 真就是门级仿真 .可以检验综合后的功能是否满足功能要求 ,其速度比功 能仿真要慢,比时序仿真要快. 在门级仿真的基础上加入时延文件 (.sdf) 的仿真就是时序仿真 ,比较 真实地反映了逻辑的时延与功能.综合考虑电路的路径延迟与门延迟的影 响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时 序违规
点击run -all
17
(2)我们可以在modelsim内直接编写Testbench Modelsim提供了很多Testbench模板,我们直接拿过来用可以减少工作 量。点View->Source->Show Language Templates然后会出现一个加载 工程,接着你会发现在刚才的文档编辑窗口左边出现了一个Language Templates窗口
文件对仿真没有影响48moresettings中设置如左图底下的testbenchmodenamevlgvectst对应ver你的主程序名用vhdvectst对应vhdl然后编译以后的同上49先在quarus中生成网表文件和时延文件然后调用modelsim进行仿真quar中设置仿真工具morngs也不用设置50设置完后成功编译quartusii会自动在当前project目录下生成一个simulation目录在该目录下有一个modelsim的文件夹此文件夹下有仿真所需要的网表文件及延时反标文件
9
功能仿真
功能仿真需要的文件
1.设计HDL源代码:可以使VHDL语言或Verilog语言。 2.测试激励代码:根据设计要求输入/输出的激励程序 3.仿真模型/库:根据设计内调用的器件供应商提供的模块而定,如:FIFO、 ADD_SUB等
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 输入完成后,单击保存。
ModeSim教程
ModeSim教程ModeSim○R SE教程版本: 6.1f发⾏:2009-031.本⽂源于Mentor Graphics ModeSim SE Tutorial,版权归Mentor公司所有。
2.本⽂仅供个⼈学习,严禁⽤于商业。
3.未尽事宜,请与Mentor公司磋商。
⽬录........................................................................................................................................ 1 ModeSim ○R SE 教程 .......................................................................................... 1 ⽬录 (2)第1课:ModelSim 仿真的基本概念 (3)1.1主要内容 (3)1.2 ModelSim 基本仿真(Basic Simulation )的流程 (3)1.3 ⽤⼯程(Project )进⾏仿真的流程 (3)1.4 多个库⽂件的仿真流程 (4)1.5 Debug ⼯具 (4)第2课:基本仿真 (5)2.1 主要内容 (5)2.2 简介 (5)2.3 创建⼯作库 (5)2.4 编译设计⽂件 (7)2.5 载⼊设计到仿真器中 (7)2.6 进⾏仿真 (9)2.7 设置断点并在源⽂件窗⼝单步运⾏ (10)2.8 ModelSim 界⾯导航 (13)2.9 本课⼩结 (14)第3课⽤⼯程进⾏仿真 (15)3.1 主要内容 (15)3.2 简介 (15)3.3 创建新⼯程 (15)3.4 编译并载⼊设计到仿真器 (17)3.5 利⽤⽂件夹组织⼯程 (17)3.6 仿真配置 (20)3.7 本课⼩结 (22)第1课:ModelSim仿真的基本概念1.1主要内容1.基本仿真流程;2.⼯程仿真流程;3.多个库⽂件仿真流程;4.调试⼯具。
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。
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;output clk_out;reg clk_out;always @(posedge clk_in or negedge rst)beginif(!rst)clk_out<=0;elseclk_out<=~clk_out;endendmodule写完代码后,不能马上就编译,要先保存,否则,编译无效。
Modelsim使用教程
创建proile->New- >Project,都能进入下面的界面。填入项目名称,路 径。库名通常用缺省的work,也可以改为其他的名字。
添加文件
– 完成后就进入modelsim的工作界面了。这时候浏览区中是空的。接下来 就是添加verilog或VHDL文件。可以在project浏览区中单击鼠标右键, 出现下面的对话框。选中Add file to Project。然后将你的设计文件 (verilog或VHDL文件)加入到项目中去。 – 这些代码可以用其它文本编辑工具编写。最常用的是UltraEdit,当然也 可以用modelsim自带的编辑器编写,然后保存为.v或.vhd格式。
Modelsim5.x仿真器的使用
Modelsim –A product from Mentor Graphics –The most popular VHDL simulator –Also a moderate performance Verilog Simulator Features: –User friendly –Interactive or script mode. –NT or UNIX
仿真设置
– 首先在view菜单中点击wave和signals,打开这两个窗口。Wave 显示设计中各种信号的波形。Signals窗口显示设计中各个模块 的接口信号。在sim浏览区中选择不同的设计模块,signals窗口 能够显示相应的接口信号。接下来将signals窗口的信号拖到 wave窗口中去。如下图所示。这样在仿真之后,所选信号的波形 就会出现在wave窗口中。
3. 工作区是命令输入窗口,同时也显示对命令执行情 况的信息。 Modelsim支持两种操作方式。
•一种是通过点击菜单完成各种任务 •另一种是直接输入命令执行相应的操作。
modelsim使用教程
modelsim使用教程Modelsim6.0使用教程Modelsim简介Modelsim仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比Quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。
ModelSim分几种不同的版本:SE、PE和OEM,其中集成在Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。
比如为Altera提供的OEM版本是ModelSim-Altera,为Xilinx提供的版本为ModelSimXE.SE版本为最高级版本,在功能和性能方面比OEM版本强很多,比如仿真速度方面,还支持PC、UNIX、LIUNX混合平台.为什么要学Modelsim?1.Modelsim是专业的HDL语言仿真器,比Quartus自带的仿真器功能强大的多.2.Quartussimulator不支持Testbench,只支持波形文件.vwfvwf文件全称是矢量波形文件(VectorWaveformFile),是QuartusII中仿真输入、计算、输出数据的载体。
一般设计者建立波形文件时,需要自行建立复位、时钟信号以及控制和输入数据、输出数据信号等。
其中工作量最大的就是输入数据的波形录入。
比如要仿真仅1KB的串行输入数据量,则手工输入信号的波形要画8000个周期,不仅费时费力而且容易出错怎样入门?对于初学者,modelsim自带的教程是一个很好的选择,在Help->SEPDF Documentation->Tutorial里面.它从简单到复杂、从低级到高级详细地讲述了modelsim的各项功能的使用,简单易懂。
modelsim使用入门(VHDL_
Quartus
这里用的是 modelsim-altera(6.6d) 版本,与 quartus II 11.0 搭配。据说 Altera 公司推出的
Quartus 软件不同版本对应不同的 modelsim,相互之间不兼容。 某些功能齐全的 modelsim 版 本可以进行两种语言的混合编程, modelsim-altera 只能支持一种语言进行编程( VHDL 或
; ca88会员登录入口 https:///dongmanmanhua ca88会员登录入口 ;
; ca88会员登录入口 https:///xiaohuajijin ca88会员登录入口 ;
; ca88会员登录入口 https:///nongyezaixian ca88会员登录入口 ;
std_logic;
div :out
std_logic);
end component;
采用 50MHZ 时钟频率
命名 div10_tb
signal clk :std_logic:='0'; signal div :std_logic:='0'; constant clk_period:time:=20 ns;
begin
u1: div10 port map (clk=>clk,div=>div);
process begin
wait for clk_period/2; clk<='1';
wait for clk_period/2; clk<='0';
end process;
end;
保存为 div10_tb.vhd 文件,见图下。
port(clk :in std_logic;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
映射现有的库(UI)
选择 a map to an existing library 和 输入库名
用这个命令可映射一个设计 单元已经预编译的库目录
浏览库目录
-> vmap lpm_sim c:/Quartus/library/lpm
23
映射现有的库(UI)
选择 a new library and a logical mapping to it a 输入库名
IEEEpure
– 包含唯一IEEE 认可的 std_logic_1164 packages – 用于仿真加速
IEEE
– 包含预编译的Synopsys和IEEE 算法包 – 给std_logic的基本类型 – 用于仿真加速
18
vlib <library_name> 命令
建立库 缺省值是 work
21
2 映射逻辑库名
语法: vmap <logical_name> <directory_path>
UI) 从主菜单: Design -> Browse Libraries Design -> Create a New Library Cmd) 从主体的记录窗口: ModelSim> vmap my_work c:/my_design/my_lib
VHDL
– vsim top_entity top_architecture • 仿真 Entity/Architecture 对 • 也能选择一个结构
Verilog
– vsim top_level1 top_level2 • 仿真多个top级模块
33
启动仿真器 (UI)
选择仿真器的分辨率
按timesteps指定的时间长度执行仿真
37
执行仿真 (UI)
选择 timesteps数量就 可以执行仿真
Restart – 重装任何已改动 的设计元素并把仿真时间设 为零 COM) restart
38
run 命令参数
可选的参数
vdir
– 显示指定库的内容 – UI) Design -> View Library Contents – Cmd) vdir -lib <library_name>
26
3 编译源代码(VHDL)
UI) Design -> Compile
Cmd) vcom -work <library_name> <file1>.vhd <file2>.vhd
典型的PLD设计流程
设计输入
– 设计的行为或结构描述
RTL仿真(ModelSim)
– 功能仿真 – 验证逻辑模型(没有使用时间延迟) – 可能要求编辑设计
综合
– 把设计翻译成原始的目标工艺 – 最优化 • 合适的面积要求和性能要求
布局和布线
– 映射设计到目标工艺里指定位置 – 指定的布线资源应被使用
<library_name>
_info
any_verilog_module _primary.dat _primary.vhd verilog.asm any_vhdl_unit _primary.dat
_lock
<arch_name>.dat <arch_name>.asm
Where
– – – – _primary.dat - Verilog module 或 VHDL entity的编码格式 _primary.vhd - Verilog 端口的VHDL entity陈述 <arch_name>.dat - VHDL体系的编码格式 verilog.asm 和 <arch_name>.asm – 执行代码文件
4
典型的PLD设计流程
门级仿真 (ModelSim)
– 时序仿真 – 验证设计一旦编程或配置将能在目标工艺里工作 – 可能要求编辑设计
时序分析 验证合乎性能规范
– 可能要求编辑设计
版图设计
– 仿真版图设计 – 在板编程和测试器件
5
ModelSim概览
6
ModelSim 仿真工具
次要
– 在相同的库里单元可以用一 个普通名称 – VHDL • Architectures(体系) • Package bodies – Verilog没有次要单元
17
VHDL 预先确定库
VHDL
– Library std 包含packages standard 和 textio • 这些packages初学者不要去修改
ModelSim/ 和 VHDL
ModelSim/SE
– 首要的版本 – PLUS的所有功能连同附加功能
8
ModelSim OEM 功能
提供完全的标准
– – – – – – „87 VHDL „93 VHDL IEEE 1364-‟95 Verilog SDF 1.0 - 3.0 VITAL 2.2b VITAL „95
Cmd) 从main, 记录窗口: ModelSim> vlib <库名>
15
ModelSim 库
包含编译设计单元的目录
– VHDL 和 Verilog 都被编译到库里
两个类型
– Working (缺省值 work) • 包含当前被编译的设计单元 • 编译前必须建立一个working库 • 每个编译只允许一个 – Resource • 包含能被当前编译引用的设计单元 • 在编译期间允许多个 • VHDL库能通过LIBRARY和USE子句引用
– Packages before Entity/Architectures using them – Entities/Configurations before Architectures referencing them
Configurations are compiled last
28
3 编译源代码(Verilog)
UI) Design -> Compile
Cmd) vlog -work <library_name> <file1>.v <file2>.v
– 文件按出现的顺序被编译 – 文件的顺序或者编辑的顺序不重要
支持增量式编译 缺省编译到work库
– 例如. vlog my_design.v
选择库
选择顶级module 或 entity/architecture
34
启动仿真器(UI)
指定 SDF文件
使用定时值的等级的 类型 (如果不是顶级)
35
vsim 命令的参数
参数
– -t <time_unit> • 指定仿真的时间分辨率 • 单位可以是{fs, ps, ns, ms, sec, min, hr} • 如果用了 Verilog的 ‘timescale指令, 将使用整个设计中的最小 的时间精度 • 可选项(缺省是 ns)
用Model技术公司的 ModelSim 做分析设计
Altera 中国区代理------骏龙科技有限公 司现场应用工程师: sun song 收集整理
1
典型的PLD设计流程
2
典型的PLD流程
设计规范 修改设计 设计输入 RTL仿真 设计综合 布局和布线 门级仿真 时序分析 系统上验证 系统产品
3
– -sdfmin | -sdftyp | -sdfmax <instance>=<sdf_filename> • 注释SDF文件 • 可选项 • 使用实例名也是可选项; 如果没有使用, SDF用于顶级
36
5 执行仿真
UI) Run
COM) run <time_step> <time_units>
注意: 当库中涉及的设计单元被改变时设计单元必须重新分析。
27
VHDL Design Units Dependencies
Entity before Architecture Package Declaration before Package Body Design units must compiled before being referenced
由Model技术公司开发 工业上最通用的仿真器之一
可在Verilog 和 VHDL仿真
– OEM版本允许Verilog仿真 或者 VHDL 仿真
ModelSim 产品
ModelSim/VHDL 或者 ModelSim/Verilog
– OEM
ModelSim/LNL
– 许可 Verilog 或者 VHDL,但是不同时许可
19
建立库(UI)
选择 a new library only 和 输入库名
这个命令在局部目录 建立一个库子目录
-> vlib lpm_sim
20
映射逻辑库名
必须映射一个逻辑库名到库路径(定位)
– 在库路径里的文件必须已经被编译 – 支持相对的, 绝对的, 和软件路径名
需要库在工作目录里没有定位 用vmap命令
– 文件按出现的顺序被编译 – Compilation order/dependencies (next slide)
„87 VHDL是缺省的
– UI) 用Default Options 按钮设为„93 – Cmd) 用 -93 选项(必须是第一个参数)
缺省编译到工作库
– 例如. Vcom -93 my_design.vhd
易用的界面
– 通用的平台