




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-4-10清华大学出版社Page 1 FPGA FPGA设计初步设计初步11.1对对VHDLVHDL和原理图的混合设计与仿真和原理图的混合设计与仿真11.2FPGAFPGA属性设置属性设置11.3Protel DXPProtel DXP和和Altera FPGAAltera FPGA接口接口11.4FPGA是现场可编程门阵列是现场可编程门阵列(Field Programmable Gate Array)的简称,它具有体系结构和逻辑单元灵活、集的简称,它具有体系结构和逻辑单元灵活、集成度高级适用范围宽的特点,兼容了成度高级适用范围宽的特点,兼容了PLD和通用门阵和通用门阵列的特点,同一片
2、列的特点,同一片FPGA通过不同的编程数据可以产通过不同的编程数据可以产生不同的电路功能,因此可以实现大规模的集成电路生不同的电路功能,因此可以实现大规模的集成电路设计。在进行设计。在进行FPGA项目设计之前,首先要了解项目设计之前,首先要了解FPGA设计的相关基础知识,包括基本概念、设计流程等。设计的相关基础知识,包括基本概念、设计流程等。11.1.1 FPGA11.1.1 FPGA的基本概念的基本概念11.1.2 FPGA11.1.2 FPGA设计流程设计流程11.1.3 VHDL11.1.3 VHDL语言简介语言简介2022-4-10清华大学出版社Page 2FPGA是现场可编程门阵列是
3、现场可编程门阵列(Field Programmable Gate Array)的简称,通常包含三类可编程资源:可编程逻的简称,通常包含三类可编程资源:可编程逻辑功能块、可编程辑功能块、可编程I/O块和可编程内部互连。块和可编程内部互连。可编程逻辑功能块:它是实现用户功能的基本单元,可编程逻辑功能块:它是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;它们通常排列成一个阵列,散布于整个芯片;可编程可编程I/O块:用于完成芯片上逻辑与外部封装脚的接块:用于完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;口,常围绕着阵列排列于芯片四周;可编程内部互连:它包括各种长度的连
4、线线段和一些可编程内部互连:它包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或可编程连接开关,它们将各个可编程逻辑块或I/O块连块连接起来,构成特定功能的电路。接起来,构成特定功能的电路。2022-4-10清华大学出版社Page 3FPGAFPGA内部多采用查找表的结构。内部多采用查找表的结构。查找表简称为查找表简称为LUT (Look-Up-Table),LUT本质上就是本质上就是一个一个RAM。目前。目前FPGA中多使用中多使用4输入的输入的LUT,所以每,所以每一个一个LUT都可以看成一个具有都可以看成一个具有4位地址线的位地址线的161的的RAM。基于查找表(基于查
5、找表(LUTLUT)的)的FPGAFPGA的结构的结构采用这种查找表结构的采用这种查找表结构的FPGA有有Altera的的ACEX和和APEX系列及系列及Xilinx的的Spartan和和Virtex系列等。系列等。查找表结构的查找表结构的FPGAFPGA逻辑实现原理逻辑实现原理2022-4-10清华大学出版社Page 41 1创建创建FPGAFPGA项目项目2 2设置设置FPGAFPGA项目的属性项目的属性创建好创建好FPGA项目之后,还需要对相关属性,如错误项目之后,还需要对相关属性,如错误报告、比较器、综合和仿真等进行设置,以帮助项目报告、比较器、综合和仿真等进行设置,以帮助项目的设计和
6、优化。的设计和优化。3 3VHDLVHDL编译环境编译环境在已创建的在已创建的FPGA项目中,执行菜单命令项目中,执行菜单命令【文件文件】【创建创建】【VHDL文件文件】,在项目文件夹中将自动,在项目文件夹中将自动生成一个生成一个VHDLl.Vhd文件文件VHDLl.Vhd文件。同时,此文件。同时,此文件在主窗口中被打开,处于文本编辑器状态。文件在主窗口中被打开,处于文本编辑器状态。2022-4-10清华大学出版社Page 5目前最主要的硬件描述语言是目前最主要的硬件描述语言是VHDL和和Verilog HDL。VHDL是超高速集成电路硬件描述语言(是超高速集成电路硬件描述语言(Very Hi
7、gh Speed Integrated Circuit Hardware Description Language)的简称,它发展得较早,语法严格;)的简称,它发展得较早,语法严格;Verilog HDL是在是在C语言的基础上发展起来的一种硬件语言的基础上发展起来的一种硬件描述语言,语法较自由。描述语言,语法较自由。一个完整的一个完整的VHDL程序包括实体程序包括实体(entity)、结构体、结构体(architecture)、配置、配置(configuration)、包、包 ( package)、库库(library)5个部分。其中,前个部分。其中,前4个部分是可分别编译的个部分是可分别编译
8、的源设计单元。源设计单元。VHDL程序结构可以用图程序结构可以用图11-10表示。表示。2022-4-10清华大学出版社Page 62022-4-10清华大学出版社Page 7图11-11 VHDL程序结构1.实体说明实体说明实体说明是一个器件的外观视图,即从外部看到的器件外貌,包实体说明是一个器件的外观视图,即从外部看到的器件外貌,包括端口等。实体说明也可以定义参数,并把参数从外部传入模块括端口等。实体说明也可以定义参数,并把参数从外部传入模块内部。任何一个基本设计单元的实体说明都具有如下结构:内部。任何一个基本设计单元的实体说明都具有如下结构: ENTITY实体名实体名IS GENERIC
9、(类属表类属表); PORT(端口表端口表); 实体说明部分;实体说明部分; BEGIN 实体语句部分;实体语句部分; END ENTITY实体名实体名; 中的内容是可选的,即可以没有这部分内容。中的内容是可选的,即可以没有这部分内容。2022-4-10清华大学出版社Page 82端口说明端口说明端口说明是对设计实体与外部接口的描述,也可以说是对外部引端口说明是对设计实体与外部接口的描述,也可以说是对外部引脚信号的名称、数据类型和输入输出方向的描述。端口为设计实脚信号的名称、数据类型和输入输出方向的描述。端口为设计实体和其外部环境通信的动态信息提供通道,其功能对应于电路图体和其外部环境通信的动
10、态信息提供通道,其功能对应于电路图符号的一个引脚。实体说明中的每一个符号的一个引脚。实体说明中的每一个I/O信号被称为一个端口信号被称为一个端口,一个端口就是一个数据对象。每个端口必须有一个名字、一个,一个端口就是一个数据对象。每个端口必须有一个名字、一个通信模式和一个数据类型。是实体的重要组成部分。端口说明的通信模式和一个数据类型。是实体的重要组成部分。端口说明的一般格式为:一般格式为:Port(端口名:模式端口名:模式 数据类型名;数据类型名; 端口名:模式端口名:模式 数据类型名);数据类型名);2022-4-10清华大学出版社Page 93结构体结构体结构体是次级设计单元,具体指明了该
11、设计实体的结构或行为,结构体是次级设计单元,具体指明了该设计实体的结构或行为,定义了该设计实体的功能,规定了该设计实体的数据流程,指定定义了该设计实体的功能,规定了该设计实体的数据流程,指定了该实体中内部元器件的连接关系,把一个设计的输入和输出之了该实体中内部元器件的连接关系,把一个设计的输入和输出之间的关系建立起来。由于结构体是对实体功能的具体描述,因此间的关系建立起来。由于结构体是对实体功能的具体描述,因此一定要跟在实体的后面。一定要跟在实体的后面。一个结构体的一般书写格式为:一个结构体的一般书写格式为:ARCHITECTURE 结构体名结构体名 OR 实体名实体名 IS定义语句定义语句B
12、EGIN并行处理语句并行处理语句进程语句进程语句 -器件的功能实现部分器件的功能实现部分END结构体名;结构体名; 2022-4-10清华大学出版社Page 104.描述风格描述风格描述风格也就是建模方法。描述风格也就是建模方法。用用VHDL语言描述结构体有语言描述结构体有4种方法。种方法。(1)行为描述法:采用进程语句,顺序描述被称为设计实体的行为行为描述法:采用进程语句,顺序描述被称为设计实体的行为。(2)数据流描述法:采用进程语句,顺序描述数据流在控制流作用数据流描述法:采用进程语句,顺序描述数据流在控制流作用下被加工、处理、存储的全过程。下被加工、处理、存储的全过程。(3)结构描述法:
13、采用并行处理语句描述设计实体内的结构组织和结构描述法:采用并行处理语句描述设计实体内的结构组织和元器件互连关系。元器件互连关系。(4)混合描述法:采用多个进程混合描述法:采用多个进程(process)、多个模块、多个模块(blocks)、多个、多个子程序子程序(subprograms)的子结构方式,是将前三种基本的描述方法的子结构方式,是将前三种基本的描述方法组合起来。组合起来。2022-4-10清华大学出版社Page 11Protel DXP不仅支持原理图的输不仅支持原理图的输入方法和入方法和VHDL输入方法,还支输入方法,还支持持VHDL和原理图混合输入方法和原理图混合输入方法,该方法在适
14、合用,该方法在适合用VHDL的地方的地方用用VHDL,适合用原理图的地方,适合用原理图的地方用原理图,既增强了电路的可移用原理图,既增强了电路的可移植性,又减轻了设计者的设计压植性,又减轻了设计者的设计压力,提高了设计效率。力,提高了设计效率。2022-4-10清华大学出版社Page 12图11-12 采用VHDL和原理图相结合的输入方法设计流程2022-4-10清华大学出版社Page 13【实例实例11-111-1】1 1位二进制全加器设计位二进制全加器设计本例中,要求采用VHDL和原理图的混合设计方法,设计一个一位的二进制全加器。全加器的VHDL和原理图的混合设计原理图如图11-13所示。
15、图11-13 1位二进制全加法器2022-4-10清华大学出版社Page 14abSoco0000011010101101一位二进制半加器真值表如表11-2所示。其中a、b是输入端,So是和、Co进位端。表11-2 二进制半加器真值表在在Protel DXP的的FPGA项目设计过程中,一般都要通过项目设计过程中,一般都要通过端口属性、元件符号属性、项目属性、文件属性和导端口属性、元件符号属性、项目属性、文件属性和导线属性等对话框的线属性等对话框的【参数参数】面板中对面板中对FPGA项目进行项目进行相应的参数设置。一般有两种属性:一般属性和高级相应的参数设置。一般有两种属性:一般属性和高级属性。
16、属性。11.3.111.3.1一般属性一般属性11.3.211.3.2高级属性高级属性2022-4-10清华大学出版社Page 15几乎所有的几乎所有的FPGAFPGA项目设计中都要对项目进行一般属性的项目设计中都要对项目进行一般属性的设置。一般属性主要用来设置目标器件以及设置。一般属性主要用来设置目标器件以及FPGAFPGA项目中项目中的引脚锁定的相关信息。的引脚锁定的相关信息。 1【引脚锁定引脚锁定】属性属性 【引脚锁定引脚锁定】属性用于锁定目标器件中用于信号传递属性用于锁定目标器件中用于信号传递和数据交换的引脚。和数据交换的引脚。【引脚锁定引脚锁定】属性主要放置在项目属性主要放置在项目顶
17、层文件中的端口上,通过添加或者修改参数来设置引顶层文件中的端口上,通过添加或者修改参数来设置引脚的属性。脚的属性。【引脚锁定引脚锁定】属性的参数语法如下:属性的参数语法如下: NAME: PINNUM TYPE: STRING VALUE:2022-4-10清华大学出版社Page 16 2 2【目标器件目标器件】属性属性 任何任何FPGAFPGA项目的设计都是先软件仿真,然后再对项目的设计都是先软件仿真,然后再对器件进行选型和连接。器件进行选型和连接。【目标器件目标器件】属性主要用于向属性主要用于向布局和布线工具传送信息,以方便后面软件设计向硬布局和布线工具传送信息,以方便后面软件设计向硬件的
18、转化。件的转化。【目标器件目标器件】属性设定的参数语法如下:属性设定的参数语法如下: NAME: PART NAME NAME: PART NAME TYPE: STRING TYPE: STRING VALUE: VALUE:2022-4-10清华大学出版社Page 17 高级属性主要用于优化高级属性主要用于优化EDIFEDIF文件,同时也可为器件或文件,同时也可为器件或端口加入更多的用于设计的信息。端口加入更多的用于设计的信息。Protle DXPProtle DXP中的高中的高级属性包括级属性包括【关键路径关键路径】属性、属性、【约束缓冲约束缓冲】属性,属性,【FPGA_GSRFPGA_
19、GSR】属性、属性、【时钟缓冲时钟缓冲】属性。属性。1【关键路径关键路径】属性属性参数语法:参数语法: NAME: CRITICAL TYPE: BOOLEAN VALUE: TRUE【关键路径关键路径】属性中的关键路径主要是指目标器件中关键信属性中的关键路径主要是指目标器件中关键信号的路径。号的路径。2022-4-10清华大学出版社Page 182【约束缓冲约束缓冲】属性属性参数语法:参数语法: NAME: INHIBITBUF TYPE: BOOLEAN VALUE:TRUE约束缓冲约束缓冲属性主要用于在属性主要用于在【Insert I/O-Buffers】选项打开选项打开时,禁止向端口插
20、入时,禁止向端口插入I/O缓冲。缓冲。2022-4-10清华大学出版社Page 193.【FPGA_GSR】属性属性 参数语法:参数语法: NAME: FPGA_GSR TYPE: BOOLEAN VALUE: TRUE如果将如果将FPGA项目的各各部分分开进行编译,或者当项目的各各部分分开进行编译,或者当前编译后的前编译后的EDIF文件将与其他项目连接,那么顶层的文件将与其他项目连接,那么顶层的文件中必须有文件中必须有STARTUP符号,而其他层的符号,而其他层的RESET端端则必须添加一个则必须添加一个【FPGA_GSR】属性。一旦为端口加属性。一旦为端口加入了入了【FPGA_GSR】属性
21、,那么这个端口将不与任何属性,那么这个端口将不与任何触发器的置触发器的置1和置和置0端连接。端连接。2022-4-10清华大学出版社Page 20 4【时钟缓冲时钟缓冲】属性属性 参数语法:参数语法: NAME: CLOCK_BUFFER TYPE: BOOLEAN VALUE: TRUE【时钟缓冲时钟缓冲】属性主要用于在属性主要用于在【Insert I/O Buffers】选项打选项打开时,为输入缓冲加入时钟缓冲。如果没有加入输入缓冲,则只开时,为输入缓冲加入时钟缓冲。如果没有加入输入缓冲,则只需要在系统时钟之前放置一个时钟缓冲符号即可。需要在系统时钟之前放置一个时钟缓冲符号即可。2022-4-10清华大学出版社Page 21Protel DXP支持几乎所有的支持几乎所有的Altera的元件集成库,如表的元件集成库,如表11-4所示。所示。202
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工地安全检查标准与整改措施
- 跨境证券投资信用评级体系-洞察及研究
- 小学四年级语文快乐读书教学活动方案
- 养老护理题库1及答案解析
- 化妆品原料并购整合案例-洞察及研究
- 金霸王安全培训试题及答案解析
- 糖尿病肾病护理题库及答案解析
- 五年级音乐课程教学大纲与实施方案
- 大数据分析岗位技能考试题库
- 初二物理运动与力综合测试题
- 2025年海上风力发电场运维管理升级与技术创新白皮书
- 2025河南省大河控股有限公司所管企业第二批社会招聘2人考试模拟试题及答案解析
- 2025上海东滩建设集团有限公司招聘考试参考试题及答案解析
- 2025年中医师承及确有专长考核真题(附答案)
- 2025年湖南大学事业编制管理辅助岗位招聘58人笔试备考题库及答案解析
- 2025年西藏国家公务员考录《行测》真题及参考答案
- 云南省云南大附中(一二一校区)2026届数学七上期末统考试题含解析
- 热管安全培训课件
- 河南省重点高中2025-2026学年高一上学期开学检测语文试题及答案
- 农业遥感耕地资源调查方案
- 人工智能+金融科技经济增长趋势研究报告
评论
0/150
提交评论