搜档网
当前位置:搜档网 › Modelsim的仿真教程

Modelsim的仿真教程

Modelsim的仿真教程
Modelsim的仿真教程

ModelSim的仿真

1.仿真的分类

仿真过程是正确实现设计的关键环节,用来验证设计者的设计思想是否正确,及在设计实现过程中各种分布参数引入后,其设计的功能是否依然正确无误。仿真主要分为功能仿真和时序仿真。功能仿真是在设计输入后进行;时序仿真是在逻辑综合后或布局布线后进行。1). 功能仿真( 前仿真)

功能仿真是指在一个设计中,在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。布局布线以前的仿真都称作功能仿真,它包括综合前仿真(Pre-Synthesis Simulation )和综合后仿真(Post-Synthesis Simulation )。综合前仿真主要针对基于原理框图的设计; 综合后仿真既适合原理图设计, 也适合基于HDL 语言的设计。

2). 时序仿真(后仿真)

时序仿真使用布局布线后器件给出的模块和连线的延时信息,在最坏的情况下对电路的行为作出实际地估价。时序仿真使用的仿真器和功能仿真使用的仿真器是相同的,所需的流程和激励也是相同的;惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,时序仿真后的信号加载了时延,而功能仿真没有。

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

1).设计出能工作的电路:因此功能仿真不是一个孤立的过程,其和综合、时序分析等形成一个反馈工作过程,只有这个过程收敛,各个环节才有意义。而孤立的功能仿真通过是没有意义的,如果在时序分析过程中发现时序不满足需要更改代码,则功能仿真必须从新进行。因此正确的工作流程是:

2).代码排错:功能仿真是代码排错的最重要的手段之一。4).仿真检验代码质量的一个重要手段。测试激励的代码覆盖率至少要达到95%以上,才能基本认为代码在逻辑上是通过质量控制的,才能进入综合步骤;5).在大的设计中,如果想通过一个激励就验证完一个设计或者模块是不现实的。一方面是从逻辑功能上很难做到;另外一方面是因为如果在一个激励中包括了各种情况,整个仿真过程的速度会随着计算机内存的消耗而成线性下降,效率低下,而利用仿真能很好地解决这些问题。6).通常的做法是每一个激励只验证电路功能的某个方面。整个电路的功能验证由数个激励共同完成。在这种验证方法中代码覆盖率更显重要,因为可以通过代码覆盖率来控制激励对功能的覆盖程度。7).modelsim的Code coverage不但能记录各个激励对代码的“行覆盖”和“分支覆盖”,而且能够将各个激励的覆盖记录进行合并,做到对覆盖率的全面监测。

3.仿真的过程

1).综合前的功能仿真

下面以一个线性反馈移位寄存器为例用ModelSim进行功能仿真,由于用编写do文件的方法进行仿真能极大提高仿真设计的效率,我们采用编写do文件的方式来仿真。

<1>编写TestBench文件。

<2>编写do文件。

<3>打开ModelSim,打开命令File-New-Project,在窗口中输入工程名LFSR_MS,并制定do 文件所在文件夹路径。

<4>命令控制栏中直接输入“run sim.do”按回车进行仿真,并查看波形。

2).综合后功能仿真

<1>为工程添加库文件。去除modelsim安装目录下modelsim.ini的只读属性(使得这个.ini 的配置文件可以被修改)

<2>打开Modelsim,更改目录File->Change directory到根目录下。

<3>新建一个库取名为alteralibrary。我使用的是Modelsim的6.2b版本,步骤是:File-> New->Library,打开之后在Library Name中写上alteralibrary,点击ok就可以了。

<4>在Quartus安装目录先找到四个库文件,我的目录是F:\Program Files\ Quartus\quartus \eda\sim_lib,并复制到D:\FPGA_Example\LFSR\ModelSim目录下待用。

<5>在Modelsim的环境下对alteralibrary库文件进行编译。步骤是Compile -->Compile,打开对话框,Library中选择你刚才建的库名alteralibrary,在查找范围内添加第三部我们从Quartus中复制过来的库文件,我这里是D:\FPGA_ Example\LFSR\ModelSim,如果你是用vhdl编写代码的则选择\vhdl,verilog编写代码的话就选\verilog(我选择的是\verilog),再点击Compile,编译完成后点击done。这样我们的库文件就编译完成了,其编译后的文件就存放在我们建立的库文件alteralibrary中。

<6>打开Modelsim.ini文件,在[Library]下可以看到alteralibrary = alteralibrary,那就修改下路径就成alteralibrary存放的路径,我把路径修改为D:/FPGA_Example/LFSR/ModelSim/Postsim /alteralibrary。

<7>再把Modelsim.ini的只读属性选上就可以开工了,重启Modelsim就能在Library栏看到你添加的库啦。

<8>在Quartus中打开Assignment-> Setting -> Simulation,在Tool name中选择Modelsim,在Output Directory中指定生成的网表文件的路径,在more setting中将Generate Netlist for Functional Simulation Only中选择ON,点击仿真就能在你指定的文件夹中输出仿真所需要

的网表文件。

<9>在Modelsim中新建工程,并添加网表文件和TestBench文件,并编译。

<10>仿真。首先执行Simulate->Start Simulation 在窗口中的Libraries中选择add添加alteralibrary库文件,在work中选择仿真的TestBench文件,点击OK.

