DXP环境下的FPGA设计-第十一章_第1页
DXP环境下的FPGA设计-第十一章_第2页
DXP环境下的FPGA设计-第十一章_第3页
DXP环境下的FPGA设计-第十一章_第4页
DXP环境下的FPGA设计-第十一章_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

DXP环境下的FPGA设计-第十一章2024/9/20Page2第11章DXP环境下的FPGA设计FPGA设计初步11.1对VHDL和原理图的混合设计与仿真11.2FPGA属性设置11.3ProtelDXP和AlteraFPGA接口11.411.1FPGA设计初步FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,它具有体系结构和逻辑单元灵活、集成度高级适用范围宽的特点,兼容了PLD和通用门阵列的特点,同一片FPGA通过不同的编程数据可以产生不同的电路功能,因此可以实现大规模的集成电路设计。在进行FPGA项目设计之前,首先要了解FPGA设计的相关基础知识,包括基本概念、设计流程等。11.1.1FPGA的基本概念11.1.2FPGA设计流程11.1.3VHDL语言简介2024/9/20清华大学出版社Page311.1.1FPGA的基本概念FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程内部互连。可编程逻辑功能块:它是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块:用于完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;可编程内部互连:它包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。2024/9/20清华大学出版社Page4FPGA内部多采用查找表的结构。查找表简称为LUT(Look-Up-Table),LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT都可以看成一个具有4位地址线的16×1的RAM。基于查找表(LUT)的FPGA的结构采用这种查找表结构的FPGA有Altera的ACEX和APEX系列及Xilinx的Spartan和Virtex系列等。查找表结构的FPGA逻辑实现原理2024/9/20清华大学出版社Page511.1.2FPGA设计流程1.创建FPGA项目2.设置FPGA项目的属性创建好FPGA项目之后,还需要对相关属性,如错误报告、比较器、综合和仿真等进行设置,以帮助项目的设计和优化。3.VHDL编译环境在已创建的FPGA项目中,执行菜单命令【文件】/【创建】/【VHDL文件】,在项目文件夹中将自动生成一个VHDLl.Vhd文件VHDLl.Vhd文件。同时,此文件在主窗口中被打开,处于文本编辑器状态。2024/9/20清华大学出版社Page611.1.3VHDL语言简介目前最主要的硬件描述语言是VHDL和VerilogHDL。VHDL是超高速集成电路硬件描述语言(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)的简称,它发展得较早,语法严格;VerilogHDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。一个完整的VHDL程序包括实体(entity)、结构体(architecture)、配置(configuration)、包(package)、库(library)5个部分。其中,前4个部分是可分别编译的源设计单元。VHDL程序结构可以用图11-10表示。2024/9/20清华大学出版社Page72024/9/20清华大学出版社Page8图11-11VHDL程序结构1.实体说明实体说明是一个器件的外观视图,即从外部看到的器件外貌,包括端口等。实体说明也可以定义参数,并把参数从外部传入模块内部。任何一个基本设计单元的实体说明都具有如下结构:

ENTITY实体名IS[GENERIC(类属表);][PORT(端口表);]

实体说明部分;[BEGIN

实体语句部分;]END[ENTITY][实体名];[]中的内容是可选的,即可以没有这部分内容。2024/9/20清华大学出版社Page92.端口说明端口说明是对设计实体与外部接口的描述,也可以说是对外部引脚信号的名称、数据类型和输入输出方向的描述。端口为设计实体和其外部环境通信的动态信息提供通道,其功能对应于电路图符号的一个引脚。实体说明中的每一个I/O信号被称为一个端口,一个端口就是一个数据对象。每个端口必须有一个名字、一个通信模式和一个数据类型。是实体的重要组成部分。端口说明的一般格式为:Port(端口名:模式

数据类型名;

端口名:模式

数据类型名);2024/9/20清华大学出版社Page103.结构体结构体是次级设计单元,具体指明了该设计实体的结构或行为,定义了该设计实体的功能,规定了该设计实体的数据流程,指定了该实体中内部元器件的连接关系,把一个设计的输入和输出之间的关系建立起来。由于结构体是对实体功能的具体描述,因此一定要跟在实体的后面。一个结构体的一般书写格式为:ARCHITECTURE结构体名OR实体名IS[定义语句]BEGIN[并行处理语句][进程语句]--器件的功能实现部分END结构体名;

