资源预览内容
第1页 / 共73页
第2页 / 共73页
第3页 / 共73页
第4页 / 共73页
第5页 / 共73页
第6页 / 共73页
第7页 / 共73页
第8页 / 共73页
第9页 / 共73页
第10页 / 共73页
亲,该文档总共73页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
FPGA设计与应用第第1 1章章 FPGAFPGA概述概述 1.1 1.1 FPGAFPGA的发展历程的发展历程1.3 1.3 FPGAFPGA的设计方法的设计方法 1.2 1.2 FPGAFPGA的基本原理的基本原理 1.4 1.4 FPGAFPGA的设计流程的设计流程 1.5 1.5 总结与结论总结与结论 FPGA设计与应用1.1 1.1 FPGAFPGA的发展历程的发展历程可编程逻辑器件可编程逻辑器件( (PLD)PLD) 可可编编编编程程逻辑阵逻辑阵逻辑阵逻辑阵 列列 ( (PLA)PLA) 可可编编编编程程阵阵阵阵列列逻辑逻辑逻辑逻辑 ( (PAL)PAL) Xilinx Xilinx的的FPGAFPGAAlteraAltera的的CPLDCPLD早期FPGAFPGA设计与应用1.2 1.2 FPGAFPGA的基本原理的基本原理 基于查找表的FPGA的基本结构及逻辑实现原理 FPGA的配置应用 基于乘积项的FPGA的基本结构及逻辑实现原理 FPGA设计与应用1.2 1.2 FPGAFPGA的基本原理的基本原理 基于查找表的FPGA的基本结构及逻辑实现原理 查找表(Look Up Table,LUT)本质上就是一个RAM。目前FPGA中多 使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的161的 RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发 软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这 样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出 地址对应的内容,然后输出即可。 FPGA设计与应用1.2 1.2 FPGAFPGA的基本原理的基本原理 基于乘积项的FPGA的基本结构及逻辑实现原理 这种FPGA的结构可分为三块:宏单元(Macrocell )、可编程连线(PIA)和I/O控制块。宏单元是器 件的基本结构,由它来实现基本的逻辑功能;可编 程连线负责信号传递,连接所有的宏单元;I/O控制 块负责输入输出的电气特性控制,比如可以设定集 电极开路输出,摆率控制,三态输出等。 INPUT/GCLK1,INPUT/GCLRn ,INPUT/OE1,INPUT/OE2是全 局时钟、清零和输出使能信号, 这几个信号有专用连线与器件中 每个宏单元相连,信号到每个宏 单元的延时相同并且延时最短。 FPGA设计与应用1.3 1.3 FPGAFPGA的设计方法的设计方法 FPGA的常用设计方法包括“自顶向下”和“自下而上”,目前大规模 FPGA设计一般选择“自顶向下”的设计方法。所谓“自顶向下”设计方法, 简单地说,就是采用可完全独立于芯片厂商及 其产品结构的描述语言,在功能级对设计产品进行定义, 并结合功能仿真技术,以 确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某 一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布 线结果还可反标回同一仿真器, 进行包括功能和时序的后验证,以保证布局布线 所带来的门延时和线延时不会影响设计的性能。FPGA设计与应用1.4 FPGA1.4 FPGA的设计流程的设计流程 第一步:按照“自顶向下”的 设计方法进行系统划分。 第二步:输入 VHDL/Verilog HDL代码 第三步:将以上的设计输 入编译成标准的 VHDL/Verilog HDL文件 ,然后将文件调入HDL仿 真软件进行功能仿真 第四步:利用综合器对源 代码进行综合优化处理, 生成门级描述的网表文件 第五步:如果整个设计超 出器件的宏单元或I/O单 元资源,可以将设计划分 到多片同系列的器件中。 第六步:将试配器产生的 器件编程文件通过编程器 或下载电缆载入到目标芯 片FPGA中 FPGA设计与应用FPGA是近几年集成电电路中发发展最快的产产品。本章主要对对FPGA的发发展历历 程、结结构原理和设计设计 方法与流程做了介绍绍。随着可编编程逻辑逻辑 器件的高速发发 展,可编编程逻辑逻辑 器件将进进一步扩扩大其领领地。据IC Insights的数据显显示, 可编编程逻辑逻辑 器件市场场从1999年的29亿亿美元增长长到2004的56亿亿美元,几乎翻 了一番。可编编程逻辑逻辑 器件将继续继续 向着更高密度和更大容量方向迈进迈进 。1.5 1.5 总结与结论总结与结论 FPGA设计与应用第第2 2章章 硬件描述语言入门硬件描述语言入门 2.1 2.1 VHDLVHDL入门入门 2 2.3 .3 总结与结论总结与结论 2 2.2 .2 Verilog HDLVerilog HDL入门入门 FPGA设计与应用2.1 2.1 VHDLVHDL入门入门 VHDL的模块组织 基本的数据类型及常量、变量、信号 运算符及表达式 VHDL基本语句 典型电路的设计 FPGA设计与应用2.1 2.1 VHDLVHDL入门入门 VHDL的模块组织 在应应用VHDL描述数字系统结统结 构时时,我们们使用实实体(entity)-结结构 体( architecture )结结构。实实体描述了数字系统统的输输入输输出接口,同时还时还 定义义了一些全局常 量以及与其他电电路(程序模块块或逻辑图逻辑图 模块块)之间间必要连连接的拓扑结结 构。但在实实体中,我们们并不对电对电 路的逻辑逻辑 做任何描述,可将其看成是一 个所谓谓的逻辑逻辑 “黑盒子”。很明显显,VHDL遵循EDA解决方案中自顶顶向下 的设计设计 原则则,并能够够保持良好的接口兼容性。 FPGA设计与应用2.1 2.1 VHDLVHDL入门入门 基本的数据类型及常量、变量、信号 数据类型VHDL标准数据类型包括整数(INTEGER)、实数(REAL )、位(BIT)、位矢量(BIT_VECTOR)、标准逻辑( STD_LOGIC)、标准逻辑矢量(STD_LOGIC_VECTOR)、布 尔量(BOOLEAN)、字符(CHARACTER)、字符串( STRING)及时间(TIME)类型。为了给设计者提供自由度和灵活性,VHDL语言允许用户自 定义数据类型,命令为:TYPE 数据类型名 ,数据类型名 IS 数据类型定义 常量常量在设计中不会发生变化,可以增加程序的可读性,书写格式 为: CONSTANT 常量名 ,常量名 :数据类型 := 表达式;例如:CONSTANT WAIT:TIME:= 20ns;CONSTANT LEN:INTEGER:= 16; 变量变量作用是对数据进行暂时存储,书写格式为:VARIABLE 变量名 ,变量名:数据类型 := 表达式;例如:VARIABLE rd_en : STD_LOGIC : = 1;VARIABLE cnt: INTEGER ;在变量说明中,可以直接赋给变量初始值,也可以不赋初始值, 如果没赋初始值,它默认为变量数据类型的最小值。 信号在电路中,连线将元器件连接起来组成系统,在VHDL语言中, 信号就起着连线的作用,书写格式为:SIGNAL 信号名 ,信号名:数据类型 := 表达式;例如:SIGNAL wr_en : STD_LOGIC: = 0;SIGNAL num1 , num2 : STD_LOGIC_VECTOR( 7downto 0 ); FPGA设计与应用2.1 2.1 VHDLVHDL入门入门 运算符及表达式 VHDL基本语句 典型电路的设计 VHDL语言的运算符有四类:逻辑运算符、 算术运算符、并置运算符和关系运算符 传统的设计方式,设计者在他的CAD 工作站上以基本的电路组件来组织并构成 一个完整的逻辑功能,这些最基本的电路 组件如AND逻辑门、OR逻辑门或缓存器在 CAD工作站的屏幕中以线条和图案来表示 ,每个组件都必须清楚定义输出入信号和 功能。在VHDL的语言中,这种所谓的 SYMBOL不复存在,VHDL以实体的描述 来表示一个传统线路中的SYMBOL。 本节中主要通过例子程序使读者初步理 解VHDL的语法构成,书中介绍的是一个加 法器完整的VHDL语句描述,包括注释、库 文件说明、实体、结构体、进程语句、条 件语句、例化语句等。2个4位输入信号a和 b,进位输入cin,输出4位结果sum,输出 向下一极进位信号cout,整个程序都由组 合逻辑实现。 FPGA设计与应用Verilog HDL的模块组织 基本的数据类型及常量、变量、信号 运算符及表达式 Verilog HDL基本语句 典型电路的设计 2 2.2 .2 Verilog HDLVerilog HDL入门入门 FPGA设计与应用2 2.3 .3 总结与结论总结与结论 这一章我们主要学习了一些HDL语言的基本语法与我们以往学习的C语言 等、PASCAL等都有相似之处,要注意的是在学习中要有意识地把HDL语言的 语句与硬件结构模块联系起来,通过理解物理意义,牢牢掌握。 FPGA设计与应用第第3 3章章 简单电简单电简单电简单电 路的路的HDLHDL设计设计设计设计 3.1 3.1 基本组合逻辑运算基本组合逻辑运算 3 3. .4 4 总结与结论总结与结论 3 3.2 .2 基本时序器件基本时序器件寄存器寄存器 3 3. .3 3 基本简单数学运算基本简单数学运算 FPGA设计与应用3 3. .1 1 基本组合逻辑运算基本组合逻辑运算 与运算 或运算 异或运算 与非运算 2选1多路选择器 两位比较器 FPGA设计与应用3 3. .2 2 基本时序器件基本时序器件寄存器寄存器 D触发器 T触发器 J-K触发器 时序器件移位寄存器 FPGA设计与应用3 3. .3 3 基本简单数学运算基本简单数学运算 4位加法器 逐位进位加法器 超前进位加法器进位选择加法器 输入数据同比特位进行运算时,都要等待前一比特 的进位信号状态完成(建议:用在位数不超过16位 的加法器)。对于多位逐位进位加法器来说,也可 采用流水方式改善性能。 输入数据同比特位进行运算时,不需要等待前一 比特的进位信号。实现速度比较快,但资源占用 也比较大。建议使用在16位加法器上比较合适。 对于位数较多的也可采用流水方式。 由三个加法器组成,一个计算低字节;两个计算 高字节。计算高字节的加法器一个令进位为1,另 一个令进位为0。三部分同时计算,最后,低字节 的进位选择是哪一个高字节器的输出。对于位数 较多的加法器,性能的提高比较明显,但资源相 对占用较多。 FPGA设计与应用3 3. .3 3 基本简单数学运算基本简单数学运算 4位计数器 逐位进进位计计数器 格雷码码逐位计计数器 流水式超前进位计数器 逐位进位计数器的特点是:每一位都要等前一位的 进位输出有效后才开始变化,每一位模块之间用 进位信号连接起来(推荐使用长度不超过16位) 。 应用逐位进位计数器的原理,并在其基础上加以 改进,因为采用格雷码进行计数,每个状态变化 时,只有1位信号发生改变,减少了毛刺现象的发 生。 应用超前进位计数器的基本原理加以改进,使用流 水技术,减少了进位信号的传输延时,大大提高了 系统效率。 FPGA设计与应用3 3. .3 3 基本简单数学运算基本简单数学运算 4位乘法器 组组合逻辑实现逻辑实现 的乘法器 移位相加乘法器 查查找表乘法器 移位相加乘法器实现简单 ,它的基本设计思想就 是采用一种称之为迭代的方式,根据乘数的每一位 是否为1进行计算,若为1则将被乘数移位相加, 这种实现方式使得在乘法计算中,每算出一乘积 项就加到乘积中,此时的积称作部分积。通过对 部分积的逐步移位完
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号