ModuleSim SE 快速入门
ModelsimSE的使用方法 简单易懂
2020/10/13
西安邮电学院计算机系
9
图2.3
2020/10/13
西安邮电学院计算机系
10
编译: 编译(包括原代码和库文件的编译),编译可点击Comlile > Comlile All来完成。
2020/10/13
西安邮电学院计算机系
11
装载文件: 如图2.4,点击Simulate -> Simulate..后,如图 2.5所示,选定顶层文件(激励文件),ADD加入,然后 点击load,装载。
2020/10/13西安邮电学Fra bibliotek计算机系3
2.1代码仿真需要的文件
设计HDL源代码:可以使用VHDL语言或Verilog HDL语言。(这里以附录用Verilog语言编写的4位计数器 为例进行说明)
测试激励代码:根据设计要求编写输入/输出的激励程序, 由于不需要进行综合,书写具有很大的灵活性。
2020/10/13
西安邮电学院计算机系
21
图3.1
2020/10/13
西安邮电学院计算机系
22
图3.2
2020/10/13
西安邮电学院计算机系
23
用Qusrtus产生仿真所需要的网表与sdf文件: 在作了第一步的正确设置后,每当你完成一次编译, Quartus会自动在你的当前Project 目录下生成一个 simulation目录,在该目录下,就有我们所需要的文件。如 果使用VHDL语言,网表文件是.VHO,SDF文件.SDO;如果 使用Verilog语言,网表文件是.VO,SDF文件也是.SDO。
2020/10/13
西安邮电学院计算机系
5
图2.1
2020/10/13
QuartusII13.0与Modelsim SE安装与破解说明
QuartusII13.0与Modelsim SE安装与破解说明FPGA开发使用到的常用软件为QuartusII和Modelsim,QuartusII为设计软件,Modelsim为仿真软件。
本人目前使用的QuartusII为13.0版本,使用的Modelsim为SE的10.4版本的。
(SE版本什么意思,在以后的学习中大家一起慢慢补充)学习FPGA的前提是要安装这两款软件,需要软件的可以联系我。
两款软件大体分为三个步骤:1.安装。
2.破解。
3.关联两个软件。
本人使用的电脑为Win7的64位系统,32位系统装步骤大同小异。
现将这两款软件的安装及破解详细说明如下。
一、QuartusII13.0安装与破解(1)安装QuartusII13.0安装的过程完全按照它的提示来,本人建议不要安装在C盘,毕竟C盘内存宝贵。
我的QuartusII13.0安装的路径为E:\soft\quartus13.0,路径不可出现汉字。
(2)破解QuartusII13.01.首先将破解器复制到E:\soft\quartus13.0\quartus\bin64的目录下。
2.然后运行破解器,点“应用”直接进行破解,生成的License保存在E:\soft\quartus13.0\quartus\bin64的目录下。
3.接着,打开软件,找到软件的NIC的ID,复制其中的一个ID。
4.然后,找到第2步保存的License,使用记事本打开,将其中的XXXXXXXXXXXX全部替换成第3步的ID,保存即可。
再次打开软件,点“Tools”,找到“License setup”,会弹出一个对话框。
如图1.1所示。
选择好License file的路径,然后会出现使用的年限,如图1.2所示,即说明破解成功。
file:///C:\Users\luqili\AppData\Local\Temp\msohtmlclip1\01\clip_image002.jpg图1.1 License setup对话框file:///C:\Users\luqili\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg图1.2 破解成功示意图二、Modelsim SE安装与破解(1)安装Modelsim SE安装的过程按照它的提示进行,我的安装路径为E:\soft\modelsim10.4an,安装路径不可出现汉字。
modesim 高级教程
将鼠标移至资源窗口变量上,即显示变量当前值。
观察列表(续)保存列表先Undock列表窗口 菜单File->Write List->Tabular (Events)观察存储器改变地址与内容的显示方式右键->Properties地址快速定位地址地址栏上右键->Goto查找列表中的值主窗口菜单Edit->Signal Search 列表窗口菜单Edit->Search导出数据File(右键)->Export->Memory Data设置列表标签选择一行,右键Add Maker 在菜单View->Goto->中迅速定位到该时间行初始化存储器File(右键)->Import->Memory Data 或者选择一个数,右键Edit,Enter主要内容一 、Modelsim 简介 二 、Testbench 的编写 三、后仿真实例讲解 四 、Modelsim 高级应用二 、Testbench 的编写1.Testbench的基本结构 2.Testbench激励的产生 3.Testbench常用语言结构 4.Testbench的矢量波形输入 5.Testbench常用系统任务 6.Testbench实例11编写Testbench的目的与过程编写Testbench的目的是对硬件描述语言写的 电路进行仿真,从而验证电路的功能与性能是 否与预期的设计相符。
编写Testbench的过程产生测试电路的激励信号 将激励信号加到被测试模块并观察其输出响应 将输出的响应与期望的值进行比较1、 Testbench的基本结构`timescale 1ns/1ps module testbench; 信号或变量定义声明; 产生激励波形; 例化设计模块; 监控比较输出响应; endmodulemodule verge_test_tb ; reg [7:0] data_in ; wire [7:0] data_out ; initial begin …. end verge_test DUT ( .data_in (data_in ) , .data_out (data_out ) , .bmp_true (bmp_true ) , .clk (clk ) );……endmodule在Modelsim中,简单模块的激励也可以直接用波 形编辑器产生。
用Modulesim
⽤Modulesim 对使⽤lpm的Quartus设计进⾏仿真出现的问题因为是初学者,对软件像Modulesim 和 Quartus II使⽤得不是很多,通常会因为不知道操作⽅法饱受困扰。
所以只能厚脸⽪的⽤⾃⼰可怜的英语查看Tutorial,很是蛋疼啊。
最近两天试了试书本上的LPM调⽤,就按照书本上的作了个调⽤LPM_Counter的4位计数器,谁知道在仿真的时候竟然出现了#Error Loadingdesign的错误,错误提⽰是这样⼦的:resource_library/cnt4b.v(78): Instantiation of 'lpm_counter' failed. The design unit was not found. ⼤概意思就是实例化lpm_counter失败的意思,没有找到这个原件。
⽹上查了说要添加原件库,但是我⽤的是Altera OEM 版本的不⽤添加原件库的啊,⽆奈之下看了头疼的Tutorial 和User Manual知道了。
Tutorial 第五章Working With Multiple Libraries⾥⾯提到了应⽤IP核: You might have multiple libraries to organize your design, to access IP from a third-party source, or to share common parts between simulations.按照Tutorial内的例⼦做,因为我的CNT4B的例⼦是调⽤的LPM函数,仅仅⽤MegaWizard Plug-in Manager⽣产的CNT4B.V是不够的,因为它也是调⽤的更低层的函数,所以要将LPM_COUTER的加到serach library⾥⾯才可以,如图所⽰就是这样了。
Modelsim的下载及安装
② right-click test_counterAdd / To Wave / All items in
region
编辑课件
23
Modelsim 6.5基本仿真流程
③ Run the simulation.
2. Compiling Your Design 在library中完成设计文件的编译,支持多平台
You compile your design units into the library( compatible across all supported platforms)
编辑课件
7
Modelsim 6.5基本仿真流程
编辑课件
14
Modelsim 6.5基本仿真流程
1. 1. Create a new directory and copy the design files for this lesson into it. Counter.v tcounter.v
2. 2. Start modelsim File /Change Directory (to the directory you created)
编辑课件
15
Modelsim 6.5基本仿真流程
3. Create the working library. File/ New /Library
Work中自动创建了一个_info
的文件。表明此目录为
Modelsim的工作库,不 能改动。
编辑课件
16
Modelsim 6.5基本仿真流程
4. Then
ModelSim高级使用进阶_1_do文件和批处理文件使用_Camp
Reading D:/EDA_ProgramFile/Modelsim10d/tcl/vsim/pref.tcl
# // ModelSim SE 10.0d Oct 30 2011
# //
# // Copyright 1991-2011 Mentor Graphics Corporation
# // All Rights Reserved.
于这些命令你,其实不然。开始吧!
以下两部分:do 文件编写 和 bat 编写
第一部分:do 文件编写 回到前面我们使用 modelsim 的 GUI 操作的第七步。 然后在工程目录下建立一个 do 文件的(新建一个文本文件,然后把后缀名改成.do 文件即可),我这里新建的文件为 tt.do. OK,利用 netopad++打开(我这里对于文件编写比较喜欢的软件,随大家喜好). 发现文件时空白的.嘿嘿!怎么办?没关系.我们打开 modelsim 的操作界面。 然后查看”Transcript”栏,你会发现,这里有着我们所有的操作命令和操作结果,而我们需要的就是命令.看看我 们的结果。 以下的数据很长,可以不用细看,直接跳到最后,我会告诉你如何看这些东西(中间一段不重要,我用….替换了) /****以下就是我们利用 GUI 操作后的 Transcritpt 显示的全部结果************/
致给奋斗与 FPGA 技术领域的朋友们 By Camp
第一句开始:Reading D:/EDA_Program….” 这里是我安装软件的地方 -----第一步
接下来都是关于 Modelsim 的一些信息。
到 “cd D:/User/mywork/i2c” 这里是修改路径
-----第二步
“vlib work”
Simulink入门教程
Simulink 快速入门要构建模型, 可以使用Simulink® Editor 和Library Browser。
启动 MATLAB 软件启动 Simulink 之前, 请先启动MATLAB®。
请参阅启动和关闭(MATLAB)。
配置 MATLAB 以启动 Simulink您在 MATLAB 会话中打开第一个模型时需要的时间比打开后续模型长, 因为默认情况下, MATLAB 会在打开第一个模型时启动 Simulink。
这种即时启动Simulink 的方法可以缩短 MATLAB 启动时间, 避免不必要的系统内存占用。
•要快速打开第一个模型, 您可以配置 MATLAB, 在它启动时同时启动Simulink。
要启动 Simulink 而不打开模型或 Library Browser, 请使用start_simulink。
•根据 MATLAB 的启动方式, 恰当使用此命令:•在 MATLAB startup.m文件中在操作系统命令行中, 使用matlab 命令和-r 开关例如, 要在运行Microsoft®Windows®操作系统的计算机上启动 MATLAB 时启动 Simulink, 请创建具有以下目标的桌面快捷方式:matlabroot\bin\win64\matlab.exe -r start_simulink在 Macintosh 和Linux®计算机上, 可在启动 MATLAB 时使用以下命令启动Simulink 软件:matlab -r start_simulink打开 Simulink Editor•要打开 Simulink Editor, 您可以:•创建一个模型。
在 MATLAB 的Home 选项卡上, 点击Simulink 并选择一个模型模板。
或者, 如果您已经打开了 Library Browser, 请点击New Model 按钮/。
有关创建模型的其他方法, 请参阅创建模型。
modelsim使用命令
1. 常用仿真命令vlib work // 建立work仿真库vmap work wrok // 映射库vlog -cover bcest *.v // 加覆盖率分析的编译vsim -coverage -voptargs="+acc" -t ns test // 仿真文件为test.vadd wave * // 将所有模块waveform. dump出来add wave sim:/test/t/M2/Reg_out // 将模块Reg_out中的waveform. dump出来delete wave /test/i2. SVA 断言仿真命令vlog -sv a.vvsim -assertdebug testview assertionsvsim -assertdebug ScaleBlock_tf -L xilinxcorelib_ver -L unisims_ver // 加载xilinxlib库3. verror 3601 // 查错4. 给仿真工具加载xilinx 库命令(1)加载之前将modelsim.ini改为非“只读”(2)“运行” cmd,到xilinx目录下(3) C:\Xilinx > compxlib -s mti_se -p c:\Modeltech_6.0\win32 -f all -l verilog -o C:\ Modeltech_6.0\Xilinx_lbis或者Xilinx目录下.\bin\nt\下有compxlib.exe简单得modelsim命令行仿真用do文件进行仿真真得很方便,比写testbench方便多了,我是深有感触呀,开始时因为不知道,只知道写testbence,在小得模块也写testbench,真得很烦躁!而且信号定义什么得比较多,采用do文件得方法就没有那么多信号定义了,管理也比较方便,呵呵,真得很方便,而且采用命令行得形式,感觉特有成就感,呵呵!1.运行仿真,在主窗口输入命令:vsim work.实体名2.为时钟信号添加驱动,输入命令:force clk 0 0,1 10 -r 20,将仿真时钟设为50MHz;(设时间单位为ns)3.打开波形窗口,输入命令:view wave4.为波形窗口添加信号,输入命令:add wave -hex *,这里的*表示添加设计中所有的信号,-hex 表示以十六进制来表示波形窗口中的信号值;5.开始仿真,输入命令,run 3us,这时候在波形窗口中出现仿真波形6.退出仿真,输入命令:quit –sim。
MODESLsim仿真使用说明
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。
!!!!安装路径不能有空格!!!不要装在d:\program files\下,否则有可能自动调用时出现找不到d:\program 的情况在C盘根目录新建一个文件夹flexlm,用Keygen产生一个License.dat,然后复制到该文件夹下。
最好这样,我曾经放在D:\altera\Modelsim_6.1d\License.dat都不行修改系统的环境变量。
右键点击桌面我的电脑图标,属性->高级->环境变量->(系统变量)新建。
荐)ModelSim SE仿真Altera库的一些问题 常见仿真错误 问题 合集
荐)ModelSim SE仿真Altera库的一些问题常见仿真错误问题合集1. modelsim怎么调用altera的库仿真啊?(megafunctions)以前有个帖子说把quartus安装目录下的sim文件夹里面的文件编译进modelsim里面就可以了,可是sim文件夹里面我要的那个函数不是.v文件啊,还有他里面的一些.vhd文件怎么编译错误啊?是eda/sim_lib里,编译错误,我想是你编译的顺序不对用EDA/SIM_LIB中文件直接放到PROJECT中,你需要看看它的告错信息。
一般是缺库。
你可以按提示缺的库,在FILE/NEW/LIBRARY菜单里创建一个映射到WORK的库。
这样一般就好了。
如何在modelsim里如altera的库中做后仿真啊,急死了我用synplify综合后,用modelsim做后仿真,我在modelsim里面加入了C:quartusedasim_libmodelsimvhdl里面的两个库,但是编译的时候还是提示我找不到library apex20k。
还要加什么库啊???郁闷死了vlib apex20kvmap apex20k apex20kvcom -work apex20k c:/quartus/eda/sim_lib/apex20k_atoms.vhdvcom -work apex20k c:/quartus/eda/sim_lib/apex20k_components.vhd谢谢i8086,我现在知道怎么加入altera的库了,但是错误依然在,不知道是什么原因,modelsim里面的提示如下:vcom -reportprogress 300 -work work {D:/caiyang/rev_1/caiyang_1.vhd}# Model Technology ModelSim SE vcom 5.7e Compiler 2003.07 Jul 8 2003# -- Loading package standard# ** Error: (vcom-19) Failed to access library 'acex2k' at "acex2k".# No such file or directory. (errno = ENOENT)# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(7): Library acex2k not found.# -- Loading package std_logic_1164# -- Loading package numeric_std# -- Loading package components# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(12): Unknown identifier: acex2k# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(14): VHDL Compiler exitinglibrary ieee, acex2k;use ieee.std_logic_1164.all;use ieee.numeric_std.all;library synplify;use ponents.all;use acex2k.acex2k_components.all;~~~~~~~~~~~~~~~就是提示找不到这个东西,这是用synplify综合后的文件的前面几行代码。
ModelSim SE仿真Altera库的一些问题 常见仿真错误 问题 合集
ModelSim SE仿真Altera库的一些问题常见仿真错误问题合集1. modelsim怎么调用altera的库仿真啊?(megafunctions)以前有个帖子说把quartus安装目录下的sim文件夹里面的文件编译进modelsim里面就可以了,可是sim文件夹里面我要的那个函数不是.v文件啊,还有他里面的一些.vhd文件怎么编译错误啊?是eda/sim_lib里,编译错误,我想是你编译的顺序不对用EDA/SIM_LIB中文件直接放到PROJECT中,你需要看看它的告错信息。
一般是缺库。
你可以按提示缺的库,在FILE/NEW/LIBRARY菜单里创建一个映射到WORK的库。
这样一般就好了。
如何在modelsim里如altera的库中做后仿真啊,急死了我用synplify综合后,用modelsim做后仿真,我在modelsim里面加入了C:quartusedasim_libmodelsimvhdl里面的两个库,但是编译的时候还是提示我找不到library apex20k。
还要加什么库啊???郁闷死了vlib apex20kvmap apex20k apex20kvcom -work apex20k c:/quartus/eda/sim_lib/apex20k_atoms.vhdvcom -work apex20k c:/quartus/eda/sim_lib/apex20k_components.vhd谢谢i8086,我现在知道怎么加入altera的库了,但是错误依然在,不知道是什么原因,modelsim里面的提示如下:vcom -reportprogress 300 -work work {D:/caiyang/rev_1/caiyang_1.vhd}# Model Technology ModelSim SE vcom 5.7e Compiler 2003.07 Jul 8 2003# -- Loading package standard# ** Error: (vcom-19) Failed to access library 'acex2k' at "acex2k".# No such file or directory. (errno = ENOENT)# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(7): Library acex2k not found.# -- Loading package std_logic_1164# -- Loading package numeric_std# -- Loading package components# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(12): Unknown identifier: acex2k# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(14): VHDL Compiler exitinglibrary ieee, acex2k;use ieee.std_logic_1164.all;use ieee.numeric_std.all;library synplify;use ponents.all;use acex2k.acex2k_components.all;~~~~~~~~~~~~~~~就是提示找不到这个东西,这是用synplify综合后的文件的前面几行代码。
ModelSim
一个关于ModelSim的文章:首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。
1, ModelSim Se 6.1b2, Synplify Pro 7.5.13, ISE 5.2i (这个是老了点)4, WindowsXP(这个应该没有多大的关系)还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
一、为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim s_ver:用于布局布线后的仿真。
Unisim s_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim s_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim s_ver d:/Xilinx/verilog/src/simprims/*.v其中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。
以下凡是要根据自己系统环境改变的内容,我都会用绿色标出,并加一个下划线。
编译完之后,你会发现你的工程文件夹下出现了一个simprim s文件夹,里面又有很多个文件夹。
这些就是我们要的库了。
第四步:按照上面的方法,编译另外两个库。
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 本课小结 ....................................................... 错误!未定义书签。
ModelSim高级使用进阶_1_do文件和批处理文件使用_Camp
------第六步
run –all
运行全部
------第七步
接下来就是仿真打印的消息,直到结束,打印运行到哪一行为止.如果运行到 finish 则关闭 modelsim,所以我们少
用 finish 系统函数。(中间打印太多,我用” (…………)”来做省略了)
看了这么多,我们该如何编写我们的.do 文件呢?或许有人已经想出点眉目了,
vlog -reportprogress 300 -work work D:/User/mywork/i2c/i2c_driver.v
# Model Technology ModelSim SE vlog 10.0d Compiler 2011.10 Oct 30 2011
# -- Compiling module i2c_driver
# Refreshing D:\User\mywork\i2c\work.Signal1
# Loading work.Signal1
# Refreshing D:\User\mywork\i2c\work.i2c_driver
# Loading work.i2c_driver
# Refreshing D:\User\mywork\i2c\work.at24cxx
的确如此但我这里所保存的波形文件它并不是保存波形的内容而是保存它显示方式比如下面图我们此次仿真出来的结果如下图图中我修改的地方有
ModelSim 高级使用进阶_1
致给奋斗与 FPGA 技术领域的朋友们 By Camp
_do 文件和批处理文件使用
如果你还没有学会使用 modelsim 进行仿真,请把该文档关闭。回去学习基本的使用 如果你已经学会使用 modelsim 进行仿真,而且自己非常的娴熟 modelsim,那恭喜你,你或许可以把该文档 关闭,继续你的学习;或者可以浏览一下这个文档,然后给出你的建议。 无论你是大虾还是小虾,我都会期待你的指正和批评. 都可以发送 E_MAIL 给我 先给个术语:GUI---- Graphical User Interface,简称 GUI. 图形用户界面.
MEscope_新手上路
Modelsim 中文
RTL仿真(ModelSim)
– 功能仿真 – 验证逻辑模型(没有使用时间延迟) – 可能要求编辑设计
综合
– 把设计翻译成原始的目标工艺 – 最优化 • 合适的面积要求和性能要求
布局和布线
– 映射设计到目标工艺里指定位置 – 指定的布线资源应被使用
4
典型的PLD设计流程
16
ModelSim 设计单元
主要
– 在一个特定的库中必须有唯 一的名字 – VHDL • Entities(实体) • Package Declarations(包 声明) • Configurations(结构) – Verilog • Modules(模块) • User Defined Primitives (用户定义原语)
使用定时值的等级的 类型 (如果不是顶级)
35
vsim 命令的参数
参数
– -t <time_unit> • 指定仿真的时间分辨率 • 单位可以是{fs, ps, ns, ms, sec, min, hr} • 如果用了 Verilog的 ‘timescale指令, 将使用整个设计中的最小的 时间精度 • 可选项(缺省是 ns) – -sdfmin | -sdftyp | -sdfmax <instance>=<sdf_filename> • 注释SDF文件 • 可选项 • 使用实例名也是可选项; 如果没有使用, SDF用于顶级
– Packages before Entity/Architectures using them – Entities/Configurations before Architectures referencing them
SIMULINK中一些模块的用法
1.阻抗测量模块:阻抗测量模块是用于测量一线性电路中两个节点之间的阻抗的模块,其测量的阻抗是频率的函数。
它由一个连接在阻抗测量模块的第一个和第二个输入端之间的电流源z I 和一个连接于电流源的两端的电压测量z V 组成。
系统阻抗是通过传递函数()s H 计算得出的,即是由输入到状态空间(state-space )模型的电流到输出的电压的传递函数。
()()()s I s V s H z z =通过Powergui 模块的阻抗依频特性测量工具就可以显示出测量阻抗的相频特性和幅频特性。
阻抗测量模块考虑了断路器和理想开关的初始状态,也可以测量含有分布参数线路模块的电路的阻抗。
测量模块在计算阻抗时也考虑了电源的阻抗。
通过定义,将电压源的阻抗置为0(即认为电压源模块是短路的),将电流源的阻抗置为无穷大(即认为电流源模块是开路的)。
但是在某些应用中,需要手动删除电流源或是电压源模块以忽略它们对计算阻抗的影响。
参数设置对话框:放大系数:如果要在三相电路中用阻抗测量模块,那么可以通过设置放大系数参数来调节要测量的阻抗。
例如,测量三相电路中两相之间的阻抗就会得到两倍的正序阻抗。
为了得到正确的正序阻抗值,就必须设置放大系数为1/2。
同理,要测量一平衡三相电路的零序阻抗,就要将阻抗测量模块连接到地或中性点和三相连接的一点之间。
在这种情况下,就会得到零序阻抗的1/3,因此,还必须将放大系数设置为3才能得到正确的零序阻抗值。
限制条件:在计算阻抗时仅仅考虑了断路器、三相断路器、三相故障、理想开关和分布参数线路这些非线性模块。
而如电机和电力电子设备等非线性模块就没有考虑在内,在测量阻抗过程中,它们被认为是断开的。
如果你要将阻抗测量模块与电感、电流源或是任何非线性元件串联,就必须在模块的两端增加一个大电阻,这是由于阻抗测量模块是作为一个电流源进行仿真的。
2.三相变压器(双绕组)实现了可配置绕组连结的三相变压器描述:三相变压器(双绕组)模块通过三个单相变压器实现了一个三相变压器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ModuleSim SE 快速入门
本文以ModelSim SE 5.6版本为基础,介绍ModelSim 。
SE的最基本用法,高深的我也不会
当你安装完ModelSim SE之后,可以将你的ModelSim SE的起始路径设置为你的工作目录(如e:\verilog),具体方法是在右键单击执行文件ModelSim SE的图标再点击属性栏,就可以看到ModelSim SE的起始位置,改为你的工作目录就可。
学习verilog语言也必须学习写它的testbench文件,即测试文件。
建议从最开始就学习写,写一个程序写一个testbench。
ModelSim SE仿真用的文件也就是testbench 文件。
Testbench文件可以在仿真中发现你的逻辑错误,对于以后作较大的程序更适用。
而避免让你在实际调试中的出现很多的问题而无头绪。
好,现在假设你在e:\verilog目录下有一个\div目录,该目录下有两个文件div.v和tdiv.v为一个分频时序描述文件和它的testbench文件。
文件内容如下:
e:\verilog\div\div.v
module div(clk_i,clk_o,reset);
parameter DIV_N = 4;
input clk_i;
input reset;
output clk_o;
reg clk_o;
integer count;
always @ (negedge reset or posedge clk_i)
begin
if(!reset)
count <= 0;
else
if(count == 3)
count <= 0;
else
count <= count + 1;
end
always @ (negedge reset or posedge clk_i)
begin
if(!reset)
clk_o <= 0;
else
begin
if(count <= (DIV_N/2 - 1))
clk_o <= 0;
else
clk_o <= 1;
end
end
e:\verilog\div\tdiv.v
module testdiv;
reg clk_i;
reg reset;
wire clk_o;
always #50 clk_i = ~clk_i;
initial
begin
#0 reset = 0;clk_i = 0;
#100 reset = 1;
#2000 $stop;
end
div div1(.clk_i(clk_i),.clk_o(clk_o),.reset(reset));
endmodule
下面是我们的仿真步骤:
启动ModelSim SE, 首先看到在在ModelSim SE右边的窗口有ModelSim> 这样的提示符。
在提示符后,顺序运行以下命令:
vlib work 该命令的作用是在该目录下建立一个work目录,请注意不要用操作系统来新建一个work的文件夹,因为用操作系统建立的work文件夹并没有ModelSim SE 自动生成的_info文件。
vmap work work 该命令的作用是将目前的逻辑工作库work和实际工作库w ork映射对应。
vlog div.v tdiv.v 该命令的作用是编译这些文件,要注意的是文件可以单独分开编译,但是一定要先编译被调用的文件。
假如是VHDL文件就可以用vcom file1,file2命令来编译。
vsim testdiv 仿真命令, 注意后面的参数必须为tdiv.v中的模块名。
add wave/testdiv/ * 该命令的作用是将testbench文件tdiv.v中模块testdiv下所有的信号变量加到波形文件中去。
这时候你也可以看到wave文件被打开。
run 2000 该命令的作用是运行2000个单位时间的仿真。
也可以用run –all命令来一直仿真下去。
这时候就可以在wave窗口文件中看到你的仿真结果。
当然也可以观察其它窗口的结果,用view命令显示
view * 观察包括signals、wave、dataflow等窗口文件。
也可以分别打开。
例如用view signals来观察信号变量。
ModelSim 5.6还有一个很好用的功能。
就是可以看整个文件所形成的数据流程,各个模块之间的逻辑联系。
具体方法是在仿真后执行命令view datalflow 就可以打开da taflow文件,在dataflow的窗口菜单中点击navigate(导航)中的view all nets就可以观察到各个模块之间的逻辑联系,模块一般都为initial模块、always模块、assign模块等等。
点击中一个模块,则这个模块变为红色。
这时候在view菜单下点击show wave 就可以在窗口下方弹出wave窗口,不同的是这个wave窗口所显示的信号变量仅为点击中的模块所包括的信号变量,这时候也可以点击仿真run –all小图标来仿真有关这个模块的输入输出关系。
以上命令,就是ModelSim SE仿真程序所用到的基本命令。
实际上都可以在窗口菜单中找到,效果是一样的,可能大家觉得每次用鼠标点击菜单方式更快一点,但是在Mod elSim SE中开可以执行一种批处理文件,就是file.do文件,相当于DOS中的.bat
文件。
你可以用批处理方式来使你仿真简单化,具体做法为,将你所要执行的命令编辑在一起,以上面所讲为例,我可以编辑一个div.do文件,文件内容如下:
vlib work // 建库
vmap work work // 映射
vlog div.v tdiv.v // 编译
vsim testdiv // 仿真(模块名称)
add wave/testdiv/ * // 将testdiv下的所有信号变量加入到wave窗口中,注意”*”前// 必须, 有“”,即空格
run 2000 // 或者用run –all等。
view view all dataflow // 用navigate nets观察dataflow,不想观察就可以不
// 加这条指令
将上述内容保存后,每次用命令do div.do 就可以自动执行想要的仿真动作。