10、FPGA的时序基础理论
咱们的剖析从下图开端,下图是常用的静态剖析结构图,一开端看不懂公式没关系,因为我会在后面处以十分简略的解说:
这两个公式是一个十分全面的,精确的关于树立时刻和坚持时刻的公式。其间Tperiod为时钟周期;Tcko为D触发器开端采样瞬间到D触发器采样的数据开端输出的时刻;Tlogic为中心的组合逻辑的延时;Tnet为走线的延时;Tsetup为D触发器的树立时刻;Tclk_skew为时钟偏移,偏移的原因是因为时钟抵达前后两个D触发器的道路不是相同长。
这儿咱们来做如下转化:
因为关于有意义的时序束缚,树立时刻余量Tslack,setup和坚持时刻余量Thold都要大于0才行,所以关于时序束缚的要求其实等价于:
Tperiod>Tcko+Tlogic+Tnet+Tsetup-Tclk_skew (1)
Tcko+Tlogic+Tnet>Thold+Tclk_skew (2)
之前说了,这两个公式是最全面的,而实际上,大部分教材没讲这么深,他们关于一些不那么重要的延时没有考虑,所以就导致不同的教材说法不一。这儿,为了得到愈加简略的了解,咱们依照惯例,疏忽两项Tnet和Tclk_skew。原因在于Tnet一般太小,而Tclk_skew比较不那么初级。简化后如下:
Tperiod>Tcko+Tlogic+Tsetup (3)
Tcko+Tlogic>Thold (4)
简略多了吧!可是你能看出这两个公式的意义吗?其实(3)式比较好了解,意思是数据从榜首个触发器采样时刻传到第二个触发器采样时刻,不能超越一个时钟周期啊!假设数据传输超越一个时钟周期,那么就会导致第二个触发器开端采样的时分,想要的数据还没有传过来呢!那么(4)式又怎么了解呢?老实说,一般人一眼看不出来。
咱们关于(4)式两头一起加上Tsetup,得到(5):
Tcko+Tlogic+Tsetup>Thold+Tsetup (5)
结合(3)式和(5)式,咱们得到如下的式子:
Thold+Tsetup <tcko+tlogic+tsetup< p="" (6)
这个式子便是那个能够让咱们看出规矩的式子。也是能够看出静态时序剖析实质的式子。
Tcko+Tlogic+Tsetup是指数据从榜首级触发器采样瞬间开端,传输到第二级触发器并被采样的传输延时。咱们简称为数据传输延时。下面叙述(6)式两头的意义。
Tcko+Tlogic+Tsetup< Tperiod :约好数据传输延时不能太大,假设太大(超越一个时钟周期),那么第二级触发器就会在采样的时刻发现数据还没有到来。
Thold+Tsetup
综上,咱们就能够知道,数据传输延时既不能太大以至于超越一个时钟周期,也不能太小以至于小于触发器采样窗口的宽度。这便是静态时序剖析的终极内在。有了这个,就不需求再记任何公式了。
11、CPLD、FPGA加载原理
LD一般用JTAG接口进行加载,内部有FLASH和SRAM,CPLD的装备文件可存在在内置的FLASH中,因此下电不会丢掉,不需求每次上电的时分,额定对CPLD进行装备结构如下:
办法一:当SRAM为空时(CPLD一次都未加载过或许CPLD内部FLASH存储的装备文件有问题,不能加载到SRAM中),Flash编程进入直接方法,此刻CPLD的IO管脚状况由BSCAN registers(鸿沟扫描寄存器)决议,BSCAN registers能够将IO设置成high, low, tristate (default), or current value四种。
办法2:
办法二:当SRAM不为空的时分,Flash 可进行background编程方法.在此方法下,在加载on-chipFlash时,答应CPLD器材依然维持在用户操作方法下(即CPLD能够正常作业)。
IEEE 1532规范简介IEEE 1532规范是一个依据IEEE 1149.1的在板编程的新规范,规范的姓名为IEEE Standard for In-System Configuration of ProgrammableDevices。 在1993年,呈现ISP(In-System Programming)的概念和运用。随之产生了运用IEEE1149.1进行ISP的需求。各个厂商供给了相似的不相同的依据JTAG的ISP东西。1996年4月,半导体厂商、ISP东西开发者、ATE开发商正式提出了IEEE 1532规范,旨在为JTAG器材的在板编程供给一系列规范的专门的寄存器和操作指令然后使得在板编程更为简略和高效。IEEE1532彻底树立在IEEE1149.1规范之上,在IEEE 1532规范上能够开发通用的编程东西,为测验、编程和体系开发供给规范的接口和器材支撑、促进了编程改造,拓荒了鸿沟扫描技能新的运用范畴。IEEE1532 首要运用在CPLD、FPGA、PROM以及恣意的支撑IEEE 1532的可编程器材的在板编程。
前期的可编程逻辑器材只要可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。因为结构的约束,它们只能完结简略的数字逻辑功用。
这以后,呈现了一类结构上稍杂乱的可编程芯片,即可编程逻辑器材(PLD),它能够完结各种数字逻辑功用。典型的PLD由一个“与”门和一个“或”门阵列组成,而恣意一个组合逻辑都能够用“与一或”表达式来描绘,所以,PLD能以乘积和的方法完结许多的组合逻辑功用,能够完结速度特性较好的逻辑功用,但其过于简略的结构也使它们只能完结规划较小的电路。
为了补偿这一缺陷,20世纪80年代中期。 Altera和Xilinx别离推出了相似于PAL(可编程阵列逻辑)结构的扩展型 CPLD(ComplexProgrammab1e Logic Dvice)和与规范门阵列相似的FPGA(FieldProgrammable Gate Array),它们都具有体系结构和逻辑单元灵敏、集成度高以及适用范围宽等特色。这两种器材兼容了PLD和通用门阵列GAL(Generic Array Logic)的长处,可完结较大规划的电路,编程也很灵敏。与门阵列等其它ASIC(ApplicationSpecific IC)比较,它们又具有规划开发周期短、规划制作成本低、开发东西先进、规范产品无需测验、质量安稳以及可实时在线查验等长处,因此被广泛运用于产品的原型规划和产品出产(一般在10,000件以下)之中。简直一切运用门阵列、PLD和中小规划通用数字集成电路的场合均可运用FPGA和CPLD器材。
12、锁存器、触发器、寄存器和缓冲器的差异
一、锁存器
锁存器(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)电路彼此相关,然后为运用内存芯片和微处理器的数字%&&&&&%(%&&&&&%)构成逻辑门。它们可用来存储一比特的数据。该数据可表示音序器的状况、计数器的价值、在计算机内存的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)数据传输和处理中不同设备间温度和时刻不一起,加一级缓冲器进行补偿等等。