第11章.环境下的fpga设计

上传人:F****n 文档编号:107560620 上传时间:2019-10-20 格式:PPT 页数:24 大小:785KB
返回 下载 相关 举报
第11章.环境下的fpga设计_第1页
第1页 / 共24页
第11章.环境下的fpga设计_第2页
第2页 / 共24页
第11章.环境下的fpga设计_第3页
第3页 / 共24页
第11章.环境下的fpga设计_第4页
第4页 / 共24页
第11章.环境下的fpga设计_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《第11章.环境下的fpga设计》由会员分享,可在线阅读,更多相关《第11章.环境下的fpga设计(24页珍藏版)》请在金锄头文库上搜索。

1、2019/10/20,清华大学出版社,Page 1,第11章 环境下的FPGA设计,11.1 FPGA设计初步,FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,它具有体系结构和逻辑单元灵活、集成度高级适用范围宽的特点,兼容了PLD和通用门阵列的特点,同一片FPGA通过不同的编程数据可以产生不同的电路功能,因此可以实现大规模的集成电路设计。在进行FPGA项目设计之前,首先要了解FPGA设计的相关基础知识,包括基本概念、设计流程等。 11.1.1 FPGA的基本概念 11.1.2 FPGA设计流程 11.1.3 VHDL语言简介,2019/10/20

2、,清华大学出版社,Page 2,11.1.1 FPGA的基本概念,FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程内部互连。 可编程逻辑功能块:它是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片; 可编程I/O块:用于完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周; 可编程内部互连:它包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。,2019/10/20,清华大学出版社,Page 3,FPGA内部

3、多采用查找表的结构。 查找表简称为LUT (Look-Up-Table),LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT都可以看成一个具有4位地址线的161的RAM。 基于查找表(LUT)的FPGA的结构 采用这种查找表结构的FPGA有Altera的ACEX和APEX系列及Xilinx的Spartan和Virtex系列等。 查找表结构的FPGA逻辑实现原理,2019/10/20,清华大学出版社,Page 4,11.1.2 FPGA设计流程,1创建FPGA项目 2设置FPGA项目的属性 创建好FPGA项目之后,还需要对相关属性,如错误报告、比较器、综合和仿真等进

4、行设置,以帮助项目的设计和优化。 3VHDL编译环境 在已创建的FPGA项目中,执行菜单命令【文件】【创建】【VHDL文件】,在项目文件夹中将自动生成一个VHDLl.Vhd文件VHDLl.Vhd文件。同时,此文件在主窗口中被打开,处于文本编辑器状态。,2019/10/20,清华大学出版社,Page 5,11.1.3 VHDL语言简介,目前最主要的硬件描述语言是VHDL和Verilog HDL。 VHDL是超高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language)的简称,它发展得较早,语法严格;

5、Verilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。 一个完整的VHDL程序包括实体(entity)、结构体(architecture)、配置(configuration)、包 ( package)、库(library)5个部分。其中,前4个部分是可分别编译的源设计单元。VHDL程序结构可以用图11-10表示。,2019/10/20,清华大学出版社,Page 6,2019/10/20,清华大学出版社,Page 7,图11-11 VHDL程序结构,1.实体说明 实体说明是一个器件的外观视图,即从外部看到的器件外貌,包括端口等。实体说明也可以定义参数,并把参数从外部传入

6、模块内部。任何一个基本设计单元的实体说明都具有如下结构: ENTITY实体名IS GENERIC(类属表); PORT(端口表); 实体说明部分; BEGIN 实体语句部分; END ENTITY实体名; 中的内容是可选的,即可以没有这部分内容。,2019/10/20,清华大学出版社,Page 8,2端口说明 端口说明是对设计实体与外部接口的描述,也可以说是对外部引脚信号的名称、数据类型和输入输出方向的描述。端口为设计实体和其外部环境通信的动态信息提供通道,其功能对应于电路图符号的一个引脚。实体说明中的每一个I/O信号被称为一个端口,一个端口就是一个数据对象。每个端口必须有一个名字、一个通信模

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

8、D结构体名;,2019/10/20,清华大学出版社,Page 10,4.描述风格 描述风格也就是建模方法。 用VHDL语言描述结构体有4种方法。 (1)行为描述法:采用进程语句,顺序描述被称为设计实体的行为。 (2)数据流描述法:采用进程语句,顺序描述数据流在控制流作用下被加工、处理、存储的全过程。 (3)结构描述法:采用并行处理语句描述设计实体内的结构组织和元器件互连关系。 (4)混合描述法:采用多个进程(process)、多个模块(blocks)、多个子程序(subprograms)的子结构方式,是将前三种基本的描述方法组合起来。,2019/10/20,清华大学出版社,Page 11,11