<11>添加波形并仿真。点击View-> Wave,然后将Object中的端口添加到波形查看窗口中,在状态命令栏中输入run 20000,就能查看波形了。

3).布线后的时序仿真

对于布线后的时序仿真我们需要布线后的网表,延时文件*.sdo,testbench文件,仿真原型文件。其仿真过程和综合后的仿真过程大体一致,只是添加的文件有所不同,这里不再重复。

附录:

线性移位寄存器verilog程序:

module LFSR

(

//input ports

SYSCLK,

RST_B,

//output port

DA TA_OUT

);

//=================================

//input and output declaration

//=================================

input SYSCLK;

input RST_B;

output [7:0] DA TA_OUT;

//=================================

//wire and reg declaration

//=================================

wire SYSCLK;

wire RST_B;

reg [7:0] DATA_OUT;

wire [7:0] DA TA_OUT_N;

wire DO_GEN;

//=================================

//logic

//=================================

always@(posedge SYSCLK or negedge RST_B)

begin

if(!RST_B)

DATA_OUT <= 8'b00000001;

else

DATA_OUT <= DATA_OUT_N;

end

assign DO_GEN= DA TA_OUT[7]^DA TA_OUT[3]^DATA_OUT[2]^DATA_OUT[1];

assign DATA_OUT_N = {DATA_OUT[6:0],DO_GEN};

endmodule

testbench程序:

module LFSR_TB;

reg SYSCLK;

reg RST_B;

wire [7:0] DATA_OUT;

LFSR I_LFSR_TB

(

.SYSCLK (SYSCLK),

.RST_B (RST_B ),

.DATA_OUT(DA TA_OUT) );

always #20 SYSCLK = ~SYSCLK; initial

begin

#0 SYSCLK = 0;

RST_B = 0;

#50 RST_B = 1;

end

endmodule

do文件程序:

#新建一个工作库

vlib work

#将建立的一个工程与工作库之间映射vmap work work

#编译两个文件

vlog ../Src/LFSR.v

vlog ../TestBench/LFSR_TB.v

#仿真,不进行优化

vsim -novopt work.LFSR_TB

#添加波形

add wave LFSR_TB/SYSCLK

add wave LFSR_TB/RST_B

add wave LFSR_TB/DATA_OUT

add wave I_LFSR_TB/DO_GEN

#运行20000ns

run 20000

hspice仿真整理

§电路级和行为级仿真 §直流特性分析、灵敏度分析 §交流特性分析 §瞬态分析 §电路优化(优化元件参数) §温度特性分析 §噪声分析 例(Hspicenetlist for the RC network circuit): .title A SIMPLE AC RUN .OPTIONS LIST NODE POST .OP .AC DEC 10 1K 1MEG .PRINT AC V(1) V(2) I(R2) I(C1) V1 1 0 10 AC 1 R1 1 2 1K R2 2 0 1K C1 2 0 .001U .END 输出文件:一系列文本文件 ?*.ic:initial conditions for the circuit ?*.lis:text simulation output listing ?*.mt0,*.mt1…:post-processor output for MEASURE statements ?*.pa0 :subcircuit path table ?*.st0 :run-time statistics ?*.tr0 ,*.tr1…:post-processor output for transient analysis ?*.ac0,*.ac1…: post-processor output for AC analysis .TITLE 语句 .TITLE 或者: 如果是第二种形式,字符串应该是输入文件的首行;如果一个HSPICE语句出现在文件的首行,则它将被认为是标题而不被执行。 .END 语句 形式:.END 在.END语句之后的文本将被当作注释而对模拟没有影响。 分隔符 ?包括:tab键,空格,逗号,等号,括号 ?元件的属性由冒号分隔,例如M1:beta ?级别由句号指示,例如X1.A1.B 表示电路X1的子电路A1的节点B 常量 ?M-毫,p-皮,n-纳,u-微,MEG-兆,

modelsim使用 + 前仿真 + 后仿真 + verilog

Modelsim 6.0 使用教程 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。 ⑵.在C盘根目录新建一个文件夹flexlm,用Keygen产生一个License.dat,然后 复制到该文件夹下。 ⑶.修改系统的环境变量。右键点击桌面我的电脑图标,属性->高级->环境变量-> (系统变量)新建。按下图所示内容填写,变量值内如果已经有别的路径了, 请用“;”将其与要填的路径分开。LM_LICENSE_FILE = c:\flexlm\license.dat

Quartus ii 10.0教程(包含modelsim仿真)

Quartus ii 10.0教程 说明 本文的部分章节,来源于本人翻译的Terasic DE2-115的英文入门文档。 平台 硬件:艾米电子EP2C8-2010增强版套件 软件:Quartus II 10.0 + ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容 ?典型的CAD流程 ?开始 ?新建工程 ?录入Verilog设计 ?编译设计 ?引脚分配 ?仿真设计电路 ?编程及配置到FPGA器件 ?测试设计电路 典型的CAD流程 计算机辅助设计(CAD)软件,使得运用可编程逻辑器件实现所需逻辑电路,变得容易。比如现场可编程门阵列(FPGA)。典型的FPGA CAD设计流程如图1所示。

