获奖课件FPGAAdvantage简易教程_第1页
获奖课件FPGAAdvantage简易教程_第2页
获奖课件FPGAAdvantage简易教程_第3页
获奖课件FPGAAdvantage简易教程_第4页
获奖课件FPGAAdvantage简易教程_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

7.1FPGA简介7.2FPGAAdvantage设计流程7.3FPGAAdvantage应用实例共4学时第7章FPGAAdvantage简易教程

17.1FPGA简介一、什么是FPGA二、FPGA的基本特点三、FPGA的工作原理四、FPGA的配置方式

内容概要27.1FPGA简介一、什么是FPGAFPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分37.1FPGA简介二、FPGA的基本特点1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和I/O引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。47.1FPGA简介二、FPGA的基本特点(续)可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。57.1FPGA简介三、FPGA工作原理FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。67.1FPGA简介四、FPGA配置方式FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。77.2FPGAAdvantage设计流程使用FPGAAdvantage的HDLDesign流程使用工具创建设计StateMachinesFlowChartsBlockDiagrams/InterfaceBaseddesignHDLSimulatetotest

functionality(RTL)AnalyzeStaticTimingUseFPGAvendor’sPlaceandRoutetooltobuilddesigndatabaseandextracttruetimingSimulatetoverifypost-routedesign(GateLevel)87.2FPGAAdvantage设计流程FPGAAdvantage工具3种工具一起工作:HDLDesigner

--DesignCreation--Datamanagement--FlowControlModelSim

--RTLSimulation--GateLevelSimulationPrecisionRTL

--Synthesis--StaticTimingAnalysis97.2FPGAAdvantage设计流程FPGAAdvantage工具工具交互:FlowExecutionDownStreamDataPreparationSimulationControlCrossprobing

107.3FPGAAdvantage应用实例注:下面的界面是基于HDS2003.2,如果软件版本不同,可能界面会不一样。这是一个简单的计时器例子,设计输入是一个十比特的数据总线和一些控制信号,包括起始,停止,复位和时钟信号。计数器的输出用两个四比特的总线描述高低值,同时也有一个逻辑输出用来激励音频输出。如下所示:

Inputs

OutputsStart(logicsignal) high(4-bitbus) Stop(logicsignal) low(4-bitbus)reset(logicsignal) alarm(logicsignal)clk(logicsignal)d(10-bitbus)117.3FPGAAdvantage应用实例我们将在MentorGraphics公司的FPGAAdvantage设计环境中完成设计输入、仿真、综合、甚至后仿真的完整的FPGA设计流程。通过练习,可以熟悉框图、状态机、真值表等各种设计输入方式以及用ModelSim进行仿真、用Precison进行综合的方法,从而熟悉整个FPGAAdvantage的设计环境和FPGA设计流程。12二、FPGAAdvantage设计环境(1)启动程序用“开始/程序/FPGAAdvantage”命令,启动FPGAAdvantage。标题栏菜单栏工具栏设计导航,以层次树的形式显示设计桌面下的所有文件。工作区7.3FPGAAdvantage应用实例1.进入FPGAAdvantage13(2)创建一个ProjectHDLDesigner用Project来管理设计,一个Project里可以包含多个库(Library)。开始一个新项目前,首先建一个新的Project。每个Project对应一个<project_name>.hdp文件,该文件包含Project中的所有库的信息。软件安装后自带一个缺省的名为example的Project(example.hdp),里面包含一些作为例子的库。在DesignManager窗口点击Project工具栏下的快捷图标NewProject,创建一个新的Project。7.3FPGAAdvantage应用实例14点击NewProject后,弹出CreatingaNewProject对话框。7.3FPGAAdvantage应用实例15输入Project名、存放位置、缺省库的名字。点击Next,弹出ProjectSummary窗口,

7.3FPGAAdvantage应用实例16点击Next,弹出ProjectContent窗口,选择Createdesignfiles,点击Finish.7.3FPGAAdvantage应用实例17Project被创建的同时,Tutorial库也被创建并打开。注意,在指定的路径下创建了源设计数据目录C:\tmp\Myproject\TUTORIAL\hds,HDL文件目录存放目录C:\tmp\Myproject\TUTORIAL\hdl。7.3FPGAAdvantage应用实例18(2)设置缺省的语言从Options菜单中选择Main,选择General,确保VHDL被选为默认的语言,其他选项都保留默认值,然后OK。

7.3FPGAAdvantage应用实例19(1)创建一个框图

对于当前的TOP-DOWN设计流程,整个设计刚开始都要进行逻辑上的功能划分,这个功能用画框图来完成很方便,激活TUTORIAL库,在DesignManager窗口中点击按钮,选择GraphicalView>BlockDiagram。7.3FPGAAdvantage应用实例2.设计输入方式-----框图20(1)创建一个框图(续)

