modelsim仿真小结.docx_第1页
modelsim仿真小结.docx_第2页
modelsim仿真小结.docx_第3页
modelsim仿真小结.docx_第4页
modelsim仿真小结.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Modelsim仿真小结Modelsim的基本仿真流程大致分以下几个步骤:建库、编译工程、前后仿真、调试等。Modelsim仿真既可以在modelsim界面操作,也可以用do文件实现, 这里结合学习的教程、网上看到的资料,和实际遇到的一些问题,分别做一整理小结。1. 建库建库包括Altera库和Xilinx库,同时都包括Verilog和VHDL。这里只建了Verilog库,VHDL和Verilog步骤相同。对于Altera库主要包括lpm元件库、Mega_Function库atera_mf、altera原语库altera_primitive和各器件系列模型库。前三种是调用altera模块的必备库,第四种是进行综合后功能仿真和布线后时序仿真需要的库,和器件系列有关,只选对应系列即可。Altera库创建和编译步骤如下:a) 在Modelsim安装目录下新建文件夹,命名altera_lib,以存放编译后的库文件,可以在altera_lib下新建Verilog和VHDL两个子文件夹,分别存放Verilog和VHDL库。b) 打开Modelsim,新建Library,file -new-library .c) 如下图,创建lpm库,路径E:modeltech_10.1aaltera_libVeriloglpmd) 添加库文件,并编译,compile - compile ,出现compile source files窗口,library 指定到lpm下,查找范围,选quartus安装目录下 edasim_lib目录里的仿真原型文件:220model.v , 点compile ,点done。到此,lpm库建立完毕。e) 同理,建立altera_mf库添加 altera_mf.v ,建立primitive库添加altera_primitive.v建立各系列的模型库,命名可用系列名加_ver“xxx_ver”,也可随意吧,添加各系列的xxx_atoms.v。这里,也可以把以上库放在一个文件夹,这样做简单,一次就搞定,分开也就是条理清楚,没人去看,所以没必要。f) 修改modelsim.ini文件,为的是让modelsim能自动map到已经编译的这些库上。先去掉只读属性,在Library和vcom之间加上:库名=库路径绝对路径或者相对路径,相对路径是相对于modelsim安装路径, modelsim安装路径用$MODEL_TECH表示。这里所有库都放在E:modeltech_10.1aaltera_lib下,库名是altera_lib,这里只添加一句:altera_lib = E:modeltech_10.1aaltera_libg) 保存退出,改回modelsim.ini只读属性,防止乱改。至此altera库建立完毕。Xlinx库创建和编译步骤如下:相比altera,xilinx建库很方便。xilinx有批处理命令,直接在console命令窗口,输入compxlib命令,调出编译库的窗口,先改掉modelsim安装目录下modelsim.ini只读属性。设置如下图:Next,选择语言:Next,选择需要编译的器件:Netx - next,选择输出路径,launch compile process,等待编译完成。完成后改回modelsim.ini只读属性。至此xilinx库建立完毕。2. 编译工程编译工程主要包括:code、testbench、建立工程、建立工程库、映射、编译等。Code主要有code思想和风格,在Verilog部分涉及。Testbench,下边给出一个公用模板,基于这个方便修改,可以根据自己的习惯建一个temp_tb.v。Modelsim界面编译工程:a) 新建工程:打开modelsim,file - new - project . ,指定工程名、路径、工程库。b) Add existing filec) Add testbench file .d) 编译,compile complie all e) 编译语法查错,直到编译通过。至此编译完毕。3. 功能和时序仿真仿真是在编译的基础上,进行的功能调试,包括综合前功能仿真、综合后功能仿真和布局布线后时序仿真。Modelsim界面综合前仿真:a) 指定顶层,开始仿真;simulation - start simulation ,在work 库中,指定testbench,ok,开始仿真。b) 查看仿真结果,打开wave,信号,加入wavec) 运行,查看波形。Run - run all .至此,简单的modelsim界面综合前仿真介绍完毕。Modelsim界面综合后仿真:综合后仿真需要quartus综合后的网表文件(以altera为例),a) 综合后的网表的生成: quartus工程名右键 - setting EDA Tool Setting, 双击Simulation ,选择EDA软件modelsim,选择输出网表路径,如图b) More settings . 将 Generate netlist for functional simulation only 设置为ONc) 保存,全编译。d) 检查一下/modelsim/Psyth/source 里面,可以发现,已经生成了一个*.vo 文件。这个就是需要的网表文件。(VHDL 的输出网表是*.vho 后缀名的)e)将vo文件添加到工程,指定TestBench 文件top_tb.v,同前边一样进行仿真。e) 得到的仿真结果Modelsim界面布局布线后仿真:布局布线后仿真需要综合网表文件和添延时文件*.sdo(Verilog)或*_vhd.sdo(VHDL);a) QuartusII 里面设置重新把Generate netlist for functional simulation only 设置成OFF。b) 指定延时文件这里,region要为顶层文件在tb里的例化名。c) 运行,查看波形,波形带有延时4. 用tcl文件.do 进行modelsim仿真在modelsim中使用do文件是非常方便的进行仿真的一种方法,的项目比较大,特别是几个人分开做的时候,前后模块的联合仿真比较重要,查看的信号比较多,使用了do文件可以自动仿真,省去很多体力活。下面是编写do文件的一般步骤: a).quit -sim : 首先退出原来仿真的工程。 b).cd: 设置工作目录的路径,就是你所要建立的工作目录work要放在哪里。 c).vlib work : 在工作目录下建立一个work目录,请注意不要用操作系统直接新建一 个work的文件夹,因为用操作系统建立的work文件夹并没有modelsim SE自动生成的_info文件。还有个问题是,当你的软件工程里需要用到软核时,可能会需要一些库,但这些库ISE软件中是没有的,此时就需要我们自己新建库了,并映射到当前目录下。我们只自己新建的库一般放在work库前面建立。 d).vmap work : 将新建的work库映射到当前工作目录下(当前目录就是第一步中的目录了)。其他新建的库也要这样的方法映射。 e).vlog +acc work work “file_path/*.v” : 编译“file_path”目录下所有.v文件,并将 其添加进工作库(work)中,包括IP生成的V文件也要编译的。或者:vlog -f top_tb.f ,top_tb.f是.v的列表文件。编译时可以分开单独编译,但是一定要注意顺序,先编译被调用的文件。在综合后仿真和布局布线后仿真的时候,这里添加综合后网表和tb即可。VHDL 用vcom编译。对于xilinx工程在仿真的时候还需要用到一个文件,那就是glbl.v这个库文件。它是存放在xilinx安装目录下,我们直接编译它并添加时工作库(work)就可以了。特别需要说明的是,在仿真软核的时候,在XPS软件里点击simulation - generate simulation hdl files会在工程目录中生成一个simulaton文件夹,这个文件夹里的东西就是软核仿真时所需要的仿真文件了。所以我们需把simulaton里所以的v文件都编译一次,这样才能仿真软核。f). vsim -L altera_lib -novopt work.top_tb : 这是没有调用IPCore时的仿真命令,注意后面的参数top_tb必须为Testbench中的模块名。布局布线后仿真是这里要指定延时文件,vsim -L altera_lib -novopt -sdfmax /top_tb/top=top_v.sdo work.top_tbg). do vawe.do 运行添加wave tcl,这里可以给信号分组,添加颜色,设置波形属性等。h). run all 设定运行时间,run 1000ms等。i).在do里可以用file copy/file delete 来对临时文件进行操作。至此,modelsim仿真总结完毕。这里仅为了简单记录仿真方法和流程,旨在简单明了,对更深入的和更详细的有待进一步补充。附件 一 、 testbench 模板/ Company: / Engineer: / Create Date: / Design Name: / Module Name: / Target Device: / Tool versions: / Description:/ / Dependencies:/ / Revision:/ / Additional Comments:/ /timescale 1ns / 1psmodule top_tb;/*Parameter Declarations*parameter CLK_PERIOD = 20 ; /clk = 50Mhz/*Internal Declarations*/* Register Declarations * reg clk ;reg reset;/*Wire Declarations*/*Main Body of Code*/- initial reg data -initialbeginend/- Generate Reference Clock input to tb - initial beginclk = 1b1;endalways #(CLK_PERIOD/2) clk = !clk;/- Resets - initial beginrst_n = 1b1; #(10*CLK_PERIOD) rst_n = 1b0; #(100*CLK_PERIOD) rst_n = 1b1; end /- Data Transfer-initialbegin#(10*CLK_PERIOD);(negedge data) beginendend /- simulation end - initialbegin#(10*CLK_PERIOD);if ( ) /end signbegin$display(- TEST PASSED -);endelsebegin$display(# ERROR: TEST FAILED ! #);end$stop;end /- Instantiate TOP module -top #(.parameter1 (1), /.parameter2 (0) /)top_inst(.a (a), );Endmodule/附件二 、 do 模板/#!/bin/bash#this bash shell document is used to verilog project simulation#author:iyoyooecho * end pre-project *quit -simecho * go to work dir *#cd /#cd D:/quartus/EP4CE15F/lcd/simulation echo * start to setup work lib*vlib workecho * start to compile *vlog -f top_tb.fecho * set up reference library *vmap altera_lib E:/modeltech_10.1a/altera_libecho * delet pre-temp files *#file delete ./simulation/pika_ani.mif#file delete ./simulation/modelsim/top_v.sdoecho * copy temp file *#file copy ./source/pika_ani.mif ./simulation/#file copy ./simulation/modelsim/top_v.sdo ./simulation/echo * start to simulation *#-pli novas.dll - for debussy#-sdfmax /top_tb/top=top_v.sdo -for post synthesis simvsim -L altera_lib -novopt work.top_tb echo * add signal to vawe *do vawe.doecho * start to run *run -allecho * delete temp files *#file delete ./simulation/pika_ani.mif#file delete ./simulation/modelsim/top_v.sdo/附件三 、 file.f模板/+licq_all+access+r/./simulation/modelsim/top.vo -for post synthesis simulation./source/top.v./simulation/top_tb.v+libext+vmd+.v-y$QUARTUS_ROOTDIR/eda/sim_lib/附件三 、 file.f模板/view signals stucture waveonerror resumequietly WaveActivateNextPane 0#-color Green for all signal is green#-color Green Blue Yellow Pink Orchid Red Salmon Orange# top_tb groupadd wave -itemcolor Blue -noupdate

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论