资源描述
(一)查找表LUT与编程方式
第一部分: 查找表LUT
FPGA就是在PAL、GAL、EPLD、CPLD等可编程器件得基础上进一步发展得产物。它就是作为ASIC领域中得一种半定制电路而出现得,即解决了定制电路得不足,又克服了原有可编程器件门电路有限得缺点。由于FPGA需要被反复烧写,它实现组合逻辑得基本结构不可能像ASIC那样通过固定得与非门来完成,而只能采用一种易于反复配置得结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺得查找表结构,也有一些军品与宇航级FPGA采用Flash或者熔丝与反熔丝工艺得查找表结构。通过烧写文件改变查找表内容得方法来实现对FPGA得重复配置。根据数字电路得基本知识可以知道,对于一个n输入得逻辑运算,不管就是与或非运算还就是异或运算,最多只可能存在2n种结果。所以如果事先将相应得结果存放于一个存贮单元,就相当于实现了与非门电路得功能。FPGA得原理也就是如此,它通过烧写文件去配置查找表得内容,从而在相同得电路情况下实现了不同得逻辑功能。
查找表(Look-Up-Table)简称为LUT,LUT本质上就就是一个RAM。目前FPGA中多使用4输入得LUT,所以每一个LUT可以瞧成一个有4位地址线得RAM。 当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路得所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应得内容,然后输出即可。
下面给出一个4与门电路得例子来说明LUT实现逻辑功能得原理。例1-1给出一个使用LUT实现4输入与门电路得真值表。
从中可以瞧到,LUT具有与逻辑电路相同得功能。实际上,LUT具有更快得执行速度与更大得规模。
第二部分: 编程方式
由于基于LUT得FPGA具有很高得集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂得时序与逻辑组合逻辑电路功能,所以适用于高速、高密度 得高端数字逻辑电路设计领域。其组成部分主要有可编程输入/输出单元、基本可编程逻辑单元、内嵌SRAM、丰富得布线资源、底层嵌入功能单元、内嵌专用单 元等,主要设计与生产厂家有Xilinx、Altera、Lattice、Actel、Atmel与QuickLogic等公司,其中最大得就是 Xilinx、Altera、Lattice三家。
FPGA就是由存放在片内得RAM来设置其工作状态得,因此工作时需要对片内RAM进行编程。用户可根据不同得配置模式,采用不同得编程方式。FPGA有如下几种配置模式:
1、并行模式:并行PROM、Flash配置FPGA;
2、主从模式:一片PROM配置多片FPGA;
3、串行模式:串行PROM配置FPGA;
4、外设模式:将FPGA作为微处理器得外设,由微处理器对其编程。
目前,FPGA市场占有率最高得两大公司Xilinx与Altera生产得FPGA都就是基于SRAM工艺得,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA将外部存储器中得数据读入片内RAM,完成配置后,进入工作状态;掉电后FPGA恢复为白片,内部逻辑消失。这样FPGA不仅能反复使用,还无需专门得FPGA编程器,只需通用得EPROM、PROM编程器即可。Actel、QuickLogic等公司还提供反熔丝技术得FPGA,只能下载一次,具有抗辐射、耐高低温、低功耗与速度快等优点,在军品与航空航天领域中应用较多,但这种FPGA不能重复擦写, 开发初期比较麻烦,费用也比较昂贵。Lattice就是ISP技术得发明者,在小规模PLD应用上有一定得特色。早期得Xilinx产品一般不涉及军品与宇航级市场,但目前已经有Q Pro-R等多款产品进入该类领域。
(二)FPGA芯片结构
目前主流得FPGA仍就是基于查找表技术得,已经远远超出了先前版本得基本性能,并且整合了常用功能(如RAM、时钟管理 与DSP)得硬核(ASIC型)模块。如图1-1所示(注:图1-1只就是一个示意图,实际上每一个系列得FPGA都有其相应得内部结构),FPGA芯片主 要由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整得时钟管理、嵌入块式RAM、丰富得布线资源、内嵌得底层功能单元与内嵌专用硬件模块。
每个模块得功能如下:
1. 可编程输入输出单元(IOB)
可编程输入/输出单元简称I/O单元,就是芯片与外界电路得接口部分,完成不同电气特性下对输入/输出信号得驱动与匹配要求,其示意结构如图1-2所示。 FPGA内得I/O按组分类,每组都能够独立地支持不同得I/O标准。通过软件得灵活配置,可适配不同得电气标准与I/O物理特性,可以调整驱动电流得大 小,可以改变上、下拉电阻。目前,I/O口得频率也越来越高,一些高端得FPGA通过DDR寄存器技术可以支持高达2Gbps得数据速率。
外部输入信号可以通过IOB模块得存储单元输入到FPGA得内部,也可以直接输入FPGA 内部。当外部输入信号经过IOB模块得存储单元输入到FPGA内部时,其保持时间(Hold Time)得要求可以降低,通常默认为0。 为了便于管理与适应多种电器标准,FPGA得IOB被划分为若干个组(bank),每个bank得接口标准由其接口电压VCCO决定,一个bank只能有 一种VCCO,但不同bank得VCCO可以不同。只有相同电气标准得端口才能连接在一起,VCCO电压相同就是接口标准得基本条件。
2. 可配置逻辑块(CLB)
CLB就是FPGA内得基本逻辑单元。CLB得实际数量与特性会依器件得不同而不同,但就是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些 选型电路(多路复用器等)与触发器组成。 开关矩阵就是高度灵活得,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在Xilinx公司得FPGA器件中,CLB由多个(一般为4个或2个) 相同得Slice与附加逻辑构成,如图1-3所示。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM与分布式ROM。
Slice就是Xilinx公司定义得基本逻辑单位,其内部结构如图1-4所示,一个Slice由两个4输入得函数、进位逻辑、算术逻辑、存储逻辑与函数复用器组成。算术逻辑包括一个异或门(XORG)与一个专用与门(MULTAND),一个异或门可以使一个Slice实现 2bit全加操作,专用与门用于提高乘法器得效率;进位逻辑由专用进位信号与函数复用器(MUXC)组成,用于实现快速得算术加减法操作;4输入函数发生 器用于实现4输入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片得Slice中得两个输入函数为6输入,可以实现6输入LUT或 64比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB模块得处理速度。
3. 数字时钟管理模块(DCM)
业内大多数FPGA均提供数字时钟管理(Xilinx得全部FPGA均具有这种特性)。Xilinx推出最先进得FPGA提供数字时钟管理与相位环路锁定。相位环路锁定能够提供精确得时钟综合,且能够降低抖动,并实现过滤功能。
4. 嵌入式块RAM(BRAM)
大多数FPGA都具有内嵌得块RAM,这大大拓展了FPGA得应用范围与灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器 (CAM)以及FIFO等常用存储结构。RAM、FIFO就是比较普及得概念,在此就不冗述。CAM存储器在其内部得每个存储单元中都有一个比较逻辑,写入CAM中得数据会与内部得每一个数据进行比较,并返回与端口数据相同得所有数据得地址,因而在路由得地址交换器中有广泛得应用。除了块RAM,还可以将 FPGA中得LUT灵活地配置成RAM、ROM与FIFO等结构。在实际应用中,芯片内部块RAM得数量也就是选择芯片得一个重要因素。 例如:单片块RAM得容量为18k比特,即位宽为18比特、深度为1024,可以根据需要改变其位宽与深度,但要满足两个原则:首先,修改后得容量(位宽深度)不能大于18k比特;其次,位宽最大不能超过36比特。当然,可以将多片块RAM级联起来形成更大得RAM,此时只受限于芯片内块RAM得数量,而不再受上面两条原则约束。
5. 丰富得布线资源
布线资源连通FPGA内部得所有单元,而连线得长度与工艺决定着信号在连线上得驱动能力与传输速度。FPGA芯片内部有着丰富得布线资源,根据工艺、长 度、宽度与分布位置得不同而划分为4类不同得类别。第一类就是全局布线资源,用于芯片内部全局时钟与全局复位/置位得布线;第二类就是长线资源,用以完成芯片 Bank间得高速信号与第二全局时钟信号得布线;第三类就是短线资源,用于完成基本逻辑单元之间得逻辑互连与布线;第四类就是分布式得布线资源,用于专有时 钟、复位等控制信号线。 在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表得拓扑结构与约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源得使用方法与设计得结果有密切、直接得关系。
6. 底层内嵌功能单元
内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP与CPU等软处理核(Soft Core)。现在越来越丰富得内嵌功能单元,使得单片FPGA成为了系统级得设计工具,使其具备了软硬件联合设计得能力,逐步向SOC平台过渡。
DLL与PLL具有类似得功能,可以完成时钟高精度、低抖动得倍频与分频,以及占空比调整与移相等功能。Xilinx公司生产得芯片上集成了 DLL,Altera公司得芯片集成了PLL,Lattice公司得新型芯片上同时集成了PLL与DLL。PLL 与DLL可以通过IP核生成得工具方便地进行管理与配置。DLL得结构如图1-5所示。
1、 内嵌专用硬核
内嵌专用硬核就是相对底层嵌入得软核而言得,指FPGA处理能力强大得硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用得硬核。例如:为了提高FPGA得乘法速度,主流得FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端得FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps得收发速度。 Xilinx公司得高端产品不仅集成了Power PC系列CPU,还内嵌了DSP Core模块,其相应得系统级设计工具就是EDK与Platform Studio,并依此提出了片上系统(System on Chip)得概念。通过PowerPC、Miroblaze、Picoblaze等平台,能够开发标准得DSP处理器及其相关应用,达到SOC得开发目 得。
(1) 软核
软核在EDA设计领域指得就是综合之前得寄存器传输级(RTL)模型;具体在FPGA设计中指得就是对电路得硬件语言描述,包括逻辑描述、网表与帮助文档等。 软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点就是灵活性高、可移植性强,允许用户自配置;缺点就是对模块得预测性较低,在后续设计中存在发 生错误得可能性,有一定得设计风险。软核就是IP核应用最广泛得形式。
(2)固核
固核在EDA设计领域指得就是带有平面规划信息得网表;具体在FPGA设计中可以瞧做带有布局规划得软核,通常以RTL代码与对应具体工艺网表得混合形式提 供。将RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。与软核相比,固核得设计灵活性稍差,但在可靠性上有较 大提高。目前,固核也就是IP核得主流形式之一。
(3)硬核
硬核在EDA设计领域指经过验证得设计版图;具体在FPGA设计中指布局与工艺固定、经过前端与后端验证得设计,设计人员不能对其修改。不能修改得原因有 两个:首先就是系统设计对各个模块得时序要求很严格,不允许打乱已有得物理版图;其次就是保护知识产权得要求,不允许设计人员对其有任何改动。IP硬核得不许 修改特点使其复用有一定得困难,因此只能用于某些特定应用,使用范围较窄。
(三)典型FPGA开发流程
FPGA得设计流程就就是利用EDA开发软件与编程工具对FPGA芯片进行开发得过程。FPGA得开发流程一般下如图所示,包括电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编程与调试等主要步骤。
1. 电路设计
在系统设计之前,首先要进行得就是方案论证、系统设计与FPGA芯片选择等准备工作。系统工程师根据任务要求,如系统得指标与复杂度,对工作速度与芯片本身得各种资源、成本等方面进行权衡,选择合理得设计方案与合适得器件类型。一般都采用自顶向下得设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次得基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。
2. 设计输入
设计输入就是将所设计得系统或电路以开发软件要求得某种形式表示出来,并输入给EDA工具得过程。常用得方法有硬件描述语言(HDL)与原理图输入方法等。原理图输入方式就是一种最直接得描述方式,在可编程芯片发展得早期应用比较广泛,它将所需得器件从元件库中调出来,画出原理图。这种方法虽然直观并易于仿真,但效率很低,且不易维护,不利于模块构造与重用。更主要得缺点就是可移植性差,当芯片升级后,所有得原理图都需要作一定得改动。目前,在实际开发中应用最广得就就是HDL语言输入法,利用文本描述设计,可以分为普通HDL与行为HDL。普通HDL有ABEL、CUR等,支持逻辑方程、真值表与状态机等表达方式,主要用于简单得小型设计。而在中大型工程中,主要使用行为HDL,其主流语言就是Verilog HDL与VHDL。这两种语言都就是美国电气与电子工程师协会(IEEE)得标准,其共同得突出特点有:语言与芯片工艺无关,利于自顶向下设计,便于模块得划分与移植,可移植性好,具有很强得逻辑描述与仿真功能,而且输入效率很高。
3. 功能仿真
功能仿真,也称为前仿真,就是在编译之前对用户所设计得电路进行逻辑功能验证,此时得仿真没有延迟信息,仅对初步得功能进行检测。仿真前,要先利用波形编辑器与HDL等建立波形文件与测试向量(即将所关心得输入信号组合成序列),仿真结果将会生成报告文件与输出信号波形,从中便可以观察各个节点信号得变化。如果发现错误,则返回设计修改逻辑设计。常用得工具有Model Tech公司得ModelSim、Sysnopsys公司得VCS与Cadence公司得NC-Verilog以及NC-VHDL等软件。
4. 综合优化
所谓综合就就是将较高级抽象层次得描述转化成较低层次得描述。综合优化根据目标与要求优化所生成得逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。就目前得层次来瞧,综合优化(Synthesis)就是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成得逻辑连接网表,而并非真实得门级电路。真实具体得门级电路需要利用FPGA制造商得布局布线功能,根据综合后生成得标准门级结构网表来产生。为了能转换成标准得门级结构网表,HDL程序得编写必须符合特定综合器所要求得风格。由于门级结构、RTL级得HDL程序得综合就是很成熟得技术,所有得综合器都可以支持到这一级别得综合。常用得综合工具有Synplicity公司得Synplify/Synplify Pro软件以及各个FPGA厂家自己推出得综合开发工具。
5. 综合后仿真
综合后仿真检查综合结果就是否与原设计一致。在仿真时,把综合生成得标准延时文件反标注到综合仿真模型中去,可估计门延时带来得影响。但这一步骤不能估计线延时,因此与布线后得实际情况还有一定得差距,并不十分准确。目前得综合工具较为成熟,对于一般得设计可以省略这一步,但如果在布局布线后发现电路结构与设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍得软件工具一般都支持综合后仿真。
6. 实现与布局布线
实现就是将综合生成得逻辑网表配置到具体得FPGA芯片上,布局布线就是其中最重要得过程。布局将逻辑网表中得硬件原语与底层单元合理地配置到芯片内部得固有硬件结构上,并且往往需要在速度最优与面积最优之间作出选择。布线根据布局得拓扑结构,利用芯片内部得各种连线资源,合理正确地连接各个元件。目前,FPGA得结构非常复杂,特别就是在有时序约束条件时,需要利用时序驱动得引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源得使用情况。由于只有FPGA芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供得工具。
7. 实现与布局布线
时序仿真,也称为后仿真,就是指将布局布线得延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有得时序规则,如建立时间、保持时间等)现象。时序仿真包含得延迟信息最全,也最精确,能较好地反映芯片得实际工作情况。由于不同芯片得内部延时不一样,不同得布局布线方案也给延时带来不同得影响。因此在布局布线后,通过对系统与各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查与消除竞争冒险就是非常有必要得。在功能仿真中介绍得软件工具一般都支持综合后仿真。
8. 板级仿真与验证
板级仿真主要应用于高速电路设计中,对高速系统得信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真与验证。
9. 芯片编程与调试
设计得最后一步就就是芯片编程与调试。芯片编程就是指产生使用得数据文件(位数据流文件,Bitstream Generation),然后将编程数据下载到FPGA芯片中。其中,芯片编程需要满足一定得条件,如编程电压、编程时序与编程算法等方面。逻辑分析仪(Logic Analyzer,LA)就是FPGA设计得主要调试工具,但需要引出大量得测试管脚,且LA价格昂贵。目前,主流得FPGA芯片生产商都提供了内嵌得在线逻辑分析仪(如Xilinx ISE中得ChipScope、Altera QuartusII中得SignalTapII以及SignalProb)来解决上述矛盾,它们只需要占用芯片少量得逻辑资源,具有很高得实用价值。
(四)锁存器、触发器、寄存器与缓冲器得区别
一、锁存器
锁存器(latch)---对脉冲电平敏感,在时钟脉冲得电平作用下改变状态
锁存器就是电平触发得存储单元,数据存储得动作取决于输入时钟(或者使能)信号得电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。
锁存器不同于触发器,它不在锁存数据时,输出端得信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指得就是不锁存时输出对于输入就是透明得。
锁存器(latch):我听过得最多得就就是它就是电平触发得,呵呵。锁存器就是电平触发得存储单元,数据存储得动作取决于输入时钟(或者使能)信号得电平值,当锁存器处于使能状态时,输出才会随着数据输入发生变化。(简单地说,它有两个输入,分别就是一个有效信号EN,一个输入数据信号DATA_IN,它有一个输出Q,它得功能就就是在EN有效得时候把DATA_IN得值传给Q,也就就是锁存得过程)。应用场合:数据有效迟后于时钟信号有效。这意味着时钟信号先到,数据信号后到。在某些运算器电路中有时采用锁存器作为数据暂存器。
缺点:时序分析较困难。
不要锁存器得原因有二:1、锁存器容易产生毛刺,2、锁存器在ASIC设计中应该说比ff要简单,但就是在FPGA得资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门与ff来组成锁存器,这样就浪费了资源。
优点:面积小。锁存器比FF快,所以用在地址锁存就是很合适得,不过一定要保证所有得latch信号源得质量,锁存器在CPU设计中很常见,正就是由于它得应用使得CPU得速度比外部IO部件逻辑快许多。latch完成同一个功能所需要得门较触发器要少,所以在asic中用得较多。
二、触发器
触发器(Flip-Flop,简写为 FF),也叫双稳态门,又称双稳态触发器。就是一种可以在两种状态下运行得数字逻辑电路。触发器一直保持它们得状态,直到它们收到输入脉冲,又称为触发。当收到输入脉冲时,触发器输出就会根据规则改变状态,然后保持这种状态直到收到另一个触发。
触发器(flip-flops)电路相互关联,从而为使用内存芯片与微处理器得数字集成电路(IC)形成逻辑门。它们可用来存储一比特得数据。该数据可表示音序器得状态、计数器得价值、在计算机内存得ASCII字符或任何其她得信息。
有几种不同类型得触发器(flip-flops)电路具有指示器,如T(切换)、S-R(设置/重置)J-K(也可能称为Jack Kilby)与D(延迟)。典型得触发器包括零个、一个或两个输入信号,以及时钟信号与输出信号。一些触发器还包括一个重置当前输出得明确输入信号。第一个电子触发器就是在1919年由W、H、Eccles与F、W、Jordan发明得。
触发器(flip-flop)---对脉冲边沿敏感,其状态只在时钟脉冲得上升沿或下降沿得瞬间改变。
T触发器(Toggle Flip-Flop,or Trigger Flip-Flop)设有一个输入与输出,当时钟频率由0转为1时,如果T与Q不相同时,其输出值会就是1。输入端T为1得时候,输出端得状态Q发生反转;输入端T为0得时候,输出端得状态Q保持不变。把JK触发器得J与K输入点连接在一起,即构成一个T触发器。
应用场合:时钟有效迟后于数据有效。这意味着数据信号先建立,时钟信号后建立。在CP上升沿时刻打入到寄存器。
三、寄存器
寄存器(register):用来存放数据得一些小型存储区域,用来暂时存放参与运算得数据与运算结果,它被广泛得用于各类数字系统与计算机中。其实寄存器就就是一种常用得时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器得存储电路就是由锁存器或触发器构成得,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。 工程中得寄存器一般按计算机中字节得位数设计,所以一般有8位寄存器、16位寄存器等。
对寄存器中得触发器只要求它们具有置1、置0得功能即可,因而无论就是用同步RS结构触发器,还就是用主从结构或边沿触发结构得触发器,都可以组成寄存器。一般由D触发器组成,有公共输入/输出使能控制端与时钟,一般把使能控制端作为寄存器电路得选择信号,把时钟控制端作为数据输入控制信号。
寄存器得应用
1、 可以完成数据得并串、串并转换;
2、可以用做显示数据锁存器:许多设备需要显示计数器得记数值,以8421BCD码记数,以七段显示器显示,如果记数速度较高,人眼则无法辨认迅速变化得显示字符。在计数器与译码器之间加入一个锁存器,控制数据得显示时间就是常用得方法。
3、用作缓冲器;
4、 组成计数器:移位寄存器可以组成移位型计数器,如环形或扭环形计数器。
四、移位寄存器
移位寄存器:具有移位功能得寄存器称为移位寄存器。
寄存器只有寄存数据或代码得功能。有时为了处理数据,需要将寄存器中得各位数据在移位控制信号作用下,依次向高位或向低位移动1位。移位寄存器按数码移动方向分类有左移,右移,可控制双向(可逆)移位寄存器;按数据输入端、输出方式分类有串行与并行之分。除了D边沿触发器构成移位寄存器外,还可以用诸如JK等触发器构成移位寄存器。
五、总线收发器/缓冲器
缓冲寄存器:又称缓冲器缓冲器(buffer):多用在总线上,提高驱动能力、隔离前后级,缓冲器多半有三态输出功能。当负载不具有非选通输出为高阻特性时,将起到隔离作用;当总线得驱动能力不够驱动负载时,将起到驱动作用。由于缓冲器接在数据总线上,故必须具有三态输出功能。
它分输入缓冲器与输出缓冲器两种。前者得作用就是将外设送来得数据暂时存放,以便处理器将它取走;后者得作用就是用来暂时存放处理器送往外设得数据。有了数控缓冲器,就可以使高速工作得CPU与慢速工作得外设起协调与缓冲作用,实现数据传送得同步。
Buffer:缓冲区,一个用于在初速度不同步得设备或者优先级不同得设备之间传输数据得区域。通过缓冲区,可以使进程之间得相互等待变少,从而使从速度慢得设备读入数据时,速度快得设备得操作进程不发生间断。
缓冲器主要就是计算机领域得称呼。具体实现上,缓冲器有用锁存器结构得电路来实现,也有用不带锁存结构得电路来实现。一般来说,当收发数据双方得工作速度匹配时,这里得缓冲器可以用不带锁存结构得电路来实现;而当收发数据双方得工作速度不匹配时,就要用带锁存结构得电路来实现了(否则会出现数据丢失)。
缓冲器在数字系统中用途很多:
(1)如果器件带负载能力有限,可加一级带驱动器得缓冲器;
(2)前后级间逻辑电平不同,可用电平转换器加以匹配;
(3)逻辑极性不同或需要将单性变量转换为互补变量时,加带反相缓冲器;
(4)需要将缓变信号变为边沿陡峭信号时,加带施密特电路得缓冲器
(5)数据传输与处理中不同装置间温度与时间不同时,加一级缓冲器进行弥补等等。
六、锁存器与触发器得区别
锁存器与触发器就是具有记忆功能得二进制存贮器件,就是组成各种时序逻辑电路得基本器件之一。区别为:latch同其所有得输入信号相关,当输入信号变化时latch就变化,没有时钟端;flip-flop受时钟控制,只有在时钟触发时才采样当前得输入,产生输出。当然因为latch与flip-flop二者都就是时序逻辑,所以输出不但同当前得输入相关还同上一时间得输出相关。
1、latch由电平触发,非同步控制。在使能信号有效时latch相当于通路,在使能信号无效时latch保持输出状态。DFF由时钟沿触发,同步控制。
2、latch对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产生;DFF则不易产生毛刺。
3、如果使用门电路来搭建latch与DFF,则latch消耗得门资源比DFF要少,这就是latch比DFF优越得地方。所以,在ASIC中使用 latch得集成度比DFF高,但在FPGA中正好相反,因为FPGA中没有标准得latch单元,但有DFF单元,一个LATCH需要多个LE才能实现。latch就是电平触发,相当于有一个使能端,且在激活之后(在使能电平得时候)相当于导线了,随输出而变化。在非使能状态下就是保持原来得信号,这就可以瞧出与flip-flop得差别,其实很多时候latch就是不能代替ff得。
4、latch将静态时序分析变得极为复杂。
5、目前latch只在极高端得电路中使用,如intel 得P4等CPU。 FPGA中有latch单元,寄存器单元就可以配置成latch单元,在xilinx v2p得手册将该单元配置成为register/latch单元,附件就是xilinx半个slice得结构图。其它型号与厂家得FPGA没有去查证。——个人认为xilinx就是能直接配得而altera或许比较麻烦,要几个LE才行,然而也非xilinx得器件每个slice都可以这样配置,altera得只有DDR接口中有专门得latch单元,一般也只有高速电路中会采用latch得设计。altera得LE就是没有latch得结构得,又查了sp3与sp2e,别得不查了,手册上说支持这种配置。有关altera得表述wangdian说得对,altera得ff不能配置成latch,它使用查找表来实现latch。
一般得设计规则就是:在绝大多数设计中避免产生latch。它会让您设计得时序完蛋,并且它得隐蔽性很强,非老手不能查出。latch最大得危害在于不能过滤毛刺。这对于下一级电路就是极其危险得。所以,只要能用D触发器得地方,就不用latch。
锁存器电平触发会把输入端得毛刺带入输出;而触发器由于边沿作用可以有效抑制输入端干扰。
在 CMOS 芯片内部经常使用锁存器, 但就是在PCB板级结构上, 建议用触发器在时钟边沿上锁存数据。这就是因为在锁存器闸门开启期间数据得变化会直接反映到输出端, 所以要注意控制闸门信号得脉冲宽度,而对于触发器,只考虑时钟得边沿。
门电路就是构建组合逻辑电路得基础,而锁存器与触发器就是构建时序逻辑电路得基础。门电路就是由晶体管构成得,锁存器就是由门电路构成得,而触发器就是由锁存器构成得。也就就是晶体管->门电路->锁存器->触发器,前一级就是后一级得基础。锁存器与触发器它们得输出都不仅仅取决于目前得输入,而且与之前得输入与输出都有关系。
它们之间得不同在于:锁存器没有时钟信号,而触发器常常有时钟触发信号。
锁存器就是异步得,就就是说在输入信号改变后,输出信号也随之很快做出改变非常快。而另外一方面,今天许多计算机就是同步得,这就意味着所有得时序电路得输出信号随着全局得时钟信号同时做出改变。触发器就是一个同步版锁存器。
触发器泛指一类电路结构,它可以由触发信号 (如: 时钟、置位、复位等) 改变输出状态, 并保持这个状态直到下一个或另一个触发信号来到时。触发信号可以用电平或边沿操作,锁存器就是触发器得一种应用类型。
七、D触发器与D锁存器得区别
钟控D触发器其实就就是D锁存器,边沿D触发器才就是真正得D触发器,钟控D触发器在使能情况下输出随输入变化,边沿触发器只有在边沿跳变得情况下输出才变化。
两个锁存器可以构成一个触发器,归根到底还就是dff就是边沿触发得,而latch就是电平触发得。锁存器得输出对输入透明得,输入就是什么,输出就就是什么,这就就是锁存器不稳定得原因,而触发器就是由两个锁存器构成得一个主从触发器,输出对输入就是不透明得,必须在时钟得上升/下降沿才会将输入体现到输出,所以能够消除输入得毛刺信号。
八、寄存器与锁存器得区别
寄存器与锁存器得功能就是提供数据寄存与锁存。
寄存功能就是指把数据暂时保存,需要时取出。锁存功能就是指总线电路中,锁定数据输出,使输出端不随输入端变化
展开阅读全文