爱收集资源网

触发器采样时刻揭示首个周期的秘密

网络整理 2023-09-28 02:11

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是指数据从第一级触发器取样顿时开始,传输到第二级触发器并被取样的传输延时。我们简称为数据传输延时。下边述说(6)式两端的含意。

Tcko+Tlogic+Tsetup

Thold+Tsetup

综上,我们就可以晓得,数据传输延时既不能太大以至于超过一个时钟周期,也不能太小以至于大于触发器取样窗口的长度。这就是静态时序剖析的终极内涵。有了这个,就不须要再记任何公式了。

11、CPLD、FPGA加载原理

LD通常用JTAG插口进行加载,内部有FLASH和SRAM,CPLD的配置文件可存在在外置的FLASH中,因而下电不会遗失,不须要每次上电的时侯,额外对CPLD进行配置结构如下:

形式一:当SRAM为空时(CPLD一次都未加载过或则CPLD内部FLASH储存的配置文件有问题,不能加载到SRAM中),Flash编程步入直接模式,此时CPLD的IO管脚状态由BSCANregisters(边界扫描寄存器)决定,BSCANregisters可以将IO设置成high,low,tristate(default),orcurrentvalue四种。

形式2:

形式二:当SRAM不为空的时侯,Flash可进行background编程模式.在此模式下,在加载on-chipFlash时,容许CPLD元件仍旧维持在用户操作模式下(即CPLD可以正常工作)。

IEEE1532标准简介IEEE1532标准是一个基于IEEE1149.1的在板编程的新标准,标准的名子为IEEEStandardforIn-SystemConfigurationofProgrammableDevices。在1993年,出现ISP(In-SystemProgramming)的概念和应用。急剧形成了应用IEEE1149.1进行ISP的需求。各个厂商提供了类似的不相同的基于JTAG的ISP工具。1996年4月,半导体厂商、ISP工具开发者、ATE开发商即将提出了IEEE1532标准,借以为JTAG元件的在板编程提供一系列标准的专门的寄存器和操作指令因而促使在板编程更为容易和高效。IEEE1532完全构建在IEEE1149.1标准之上,在IEEE1532标准上可以开发通用的编程工具,为测试、编程和系统开发提供规范的插口和元件支持、促进了编程革新,开辟了边界扫描技术新的应用领域。IEEE1532主要应用在CPLD、FPGA、PROM以及任意的支持IEEE1532的可编程元件的在板编程。

初期的可编程逻辑元件只有可编程只读存储器(PROM)、紫外线可按除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)三种。因为结构的限制,它们只能完成简单的数字逻辑功能。

其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑元件(PLD),它还能完成各类数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以,PLD能以乘积和的方式完成大量的组合逻辑功能,可以实现速率特点较好的逻辑功能,但其过分简单的结构也使它们只能实现规模较小的电路。

为了填补这一缺陷,20世纪80年代中期。Altera和Xilinx分别推出了类似于PAL(可编程阵列逻辑)结构的扩充型CPLD(ComplexProgrammab1eLogicDvice)和与标准门阵列类似的FPGA(FieldProgrammableGateArray),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特性。这两种元件兼容了PLD和通用门阵列GAL(GenericArrayLogic)的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(ApplicationSpecificIC)相比,它们又具有设计开发周期短、设计制导致本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因而被广泛应用于产品的原型设计和产品生产(通常在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)电路互相关联,因而为使用显存芯片和微处理器的数字集成电路(IC)产生逻辑门。它们可拿来储存一比特的数据。该数据可表示部首器的状态、计数器的价值、在计算机显存的ASCII字符或任何其他的信息。

有几种不同类型的触发器(flip-flops)电路具有指示器,如T(切换)、S-R(设置/重置)J-K(也可能称为JackKilby)和D(延后)。典型的触发器包括零个、一个或两个输入讯号,以及时钟讯号和输出讯号。一些触发器还包括一个重置当前输出的明晰输入讯号。第一个电子触发器是在1919年由W.H.Eccles和F.W.Jordan发明的。

触发器(flip-flop)---对脉冲边缘敏感,其状态只在时钟脉冲的上升沿或升高沿的顿时改变。