图1 典型的FPGA CAD设计流程 CAD流程包含以下步骤: ?设计输入——所需电路可通过原理图方式或硬件描述语言方式(如Verilog或VHDL)进行设计。 ?综合——输入的设计被综合进入由逻辑元素(LEs,FPGA芯片提供)组成的电路中。 ?功能仿真——综合电路被测试以验证其功能是否正确,次仿真不考虑时序因素。 ?布局布线——CAD Fitter工具决定网表中定义的LEs如何布置成FPGA芯片中的实际LEs。 ?时序分析——分析已布局布线电路中的不同路径的传播延迟,用以指示所需电路的性能。 ?时序仿真——测试已布局布线电路,验证其是否在功能和时序上都正确。 ?编程及配置——设计的电路,通过编程配置开关,被实现到一个物理的FPGA芯片。 配置开关用于配置LEs和建立所需线路连接。 本指南介绍Quartus II软件的基本特征。展示如何使用Verilog硬件描述语言来设计和实现电路。使用GUI来实现Quartus II指令。通过本份指南,读者将学习到: ?新建工程 ?使用Verilog代码录入设计 ?将综合的电路布局到Altera FPGA ?分配电路的输入输出到FPGA上的指定引脚 ?仿真设计电路 ?编程配置艾米电子EP2C8核心板上的FPGA芯片 1. 开始 在Quartus II中设计的每个逻辑电路或子电路,叫做一个工程。软件每次运行一个工程,并将所有信息保存在单一文件夹中。欲开始一个新的逻辑电路设计,第一步就是新建一个文件夹来保存文件。为了保存本指南的设计文件,在D盘新建introtutorial文件夹。指南者运行的范例为一个简单的双路灯控电路。 打开Quartus II软件,将看到类似于图2的画面。该显示画面包括若干窗口,用户可使用鼠标选择,以访问Quartus II软件的相关功能。Quartus II提供的大多数命令都可用菜单形式来访问。例如,在图2中,在File标签下点击左键,可打开如图3所示的菜单。用左键单击Exit可退出Quartus II软件。

Hspice 简明手册

Hspice简明手册 Hspice简明手册 Hspice是一个模拟电路仿真软件,在给定电路结构和元器件参数的条件下,它可以模拟和 计算电路的各种性能。用Hspice分析一个电路,首先要做到以下三点: (1)给定电路的结构(也就是电路连接关系)和元器件参数(指定元器件的参数库); (2)确定分析电路特性所需的分析内容和分析类型(也就是加入激励源和设置分析类 型); (3)定义电路的输出信息和变量。 Hspice规定了一系列输入,输出语句,用这些语句对电路仿真的标题,电路连接方式,组 成电路元器件的名称,参数,模型,以及分析类型,以及输出变量等进行描述。 一Hspice输入文件的语句和格式 Hspice输入文件包括电路标题语句,电路描述语句,分析类型描述语句,输出描述语句, 注释语句,结束语句等六部分构成,以下逐一介绍:

1 电路的标题语句 电路的标题语句是输入文件的第一行,也成为标题行,必须设置。它是由任意字母和字 符串组成的说明语句,它在Hspice的title框中显示。 2 电路描述语句 电路描述语句由定义电路拓扑结构和元器件参数的元器件描述语句,模型描述语句和电 源语句等组成,其位置可以在标题语句和结束语句之间的任何地方。(1)电路元器件 Hspice要求电路元器件名称必须以规定的字母开头,其后可以是任意数字或字母。除 了名称之外,还应指定该元器件所接节点编号和元件值。 电阻,电容,电感等无源元件描述方式如下: R1 1 2 10k (表示节点1 与2 间有电阻R1,阻值为10k 欧) C1 1 2 1pf (表示节点1 与2 间有电容C1,电容值为1pf) L1 1 2 1mh (表示节点1 与2 间有电感L1,电感值为1mh) 半导体器件包括二极管,双极性晶体管,结形场效应晶体管,MOS 场效应晶体管等, 这些半导体器件的特性方程通常是非线性的,故也成为非线性有源元件。在电路CAD工具 进行电路仿真时,需要用等效的数学模型来描述这些器件。 (a)二极管描述语句如下:

ModelSim的前后仿真(Quartus)

利用Quartus5.0实现功能仿真 1)打开一个工程文件。 2)打开Settings设置栏,选择Fitting Settings下的Simulator栏。在右边出现的设置栏中将 “Simulation Mode”的下拉菜单选择“Functional”,即可以实现软件下的功能仿真。(下拉菜单中有“Functional”、“Timing”和“Timing using Fast Timing Model”,分别代表可以在Quartus软件下实现功能仿真,时序仿真和快速时序仿真。最后一项一般不选,如果在Settings->Timing Requirement->More Settings下“Report Combined Fast/Slow Timing” 选项设为“On”,就可以选择最后一项。编译的报告里也会分别列出最快和最慢的时序报告。) 3)选择“Processing”菜单下的“Generate Functional Simulation Netlist”命令,否则将无法 启动仿真。 4)新建一个波形仿真文件,文件后缀名为.vwf。选择File菜单下的New->Other Files->Vector Waveform File。如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间。将新建的波形仿真文件保存下来。