2024/9/20清华大学出版社Page114.描述风格描述风格也就是建模方法。用VHDL语言描述结构体有4种方法。(1)行为描述法:采用进程语句,顺序描述被称为设计实体的行为。(2)数据流描述法:采用进程语句,顺序描述数据流在控制流作用下被加工、处理、存储的全过程。(3)结构描述法:采用并行处理语句描述设计实体内的结构组织和元器件互连关系。(4)混合描述法:采用多个进程(process)、多个模块(blocks)、多个子程序(subprograms)的子结构方式,是将前三种基本的描述方法组合起来。2024/9/20清华大学出版社Page1211.2对VHDL和原理图的混合设计与仿真ProtelDXP不仅支持原理图的输入方法和VHDL输入方法,还支持VHDL和原理图混合输入方法,该方法在适合用VHDL的地方用VHDL,适合用原理图的地方用原理图,既增强了电路的可移植性,又减轻了设计者的设计压力,提高了设计效率。2024/9/20清华大学出版社Page13图11-12采用VHDL和原理图相结合的输入方法设计流程11.2.1创建混合FPGA项目2024/9/20清华大学出版社Page14【实例11-1】1位二进制全加器设计本例中,要求采用VHDL和原理图的混合设计方法,设计一个一位的二进制全加器。全加器的VHDL和原理图的混合设计原理图如图11-13所示。图11-131位二进制全加法器2024/9/20清华大学出版社Page15abSoco0000011010101101一位二进制半加器真值表如表11-2所示。其中a、b是输入端,So是和、Co进位端。表11-2二进制半加器真值表11.3FPGA属性设置在ProtelDXP的FPGA项目设计过程中,一般都要通过端口属性、元件符号属性、项目属性、文件属性和导线属性等对话框的【参数】面板中对FPGA项目进行相应的参数设置。一般有两种属性:一般属性和高级属性。一般属性高级属性2024/9/20清华大学出版社Page16一般属性几乎所有的FPGA项目设计中都要对项目进行一般属性的设置。一般属性主要用来设置目标器件以及FPGA项目中的引脚锁定的相关信息。

1.【引脚锁定】属性【引脚锁定】属性用于锁定目标器件中用于信号传递和数据交换的引脚。【引脚锁定】属性主要放置在项目顶层文件中的端口上,通过添加或者修改参数来设置引脚的属性。【引脚锁定】属性的参数语法如下:NAME:PINNUMTYPE:STRINGVALUE:2024/9/20清华大学出版社Page172.【目标器件】属性

任何FPGA项目的设计都是先软件仿真,然后再对器件进行选型和连接。【目标器件】属性主要用于向布局和布线工具传送信息,以方便后面软件设计向硬件的转化。【目标器件】属性设定的参数语法如下:NAME:PARTNAMETYPE:STRINGVALUE:2024/9/20清华大学出版社Page18高级属性高级属性主要用于优化EDIF文件,同时也可为器件或端口加入更多的用于设计的信息。ProtleDXP中的高级属性包括【关键路径】属性、【约束缓冲】属性,【FPGA_GSR】属性、【时钟缓冲】属性。1.【关键路径】属性参数语法:NAME:CRITICALTYPE:BOOLEANVALUE:TRUE【关键路径】属性中的关键路径主要是指目标器件中关键信号的路径。2024/9/20清华大学出版社Page192.【约束缓冲】属性参数语法:NAME:INHIBITBUFTYPE:BOOLEANVALUE:TRUE[约束缓冲]属性主要用于在【InsertI/O-Buffers】选项打开时,禁止向端口插入I/O缓冲。2024/9/20清华大学出版社Page203.【FPGA_GSR】属性

参数语法:NAME:FPGA_GSRTYPE:BOOLEANVALUE:TRUE如果将FPGA项目的各各部分分开进行编译,或者当前编译后的EDIF文件将与其他项目连接,那么顶层的文件中必须有STARTUP符号,而其他层的RESET端则必须添加一个【FPGA_GSR】属性。一旦为端口加入了【FPGA_GSR】属性,那么这个端口将不与任何触发器的置1和置0端连接。2024/9/20清华大学出版社Page214.【时钟缓冲】属性

参数语法:NAME:CLOCK_BUFFERTYPE:BOOLEANVALUE:TRUE【时钟缓冲】属性主要用于在【InsertI/OBuffers】选项打开时,为输入缓冲加入时钟缓冲。如果没有加入输入缓冲,则只需要在系统时钟之前放置一个时钟缓冲符号即可。2024/9/20清华大学出版社Page2211.4ProtelDXP和AlteraFPGA接口ProtelDXP支持几乎所有的Altera的元件集成库,如表11-4所示。2024/9/20清华大学出版社Page23型号FPGA库StratixAlteraFPGAApex20k/20kE/20KC/IIAlteraFPGAFlex10K/A/B/EAlteraFPGAFlex6000/8000AlteraFPGAAcex1kAlteraFPGAMax3000A/5000A/9000AAlteraFPGAMax7000/A/E/S/AEAlteraFPGAClassicAlteraFPGAMercuryAlteraFPGA表11-4ProtelDXP支持的Altera库11.5实例讲解2024/9/20清华大学出版社Page24【实例11-1】VHDL与原理图的混合设计本实例中,要求利用VHDL和原理图的混合输入方法,设计一

温馨提示

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

评论

0/150

提交评论