您好,欢迎访问三七文档
可编程器件PLD可编程逻辑器件原理电路图输入示例可编程逻辑器件的发展历程PROM和PLA器件改进的PLA器件GAL器件EPLD器件CPLD器件FPGA器件内嵌复杂功能模块SOPC可编程逻辑器件分类可编程逻辑器件PLD简单PLD复杂PLDPROMPLAPALGALCPLDFPGA可编程器件概述输入缓冲电路与阵列输出缓冲电路或阵列基本PLD器件原理结构图简单PLD原理PROM基本原理地址译码器存储单元阵列………0A1A1nA0W1W1pW0F1F1mFnp20111201110110...AAAWAAAWAAAWnnnn逻辑表达式简单PLD原理PROM的逻辑阵列结构逻辑表达式与阵列(不可编程)或阵列(可编程)………0A1A1nA0W1W1pW0F1F1mFnp201,011,111,1101,011,111,1100,010,110,10WMWMWMFWMWMWMFWMWMWMFmmpmpmpppp简单PLD原理PROM表达的PLD图阵列与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F简单PLD原理用PROM完成半加器逻辑阵列与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F01110100AAFAAAAF简单PLD原理PLA逻辑阵列示意图与阵列(可编程)或阵列(可编程)0A1A1A1A0A0A1F0FCPLD结构与工作原理CPLD是在PAL、GAL的基础上发展起来的阵列型PLD具有高密度、高速度的优点CPLD包括三大部分可编程I/O单元可编程阵列块(宏单元)可编程内部连线(PIA)可编程I/O单元目前大多数CPLD的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。CPLD的I/O单元应用范围局限性较大,I/O的性能和复杂度与FPGA相比有一定的差距,支撑的I/O标准较少,频率也较低基本逻辑单元CPLD中基本逻辑单元是宏单元。所谓宏单元就是由一些与、或阵列加上触发器构成的,其中“与或”阵列完成组合逻辑功能,触发器用以完成时序逻辑。与CPLD基本逻辑单元相关的另外一个重要概念是乘积项。所谓乘积项就是宏单元中与阵列的输出,其数量标志了CPLD容量。乘积项阵列实际上就是一个“与或”阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑,在“与”阵列后一般还有一个“或”阵列,用以完成最小逻辑表达式中的“或”关系。可编程“与-或”阵列1111&≥1ADCBF可编程的连线区可编程逻辑宏单元DQRSQCLK0111100001S1S0SENMUXMUX1可编程接点输出/输出端口与或门&可编程连线可编程内部连线(PIA)CPLD中的布线资源比FPGA的要简单的多,布线资源也相对有限,一般采用集中式布线池结构。所谓布线池其本质就是一个开关矩阵,通过打结点可以完成不同宏单元的输入与输出项之间的连接。由于CPLD器件内部互连资源比较缺乏,所以在某些情况下器件布线时会遇到一定的困难。由于CPLD的布线池结构固定,所以CPLD的输入管脚到输出管脚的标准延时固定,被称为PintoPin延时,用Tpd表示,Tpd延时反映了CPLD器件可以实现的最高频率,也就清晰地表明了CPLD器件的速度等级。CPLD结构与工作原理宏单元1~16控制块I/O可编程连线区宏单元33~48控制块I/O宏单元17~32控制块I/O宏单元49~64控制块I/OI/O引脚I/O引脚I/O引脚I/O引脚GCLK1GCLRnOE1OE2FPGA结构与工作原理与CPLD相比,具有更高的集成度、更强的逻辑功能和更大的灵活性FPGA属于阵列型PLD输入/输出模块(IOB)可编程逻辑块(CLB)可编程互连线(PIA)嵌入式块RAM底层嵌入功能单元和内嵌专用硬核可编程逻辑单元FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。FPGA一般依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表。简单的衡量FPGA规模的方法是用器件的Register或LUT的数量衡量。FPGA内部的逻辑块查找表查找表2D2DSSQQRRG4G3G2G1F4F3F2F1F5CINCLKCKE进位和控制逻辑BYSRXQYQXBXYBYCOUT1C21C21EN1EN进位和控制逻辑查找表是一个存储器,直接将用户需要的输入输出关系存储在内查找表查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。可编程互连线(PIA)布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。全局性的专用布线资源:以完成器件内部的全局时钟和全局复位/置位的布线长线资源:用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线短线资源:用来完成基本逻辑单元间的逻辑互连与布线其他:在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。由于在设计过程中,往往由布局布线器自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所用的底层单元模块,所以常常忽略布线资源。其实布线资源的优化与使用和实现结果有直接关系嵌入式块RAM目前大多数FPGA都有内嵌的块RAM。嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。CAM,即为内容地址存储器。写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。简单的说,RAM是一种写地址,读数据的存储单元;CAM与RAM恰恰相反。除了块RAM,Xilinx和Lattice的FPGA还可以灵活地将LUT配置成RAM、ROM、FIFO等存储结构。底层嵌入功能单元不同厂商以及不同型号的器件内部嵌入的资源都有所不同内嵌专用硬核与“底层嵌入单元”有区别这里指的硬核主要是那些通用性相对较弱,不是所有FPGA器件都包含硬核。可编程逻辑器件的设计过程逻辑设计综合与仿真下载,调试达到预想目标NY数字系统设计数字系统设计的一般过程自顶向下(Top-down)的设计方法系统功能级设计行为级设计寄存器传输级设计工具:原理图硬件设计语言VerilogHDLVHDLQUARTUSII软件如何建立工程、编译、综合、仿真原理图输入法进行设计VerilogHDL语言进行设计原理图输入法进行设计组合逻辑设计异或电路半加器、全加器译码器、选择器行波计数器加法减法移位寄存器VerilogHDL设计方法简介算法实现用于数字信号传输中所必需的滤波、变换、加密、解密、编码、解码、纠检错、压缩、解压缩等操作。硬线逻辑由与门、或门、非门、触发器、多路器等基本逻辑部件造成的逻辑系统。从算法设计到硬线逻辑的实现传统处理器的问题算法问题研究并行快速算法电路实现问题设计并研制具有并行结构的数字和计算逻辑结构。电路实现的两个方向:FPGA专用集成电路VerilogHDL建模、仿真、综合和全面验证。什么是复杂的数字逻辑系统?嵌入式微处理机系统数字信号处理系统高速并行计算逻辑高速通信协议电路高速编码/解码、加密/解密电路复杂的多功能智能接口门逻辑总数超过几万门达到几百甚至达几千万门的数字系统有哪几种硬件描述语言?各有什么特点?VerilogHDL较多的第三方工具的支持语法结构比VHDL简单学习起来比VHDL容易仿真工具比较好使测试激励模块容易编写VerilogHDL的抽象级别语言本身提供了各种层次抽象的表述,可以用详细程度有很大差别的的多层次模块组合来描述一个电路系统。行为级:技术指标和算法的Verilog描述RTL级:逻辑功能的Verilog描述门级:逻辑结构的Verilog描述开关级:具体的晶体管物理器件的描述VerilogHDL的抽象级别行为级:有关行为和技术指标模块,容易理解RTL级:有关逻辑执行步骤的模块,较难理解门级:有关逻辑部件互相连接的模块,很难理解开关级:有关物理形状和布局参数的模块,非常难理解抽象级别和综合与仿真的关系行为仿真:行为的验证和验证模块分割的合理性前仿真:即RTL级仿真,检查有关模块逻辑执行步骤是否正确。逻辑综合:把RTL级模块转换成门级。后仿真:用门级模型做验证,检查门的互连逻辑其功能是否正确。布局布线:在门级模型的基础上加上了布线延时布局布线后仿真:与真实的电路最接近的验证。modulemyadder(clock,reset,a,b,sum);parameterwidth=8;inputclock,reset;input[width-1:0]a,b;output[width:0]sum;reg[width-1:0]a_reg,b_reg;reg[width:0]sum;always@(posedgeclockornegedgereset)if(!reset)begina_reg=‘b0;b_reg=’b0;sum=’b0;endelsebegina_reg=a;b_reg=b;sum=a_reg+b_reg;endendmodule有关VerilogHDL的几个重要基本概念综合:通过工具把用VerilogHDL描述的模块自动转换为用门级电路网表表示的模块的过程。寄存器传输级VerilogHDL模块:也可称为RTL(Verilog)HDL模块。它是符合特定标准和风格的描述状态转移和变化的VerilogHDL模块。能用综合器把它转换为门级逻辑。VerilogHDL测试模块:用VerilogHDL描述的模块,可以用来产生测试信号序列并可以接收被测试模块的信号,用于验证所设计的模块是否能正常运行,往往不可综合成具体门级电路。有关VerilogHDL的几个重要基本概念VerilogHDL顶层(测试)模块:同上。布局布线:把用综合器自动生成的门级网表(EDIF)通过运行一个自动操作的布局布线工具,使其与具体的某种FPGA或某种ASIC工艺库器件对应起来,并加以连接的过程。VerilogHDL后仿真测试模块:同上,但被测试的模块至少是一个门级描述的或用具体FPGA(ASIC)库器件(带时间延迟信息)描述的结构型VerilogHDL模块。VerilogHDL模块的结构Verilog模块的结构由在module和endmodule关键词之间的四个主要部分组成:-端口信息:moduleblock1(a,b,c,d);-输入/输出说明:inputa,b,c;outputd;-内部信号:wirex;-功能定义:assignd=a|x;assignx=(b&~c);endmoduleVerilogHDL模块中的逻辑表示在Verilog模块中有三种方法可以生成逻辑电路:-用assign语句:assigncs=(a0&~a1&~a2);-用元件的实例调用:and2and_inst(q,a,b);-用always块:always@(posedgeclkorposedgeclr)beginif(clr)q=0;elseif(en)q=d;end并行和顺序逻辑关系的表示如在模块中逻辑功能由下面三个语句块组成:assigncs
本文标题:CPLD相关
链接地址:https://www.777doc.com/doc-50780 .html