5)将需要仿真的信号加入波形编辑窗口。在列表区任一位置双击或者点击右键选择“Insert Node or Bus…”,弹出的对话框点击“Node Finder”按钮。在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。界面中“Filter”下拉框中默认的是“Pins: all”,也就是说将要列出的信号都是IO管脚。如果需要观察一些内部信号,可以改变下拉框的参数,比如“Registers: Pre-Synthesis”。下图显示了仿真信号加入波形编辑窗口的情况。对于有些总线信号可以改变其显示的进制格式,比如二进制、八进制、十进制和十六进制。在列表中对应信号点击右键选择 “Properties”,弹出的对话框中选择“Radix”下拉框实现进制的转换。

ModelSim作布局布线后仿真的库问题

ModelSim作布局布线后仿真的库问题 Modelsim是目前最流行的应用最广泛的FPGA仿真器,是Mentor Graphics的子公司Model T echnology开发的。因为Modelsim好学易用,调试方便,仿真速度快,功能强大,所以很多芯片厂商的开发系统都OEM Mentor Graphics公司的Modelsim仿真器,包括Xilinx,Alter a,Lattice和Actel等。Modelsim是一个单内核仿真器,同一个内核可以进行VHDL仿真、V erilog仿真和VHDL/Verilog混合仿真;支持所有的VHDL和Verilog标准;采用直接编译技术 (Direct-Compiled),大大提高了HDL编译和仿真速度。 Modelsim支持三个层次的仿真:RTL仿真、综合后仿真和布局布线后仿真。为了加快仿真速 度,一般情况下设计中调用的库都是已经进行编译过的,然后对设计进行仿真,此时仿真器直接调用库中已经编译过的单元,而不是再次对设计中的单元模块进行编译。所以如果要对设计进行综合后仿真和布局布线后仿真,必须先对设计中调用的库进行编译处理。这也是本文的重点内容。因为每个厂商的库不一样,而且同一个厂商,不同的器件库就有可能不同,所以下面就目前国内比较常用的几个公司的芯片的库问题分别进行探讨。1.Xilinx公司的器件: 其库的处理方式有两种,一种是在Xilinx的网站上,我们可以下载到压缩文件xilinx_lib _4.zip,解压缩后有一个xilinx_lib_4.tcl(将来的版本可能会升级)。单独运行Models im,然后在工具菜单中有一项是执行宏(这里Modelsim5.5 和5.6、5.7有一些差异,不过在5.5中仍可以找到执行宏Execute Macro),运行xilinx_lib_4.tcl后可以看到。 你可以根据你的厂商软件版本选择,指定Xilinx 的安装路径,在Install Path中指定你编 译后的数据将要放的目录位置(可以是任何一个目录,最好是设计者数据盘中的某个目录,因为库编译一次就可以了,重新安装软件不需要重新编译库)。对于Xilinx作布局布线后仿真只需要simprim库即可;如果要作综合后仿真,就需要编译Unisim库;如果设计中调用了 CoreGen产生的核就需要编译CoreGen库。这应该根据设计者的具体情况进行选择。 如果编译完了后,在Modelsim中库会自动变为标准库(注意:Xilinx提供的早期脚本文件作不到这一点)。所谓标准库,也就是说这个库会和IEEE这些库一样,当Modelsim启动时,这 些库会自动加载,里面的单元在VHDL代码中可以随意调用。比如:在布局布线后的VHDL 文 件中大家可以看到Library simprim这样的语句。当然也可以自己手动改变这些库的性质,只用修改在Modelsim安装路径下的Modelsim.ini文件即可。比如:修改后的Modelsim.ini 可以看到为 [Library] std = $MODEL_TECH/../std ieee = $MODEL_TECH/../ieee verilog = $MODEL_TECH/../verilog std_developerskit = $MODEL_TECH/../std_developerskit synopsys = $MODEL_TECH/../synopsys modelsim_lib = $MODEL_TECH/../modelsim_lib

modelsim完美教程

准备事项 1.ModelSim试用版下载 2.范例程序下载(史丹佛大学一门课的期末专题Implememtation of Viterbi Decoder:constrain length K=3, code rate R=1/2, register-exchange) 整个project共含7个Verilog程序:system.v (top-level) |-- clkgen.v |-- chip_core.v |-- controller.v |-- spu.v |-- acs4.v |-- acs1.v (或是另外一个Verilog的简单例子,可以从C:\ SynaptiCAD\ Examples\ TutorialFiles\ VeriLoggerBasicVerilo gSimulation\ add4.v and add4test.v) (或是另外一个VHDL的简单例子,可以从C:\ Modeltech_5.7e\ examples\ adder.vhd and testadder.vhd) ModelSim PE /LE /SE 差别在哪? 本篇文章内容主要在教导软件使用,以Verilog程序为范例。假设各位读者已经熟悉Verilog,废话不多说,让我们马上来见识一下ModelSim ... 快速上手四部曲:建立Project、引进HDL Files、Compile、模拟(Simulate/Loading and Run) 1.建立一个新的Project 1-1 第一次执行程序时,可以从[开始] \ [程序集] \ ModelSim SE \ ModelSim;或是执行ModelSim在桌面的快捷方式

(完整版)HSPICE与CADENCE仿真规范与实例..

电路模拟实验专题 实验文档