一个新的框图编辑窗口被打开。

7.3FPGAAdvantage应用实例21(2)添加Blocks

点击(addblock)快捷图标在框图中添加两个模块,模块会显示默认的库<library>和<block>,以及唯一的实例名I1和I0。7.3FPGAAdvantage应用实例22(3)添加嵌入式模块

点击快捷图标在框图中添加两个嵌入式模块,这些模块也显示默认的名字,如图所示:7.3FPGAAdvantage应用实例23(3)添加嵌入式模块(续)

在一个库中,描述一个Block的视图必须被命名和保存为一个独一无二的设计单元。嵌入式模块和一般模块的区别是不支持层次化,而且只能有一种描述方式。

7.3FPGAAdvantage应用实例24(4)添加端口和信号

使用工具栏上的按钮添加端口和信号,如下。

7.3FPGAAdvantage应用实例25(5)添加一个Bundle和全局连接器

使用工具栏上的按钮添加Bundle和全局连接器,如下:7.3FPGAAdvantage应用实例26(6)保存框图

在DesignManager窗口中选择下拉菜单View>SubWindows>DesignHierarchy,打开DesignHierarchy(设计层次)窗口。7.3FPGAAdvantage应用实例27(6)保存框图(续)

从DesignUnits窗口中选择Timer模块拖到DesignHierarchy窗口并展开,可以看到:

7.3FPGAAdvantage应用实例红色字样表示模块没有被定义,也就是说这些模块没有具体地描述实现,仅仅有一个空的符号,相当于只有VHDL的实体头,没有结构体。

28(7)编辑模块和信号名

右键单击总线的属性,如图:

7.3FPGAAdvantage应用实例29(8)添加一个嵌入式HDL文本视图如果修改后的总线看不到位宽的描述,可以在修改总线的同时修改名字旁边的Visibility。

选中OR1嵌入式模块,按右键,从Open中选择NewView显示如下:

7.3FPGAAdvantage应用实例30(8)添加一个嵌入式HDL文本视图(续)从下拉菜单中选择Text,然后OK。此时可以看到一个默认的HDL文本视图出现在OR1旁边,也可以编辑OR1模块的属性。如下:在文本中输入:alarm<=holdORbeep;7.3FPGAAdvantage应用实例31(8)添加一个嵌入式HDL文本视图(续)整个设计如下图所示:7.3FPGAAdvantage应用实例32(1)创建一个状态机

选中Control模块,点击右键,选择OpenAs>NewView,此时如下图所示:7.3FPGAAdvantage应用实例3.设计输入方式-----状态机33(1)创建一个状态机(续)

选择StateDiagram,点击Next,然后Finish,一个新的状态机图作为Control模块的子视图被创建,状态机编辑窗口弹出。此时如下:7.3FPGAAdvantage应用实例34(2)定义状态和状态转移条件(续)点击添加五个状态,默认的状态名为s0,s1,s2,s3,s4,注意:你输入的第一个状态被假定为启始状态,用绿色的双线圆圈表示,如图所示:7.3FPGAAdvantage应用实例35编辑后,保存状态机。保存后在DesignerManager窗口中可以看到如下图所示:7.3FPGAAdvantage应用实例(2)定义状态和状态转移条件(续)36(3)编辑状态

编辑状态属性有多种途径,可以直接双击要编辑的状态,也可以选中状态后单击鼠标右键,选择弹出菜单中的ObjectProperities,比如s0,如图所示:7.3FPGAAdvantage应用实例37(3)编辑状态(续)

编辑过的状态如下图所示:7.3FPGAAdvantage应用实例38注意:ZEROS是一个常数,需要在状态机设置中的结构Declaration进行说明。选择下拉菜单Diagram>StateMachineProperties,在ArchitectureDeclarationTab中输入:ConstantZEROS:std_logic_vector:=”0000000000”,然后点击OK完成。如图所示:

7.3FPGAAdvantage应用实例(3)编辑状态(续)

39(4)创建一个层次状态机

在Count的属性中,改变StateType成HierarchicalState,双击该状态进入,然后编辑如图所示:

7.3FPGAAdvantage应用实例40(4)创建一个层次状态机(续)最终编辑如下图所示:

7.3FPGAAdvantage应用实例41回到上一级状态机,可以看到:7.3FPGAAdvantage应用实例(4)创建一个层次状态机(续)42(5)编辑状态机属性在顶层状态机编辑窗口中,选择下拉菜单Diagram>StateMachineproperties,编辑SignalsStatus项中的内容,如图所示:

7.3FPGAAdvantage应用实例43(5)编辑状态机属性(续)按照下图设置Generation中的内容。如图所示:

7.3FPGAAdvantage应用实例44点击在图形中添加一个Panel,如图所示:

7.3FPGAAdvantage应用实例(5)编辑状态机属性(续)45(6)为状态机生成HDL代码从Tasks菜单中选择Generate运行,如图所示:7.3FPGAAdvantage应用实例46(6)为状态机生成HDL代码(续)选择下拉菜单View>Mode>HDLFiles,切换到HDL浏览模式下,查看已经生成的HDL文件。如图所示:7.3FPGAAdvantage应用实例47生成的HDL文件如下图所示:7.3FPGAAdvantage应用实例(6)为状态机生成HDL代码(续)48(1)导入BCDCounter设计单元实际设计中要用到许多现成的设计单元,即复用。在DesignerManager窗口中点击(HDLImport)图标,弹出HDLImportwizard对话框,如图所示,按下图设置:

7.3FPGAAdvantage应用实例4.导入外部设计单元49(1)导入BCDCounter设计单元(续)在Directory项点击

Brower,找到HDS安装路径下的examples\tutorial_ref\Import\Timer路径;选中Timer_BCDCounter.vhd,点击Add把该文件加入FilestoConvert栏中。然后点击Next,7.3FPGAAdvantage应用实例50点击Next,最后Finish。7.3FPGAAdvantage应用实例(1)导入BCDCounter设计单元(续)51(2)创建一个子框图打开框图编辑窗口,选中模块,双击或者右键OpenAs>NewView,选择BlockDiaram,点击Next,7.3FPGAAdvantage应用实例52(2)创建一个子框图(续)实际设计中,点击Finish后,7.3FPGAAdvantage应用实例53实际设计中,点击(AddComponent)弹出添加实例对话框,用鼠标左键选中TUTORIAL库里的BCDCounter单元并拖到图中。7.3FPGAAdvantage应用实例(2)创建一个子框图(续)54实际设计中,在图中添加两个BCDCounter模块,连接模块和信号,

7.3FPGAAdvantage应用实例(2)创建一个子框图(续)55实际设计中,在Diagram的Autoroute中可以找到,或者右键也可以看到。设置成下面的形式:7.3FPGAAdvantage应用实例(2)创建一个子框图(续)56然后选中clear,load和dat_in,右键,Autoroute,Autoconnect即可看到信号被明确连接到一起。7.3FPGAAdvantage应用实例(2)创建一个子框图(续)57(3)添加ModuleWare单元从Window菜单中选ModuleWare打开ModuleWare库。此框图要用到常数GROUND和或非门。

7.3FPGAAdvantage应用实例58(3)添加ModuleWare单元(续)选择Constants中的Ground拖到图中,连接到carry_in。7.3FPGAAdvantage应用实例59因为carry_in是四比特,所以双击Ground编辑它的属性。如下图设置:

7.3FPGAAdvantage应用实例(3)添加ModuleWare单元(续)60因为gnd仅仅是一个常数,但是还没有具体地定义。在该子框图打开的情况下,弹出ObjectProperties对话框,7.3FPGAAdvantage应用实例(3)添加ModuleWare单元(续)61点击对话框中的UserDeclarations,对常量进行定义。

7.3FPGAAdvantage应用实例(3)添加ModuleWare单元(续)62从ModuleWare库选择Logic中的NInputNOR并拖到图中,7.3FPGAAdvantage应用实例(3)添加ModuleWare单元(续)63最终完成的设计如下图,保存文件,生成HDL代码。7.3FPGAAdvantage应用实例(3)添加ModuleWare单元(续)64(1)创建真值表从Counter的框图返回到上一级,双击DtoB模块,然后选择TrueTable即可。7.3FPGAAdvantage应用实例5.设计输入方式-----真值表65(1)创建真值表(续)最终编辑成下面形式。7.3FPGAAdvantage应用实例66在DesignerManager窗口中选中Timer,运行generateHDLfiles,在log窗口中看到;7.3FPGAAdvantage应用实例(1)创建真值表(续)67在DesignerManager窗口选择View>Mode>HDLFiles,可以看到所有的HDL文件。7.3FPGAAdvantage应用实例(1)创建真值表(续)68(1)创建TestbenchDesignerManager窗口选中Timer模块,然后从菜单File的New中选择CreateTestBench,默认的设置即可。7.3FPGAAdvantage应用实例6.设计仿真69(1)创建Testbench(续)在DesignerManag

温馨提示

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

最新文档

评论

0/150

提交评论