T触发器(ToggleFlip-Flop,orTriggerFlip-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由电平触发用jk触发器实现t触发器,非同步控制。在使能讯号有效时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单元,在xilinxv2p的指南将该单元配置成为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。

有些地方没有时钟,也只能用latch了。例如现今用一个clk接到latch的使能端(假定是高电平使能),这样须要的setup时间,就是数据在时钟的增长沿之前须要的时间,而且假如是一个DFF,这么setup时间就是在时钟的上升沿须要的时间。这就说明假如数据晚于控制讯号的情况下,只能用latch,这些情况就是,上面所提及的latchtimingborrow。基本上相当于借了一个高电平时间。也就是说,latch借的时间也是有限的。

在if句子和case不全很容易形成latch,须要注意。VIA题目这两个代码那个综合更容易形成latch:

代码1

答案是代码2在综合时更容易形成latch。

对latch进行STA的剖析虽然也是可以,而且要对工具相当熟悉才行,不过很容易出错。当前PrimeTime是支持进行latch剖析的,现今一些综合工具外置的STA剖析功能也支持,例如RTLcompiler,DesignCompiler。不仅ASIC里可以节约资源以外,latch在同步设计里出现的可能还是挺小的,现今处理过程中大都置于ff里打一下。

锁存器电平触发会把输入端的毛刺带入输出;而触发器因为边缘作用可以有效抑制输入端干扰。

在CMOS芯片内部常常使用锁存器,并且在PCB板级结构上,建议用触发器在时钟边缘上锁存数据。这是由于在锁存器闸门开启期间数据的变化会直接反映到输出端,所以要注意控制闸门讯号的脉冲长度,而对于触发器,只考虑时钟的边缘。

门电路是建立组合逻辑电路的基础,而锁存器和触发器是建立时序逻辑电路的基础。门电路是由晶体管构成的,锁存器是由门电路构成的,而触发器是由锁存器构成的。也就是晶体管->门电路->锁存器->触发器,前一级是后一级的基础。锁存器和触发器它们的输出都不仅仅取决于目前的输入,并且和之前的输入和输出都有关系。

它们之间的不同在于:锁存器没有时钟讯号,而触发器经常有时钟触发讯号。

锁存器是异步的,就是说在输入讯号改变后,输出讯号也急剧很快作出改变特别快。而另外一方面,明天许多计算机是同步的,这就意味着所有的时序电路的输出讯号随着全局的时钟讯号同时作出改变。触发器是一个同步版锁存器。

触发器亦称一类电路结构,它可以由触发讯号(如:时钟、置位、复位等)改变输出状态,并保持这个状态直至下一个或另一个触发讯号来到时。触发讯号可以用电平或边缘操作,锁存器是触发器的一种应用类型。

七、D触发器和D锁存器的区别

钟控D触发器虽然就是D锁存器,边缘D触发器才是真正的D触发器,钟控D触发器在使能情况下输出随输入变化,边缘触发器只有在边缘跳变的情况下输出才变化。

两个锁存器可以构成一个触发器,归根究竟还是dff是边缘触发的,而latch是电平触发的。锁存器的输出对输入透明的,输入是哪些,输出就是哪些,这就是锁存器不稳定的诱因,而触发器是由两个锁存器构成的一个主从触发器,输出对输入是不透明的,必须在时钟的上升/增长沿就会将输入彰显到输出,所以才能去除输入的毛刺讯号。

八、寄存器与锁存器的区别

寄存器与锁存器的功能是提供数据寄存和锁存。

寄存功能是指把数据暂时保存,须要时取出。锁存功能是指总线电路中,锁定数据输出,使输出端不随输入端变化。

13、流水线

流水线设计是常常用于增强所设计系统运行速率的一种有效的方式。

为了保障数据的快速传输,必须使系统运行在尽可能高的频度上,但若果个别复杂逻辑功能的完成须要较长的延时,都会使系统无法运行在高的频度上,在这些情况下,可使用流水线技术,即在长延时的逻辑功能块中插入触发器,使复杂的逻辑操作分步完成,降低每位部份的延时,进而使系统的运行频度得以增强。流水线设计的代价是降低了寄存器逻辑,降低了芯片资源的耗损。

如某个复杂逻辑功能的实现需较长的延时,可将其分解为几个(如3个)步骤来实现,每一步的延时变小,在各步间加入寄存器,以暂存中间结果,这样可大大提升整个系统的最高工作频度。

设计综合到不同元件的最高工作频度

流水线设计的关键在于整个设计时序的合理安排,前后级插口间数据流速的匹配。假如前后级流量相等,功放输出直接可作为后级输入,功放流量小于后级时,则须要降低缓存,功放流量大于后级时,则须要通过逻辑复制,串并转换等方法将数据分流用jk触发器实现t触发器,或则功放储存后输出到后级进行处理。

流水线的思想:复制了处理模块,用面积换速率。

用jk触发器实现t触发器
上一篇:忘记解锁密码?三星手机教你轻松搞定 下一篇:没有了