一、简介 本实验专题基于SPICE(Simulation Program With Integrated Circuit)仿真模拟,讲授电路模拟的方法和spice仿真工具的使用。 SPICE仿真器有很多版本,比如商用的PSPICE、HSPICE、SPECTRE、ELDO,免费版本的WinSPICE,Spice OPUS等等,其中HSPICE和SPECTRE功能更为强大,在集成电路设计中使用得更为广泛。因此本实验专题以HSPICE和SPECTRE作为主要的仿真工具,进行电路模拟方法和技巧的训练。 参加本实验专题的人员应具备集成电路设计基础、器件模型等相关知识。 二、Spice基本知识(2) 无论哪种spice仿真器,使用的spice语法或语句是一致的或相似的,差别只是在于形式上的不同而已,基本的原理和框架是一致的。因此这里简单介绍一下spice的基本框架,详细的spice语法可参照相关的spice教材或相应仿真器的说明文档。 首先看一个简单的例子,采用spice模拟MOS管的输出特性,对一个NMOS管进行输入输出特性直流扫描。V GS从1V变化到3V,步长为0.5V;V DS从0V变化到5V,步长为0.2V;输出以V GS为参量、I D与V DS之间关系波形图。 *Output Characteristics for NMOS M1 2 1 0 0 MNMOS w=5u l=1.0u VGS 1 0 1.0 VDS 2 0 5 .op .dc vds 0 5 .2 Vgs 1 3 0.5 .plot dc -I(vds) .probe *model .MODEL MNMOS NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7 .end 描述的仿真电路如下图,

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。 3. 出现Add Items to the Project的对话框,如图2.3所示,

modelsim仿真详细过程

由于我们只需要了解仿真的完整过程,所以不需要自己写源文件和测试文件(也称为testbench)。一下就是简单的源文件和测试文件(亲自测试过)。 //源文件 module compare(equal,a,b); input a,b; output equal; assign equal=(a==b)?1:0; endmodule //测试文件 `timescale 1ns/1ns `include"./compare.v" module comparetest; reg a,b; wire equal; initial begin a=0; b=0; #100 a=0;b=1; #100 a=1;b=1;

#100 a=1;b=0; #100 $stop; end compare compare1(.equal(equal),.a(a),.b(b)); endmodule 有了源文件和测试文件下面就开始用modelsim进行仿真了。 步骤一:新建工程和.v文件(也就是源文件和测试文件) 打开modelsim软件,点击file,选择new—>project 然后就会弹出下面窗口: 然后在project name那一栏写上工程名(随便去,一般是字母),在project location选择工程路径(路径最好没有中文,听说的),然后点OK。进入下个界面:

然后点击小框里面的“create new file”.弹出界面: 在file name中写下源文件名,由于这是比较两数的大小,我取为:compare。在“add file as type”中选择verilog,点OK,然后有:

ModelSim-Altera_6.5仿真入门教程

平台 软件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容 1 设计流程 使用ModelSim仿真的基本流程为: 图1.1 使用ModelSim仿真的基本流程 2 开始 2.1 新建工程 打开ModelSim后,其画面如图2.1所示。

图2.1 ModelSim画面 1. 选择File>New>Preject创建一个新工程。打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。一般情况下,设定Default Library Name为work。指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。该对话框如图 2.2所示,此外还允许通过选择.ini文件来映射库设置,或者将其直接拷贝至工程中。

图2.2 创建工程的对话框 2. 按照图2.3所示,设置Project Name为LED_FLOW,Project Location为D:/led_flow。 图2.3 输入工程信息 当单击OK按钮后,在主体窗口的下方将出现Project标签,如图2.4所示。 图2.4 Project标签

3. 之后,将出现Add Items to the Project的对话框,如图2.5所示。 图2.5 在工程中,添加新项目 2.2 在工程中,添加新项目 在Add Items to the Project对话框中,包括以下选项: ?Create New File——使用源文件编辑器创建一个新的Verilog、VHDL、TCL或文本文件?Add Existing File——添加一个已存在的文件 ?Create Simulation——创建指定源文件和仿真选项的仿真配置 ?Create New Folder——创建一个新的组织文件夹 1. 单击Create New File。打开图 2.6所示窗口。 图2.6 创建工程文件夹 2. 输入文件名称:LED_FLOW,然后选择文件类型为Verilog。

ModelSim软件仿真步骤教程

使用ModelSim模擬驗證HDL code 1.在模擬前先準備好我們要模擬的電路檔案(Verilog HDL,TestBench,…) 2. 打開ModelSim,新建一個Project,鍵入Project name 按OK。此處我們的library name 為default library name “work”不必更改。 3.然後再加入我們所要模擬的電路檔案(若尚未準備,可開啟新檔案再將code 鍵入)選Add Existing File,將我們已編輯好的檔案加入。 將我們所需要的檔案加入,按Browse選擇我們所需檔案count.v,

count_test.vt),按下OK。 再將先前所開啟的增加檔案的視窗關閉,按close。 4.按下compile all。

Compile成功沒有顯示出錯誤訊息, 則開始模擬波形 5.按下Simulation, 選擇檔案所在的Library (work), 點選TestBench的Module Name t_Gap_finder 按OK 6.承接上步驟將會跳出以下視窗,若要將所有訊號加入波型中觀察則選擇在 testbench的module name: count_tst按滑鼠右鍵選擇→ Add → Add to Wave。

7.在波型畫面按下Run All開始模擬 跑完後會跳出下面視窗選擇否則可觀察模擬波形,若按下是則會將ModelSim關閉。

