modelsim 教程
Fle Edit View Project Assignments PrC山+NCt+F斗i New Project Wizard2 Open Project.Ctrl+]save ProjectClose ProjectCtrl+sSave asCtrl-shift+sle Proper ties.Create [UpdateewNew Quartus II Project通· Desian filesAHDL FileBlock Diagram /schematic FileEDIF FileQsys System FileState Machine fileSystemverilog HDl fileVHDL FileVerilog HDl file∠- Memory FilesHexadecimal (intel -Format FileMemory Initialization File4-Verification Debugging FilesIn-System Sources and Probes FileLogic Analyzer Interface FileSignalTap II logic Analyzer FileOther FilesAHDL Indude fileBlock Symbol FileChain Description FileSynopsys Design Constraints FileText FileOKCancel Help新建一个 verilog HDL File,代码module modelsim test(clk,rst n, div)input clk:Input rst n:output divreg aiv.always(a(posedge clk or negedge rst nif(Irst n)div<=lb0else diEndmodule很简单的一个代码,是分频电路。我们要做什么呢,就是对这个电路进行 Modelsim仿真,下面,我们要设置·下在 Quartus110界面菜单栏中选择 Assignments-> Settings1选中该界面下 EDA Tool settings中的 Simulation一项2. Tool name中选择 Modelsim- Altera;3 Format for output netlist中选择丌发语言的类型Ⅴ erilog或者ⅤHDL等,4. Time scale指定时间单位级别5 Output directory指定测试文件模板的输出路径(该路径是工程文件的相对路径)Settings- modelsim t回L Er aricsSJeLil y uliurs fy ueI dlir Jiluul Miles fur use wi l uler EDA luubJ Operating Setting and ConditiOnsTender dLu巳2D name: MCcElSim-A teraa-Ccmpllatlon Process settingsRun gate-leve simulation automatically after complationIncremental CompilationEDA netist WiT iter settngsDegign Entry/synthesisFormat for outut natst: verilog HDLTime scale: ipsimationOutput irect simulation mocelsimTormel verif-aticBoard-Level□ Map llega L character□ nable alton fl terinaF Generae Value Change Dump NCD)ile script scrit SettingsLEsion nstancE nameLaac Analyzer nterfaceMore EDA Netlist WritEr Setting.FuweI Pcy Pune Arlalyztr SeLLinQ Compile tL Use script to set up smulation:② Suriul Wu Lr ILit eslber uMJ e NaliveLir k selli'wsiB七LAp?y进入到个关键步骤生成仿真测试文件选择 Quartus1.0开发界面菜单栏下 Proccssing-> Start-> Start Test Bench TemplateWriter,提示生成成功。这个生成的仿貞测试文件( modelsim test L程文件下 modelsim日录下找到后缀名为"wt"的文件)并根据自己需要进行编辑。下面是生成的文件原样,还没Lim=scale 1 gs/1gsEmodule modelsim test vlg tst(c=nstantsganeral purpose registerEeg己 caves// tast vector input registers了eC=1kreg rst nIreswire diyy assign statements iif any)曰mne1simt;eti1r/ part map connection between master ports and signals/registerslk(CL),工tI(xEtn)n1七// c=de that executes only once⊥ rsert code here-->上ein/--2enSuis:ldy IRunllinly LesLlencii)// optional sensitivity listy @(event or events or .. event)cxccutcs for cvcry event on 3=noitivity listl insert code here -- bevin注意:( JuartuslI中 testbench文件的后缀是wt,产生的模板文件只是包含了端口映射,端口声明等,具体的功能还是需要设计者自己编写,下面我们在模板上修改,编写 testbench代码如下:timescale 1 ps/ 1 psmodule modelsim test vIg tstOeg clk;reg rst nwircdirmodelsim test il(clk(clk)div(div)rst n(rst n)beginclk-=0forever#10 clk=-clkdinitibcgirst n=O#1000rstn-1;#100Sstopendendmodule代码为什么这么写,就涉及到 les tbench的编写方法学习,这个不在木文档的讨论范围,不过文档最后,附上了网上找到的一个 testbench编写教学,人家可以参考。下面是很关键的步骤,请一定看好,你如果设错了,就不能成功在 Quartus II1.0界面菜单栏中选择 Assignments-> Settings。1选中该界面下 EDA Tool settings中的 Simulation一项;在 NativeLink settings中选择 Compile test bench并点击后面的 Test benchesSettings modelsim testCaevGeneralSimulationpeaty ootip's for generating output files For use with other =A ools4"Operating Settings 33 ConditionsTool name:ModelSim-Alter3a-Compilation Process Sc tingsEarly Timing EstimateE Run ccts l=vcl simula on automatically aftcr compilationIncremental CoMpilationPhyslcal Synthess CptimlzatlnnsEDA tict writer sctA-ELA lool settingsEur taL lu tuluL relish:o HDLsLdle: 1psOutELt directory: simulati/modelsimBoard-LevelF Map illegal HDL charactersa Enable glitch filteringA-Anal' cic Synthecir SettingEWHDL InputCntrs frr Power Fs-imatrnerilog l IDLI7止Default parametersE Generate Value Cheng Dump(CD) ik script script Settngs,Fitte settingsIms uest I ming analyzerDescr instance name.resembleDcsign AssistantgnalTap Il Logic AnalyzerLogic Analyzer Inter faceMorE EDA Ne dist Writer Se: tingscWer Play Power Aa yzer SettingsNatvELink settings≤sN4 nalyzer○NncLesl benudesim test yc tsTesLEF Use script to se D simulation;o ScrEt to compile test benchMore Native_ink SeResEos在 Test benches中点击New见下图在 Test bench name栏要填写刚刚我们创建的 testbench文件的实体名即 modelsim test vlg tst在 Top level modele in test bench中也填写 modelsim test vIg tst;在 Design instance name in test bench中i1这里你可以直接从 testbench的文件里直接复制过来,避免手误写错。然后在 Test bench files中浏览添加 testbench文件,然后记住点击add,一步一步OK。y Edit Test Bench SettingsEdit test bench settings for the selected test benchIest bench name: modelsim_test_vg_tstTop level module in test bench: modelsim_test_vlg_tstv Use test bench to perform VHDL timing simulationDesign instance name in test bench: i1Simulation periodo Run simulation until all vector stimuli are used○ End simulation at:Test bench filesFile name点ddFile nameLibraryHDL Version尺 Emovesimulation/ modelDcPropertiesoKCancelHelp切准备就绪,下面在 Quartus II10界面菜单栏中选择菜单栏 Tools中的 Run edaSimulation tool-> EDA RTL SImulation进行行为级仿真,接下来就可以看到 Modelsin- Altera6.5e的行界面观察仿真波形1OojectsNaveddsimtct_ vgLL可以看到div信号是clk的二分频了。如何编写 testbench的总结(非常实用的总结)1.激励的设置相应于被测试模块的输入激励设置为reg型,输岀相应设置为wie类型,双向端口inou在测试中需要进行处理。方法1:为双问端口设置中间变量 Inout reg作为该 Inout的输出寄存, inout口在 testbench中要定义为wire型变量,然后用输岀使能控制传输方向:inout [0: 0]bi dir port;wire[0: 0] bi dir port;reg [0: 0] bi dir port regreg b1assign bi dir port=bi dir port oe? bi dir port reg: Ibz;用 bi dir port oe控制端凵数据方向,并利用中间变量寄存器改变其值。等于两个模块之间用 inout双向口互连。往端口写(就是往模块里面输入)方法2:使用 force和 release语句,这种方法不能准确反眺双向端口的信号变化,但这种方法可以反映块内信号的变化。具体如示:module testowire data inout.rcg data rcgreg link#x;∥延时force data_ inout=1bx;/強制作为输入端口#xxrelease data inout;/释放输入端口endmodule从文木文件中读取和写入向量1)读取文本文件:用$ rcadmcmb系统任务从文本文件中读取二进制向量(可以包含输入激励和输出期望值)。 Sreadmemh用于读取十六进制文件。例如:eg[7:0]mnem[1:256]∥a8-bit,256word定义存储器meminitial Srcadmcmh(" mcm. data'",mcm)∥将dat文什读入寄存器mcm中initial Sreadmemh("mem.dala",mem,128,1)∥参数为寄存器加载数据的地址始终2)输出文本文件:打开输出文件用? Fopen例如:integer out file;∥/ out lile是一个文件描述,需要定义为 Integer类型out file=$ fopen(" cpu data");/ cpu data是需要打开的文件,也就是最终的输出文本设计中的信号值可以通过 Monitor, Sfdisplay2. Verilog和 Verilog命令使用库文件或库目录ex), verilog- frun.f- v lib/lib. v-y lib2 +libet.∥一般编详文件在runf中,厍文件在libv中,ib2目录中的、文件系统自动搜索使用库文作或库目录,只编译需要的模块而不必全部编译
用户评论