下载

2下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 EDA

EDA.ppt

EDA

90后Tbing
2017-10-02 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《EDAppt》,可适用于IT/计算机领域

何宾第章该章主要是通过一个设计实例介绍基于HDL的设计流程。通过这个设计实例读者可以掌握基于HDL语言的基本设计流程。这个设计基于HDL语言和IP核。本章是HDL基本设计流程的第一部分当设计输入完成后应依次完成行为仿真、设计实现(翻译、映射和布局布线)、时序仿真、下载和配置的基本设计流程。基于HDL的设计输入本章概要第六章基于HDL的设计输入软件环境 图给出了ISE的主界面窗口。ISE的主界面可以分为个子窗口。第六章基于HDL的设计输入软件环境 左上角的窗口是源文件窗口设计工程所包括的文件以分层的形式列出。在该子窗口的下面是处理窗口该窗口描述的是对于选定的设计文件可以使用的处理流程。在ISE主界面最下面是脚本窗口在该窗口中显示了消息、错误和警告的状态。同时还有Tcl脚本的交互和文件中查找的功能。在ISE的右上角是多文档的窗口在该窗口可以查看html的报告ASCII码文件、原理图和仿真波形。通过选择ViewRestoreDefaultLayout可以恢复界面的原始设置。第六章基于HDL的设计输入软件环境 这个窗口有三个标签:源(Source)、Snapshots(快照)、Library(库)。源标签内显示工程名、指定的芯片和设计有关的文档。在设计视图的每一个文件都有一个相关的图标这个图标显示的是文件的类型(HDL文件、原理图、IP核和文本文件)。lsquorsquo表示该设计文件包含了更低层次的设计模块。标签内显示的是目前所打开文件快照。一个快照是在该工程里所有文件的一个拷贝。通过该标签可以察看报告、用户文档和源文件。在该标签下所有的信息都是只读的。● 、源文件(source)子窗口第六章基于HDL的设计输入软件环境 在该窗口只有一个处理标签。该标签有下列功能:增加已有文件创建新文件察看设计总结(访问符号产生工具例化模板察看命令行历史和仿真库编辑)用户约束文件(访问和编辑位置和时序约束)综合(检查语法、综合、察看RTL和综合报告)设计实现(访问实现工具设计流程报告和其它一些工具)产生可编程文件(访问配置工具和产生比特流文件)。● 、处理(process)子窗口第六章基于HDL的设计输入软件环境工作区子窗口提供了设计总结、文本编辑器、ISE仿真器波形编辑器、原理图编辑器功能。设计总结提供了关于该设计工程的更高级信息包括信息概况、芯片资源利用报告、与布局布线相关性能数据、约束信息和总结信息等。源文件和其它文本文件可以通过设计人员指定的编辑工具打开。编辑工具的选择由EditPreference属性决定缺省的是ISE的文本编辑器通过该编辑器可以编辑源文件和用户文档也可以访问语言模板。● 、工作区(Workspace)子窗口第六章基于HDL的设计输入软件环境通过ISE仿真器和波形编辑器创建和仿真测试平台。波形编辑器提供了图形化的激励源和期望响应输出然后产生使VHDLVerilog语言描述的测试平台。原理图编辑器集成在ISE中原理图编辑器是采用图形的方式创建和查看逻辑设计。第六章基于HDL的设计输入综合工具介绍EDA设计人员可以使用不同的综合工具综合设计。下面将介绍ISE支持的综合工具并包括与综合工具相关的属性设置。、精确的综合工具这种综合工具不属于ISE软件包的一部分如需使用必须单独购买。两个通常使用的属性是优化目标和优化级别。通过选择这两种属性来控制综合结果:面积或速度以及综合器运行时间。这种综合工具对HDL和原理图设计流程均可使用。第六章基于HDL的设计输入综合工具介绍、SynplifySynplifypro工具这种综合工具不属于ISE的一部分如需使用必须单独的购买。这种综合工具只能用于基于HDL语言的设计流程而不能用于基于原理图的设计流程。、XST综合工具这种综合工具是ISE软件包的一部分是Xilinx公司自己的综合工具。这种综合工具对基于HDL语言和原理图的设计流程均可使用。第六章基于HDL的设计输入工程建立在建立工程前需要将示例文件从光盘上拷到创建工程的路径下。该设计完成一个比赛用的秒表计时器(设计文件通过http:chinaxilinxcomsupporttechsuptutorialstutorialshtm资源下载)。、在桌面上双击ISE的图标或者在开始菜单所有程序XilinxISEProjectNavigator。在ISE主界面中选择FileNewProject。如图所示桌面出现下面的界面第六章基于HDL的设计输入工程建立第六章基于HDL的设计输入工程建立、在ProjectLocation域内给出保存工程的路径、在Projectname域内给出工程名wtutvhd、在TopLevelSourceType域内选择HDL单击下一步。出现图图形界面。、在DeviceProperties界面中选择合适的产品范围(productcategory)、芯片的系列(Family)、具体的芯片型号(Device)、封装类型(Package)、速度信息(speed)此外在该界面中还要选择综合工具(SynthesisTool)、仿真工具(Simulator)和设计语言(PreferredLanguage)。图给出了示例中的参数配置第六章基于HDL的设计输入工程建立第六章基于HDL的设计输入工程建立、连续两次用鼠标点击下一步按钮出现图添加源文件的界面在该界面中点击ldquoAddSourcerdquo按钮。添加下列文件:clkdivk,lcdcontrol,statmach,stopwatch并单击open按钮第六章基于HDL的设计输入工程建立、单击下一步按钮然后完成新工程的建立、在确认所有的设计文件和SynthesisImpSimulation关联后单击ok第六章基于HDL的设计输入设计描述在该设计中采用了层次化的、基于VHDL语言的设计流程。表明该设计的顶层文件是由VHDL语言生成而顶层文件以下的其它模块可以用VHDL、原理图或IP核生成。该章将要对一个还没有设计完成的工程进行进一步的处理直到最终完成这个设计。通过这个设计流程读者可以完成并且产生其它模块。当设计完成后就可以通过仿真验证设计的正确性。第六章基于HDL的设计输入设计描述strtstop:启动和停止秒表reset:复位秒表::状态且秒表在时钟模式下clk:外部输入时钟信号mode:控制时钟和秒表模式。只有当时钟或定时器处于未计数状态时该信号才起作用lapload:这个信号有两个功能。在时钟模式下显示当前的时钟值。在定时器模式下当定时器没有计数时从ROM中加载预设的值并显示、该设计有下面的输入信号:第六章基于HDL的设计输入设计描述lcdelcdrslcdrw:这些控制信号用于控制LCD的显示sfd::向LCD显示提供并行数据、该设计有下面的输出信号:第六章基于HDL的设计输入设计描述clkdivk:将输入时钟进行的分频将MH时钟转换成占空比为的Hz时钟信号。DCM:数字时钟管理器的IP核提供内部时钟反馈、频率的输出控制和占空比的修正。CLKFXOUT将MHz的时钟转换为MHz时钟输出。Debounce:原理图模块实现秒表的strstopmodelapload信号的去抖动。lcdcontrol:对LCD的初始化和LCD的显示进行控制。、该设计有以下功能模块:第六章基于HDL的设计输入设计描述statmach:在状态图(StateDigram)编辑器中定义和实现状态机模块并控制秒表。timerpreset:通过核产生器(coregenerator)产生X的ROM这个ROM在::到::的范围内保存了个预设置的时间。timecnt:在::到::的范围内以updown模式工作的计数器。这个模块有个比特的输出用来描述当前秒表的输出数字。、该设计有以下功能模块:第六章基于HDL的设计输入添加设计和检查在这个例子的完成过程中将对HDL文件进行检查修改语法错误并建立一个VHDL模块添加IP核和时钟模块通过使用混合设计方法完成所有设计输入流程。所有后面的设计流程都基于这个设计示例完成。图显示的是上面的工程建立完成后在ISE主界面的source子窗口的界面。从该图可以看到在设计工程中虽然已经例化了timercnt模块但没有该模块的HDL的描述(文件旁有ldquo?rdquo标识)。为了添加该文件并进行检查按照下面的步骤将完成添加该文件并进行语法检查。第六章基于HDL的设计输入添加设计和检查第六章基于HDL的设计输入添加设计和检查、选择projectAddSource选择并打开timecntvhd文件确保该模块与SynthesisImpSimulation选项关联并单击ok按钮、对该设计文件进行语法检查。在source子窗口选择timecntvhd文件。在process子窗口单击lsquorsquo展开DesignUtility并双击CheckSyntax第六章基于HDL的设计输入添加设计和检查、在检查语法的过程中在Transcript子窗口中出现个错误信息的提示。根据错误的提示信息修改文件并保存然后再次进行检查直到没有语法错误为止。并保存文件。第六章基于HDL的设计输入创建基于HDL的模块本节将介绍使用ISE的文本编辑器VHDL语言创建模快。使用VHDL语言创建的模块用于该秒表的去抖动功能。、选择ProjectNewSource弹出图的窗口新文件建立的导向窗口。第六章基于HDL的设计输入创建基于HDL的模块第六章基于HDL的设计输入创建基于HDL的模块在窗口左边选择VHDLModule其它选项分别完成调试文件建立、IP核建立、用户约束文件建立、原理图建立、状态图建立、HDL文件建立、HDL测试文件建立、HDL库建立和HDL测试波形文件建立。在Filename下面的输入框输入debounce文件名然后点击下一步出现新文件向导对话框此时可以进行下列选择可以通过该向导输入端口的名字和方向选择是否总线如果是总线还需要指明宽度。读者也可以在HDL文件中自己输入当使用在VHDL中手工添加这种方式的时候直接单击next按钮即可否则需要在该界面内指定端口参数。最后单击完成(finish)按钮生成新文件第六章基于HDL的设计输入创建基于HDL的模块第六章基于HDL的设计输入创建基于HDL的模块、如图所示在ISE的工作区空间给出使用ISE文件编辑器打开的debouncevhd文件。可以看出Xilinx的ISE工具生成了VHDL基本结构框架这也是ISE具有强大设计功能的体现第六章基于HDL的设计输入创建基于HDL的模块第六章基于HDL的设计输入创建基于HDL的模块下面需要的是EDA设计人员需要将结构体空缺的下面的代码的添加到结构体中间。architecturedebouncearchofdebounceissignalint,int,int:stdlogicbeginsigout=siginorintorintorintprocess(clk)isbegin第六章基于HDL的设计输入创建基于HDL的模块ifrisingedge(clk)thenint=siginint=intint=intendifendprocessenddebouncearch输入完毕并保存文件并对该设计文件按照前面的方法进行语法规则检查直到综合完成为止在综合过程如果出现错误则需要对输入的设计文件进行检查。第六章基于HDL的设计输入IP核产生和例化IP核生成器(IPcoregenerator)是一个用户图形交互界面工具通过核产生器可以产生高层次设计模块例如:存储器、数学函数、通讯和IO接口的IP核。设计人员可以定制和优化这些IP核这些IP核充分利用Xilinx的FPGA结构特征例如:快速进位逻辑、SRLs和分布式块RAM等。第六章基于HDL的设计输入timerpreset模块的生成在本节中通过IP核产生器生成timerpreset模块。该模块存储了个值这些值将来加载到定时器中。、在ISE主界面中选择ProjectNewSource弹出NewSourceWizard窗口在该窗口中选择IP(CoregenArchitectureWizard)在Filenamefield中输入timerpreset文件名点击next按钮、在弹出的NewSourceWizardSelectIP窗口选择MemoryStorageElements。如图所示在该界面中选择ldquoRAMsROMsrdquo在展开项中选择distributedMemoryGenerator点击next和finish按钮第六章基于HDL的设计输入timerpreset模块的生成、弹出的界面在该界面中选择ROM的Depth将其设置为然后选择DataWidth将其设置为然后将存储器的类型MemoryType设置为ROM点击下一步、将Inputoptions和Outputoptions设置为NonRegistered(表示输入和输出不需要通过锁存器进行锁存可以看到在该界面窗口的左面的a:和spo:呈黑色显示其余引脚呈灰色显示(黑色表示引脚在该次设计中有效灰色表示引脚在该次设计中无效)单击finish按钮。在IP核产生器生成IP核后产生下面的文件下面对这些文件的含义进行一些说明:第六章基于HDL的设计输入timerpreset模块的生成第六章基于HDL的设计输入timerpreset模块的生成第六章基于HDL的设计输入timerpreset模块的生成timerpresetvhotimerpresetveo文件这些文件是该IP核的例化模板通过这个例化模板就可以将IP核添加到该设计中。timerpresetvhdtimerpresetv文件这些文件是IP核生成的包装文件只用来仿真。timerpresetedn文件该文件是网表文件该文件在进行网表翻译过程中使用。timerpresetxco文件该文件保存了该模块的配置信息该文件作为源文件使用。timerpresetmif文件该文件提供了为ROM仿真时的初始设置。第六章基于HDL的设计输入DCM模块的生成DCM模块即数字时钟管理模块在很多方面都有应用下面步骤将给出DCM的IP核生成过程:、在ISE主界面中选择ProjectNewSource弹出NewSourceWizard窗口在该窗口中选择IP(CoregenArchitectureWizard)在Filenamefield中输入DCM文件名点击next按钮、如图所示在该界面中选择FPGAFeaturesandDesign在展开项SpartanE,SpantanA的子项中选择SingleDCMSPvi点击next和finish按钮第六章基于HDL的设计输入DCM模块的生成、弹出XilinxClockWizardGeneralSetup界面在该界面进行下面的设置输入时钟为MHz,输入时钟clkinSource选择External,相位移动PhaseShift选择NONE反馈源FeedbackSource选择Internal。然后单击确定生成DCM的IP核第六章基于HDL的设计输入timerpreset模块的例化当IP核生成后下面将在设计中调用生成的IP核。、在工程管理窗口双击stopwatchvhd文件将其打开。、将光标移动到InsertCoreGeneratorROMcomponentdeclarationhere。、在ISE中选择Fileopen选项,选择timerpresetvho并打开。、将VHDL的声明部分代码复制并通过粘贴插入到光标所指的那一行下面。第六章基于HDL的设计输入timerpreset模块的例化componenttimerpresetport(a:INstdlogicVECTOR(downto)spo:OUTstdlogicVECTOR(downto))endcomponentSynplicityblackboxdeclarationattributesynblackbox:booleanattributesynblackboxoftimerpreset:componentistrue第六章基于HDL的设计输入DCM模块的例化、将该文件的例化部分的代码复制。yourinstancename:timerpresetportmap(a=a,spo=spo)、然后粘贴到设计的顶层文件的例化部分然后通过端口映射将该模块和设计相连。tpreset:timerpresetportmap(a(downto)=address(downto),spo(downto)=presettime(downto))第六章基于HDL的设计输入timerpreset模块的例化、在工程文件管理窗口选择Source标签选择Dcmxaw文件。然后在处理子窗口选择ViewHDLInstantiationTemplate并单击鼠标左键。、在workspace子窗口打开dcmvhi文件将下面的代码添加到设计文件stopwatchvhdInsertDCMcomponentdeclarationhere的下面。第六章基于HDL的设计输入timerpreset模块的例化COMPONENTdcmPORT(CLKININ:INstdlogicRSTIN:INstdlogicCLKINIBUFGOUT:OUTstdlogicCLKOUT:OUTstdlogicLOCKEDOUT:OUTstdlogic)ENDCOMPONENT第六章基于HDL的设计输入timerpreset模块的例化、然后将下面的代码粘贴到stopwatch,vhd的例化部分即InsertDCMinstantiationhere的下面并和相应的端口连接。dcminst:dcmportmap(CLKININ=clk,RSTIN=reset,CLKFXOUT=clkk,CLKINIBUFGOUT=open,CLKOUT=open,LOCKEDOUT=locked)第六章、说明基于HDL语言的设计输入方法。、说明ISE软件平台的特点及其功能。、说明IP核的生成方法和例化方法。、完成一个基于VHDL设计输入的设计。第章 习题

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/48

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利