8.觀察波形圖是否與功能符合,若與設計不符則修改設計並重複執行Step 4到 Step 8 Testbench語法 `timescale 1 ps/ 1 ps 前面的1ps代表程式中最小的時間單位 後面的1ps代表運算的精準度

Hspice(中文实用版)

第一章概 论 §1.1 HSPICE简介 随着微电子技术的迅速发展以及集成电路规模不断提高,对电路性能的设计要求越来越严格,这势必对用于大规模集成电路设计的EDA工具提出越来越高的要求。自1972年美国加利福尼亚大学柏克莱分校电机工程和计算机科学系开发的用于集成电路性能分析的电路模拟程序SPICE (Simulation Program with ICEmphasis)诞生以来,为适应现代微电子工业的发展,各种用于集成电路设计的电路模拟分析工具不断涌现。HSPICE是MetaSoftware公司为集成电路设计中的稳态分析,瞬态分析和频域分析等电路性能的模拟分析而开发的一个商业化通用电路模拟程序,它在柏克莱的SPICE(1972年推出),MicroSim公司的PSPICE(1984年推出)以及其它电路分析软件的基础上,又加入了一些新的功能,经过不断的改进,目前已被许多公司、大学和研究开发机构广泛应用。HSPICE可与许多主要的EDA设计工具,诸如Candence,Workview等兼容,能提供许多重要的针对集成电路性能的电路仿真和设计结果。采用HSPICE软件可以在直流到高于100MHz的微波频率范围内对电路作精确的仿真、分析和优化。在实际应用中,HSPICE能提供关键性的电路模拟和设计方案,并且应用HSPICE进行电路模拟时,其电路规模仅取决于用户计算机的实际存储器容量。 §1.2 HSPICE的特点与结构 HSPICE除了具备绝大多数SPICE特性外,还具有许多新的特点,主要有: 优越的收敛性 精确的模型参数,包括许多Foundry模型参数 层次式节点命名和参考 基于模型和库单元的电路优化,逐项或同时进行AC,DC和瞬态分析中的优化 具备蒙特卡罗(Monte Carlo)和最坏情况(worst-case)分析 对于参数化单元的输入、出和行为代数化 具备较高级逻辑模拟标准库的单元特性描述工具 对于PCB、多芯片系统、封装以及IC技术中连线间的几何损耗加以模拟 在HSPICE中电路的分析类型及其内部建模情况如图1.2.1和图1.2.2所示:

Modelsim 仿真步骤总结

Modelsim 仿真步骤总结 Modelsim 仿真主要有以下三个方面:各版本的方法大体一致。(1)建立库并映射库到物理目录; (2)编译源代码(包括testbench); (3)执行仿真; 下面具体演示每一步的操作方法及流程,为力求简洁,其中有多种操方法的只介绍一种。 一)建立库的演示: 步骤为——启动modelsim>点击file菜单>(Change Directory)>new>(project)>library.注括号内的步骤非必须。 1.1)启动modelsim; (1.2)点击file菜单,此时若需更改路径,可以点击其中的Change Directory.(注modelsim会自动默认路径。我们也可以在1.1步骤之前建立一个文件夹用于modelsim的工程,再将路径更改到我们新建的文件夹路径。)

(1.3)点击file子菜单中的new,选择project用于新建立一个modelsim工程。(虽然此步非必须,但是建立一个新工程有益 于接下来整个仿真文件的管理。)

1.4)点击file子菜单new,再点击new下的library,用于建立 一个库。(仔细观察1.3步,新建工程的同时亦可建立库)。 至此,modelsim仿真第一大步建立库的工作完毕。

二)编译源代码(包括testbench): 大家都已知道在quartus中编译源代码的方法,这里说明一下在modelsim中编译源代码及testbench的方法。 步骤为——建立一个新工程(同时建立库)后,会自动提示你四个选项。如图: 选create new file后提示对话框,(也可以在有源文件的情况下选择add existing file到工程中。例如我们用quartus写好文件后,可以用此方法将quartus中的文件添加到modelsim工程中来)让你命名你即将创建的新文件,完毕后,会自动出现一个空白的编辑窗口,在那里输入源代码和testbench。(提示:这样编写完后点保存,便可以直接保存到上面设臵好的work库中。比起另一种方法,不建工程直接建库,再通过菜单栏source添加源

QUARTUSⅡ10波形仿真(ModelSim)入门教程

QUARTUSⅡ10仿真(ModelSim)入门教程平台 软件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容 1 设计流程 使用ModelSim仿真的基本流程为: 图1.1 使用ModelSim仿真的基本流程 2 开始 2.1 新建工程 打开ModelSim后,其画面如图2.1所示。 图2.1 ModelSim画面

1. 选择File>New>Preject创建一个新工程。打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。一般情况下,设定Default Library Name为work。指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。该对话框如图 2. 2所示,此外还允许通过选择.ini文件来映射库设置,或者将其直接拷贝至工程中。 图2.2 创建工程的对话框 2. 按照图2.3所示,设置Project Name为LED_FLOW,Project Location为D:/led_flow。 图2.3 输入工程信息 当单击OK按钮后,在主体窗口的下方将出现Create Project标签,如图2.4所示。 图2.4 Project标签 3. 之后,将出现Add Items to the Project的对话框,如图2.5所示。 图2.5 在工程中,添加新项目 2.2 在工程中,添加新项目 在Add Items to the Project对话框中,包括以下选项:

?Create New File——使用源文件编辑器创建一个新的Verilog、VHDL、TCL或文本文件 ?Add Existing File——添加一个已存在的文件 ?Create Simulation——创建指定源文件和仿真选项的仿真配置 ?Create New Folder——创建一个新的组织文件夹 1. 单击Create New File。打开图 2.6所示窗口。 图2.6 创建工程文件夹 2. 输入文件名称:LED_FLOW,然后选择文件类型为Verilog。 图2.7 输入工程文件信息 3. 单击OK,关闭本对话框。新的工程文件将会在工程窗口显示。单击Close,以关闭Add Items to the Project。 图2.8 新的设计文件LED_FLOW.v 4. 双击打开LED_FLOW.v文件(注意:若是Verilog文件已经关联了其他的文本编辑器,则双击后在关联的文本编辑器中打开)。 图2.9 LED_FLOW代码输入窗口 在LED_FLOW.v输入下面的测试平台代码:

modelsim仿真必会教程

Modelsim功能仿真新手教程 By wangjun850725@https://www.sodocs.net/doc/707926466.html, 操作系统:win7 软件版本:modelsim6.5se 本文只针对初学者,让他们少走点弯路,modelsim软件本身感觉还是比较难以使用的。本人才疏学浅,但有颗助人的心。大神请跳过,不要鄙视我。 如有错误,请不吝指点。 QQ群:41143927 建立工程 省略N字,这没有什么好说的。几乎所有的软件都是以工程为基础的。 添加设计文件 因为我已经编辑好了文件,所以直接添加已经存在的。没有人会用modelsim自带的编辑器来写程序(要是没有选择,我宁愿用记事本,如果你用了,我佩服你)。 编译文件 没有什么好说的,添加进去的文件全部编译就好了。 如果你看编译后的文件后面还有一个问号,你不爽,鼠标右键更新下就好了 开始仿真 Modelsim se版本是可以手动描绘激励波形的,但这种方法太笨,太烦,修改起来很不方便,所以直接放弃。

Simulate里有个start simulate,点开 这里有几点要说明下 1.要点开work库,找到你testbench对应的那个模块 2.Resolution选不选关系不大,如果你设计文件指定了仿真时间的话 3.Optimization,要把这个勾去掉,不然会优化掉很多信号,这里也坑了我很久。 功能仿真只要这么多,如果做后仿,library里要添加已经编译好的器件库,SDF里要添加.vo,.sdo文件 观察波形 添加信号到波形窗口的方法有很多,刚学手动添加,后来肯定是要在脚本里指定的,下面会有 首先要把设计中的信号添加到wave窗口里。

鼠标左键按住不放,将对应的模块拖到wave窗口里,这是最简单的办法。 如果设计的模块多了,每个模块的信号不能很好的被区分,就可以在每个模块的中间插入一个Divider,信号旁边右键就可以看到,最好给起个名字 如果你的模块层次非常的多,信号的路径名字就会占据本来就不大的屏幕时很不爽的。 菜单Wave‐>Wave preference‐>Display signal path里面改成1就可以了 运行仿真 在Transcript窗口里输入 Run 1ms 搞定,波形神马的就出现了。你要做的工作就是看波形是否是你想要的。

hspice语法手册

Hspice语法手册 天津大学电信学院 陈力颖

Preface 最初写作本文的目的是希望提供一份中文版的Hspice手册从而方便初学者的使用,本文的缘起是几位曾经一起工作过的同事分别进入不同的新公司,而公司主要是使用Hspice,对于已经熟悉了Cadence的GUI界面的使用者转而面对Hspice的文本格式,其难度是不言而喻的,而Hspice冗长的manual(长达2000页以上)更让人在短时间内理不出头绪。鉴于我曾经使用过相当一段时间的Hspice,于是我向他们提供了一份简单而明了的handbook来帮助他们学习,本来是准备借助一个具体运放的设计例子,逐步完善成为一份case by case的教程,但由于工作比较浩大,加之时间的关系,一直难以完成,愈拖愈久,在几个朋友的劝说下,与其等其日臻完善后再发布,不如先行发布在逐步完善,以便可以让更多的朋友及早使用收益。本文虽通过网络发表,但作者保留全部的著作权,转载时务请通知本人。由于水平的有限,讨论范围的局限及错误不可避免,恳请读者指正。联系方式为e-mail: nkchenliy@https://www.sodocs.net/doc/707926466.html,。

目录 一、HSPICE基础知识 (2) 二、有源器件和分析类型 (3) 三、输出格式和子电路 (4) 四、控制语句和OPTION语句 (6) 五、仿真控制和收敛 (7) 六、输入语句 (8) 七、统计分析仿真 (9) 天津大学电信学院 陈力颖 2006年2月

一、HSPICE基础知识 Avant! Start-Hspice(现在属于Synopsys公司)是IC设计中最常使用的电路仿真工 具,是目前业界使用最为广泛的IC设计工具,甚至可以说是事实上的标准。目前,一 般书籍都采用Level 2的MOS Model进行计算和估算,与Foundry经常提供的Level 49 和Mos 9、EKV等Library不同,而以上Model要比Level 2的Model复杂的多,因此 Designer除利用Level 2的Model进行电路的估算以外,还一定要使用电路仿真软件 Hspice、Spectre等进行仿真,以便得到精确的结果。 本文将从最基本的设计和使用开始,逐步带领读者熟悉Hspice的使用,以便建立   IC设计的基本概念。文章还将对Hspice的收敛性做深入细致的讨论。 Hspice输入网表文件为.sp文件,模型和库文件为.inc和.lib,Hspice输出文件有运 行状态文件.st0、输出列表文件.lis、瞬态分析文件.tr#、直流分析文件.sw#、交流分析 文件.ac#、测量输出文件.m*#等。其中,所有的分析数据文件均可作为AvanWaves的 输入文件用来显示波形。 表1 Hspice所使用的单位 单位缩写含义 F(f) 1e-15 P(p) 1e-12 N(n) 1e-10 U(u) 1e-06 M(m) 1e-03 K(k) 1e+03 Meg(meg) 1e+06 G(g) 1e+09 T(t) 1e+12 DB(db) 20log10 注:Hspice单位不区分大小写 独立电压和电流源包括: 1. 直流源(DC):

TSPC锁存器的设计与HSPICE仿真

IC课程设计报告 题目TSPC锁存器的设计与HSPICE仿真学院 专业 班级 学生姓名 日期 指导教师(签字)

HSPICE简介 SPICE(Simulator Program with Integrated Circuit Emphasis,以集成电路为重点的模拟程序)模拟器最初于20世纪70年代在berkeley开发完成,能够求解描述晶体管、电阻、电容以及电压源等分量的非线性微分方程。SPICE模拟器提供了许多对电路进行分析的方法,但是数字VLSI电路设计者的主要兴趣却只集中在直流分析(DC analysis)和瞬态分析(transient analysis)两种方法上,这两种分析方法能够在输入固定或实时变化的情况下对节点的电压进行预测。SPICE程序最初是使用FORTRAN语言编写的,所以SPICE就有其自身的一些相关特点,尤其是在文件格式方面与FORTRAN有很多相似之处。现在,大多数平台都可以得到免费的SPICE版本,但是,往往只有商业版本的SPICE 才就有更强的数值收敛性。尤其是HSPICE,其在工业领域的应用非常广泛,就是因为其具有很好的收敛性,能够支持最新的器件以及互连模型,同事还提供了大量的增强功能来评估和优化电路。PSPICE也是一个商业版本,但是其有面向学生的限制性免费版本。本章所有实例使用的都是HSPICE,这些实例在平台版本的SPICE中可能不能正常运行。 虽然各种SPICE模拟器的细节随着版本和操作平台的不同而各不相同,但是所有版本的SPICE都是这样工作的:读入一个输入文件,生产一个包括模拟结果、警告信息和错误信息的列表文件。因为以前输入文件经常是以打孔卡片盒的方式提供给主机的,所以人们常常称输入文件为SPICE“卡片盒(deck)”,输入文件中的每一行都是一张“卡片”。输入文件包含一个由各种组件和节点组成的网表。当然输入文件也包含了一些模拟选项、分析指令以及器件模型。网吧可以通过手工的方式输入,也可以从电路图或者CAD工具的版图(layout)中提取。 一个好的SPICE“卡片盒”就好像是一段好的软件代码,必须具有良好的可读性、可维护性以及可重用性。适当地插入一些注释和空白间隔有助于提高“卡片盒”的可读性。一般情况下,书写SPICE“卡片盒”的最好方法就是:先找一个功能完备、正确的“卡片盒”范例,然后在此基础上对其进行修改。 二、要与要求 在两相时钟技术中,必须十分小心的对两个时钟信号进行布线以保证它们的

modelsim建库流程_vip

Modelsim建库流程 ——在已有的IEEE库中加入新的库文件 1.将所需要的库对应的vhd文件拷贝至C:\Actel\Libero_v9.0\Model\vhdl_src\ieee 文件夹下; 2.确保modelsim不是处于仿真状态下: 3.编译库中的文件,首先需要选中库,确认如下

4.可以在vhdl模块中调用ieee.math_utility_pkg文件了。 采用上述方法,可以加入math_utility_pkg和fixed_pkg等vhdl-93中没有包括的库文件,增加vhdl语言支持的综合功能。 5.点击modelsim项目文件中的presynth.mpf文件,可以打开这个modelsim项目,然后可 以对所有文件进行编译、仿真等操作。 6.对于定点数运算,需要以下两个库: math_utility_pkg.vhdl - Types used in the fixed point package fixed_pkg_c.vhdl - Fixed-point package (VHDL-93 compatibility version) 而这两个库中又会调用floatfixlib库:这个库包含Actel/Libero_v9.1/Model/vhdl_src/floatfixlib 目录下的三个文件:fixed_pkg_c.vhd, float_pkg_c.vhd, math_utility_pkg.vhd,也就是说,要用这三个文件生成floatfixlib库。 ---------------------------------------------------------------------- Modelsim仿真流程-经验总结 7.Modelsim简介 略。 2.modelsim仿真流程:modelsim基本的仿真流程包括建立库、建立工程并编译、仿真、调试、但在libero环境中运行modelsim时,软件自动映射库和生成工程文件。其中功能仿真、综合仿真以及后仿真分别映射presynth、postsynth和postlayout库。 基本流程是:建立工作库→编译源代码→启动仿真→分析、调试。 8.建立库并映射

相关主题