Modelsim仿真流程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Modelsim、Synplify.Pro、ISE设计全流程摘要:本文介绍了如何编译HDL必须的Xilinx库和结构仿真,如何调用XilinxCORE-Generator,如何使用Synplify.Pro综合HDL和内核,如何进行综合后的项目执行,以及不同类型结构的仿真。关键词:EDA,Modelsim,Synplify.Pro,ISE,Xilinx库,XilinxCORE-Generator,HDL,第一章Modelsim编译Xilinx库本章介绍如何编译HDL必须的Xilinx库和结构仿真。创建将被编译库的目录在编译库之前,最好先建立一个目录(事实上必须建立一个目录),步骤如下。(假设Modelsim的安装目录是“$Modeltech_6.0”,ISE的安装目录是“$Xilinx”)在“$Modeltech_6.0/”目录下建立一个名为XilinxLib的文件夹;启动Modelsim后,从“File”菜单项中点击“ChangeDirectory”并指定到刚刚建立的那个文件夹“XilinxLib”;接下来要做的事情是将Xilinx库编译到“XilinxLib”文件夹中。有三个库需要被编译。它们分别是“simprims”,“unisims”和“XilinxCoreLib”;(所有这些库文件都在“$Xilinx/verilog/src”目录下)点击Modelsim中的“Workspace”窗口,建立一个名为Xilinx_CoreLib的新库;(这个操作创建一个名为“Xilinx_CoreLib”的文件夹,你可以在“Workspace”窗口中看到它)现在开始编译!在“Compile”菜单中点击“Compile”,选择“$Xinlinx/verilog/scr/XilinxCoreLib”目录中所有的文件,在弹出的对话框中选中刚刚建立的“Xilinx_CoreLib”文件夹,再点击“Compile”按钮就可以了编译了;用同样的方式编译其他两个本地库(“simprims”和“unisims”);第二章调用XilinxCORE-Generator当需要在设计中生成参数化和免费的IP内核(黑箱子)时,无论是通过原理图方式还是HDL方式,CORE-Generator都是一个非常有用的程序。利用CORE-Generator创建一个IP核利用Xilinx提供的CORE-Generator来生成IP核是非常简单的。内核是全参数化的,这就意味着你只需要在空白处填入几个数字和参数,然后程序就会自动产生一个你所需要的内核(有些内核是全免费的,有些则没有这么慷慨)利用CORE-Generator来生成IP核的步骤如下:在“程序”中找到“Xilinx”项,然后在“Accessories”中启动单独存在的“CORE-Generator”;在“Part”标签栏中选择恰当的FPGA模型;从“Generation”标签栏中选择正确的设计流;(完成后按“OK”按钮)定制你的参数化内核;在内核生成的同时,会弹出一个“ReadmeFile”的信息框来通知一些重要的信息;“*.v”文件是用来作仿真和综合用的,而“*.veo”文件是用来作综合实例用的。(调用意味着把相应的文件加入Synplify.Pro工程中,而实例指的是可以拷贝这个文件中的某些线到HDL设计的顶层模块中去。退出!)第三章使用Synplify.Pro综合HDL和内核综合是将设计好的HDL代码,图形代码和原理图转变成逻辑单元的技术。同与硬件执行和物理布线非常接近的物理综合相比,逻辑综合是更高层次的综合技术。利用Synplify.Pro进行逻辑综合Synplify.Pro对于大容量低价格的XilinxSpartan系列FPGA而言,有着非常好的综合能力。具体步骤如下:首先创建一个工程;往工程中加入HDL文件(我的演示文件有三个文件,CORE-Generator生成的“async_fifo.v”和“dcm4clk”和一个Verilog顶层文件“top.v”)。在Synplify.Pro环境中设置“ImplementationOption”;(如果读者非常熟练的话,可以省略这步)往CORE-Generator生成的两个Verilog文件中插入Synplify.Pro能够识别的指示这些指示告诉综合器如何处理这两个特殊的文件;插入“/*synthesissyn_black_box*/”指示通知Synplify.Pro把模块当作黑箱子来处理,同时指示“/*synthesissyn_isclock=1*/”表示这个作为时钟输入端的端口不能被综合器识别,因为它除了端口名外没有下层结构;将工程保存在合适的地方,然后综合这个工程;在综合完成后,选择“TechnologyView”按钮来观察层次结构;(你可以发现内核文件已经被综合成黑箱子了)继续深入了解“dcm4clk1”模块的结果;不管你相信与否!Synplify.Pro已经生成了你所希望的东西。(拥有专用Clock-Input-Buffer,IBUG连接的DCM结构,并且有一个从Global-Clock-Buffer,BUFG的反馈结构“CLKFB”)第四章综合后的项目执行执行是将生成的位文件下载到FPGA的最后一个步骤。同时创建不同的时序模型(post-translate模型,post-map模型和post-PAR模型)和时序报告。ISE,唯一可以用来执行的工具ISE控制着设计流的各个方面。通过ProjectNavigator界面,可以进入所有不同的设计实体和实际执行工具。同时也可以访问于工程有关的文件和文档。ProjectNavigator包含一个平坦的目录结构。在演示项目中,ISE的一些贫乏的功能不得不让道给其他的第三方软件,例如ModelSim.Pro和Synplify.Pro,因此ISE一般仅仅被用作执行工具。启动ISE,用“EDIF”作为文件输入;(“EDIF”文件由Synplify.Pro软件生成,作为终端设计文件,可以被大多数的FPGA开发环境识别,例如ISE,Quartus,ispLevel。)在建立了ISE工程后,可以加入其他两个文件,一个是与内核相关的“*.xco”文件,另一个是与DCM结构有关的“*.xaw”;现在可以生成需要仿真的所有的模块;(点击下划红线的选项)如果想仿真post-PAR模块,最好首先定义引脚,特别是专用的外部时钟引脚;启动“map”程序中的“Floorplaner”选项来定义引脚;“DCMs”和“IBUFGs”应该被放在正确的位置。第五章不同类型结构的仿真仿真是用来验证设计的时序和功能是否正确的调试方法之一。在验证调试电路和观察波形的过程中,应该进行四个不同类型的仿真。同的仿真类型针对的不同的平台。功能仿真用来验证设计的功能是否正确;post-translate仿真用来验证设计的基于原语延时;post-map仿真用来仿真基于原语延时和网络延时;最后,post-PAR仿真在post-map仿真的基础上加入了输入输出和布线延时。我不会给出演示设计的全部详细的仿真过程,但是给出了重点和重要的步骤。只给出了post-PAR仿真过程,列出了对于所有其他三种仿真需要的不同文件。(实际上,不同的文件是不同的参考时序模型:DesignName_translate.v是post-translate模型,DesignName_map.v是post-map模型。)对于post-PAR仿真,需要四种类型的文件,“glb1.v”是用来作FPGA全局复位的(从“$Xilinx/verilog/src”目录中拷贝),“DesignName_timesim.v”用来作post-PAR仿真(必须命名为DesignName.v),TestBenchName.v用来作仿真用和DesignName_timesim.sdf用来作时序后注。post-map仿真跟上述类似,post-translate没有“*.sdf”文件,功能仿真除了没有“*.sdf”文件外还没有“glb1.v”文件;通过点击“Simulation”菜单下的“StartSimulation”命令把前面讨论过的三个Xilinx库文件加入到当前仿真库中;在“Design”栏中选择“glb1”和“TestbenchName”,仿真设计;在“Transcript”窗口中输入“addwave*”命令,你就可以到在波形窗口中出现了信号。来源:电子开发网

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功