9、.2 对VHDL和原理图的混合设计与仿真,Protel 不仅支持原理图的输入方法和VHDL输入方法,还支持VHDL和原理图混合输入方法,该方法在适合用VHDL的地方用VHDL,适合用原理图的地方用原理图,既增强了电路的可移植性,又减轻了设计者的设计压力,提高了设计效率。,2019/10/20,清华大学出版社,Page 12,图11-12 采用VHDL和原理图相结合的输入方法设计流程,11.2.1 创建混合FPGA项目,2019/10/20,清华大学出版社,Page 13,【实例11-1】1位二进制全加器设计 本例中,要求采用VHDL和原理图的混合设计方法,设计一个一位的二进制全加器。全加器的V

10、HDL和原理图的混合设计原理图如图11-13所示。,图11-13 1位二进制全加法器,2019/10/20,清华大学出版社,Page 14,一位二进制半加器真值表如表11-2所示。其中a、b是输入端,So是和、Co进位端。,表11-2 二进制半加器真值表,11.3 FPGA属性设置,在Protel 的FPGA项目设计过程中,一般都要通过端口属性、元件符号属性、项目属性、文件属性和导线属性等对话框的【参数】面板中对FPGA项目进行相应的参数设置。一般有两种属性:一般属性和高级属性。 11.3.1一般属性 11.3.2高级属性,2019/10/20,清华大学出版社,Page 15,11.3.1一般

11、属性,几乎所有的FPGA项目设计中都要对项目进行一般属性的设置。一般属性主要用来设置目标器件以及FPGA项目中的引脚锁定的相关信息。 1【引脚锁定】属性 【引脚锁定】属性用于锁定目标器件中用于信号传递和数据交换的引脚。【引脚锁定】属性主要放置在项目顶层文件中的端口上,通过添加或者修改参数来设置引脚的属性。【引脚锁定】属性的参数语法如下: NAME: PINNUM TYPE: STRING VALUE:,2019/10/20,清华大学出版社,Page 16,2【目标器件】属性 任何FPGA项目的设计都是先软件仿真,然后再对器件进行选型和连接。【目标器件】属性主要用于向布局和布线工具传送信息,以方

12、便后面软件设计向硬件的转化。【目标器件】属性设定的参数语法如下: NAME: PART NAME TYPE: STRING VALUE:,2019/10/20,清华大学出版社,Page 17,11.3.2高级属性,高级属性主要用于优化EDIF文件,同时也可为器件或端口加入更多的用于设计的信息。Protle 中的高级属性包括【关键路径】属性、【约束缓冲】属性,【FPGA_GSR】属性、【时钟缓冲】属性。 1【关键路径】属性 参数语法: NAME: CRITICAL TYPE: BOOLEAN VALUE: TRUE 【关键路径】属性中的关键路径主要是指目标器件中关键信号的路径。,2019/10/

13、20,清华大学出版社,Page 18,2【约束缓冲】属性 参数语法: NAME: INHIBITBUF TYPE: BOOLEAN VALUE:TRUE 约束缓冲属性主要用于在【Insert I/O-Buffers】选项打开时,禁止向端口插入I/O缓冲。,2019/10/20,清华大学出版社,Page 19,3.【FPGA_GSR】属性 参数语法: NAME: FPGA_GSR TYPE: BOOLEAN VALUE: TRUE 如果将FPGA项目的各各部分分开进行编译,或者当前编译后的EDIF文件将与其他项目连接,那么顶层的文件中必须有STARTUP符号,而其他层的RESET端则必须添加一个

14、【FPGA_GSR】属性。一旦为端口加入了【FPGA_GSR】属性,那么这个端口将不与任何触发器的置1和置0端连接。,2019/10/20,清华大学出版社,Page 20,4【时钟缓冲】属性 参数语法: NAME: CLOCK_BUFFER TYPE: BOOLEAN VALUE: TRUE 【时钟缓冲】属性主要用于在【Insert I/O Buffers】选项打开时,为输入缓冲加入时钟缓冲。如果没有加入输入缓冲,则只需要在系统时钟之前放置一个时钟缓冲符号即可。,2019/10/20,清华大学出版社,Page 21,11.4 Protel 和Altera FPGA接口,Protel 支持几乎所

15、有的Altera的元件集成库,如表11-4所示。,2019/10/20,清华大学出版社,Page 22,表11-4 Protel 支持的Altera库,11.5 实例讲解,2019/10/20,清华大学出版社,Page 23,【实例11-1】 VHDL与原理图的混合设计 本实例中,要求利用VHDL和原理图的混合输入方法,设计一个2位的十进制计数器。计数器的VHDL和原理图的混合设计原理图如图11-38所示。,图11-38 连接好的顶层原理图的设计,2019/10/20,清华大学出版社,Page 24,本章简要介绍了FPGA的概念及其设计流程,并简单对VHDL语言作了介绍。更为详细的CPLD/FPGA及VHDL方面的知识,读者可以参考相关的书籍。本章通过实例介绍在Protel 中进行FPGA设计的基本步骤和方法,重点讲解了VHDL和原理图的混合设计与仿真方法,读者可以在此基础上仔细研究并多做练习。,11.6 本章小结,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号