第11章-DXP环境下的FPGA设计.

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

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

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

资源描述

2019/12/19清华大学出版社Page1第11章DXP环境下的FPGA设计FPGA设计初步11.1对VHDL和原理图的混合设计与仿真11.2FPGA属性设置11.3ProtelDXP和AlteraFPGA接口11.4实例讲解11.5本章小结11.611.1FPGA设计初步FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,它具有体系结构和逻辑单元灵活、集成度高级适用范围宽的特点,兼容了PLD和通用门阵列的特点,同一片FPGA通过不同的编程数据可以产生不同的电路功能,因此可以实现大规模的集成电路设计。在进行FPGA项目设计之前,首先要了解FPGA设计的相关基础知识,包括基本概念、设计流程等。11.1.1FPGA的基本概念11.1.2FPGA设计流程11.1.3VHDL语言简介2019/12/19清华大学出版社Page211.1.1FPGA的基本概念FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程内部互连。可编程逻辑功能块:它是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块:用于完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;可编程内部互连:它包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。2019/12/19清华大学出版社Page3FPGA内部多采用查找表的结构。查找表简称为LUT(Look-Up-Table),LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT都可以看成一个具有4位地址线的16×1的RAM。基于查找表(LUT)的FPGA的结构采用这种查找表结构的FPGA有Altera的ACEX和APEX系列及Xilinx的Spartan和Virtex系列等。查找表结构的FPGA逻辑实现原理2019/12/19清华大学出版社Page411.1.2FPGA设计流程1.创建FPGA项目2.设置FPGA项目的属性创建好FPGA项目之后,还需要对相关属性,如错误报告、比较器、综合和仿真等进行设置,以帮助项目的设计和优化。3.VHDL编译环境在已创建的FPGA项目中,执行菜单命令【文件】/【创建】/【VHDL文件】,在项目文件夹中将自动生成一个VHDLl.Vhd文件VHDLl.Vhd文件。同时,此文件在主窗口中被打开,处于文本编辑器状态。2019/12/19清华大学出版社Page511.1.3VHDL语言简介目前最主要的硬件描述语言是VHDL和VerilogHDL。VHDL是超高速集成电路硬件描述语言(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)的简称,它发展得较早,语法严格;VerilogHDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。一个完整的VHDL程序包括实体(entity)、结构体(architecture)、配置(configuration)、包(package)、库(library)5个部分。其中,前4个部分是可分别编译的源设计单元。VHDL程序结构可以用图11-10表示。2019/12/19清华大学出版社Page62019/12/19清华大学出版社Page7图11-11VHDL程序结构1.实体说明实体说明是一个器件的外观视图,即从外部看到的器件外貌,包括端口等。实体说明也可以定义参数,并把参数从外部传入模块内部。任何一个基本设计单元的实体说明都具有如下结构:ENTITY实体名IS[GENERIC(类属表);][PORT(端口表);]实体说明部分;[BEGIN实体语句部分;]END[ENTITY][实体名];[]中的内容是可选的,即可以没有这部分内容。2019/12/19清华大学出版社Page82.端口说明端口说明是对设计实体与外部接口的描述,也可以说是对外部引脚信号的名称、数据类型和输入输出方向的描述。端口为设计实体和其外部环境通信的动态信息提供通道,其功能对应于电路图符号的一个引脚。实体说明中的每一个I/O信号被称为一个端口,一个端口就是一个数据对象。每个端口必须有一个名字、一个通信模式和一个数据类型。是实体的重要组成部分。端口说明的一般格式为:Port(端口名:模式数据类型名;端口名:模式数据类型名);2019/12/19清华大学出版社Page93.结构体结构体是次级设计单元,具体指明了该设计实体的结构或行为,定义了该设计实体的功能,规定了该设计实体的数据流程,指定了该实体中内部元器件的连接关系,把一个设计的输入和输出之间的关系建立起来。由于结构体是对实体功能的具体描述,因此一定要跟在实体的后面。一个结构体的一般书写格式为:ARCHITECTURE结构体名OR实体名IS[定义语句]BEGIN[并行处理语句][进程语句]--器件的功能实现部分END结构体名;2019/12/19清华大学出版社Page104.描述风格描述风格也就是建模方法。用VHDL语言描述结构体有4种方法。(1)行为描述法:采用进程语句,顺序描述被称为设计实体的行为。(2)数据流描述法:采用进程语句,顺序描述数据流在控制流作用下被加工、处理、存储的全过程。(3)结构描述法:采用并行处理语句描述设计实体内的结构组织和元器件互连关系。(4)混合描述法:采用多个进程(process)、多个模块(blocks)、多个子程序(subprograms)的子结构方式,是将前三种基本的描述方法组合起来。2019/12/19清华大学出版社Page1111.2对VHDL和原理图的混合设计与仿真ProtelDXP不仅支持原理图的输入方法和VHDL输入方法,还支持VHDL和原理图混合输入方法,该方法在适合用VHDL的地方用VHDL,适合用原理图的地方用原理图,既增强了电路的可移植性,又减轻了设计者的设计压力,提高了设计效率。2019/12/19清华大学出版社Page12图11-12采用VHDL和原理图相结合的输入方法设计流程11.2.1创建混合FPGA项目2019/12/19清华大学出版社Page13【实例11-1】1位二进制全加器设计本例中,要求采用VHDL和原理图的混合设计方法,设计一个一位的二进制全加器。全加器的VHDL和原理图的混合设计原理图如图11-13所示。图11-131位二进制全加法器2019/12/19清华大学出版社Page14abSoco0000011010101101一位二进制半加器真值表如表11-2所示。其中a、b是输入端,So是和、Co进位端。表11-2二进制半加器真值表11.3FPGA属性设置在ProtelDXP的FPGA项目设计过程中,一般都要通过端口属性、元件符号属性、项目属性、文件属性和导线属性等对话框的【参数】面板中对FPGA项目进行相应的参数设置。一般有两种属性:一般属性和高级属性。11.3.1一般属性11.3.2高级属性2019/12/19清华大学出版社Page1511.3.1一般属性几乎所有的FPGA项目设计中都要对项目进行一般属性的设置。一般属性主要用来设置目标器件以及FPGA项目中的引脚锁定的相关信息。1.【引脚锁定】属性【引脚锁定】属性用于锁定目标器件中用于信号传递和数据交换的引脚。【引脚锁定】属性主要放置在项目顶层文件中的端口上,通过添加或者修改参数来设置引脚的属性。【引脚锁定】属性的参数语法如下:NAME:PINNUMTYPE:STRINGVALUE:2019/12/19清华大学出版社Page162.【目标器件】属性任何FPGA项目的设计都是先软件仿真,然后再对器件进行选型和连接。【目标器件】属性主要用于向布局和布线工具传送信息,以方便后面软件设计向硬件的转化。【目标器件】属性设定的参数语法如下:NAME:PARTNAMETYPE:STRINGVALUE:2019/12/19清华大学出版社Page1711.3.2高级属性高级属性主要用于优化EDIF文件,同时也可为器件或端口加入更多的用于设计的信息。ProtleDXP中的高级属性包括【关键路径】属性、【约束缓冲】属性,【FPGA_GSR】属性、【时钟缓冲】属性。1.【关键路径】属性参数语法:NAME:CRITICALTYPE:BOOLEANVALUE:TRUE【关键路径】属性中的关键路径主要是指目标器件中关键信号的路径。2019/12/19清华大学出版社Page182.【约束缓冲】属性参数语法:NAME:INHIBITBUFTYPE:BOOLEANVALUE:TRUE[约束缓冲]属性主要用于在【InsertI/O-Buffers】选项打开时,禁止向端口插入I/O缓冲。2019/12/19清华大学出版社Page193.【FPGA_GSR】属性参数语法:NAME:FPGA_GSRTYPE:BOOLEANVALUE:TRUE如果将FPGA项目的各各部分分开进行编译,或者当前编译后的EDIF文件将与其他项目连接,那么顶层的文件中必须有STARTUP符号,而其他层的RESET端则必须添加一个【FPGA_GSR】属性。一旦为端口加入了【FPGA_GSR】属性,那么这个端口将不与任何触发器的置1和置0端连接。2019/12/19清华大学出版社Page204.【时钟缓冲】属性参数语法:NAME:CLOCK_BUFFERTYPE:BOOLEANVALUE:TRUE【时钟缓冲】属性主要用于在【InsertI/OBuffers】选项打开时,为输入缓冲加入时钟缓冲。如果没有加入输入缓冲,则只需要在系统时钟之前放置一个时钟缓冲符号即可。2019/12/19清华大学出版社Page2111.4ProtelDXP和AlteraFPGA接口ProtelDXP支持几乎所有的Altera的元件集成库,如表11-4所示。2019/12/19清华大学出版社Page22型号FPGA库StratixAlteraFPGAApex20k/20kE/20KC/IIAlteraFPGAFlex10K/A/B/EAlteraFPGAFlex6000/8000AlteraFPGAAcex1kAlteraFPGAMax3000A/5000A/9000AAlteraFPGAMax7000/A/E/S/AEAlteraFPGAClassicAlteraFPGAMercuryAlteraFPGA表11-4ProtelDXP支持的Altera库11.5实例讲解2019/12/19清华大学出版社Page23【实例11-1】VHDL与原理图的混合设计本实例中,要求利用VHDL和原理图的混合输入方法,设计一个2位的十进制计数器。计数器的VHDL和原理图的混合设计原理图如图11-38所示。图11-38连接好的顶层原理图的设计2019/12/19清华大学出版社Page24本章简要介绍了FPGA的概念及其设计流程,并简单对VHDL语言作了介绍。更为详细的CPLD/FPGA及VHDL方面的知识,读者可以参考相关的书籍。本章通过实例介绍在ProtelDXP中进行FPGA设计的基本步骤和方法,重点讲解了VHDL和原理图的混合设计与仿真方法,读者可以在此基础上仔细研究并多做练习。11.6本章小结

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

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

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

×
保存成功