基于FPGA的跨时钟域信号处理——亚稳态

合集下载

(整理)FPGA中的亚稳态毛刺异步FIFO.

(整理)FPGA中的亚稳态毛刺异步FIFO.

(整理)FPGA中的亚稳态毛刺异步FIFO.1亚稳态1.1亚稳态的定义亚稳态是指触发器无法在某个规定时间段内达到一个确定的状态。

当一个触发器进入亚稳态时,该触发器的输出何时能稳定以及会稳定在哪个状态都不能确定。

在达到稳定之前的时间,触发器输出一些中间电平或者处于震荡状态,并且这种无用的输出电平可以沿着信号通路上级联的触发器传播下去。

1.2亚稳态的产生机制如果触发器的setup time、hold time不满足,就可能产生亚稳态,此时触发器的输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,这段时间称为决断时间(resolution time)。

经过resolution time 之后Q端将稳定到0或者1,但究竟是0还是1和输入没有关系。

图1是一个处于亚稳态的寄存器的输出的例子。

1.3亚稳态的危害与避免亚稳态会导致逻辑误判,如果发生亚稳态的部位对系统的稳定至关重要同时缺少防错机制,则可能导致系统崩溃(逻辑挂死)。

逻辑误判可以通过特殊设计减轻危害,例如异步fifo的gray设计。

比发生部位本身的逻辑误判更严重的是亚稳态传递。

亚稳态传递会扩大故障面,让问题变得复杂。

在完全同步的设计中,CAD工具可以方便的分析每一个触发器的建立保持时间。

理论上一个时序完全收敛的纯同步设计不会有亚稳态问题。

和有赖于时序分析的完备性,例如所使用的timing mode与实际芯片及其工作条件的吻合度,实际时钟抖动、偏斜与预期是否一致等。

扩大时序裕量可以降低亚稳态发生的概率。

当前一个数字芯片上往往有多个时钟域,时钟域之间的异步设计是必不可少的。

只要系统中存在异步设计,则亚稳态无法避免,但我们可以尽量限制亚稳态的影响范围并通过特殊的逻辑设计容忍可能的逻辑误判。

1.3.1缩小亚稳态的影响范围a.“将异步输出寄存器的扇出限制为1”如图2所示,让异步输出寄存器的扇出为1相当于减少了异步路径的条数。

若异步信号有多个输出,则可能因为路径延迟和时钟偏斜导致有的寄存器采到有效值,有的寄存器进入不确定的状态,如图2和图3所示。

理解FPGA中的亚稳态

理解FPGA中的亚稳态

理解FPGAs中的亚稳态这篇论文描述了在FPGA中的亚稳态,它是怎样产生的,还有它是怎样导致设计的失败。

介绍了如何计算亚稳态的平均无故障时间(MTBF),并且总结了各种器件和设计参数是如何影响平均无故障时间的。

介绍亚稳态是当信号在无关的电路中或异步时钟域之间传输时导致数字器件包括FPGA系统失效的一种现象。

这篇论文描述了FPGA中的亚稳态,解释了它是如何发生的,并讨论了它是如何导致设计失败的。

由亚稳态得出的平均无故障时间可以告诉设计者是否应该去降低出现失效的几率。

这篇论文将告诉你如何由各种设计和器件参数计算出平均无故障时间,FPGA供应商和设计者是如何提高平均无故障时间的。

通过一些设计技巧和优化降低亚稳态造成的失效,系统可靠性是可以提高的。

什么是亚稳态在所有的数字器件如FPGA中的寄存器都定义了一个信号时序要求,满足了这个要求寄存器才可以正确地在输入端获取(capture)数据在输出端产生数据。

为了确保可靠的操作,输入信号在时钟沿之前必须稳定一段时间(寄存器建立时间Tsu)并且在时钟沿之后稳定一段时间(寄存器保持时间Th),然后寄存器输出经过一个特定的时钟到输出延时(clock to output ,Tco)后有效。

如果一个数据信号在翻转中违反了一个寄存器的建立和保持时间的要求,寄存器的输出可能就会是亚稳态。

在亚稳态中,寄存器的输出值在高和低之间徘徊一段时间,这就意味着输出翻转到一个确定的高或低的延时会超过固定的时钟到输出延时。

在同步系统中,输入信号必须总是满足寄存器时序要求,所以亚稳态不会发生。

亚稳态问题通常发生在当一个信号在无关的线路中或异步时钟域中传输。

在这种情况下设计者不能保证信号会满足建立时间(Tsu)和保持时间(Th)的要求,因为相对于目标时钟信号可以在任何时间到达。

但是,不是每个违反寄存器建立保持时间的信号翻转都会导致亚稳态。

一个寄存器进入亚稳态和从亚稳态进入稳态的时间依赖于制造商的制造工艺和使用环境。

关于FPGA中的亚稳态现象

关于FPGA中的亚稳态现象

第一章绪论 1第一章绪论1.1 论文产生的背景对于研发人员来说,可靠性是必须保证的设计目标之一。

为了验证系统的可靠性,产品在出厂前都会进行大量的整机测试,包括常温测试、高低温测试直到最终的外场测试,这些测试需要耗费大量的人力和物力。

对于开发人员来说,通常这个阶段出现的问题也是最头疼的,因为其中很多属于偶发性故障,难以复现。

比如芯片上电初始化配置经常失败,或者正常运行的系统突然发生复位,或者网口突然发生阻塞,或者常温下的通过的指标,在进行高低温实验的时候出现了恶化。

整机测试不同于平时研发的单板测试,测试手段受到很多限制。

比如由于单板装入了机壳,就不能使用JTAG口进行实时监测,也不能使用示波器排查。

但是如果在开发初期,设计者能够对系统的各个环节进行认真的评估,充分考虑了可靠性问题,那么在面对测试阶段层出不穷的故障时便能轻松一些。

关于可靠性问题,几乎所有的研究资料都推荐使用同步设计解决,因为同步设计可以保证时钟触发沿避开输入数据发生变化的区域,这也就避免了不稳定采样。

的确,实际中复杂逻辑电路均采用同步设计,FPGA厂家也只对客户的同步设计给予技术支持。

但是同步设计并非不需要考虑异步问题,因为绝大多数的设计都需要与外界通信,比如某项目中的FPGA的外围设备包括CPLD、CPU、DSP 和大量的射频芯片,这些外围器件的工作时钟与FPGA的工作时钟没有任何关系。

因此,每次FPGA与这些外围设备通信都面临着失败的风险,如何降低通信故障率是设计中的一个难点。

本文将围绕异步信号对同步系统的影响进行详细的理论分析,从数字电路的结构出发讨论亚稳态发生的根源,并结合FPGA实际设计经验介绍几种解决方法。

1.2 发展历史输入数据与采样时钟发生沿打沿(marginal trigger)的情况,双稳态电路不能在规定的时间(由厂家定义)进入稳态的现象称为亚稳态。

一旦双稳态电路进入亚稳态,那么在亚稳态停留的时间将不可预知。

在这段时间里,双稳态电路输出的电压处于非法的逻辑电平区间,具体的电压值无法预测,输出还可能发生振荡。

跨时钟域的处理

跨时钟域的处理

跨时钟域的处理很久不写东西了,因为这个空间里似乎都是做软件的,而我把ASIC/FPGA认为是硬件电路。

所以写的虽然也是代码,但是想的确实硬件电路。

这让我在这个软件人员居多的空间里显得格格不入。

写这个题目,其实是我有些忍不住了。

这十几年来,我面试过很多新人,也带过很多新人,他们之中很多人的成就都已经超越了我。

但是当我们偶尔回顾这个小小的跨越时钟域的问题时,仍然有很多的困惑和不理解。

我喜欢用这个题目作为我的面试题目,因为它不是一个简单的题目,而是涉及到ASIC设计本质的题目,如果细细研究起来,还非常复杂。

写这个东西,希望所有在做ASIC的人,能从一个更高的角度去审视它,并且能因此更深刻的体会做ASIC的严谨。

言归正传:题目:单根信号线,跨越时钟域,该怎么处理?1。

首先给一个最简单的答案:用寄存器打两拍这里其实有一个很本质的问题需要讨论,就是为什么要所存两拍?把这个问题插进来说说吧。

所有做ASIC的人,都要面对两个基本的概念:setup time 和 hold time。

如果寄存器不满足这两个时间,将会出现亚稳态。

很多新人以为亚稳态仅仅是逻辑上的障碍,其实亚稳态是实实在在的电路上的问题。

模拟电路中,三极管主要工作在其放大区间,而在数字电路却是要工作在截至态。

亚稳态非常类似模拟电路中的放大态,这个状态将使得器件的输出电流被放大,如果这个状态被传递,那么将导致更多的电路处在放大电路的工作状态中,这将引起巨大的电流和功耗,甚至烧毁芯片,所以,跨时钟域是一定会出现亚稳态的,但是我们必须要把亚稳态控制在一个很小的范围内。

这就是为什么要在其后面再用一个寄存器的原因。

它的功能就是把亚稳态仅仅限制在那一个寄存器的小区域。

好了,继续说逻辑上的事情。

这个两拍的电路很显然,只适合信号从低频时钟跨越到高频时钟,那么当高频时钟要跨越到低频时钟该怎么办呢?2. 高频信号要进入低频时钟域,最原始的想法就是展宽。

如果我们知道这两个时钟之间的频率差别,那么用一个计数器去将高频信号做适当的展宽,使其宽度大于低频时钟的一个周期,然后就可以继续用上述的方法跨域时钟域了。

时序分析基础:Setuphold,跨时钟域处理和亚稳态

时序分析基础:Setuphold,跨时钟域处理和亚稳态

时序分析基础:Setuphold,跨时钟域处理和亚稳态⼀、建⽴时间和保持时间Setup/holdTsetup和Thold内数据都稳定时,data1和data2才会正常被D触发器采样⼆、什么是亚稳态百度百科上说亚稳态是指触发器⽆法在某个规定时间段内达到⼀个可确认的状态。

当⼀个触发器进⼊亚稳态时,既⽆法预测该单元的输出电平,也⽆法预测何时输出才能稳定在某个正确的电平上。

讲⼈话就是,亚稳态就是在建⽴时间或保持时间⾥数据处于不够稳定的状态、正在变化的状态,下⾯以单bit跨时钟域处理为例⼦。

三、单bit跨时钟域中的亚稳态处理先说什么是时钟域,打个⽐⽅,FPGA的主控芯⽚⼯作在系统时钟之下,系统时钟由晶振产⽣为50MHz,如果不分频,板内的所有资源都⼯作在系统时钟之下,那么这就是⼀个时钟域clk_a。

同⼀个时钟域下的信号,综合以及布线⼯具可以在data路径或者clock路径上插⼊buffer使得每⼀个D触发器的setup/hold时间都满⾜,这个时候可以简化⼀下模型,把系统时钟看成clk_a域的理想时钟,并在时钟上升沿D触发器采样(实际上是建⽴时间这个时间段采样的)。

那么当另⼀个时钟域的信号data_b来了(⼀般是外设的标志位或者数据组),就是跨时钟域了,就可能发⽣下图情况。

这时就产⽣了亚稳态,这个数据是不稳定的,可能采样到0,也可能采样到1。

可能会导致信号⽑刺、逻辑判断混乱、振荡等问题。

消除亚稳态有三种⽅法,⼀是⽤多级DFF来延时,俗称打两拍。

打⼀拍的verlog代码如下always@(posedge clk or negedge rst_n)if(!rst_n)data_r<=0;elsedata_r<=data_b;View Code这样就会发⽣下图情况在时钟的上升沿对clk_b域的data_b采样,并将其值赋给clk_a域的data_r。

亚稳态判读出的是1值,data_r就像上图中的data_r,是⼀个稳态值,亚稳态已经消去;亚稳态判读出的是0值,data_r就像上图中的data_r‘,也是⼀个稳态值,亚稳态已经消去。

fpga中的亚稳态

fpga中的亚稳态

fpga中的亚稳态FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,它具有可重构性和灵活性,可用于各种应用领域。

在FPGA中,亚稳态是一个重要的概念,它在电路设计和时序分析中起着关键的作用。

亚稳态指的是在电路中存在的一个临界状态,处于这种状态下的电路可能会产生不可预测的行为。

在FPGA中,由于其可编程性,电路的状态可能会在不同的时钟周期之间发生变化,从而引发亚稳态问题。

亚稳态的产生主要有两个原因。

首先,由于FPGA中的可编程资源(如查找表、寄存器等)可以在运行时进行重配置,因此电路的状态可能会发生变化。

其次,由于FPGA中的多个逻辑单元(如查找表、寄存器等)之间存在时序差异,即不同逻辑单元的输入和输出信号在时间上存在一定的延迟,这也会导致亚稳态的出现。

亚稳态在FPGA设计中可能会导致一系列问题。

首先,亚稳态可能会导致电路的输出值不稳定,即在不同的时钟周期内,相同的输入可能会产生不同的输出。

这对于一些对输出值精确性要求高的应用来说是不可接受的。

其次,亚稳态还可能会导致电路的功能失效,即电路无法按照设计的预期进行工作。

这对于一些对电路功能要求严格的应用来说是无法容忍的。

为了解决FPGA中的亚稳态问题,设计者可以采取一系列的措施。

首先,可以通过合理的时序约束来避免亚稳态的产生。

时序约束是指在设计中明确规定各个逻辑单元之间的时序关系,以确保电路的正确运行。

其次,可以通过引入冗余逻辑来提高电路的容错性。

冗余逻辑是指在电路中引入一些冗余的逻辑单元,以增加电路的稳定性和可靠性。

此外,还可以通过优化布线和时钟分配来减少亚稳态的发生。

除了在设计阶段采取措施外,还可以在验证和测试阶段对FPGA进行亚稳态分析。

通过使用专门的工具和方法,可以检测和分析电路中存在的亚稳态问题,并对其进行修复和优化。

例如,可以使用模拟和仿真技术来模拟电路的工作过程,并通过观察电路的输出来判断是否存在亚稳态问题。

FPGA设计中的跨时钟域问题

FPGA设计中的跨时钟域问题

Copyright©博看网 . All Rights Reserved.
152
2014 年第 37 卷
现代电子技术
MTBF(Mean Time Between Failure,平均无故障时间)是
在一些高速的设计中,可能两级寄存器同步也无法
衡 量 一 个 设 计 的 可 靠 性 指 标,MTBF 的 值 越 大,则 出 现
Keywords:CDC;metastability;synchronization;simulation
0

立时间或保持时间要求),其输出信号就会在一段不可

预知长度的时间内处于一个非“0”非“1”的中间状态(这
在 FPGA(Field Programmable Gate Array,现场可编
段 时 间 称 为 亚 稳 态 恢 复 时 间),之 后 可 能 稳 定 在“1”状
保持稳定的时间。亚稳态(Metastability)现象就是如果
寄存器数据端的变化与时钟的有效沿很近(不能满足建
图1
亚稳态示意图
亚稳态现象是寄存器的一个固有特点,由于亚稳态
恢复时间的不确定性,不能根本的去除亚稳态的影响。
通过在设计中预留一定的亚稳态恢复时间,使信号恢复
收稿日期:2013⁃12⁃19
到 确 定 的 电 平 后 参 与 逻 辑 运 算 ,降 低 亚 稳 态 的 影 响 。
Abstract:With the increasing clock frequency in the FPGA design,the clock scheme is more and more complex,and the
issue of crossing the clock domain becomes a key point in design and verification. In order to correct the function error in FPGA

简谈FPGA学习中亚稳态现象

简谈FPGA学习中亚稳态现象

简谈FPGA学习中亚稳态现象大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA学习中,亚稳态现象。

说起亚稳态,首先我们先来了解一下什么叫做亚稳态。

亚稳态现象:信号在无关信号或者异步时钟域之间传输时导致数字器件失效的一种现象。

接下来主要讨论在异步时钟域之间数据传输所产生的亚稳态现象,以及如何降低亚稳态现象发生的概率(只能降低,不能消除),这在FPGA设计(尤其是大工程中)是非常重要的。

亚稳态的产生:所有的器件都定义了一个信号时序要求,只有满足了这个要求,才能够正常的在输入端获取数据,在输出端输出数据。

正常的数据传递是:在触发时钟沿前必须有一小段时间(Tsu)用来稳定输入信号(0 or 1),触发时钟沿之后需要有一小段特定的时间(Th)再次稳定一下,最后再经过一个特定的始终到输出延时(Tco)后才有效。

如果数据的传递过程违反了这个时间约束,那么寄存器输出就会出现亚稳态,此时输出的诗句是不稳定的(在0和1之间游荡)。

但是这种现象并不是绝对的,但是我们在实际设计中应当尽量避免这种现象。

同步时钟系统由于是同步的,没有两个异步的触发信号对信号的输入输出干扰,所以亚稳态的几率很小。

异步时钟系统:先举个例子,如下:always @(posedge clk or negedge rst_n)beginif(!rstn)m电路概念。

(电路网上好多),该电路目的:既不解决了同步复位的资源消耗问题,也极大的降低了异步复位的亚稳态风险。

异步复位:当rst_n= 0 时,一个clk的上升沿,输出的rstn_out=0,实现了异步复位功能(当然这在只有一个寄存器的一级缓冲下也能实现),重点在于同步释放环节。

同步释放:当rst_n在clk上升沿后很短的时间内回归1,那么就会造成前一级的亚稳态的出现,其实后一级也出现了,但是如果rst_n被认为任然是0,那么输出也就是0,如果被认为是1,rstn_out接受的是前一级的上一个输出值(还是0),这就是同步释放的由来,完美解决问题。

FPGA

FPGA

FPGA跨时钟域亚稳态研究作者:周伟杜玉晓杨其宇张育俊曾浩来源:《电子世界》2012年第03期【摘要】在FPGA电路设计中,一个系统可能包含了很多跨时钟域的时钟信号,当其目标域时钟与源域时钟不同时,如何在这些不同域之间传递数据成为了一个重要问题。

特别是在中心模块与外围电路芯片的通信设计中,容易导致亚稳态的跨时钟域就不可避免。

针对FPGA设计中的亚稳态问题,本文给出了一系列行之有效的解决方法,很好地抑制亚稳态,提高系统可靠性。

【关键词】亚稳态;建立时间;保持时间;异步FIFO;握手协议1.引言在FPGA同步时序电路设计中,即所有时钟寄存器的时钟共享一个时钟,可以有效地消除亚稳态。

然而,许多实际应用要求在同一个可编程逻辑器件内采用多个时钟,且核心模块与外设的通信设计也涉及跨时钟域的数据传递。

跨时钟的异步时序电路含有的多个时钟源,它们存在频率和相位的差异,当它们用作寄存器的输入时钟时,就可能违背建立时间和保持时间的要求,出现亚稳态[1-5]。

亚稳态问题是跨时钟域异步数据传输过程面临的主要问题。

在FPGA设计中,每种触发器都有时序要求。

“建立时间”(Setup time)是指在时钟沿到来之前,触发器输入信号必须保持稳定的时间。

“保持时间”(Hold time)则是指在时钟沿之后,信号必须保持稳定的时间。

这些指标通常比较保守,以应对不同的PVT(工艺、电压、温度)环境下时序各有差异的情况。

如果一个设计满足了这些时序要求,则触发器出现错误的可能性可以忽略不计。

亚稳态是当信号在跨时钟的异步电路中或是无关的时钟域之间传输时导致数字系统失效的一种现象。

为了使触发器能够正确捕获并输出数据,FPGA的信号传输数据信号都会有一定的时序要求,为了确保可靠的操作,输入寄存器的数据信号必须在时钟沿的某段时间(寄存器的建立时间Tsu)之前保持稳定,并且持续到时钟沿之后的某段时间(寄存器的保持时间Th)之后才能改变。

寄存器的输入反映到输出则需要经过一定的延时(时钟到输出的时间Tco)。

fpga中的亚稳态

fpga中的亚稳态

fpga中的亚稳态FPGA中的亚稳态引言:FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,具备高度灵活性和可重构性。

在FPGA设计中,亚稳态是一个重要概念。

本文将深入探讨FPGA中的亚稳态,包括其定义、形成原因、影响和应对措施等方面。

一、亚稳态的定义亚稳态指的是FPGA中的一种不稳定状态,即在特定条件下,FPGA 中的逻辑电路可能会出现持续摆动的现象,而不是稳定在某个确定的状态。

这种状态不仅会导致逻辑错误,还可能对FPGA系统的可靠性和性能产生负面影响。

二、亚稳态的形成原因亚稳态的形成通常与信号传输延迟、电路噪声和时序限制等因素密切相关。

在FPGA设计中,由于电路中存在不同的时钟域、复杂的逻辑路径以及时序约束等,这些因素可能导致信号到达某个逻辑元件的时间存在微小的差异,从而导致亚稳态的产生。

三、亚稳态的影响亚稳态可能导致FPGA系统在特定条件下产生错误的逻辑输出。

这种错误可能会导致系统的功能异常,甚至严重影响系统的可靠性。

亚稳态还可能导致时序约束的失效、电路的功耗增加以及系统性能的下降等问题。

四、亚稳态的应对措施为了解决亚稳态带来的问题,在FPGA设计中,可以采取以下措施:1. 时序分析和约束优化:通过对电路的时序分析,确定逻辑元件之间的最小延迟,以优化时序约束,减少亚稳态的发生概率。

2. 时钟域划分和同步技术:将FPGA中的电路划分为不同的时钟域,并采用同步技术,确保在不同时钟域之间的数据传输的一致性,减少亚稳态的发生。

3. 噪声抑制和滤波技术:通过合理布局和设计电路,采取噪声抑制和滤波技术,减少外部噪声对FPGA系统的干扰,降低亚稳态的产生。

4. 逻辑优化和仿真验证:对FPGA设计进行逻辑优化,并进行仿真验证,以确保电路的正确性和稳定性,减少亚稳态的出现。

五、结论亚稳态是FPGA设计中需要重视和解决的一个问题。

了解亚稳态的定义、形成原因、影响和应对措施有助于提高FPGA系统的可靠性和性能。

FPGA设计中跨时钟域的问题与方法

FPGA设计中跨时钟域的问题与方法

FPGA设计中跨时钟域的问题与方法作者:王利祥来源:《电子技术与软件工程》2017年第24期摘要随着科学技术的发展,在FPGA设计中多时钟设计是一个经常遇到而且因为功能的需要无法避免问题。

在不同时钟域之间传输数据或者控制信号,如果对其中出现的特殊情况估计不足,将会对设计造成灾难性的后果。

因此,设计人员在设计电路时必须加入相应的同步机制,确保信号在跨时钟域传输时能够可靠进行。

本文从触发器时序理论基础为出发点,分析研究数字化电路设计中跨时钟域传输信号时亚稳态现象产生的原因以及危害,然后分析和研究了解决跨时钟域传输过程中遇到的各种同步技术,分析和比较在不同场合的应用以及各自的优缺点。

【关键词】FPGA 跨时钟域亚稳态FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程期间的基础上进一步发展起来的一种可编程门阵列。

它是作为专用集成电路(ASIC)领用中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程期间门电路数目有限的缺点。

随着计算机硬件以及电子技术飞速发展,FPGA设计中需要用到的逻辑门数目急速增长,其中难免会遇到亚稳态以及电路中存在毛刺的现象,本文在通过深入分析研究,现将在FPGA 设计中经常会遇到和用到的方法进行讲述。

1 应用领域在多时钟设计中,跨时钟域问题总是当数据在时钟的驱动下由一个触发器传送到另一个触发器的时候产生,如图1所示。

2 问题的定义亚稳态、毛刺、多扇出和重新收敛在异步设计中很有可能出现,他们有可能使整个设计进入不稳定状态,甚至最终会引起功能性错误。

亚稳态现象:数字信号通过异步时钟域时,如果时钟信号不能满足触发器的建立时间或保持时间,此时很可能产生亚稳态现象。

毛刺现象:同步逻辑电路中产生毛刺现象主要取决于数字信号传播时延,这些毛刺有可能会被成功锁存,也有可能导致错误脉冲在同步装置中输出。

亚稳态fpga的原理

亚稳态fpga的原理

亚稳态fpga的原理亚稳态FPGA是一种新型的可编程逻辑器件,它采用了亚稳态电路技术,具有高速、低功耗、可重构等优点。

下面将从原理方面介绍亚稳态FPGA的工作原理。

亚稳态FPGA的原理基于亚稳态电路技术,亚稳态电路是指在电路中存在着一些不稳定的状态,这些状态可以被利用来实现一些特殊的功能。

亚稳态FPGA采用了亚稳态电路技术,通过在电路中引入一些亚稳态元件,实现了可编程逻辑功能。

亚稳态FPGA的核心是亚稳态元件,亚稳态元件是指在电路中存在着一些不稳定的状态,这些状态可以被利用来实现一些特殊的功能。

亚稳态元件可以分为两类,一类是基于电容的亚稳态元件,另一类是基于电感的亚稳态元件。

基于电容的亚稳态元件是指在电路中存在着一些不稳定的电容状态,这些状态可以被利用来实现一些特殊的功能。

基于电容的亚稳态元件可以分为两类,一类是基于电容的亚稳态存储器,另一类是基于电容的亚稳态逻辑门。

基于电感的亚稳态元件是指在电路中存在着一些不稳定的电感状态,这些状态可以被利用来实现一些特殊的功能。

基于电感的亚稳态元件可以分为两类,一类是基于电感的亚稳态存储器,另一类是基于电感的亚稳态逻辑门。

亚稳态FPGA的工作原理是通过在电路中引入一些亚稳态元件,实现可编程逻辑功能。

亚稳态FPGA的电路结构类似于传统的FPGA,但是亚稳态FPGA的电路中引入了一些亚稳态元件,这些元件可以实现一些特殊的功能。

亚稳态FPGA的优点是具有高速、低功耗、可重构等优点。

亚稳态FPGA的高速是由于亚稳态元件的特殊性质,亚稳态元件可以实现高速的逻辑运算。

亚稳态FPGA的低功耗是由于亚稳态元件的低功耗特性,亚稳态元件可以实现低功耗的逻辑运算。

亚稳态FPGA的可重构性是由于亚稳态元件的可编程性,亚稳态元件可以实现可编程的逻辑功能。

总之,亚稳态FPGA是一种新型的可编程逻辑器件,它采用了亚稳态电路技术,具有高速、低功耗、可重构等优点。

亚稳态FPGA的原理是通过在电路中引入一些亚稳态元件,实现可编程逻辑功能。

FPGA跨时钟域亚稳态研究

FPGA跨时钟域亚稳态研究

FPGA跨时钟域亚稳态研究【摘要】在FPGA电路设计中,一个系统可能包含了很多跨时钟域的时钟信号,当其目标域时钟与源域时钟不同时,如何在这些不同域之间传递数据成为了一个重要问题。

特别是在中心模块与外围电路芯片的通信设计中,容易导致亚稳态的跨时钟域就不可避免。

针对FPGA设计中的亚稳态问题,本文给出了一系列行之有效的解决方法,很好地抑制亚稳态,提高系统可靠性。

【关键词】亚稳态;建立时间;保持时间;异步FIFO;握手协议1.引言在FPGA同步时序电路设计中,即所有时钟寄存器的时钟共享一个时钟,可以有效地消除亚稳态。

然而,许多实际应用要求在同一个可编程逻辑器件内采用多个时钟,且核心模块与外设的通信设计也涉及跨时钟域的数据传递。

跨时钟的异步时序电路含有的多个时钟源,它们存在频率和相位的差异,当它们用作寄存器的输入时钟时,就可能违背建立时间和保持时间的要求,出现亚稳态[1-5]。

亚稳态问题是跨时钟域异步数据传输过程面临的主要问题。

在FPGA设计中,每种触发器都有时序要求。

“建立时间”(Setup time)是指在时钟沿到来之前,触发器输入信号必须保持稳定的时间。

”保持时间”(Hold time)则是指在时钟沿之后,信号必须保持稳定的时间。

这些指标通常比较保守,以应对不同的PVT(工艺、电压、温度)环境下时序各有差异的情况。

如果一个设计满足了这些时序要求,则触发器出现错误的可能性可以忽略不计。

亚稳态是当信号在跨时钟的异步电路中或是无关的时钟域之间传输时导致数字系统失效的一种现象。

为了使触发器能够正确捕获并输出数据,FPGA的信号传输数据信号都会有一定的时序要求,为了确保可靠的操作,输入寄存器的数据信号必须在时钟沿的某段时间(寄存器的建立时间Tsu)之前保持稳定,并且持续到时钟沿之后的某段时间(寄存器的保持时间Th)之后才能改变。

寄存器的输入反映到输出则需要经过一定的延时(时钟到输出的时间Tco)。

如果数据信号的变化违反了Tsu和Th的要求,那么寄存器的输出就会处于亚稳态[6]。

跨时钟域问题处理

跨时钟域问题处理

跨时钟域问题处理在FPGA设计中,不太可能只⽤到⼀个时钟。

因此跨时钟域的信号处理问题是我们需要经常⾯对的。

跨时钟域信号如果不处理的话会导致2个问题:(1) 若⾼频率时钟区域输出⼀个脉冲信号给低频率时钟区域,则该脉冲很有可能⽆法被采样到,⽰意图如下,clk2根本采样不到pulse,但是从原理上来说,低频时钟是⽆法完全去采样⾼频信号的,这⾥⾯⼀定会丢失信息。

这是⽆法避免的。

(2) 亚稳态问题在说明亚稳态之前,我们需要先了解什么是建⽴时间和保持时间建⽴时间:在时钟沿到来前,被采样信号应该提前⼀段时间就进⼊稳定状态,这个时间称为建⽴时间保持时间:在时钟沿到来后,被采样的信号应该保持稳定⼀段时间,这个时间称为保持时间⽽亚稳态就是建⽴时间和保持时间不满⾜导致的。

如下图所⽰,就是建⽴时间不满⾜,造成dout是个不确定值,即亚稳态。

很多新⼈以为亚稳态仅仅是逻辑上的障碍,其实亚稳态是实实在在的电路上的问题。

模拟电路中,三极管主要⼯作在其放⼤区间,⽽在数字电路却是要⼯作在截⾄态。

亚稳态⾮常类似模拟电路中的放⼤态,这个状态将使得器件的输出电流被放⼤,如果这个状态被传递,那么将导致更多的电路处在放⼤电路的⼯作状态中,这将引起巨⼤的电流和功耗,甚⾄烧毁芯⽚,所以,跨时钟域是⼀定会出现亚稳态的,但是我们必须要把亚稳态控制在⼀个很⼩的范围内。

这就是为什么要在其后⾯再⽤⼀个寄存器的原因。

它的功能就是把亚稳态仅仅限制在那⼀个寄存器的⼩区域。

亚稳态会造成严重的后果。

就像将军发命令⼀样,若其发出的是⼀个亚稳态的命令,⼠兵A可能判定这个命令为进攻,⼠兵B可能判定这个命令为撤退,这将引起极⼤的混乱。

解决⽅案:1,握⼿操作(⾼频信号要进⼊低频时钟域)针对问题1中所描述的情况,即快时钟域传递⼀个脉冲信号到慢时钟域,慢时钟域很有可能采样不到该脉冲。

这时就需要采⽤握⼿操作来解决了。

⾸先,快时钟域应该将脉冲信号转换为⼀个持续信号,慢时钟域采样到该持续信号后,返回⼀个反馈信号,告知块时钟域将持续信号拉低。

认识FPGA触发器的亚稳态

认识FPGA触发器的亚稳态

认识FPGA触发器的亚稳态认识FPGA触发器的亚稳态边沿型触发器的输出有两个稳定状态: ⾼电平或者低电平。

为保证可靠操作, 必须要满⾜触发器的时序要求,也就是我们熟知的建⽴时间和保持时间。

如果输⼊信号违反了触发器的时序要求, 那么触发器的输出信号就有可能会出现⾮法状态---亚稳态。

亚稳态是⼀种不稳定状态,在⼀定时间后, 最终返回到两个稳定状态之⼀。

亚稳态输出的信号是什么样⼦的? 对于系统有什么危害? 如果降低亚稳态带来的危害? 这是下⾯要探讨的问题。

[⽂中有⼏张图⽚对于了解本⽂很关键,如果不能显⽰,请参考博客相册中topic2.png]亚稳态的特点:1.增加触发器进⼊稳定状态的时间。

亚稳态的坏处之⼀是会导致触发器的TCO时间⽐正常情况要⼤。

多出来的时间tR (resolution time) 就是亚稳态持续的时间,参考图1。

如果触发器的时序要求tSU(建⽴时间)和tH(保持时间)被满⾜,那么触发器的延时TCO=tCO_norm; 否则如果违反了触发器的时序要求,那么触发器在经过tCO_norm时间后,进⼊亚稳态,亚稳态持续的时间叫做resolution time,标识为tR。

tR 过后,亚稳态返回到两个稳定状态之⼀。

数据的跳变距离触发器的采样时刻越近,tR就越⼤。

这种关系参见图2.器件制造商给出的tSU和tH指标都是有余量的。

轻微的违反tSU或者tH并不会发⽣亚稳态,只是导致触发器的tCO超出器件的规范(spec)。

只有当数据的跳变出现在亚稳态捕捉窗⼝W (见图2中的W,fs级别的时间窗⼝),才会发⽣亚稳态。

总的来说,数据的跳变越靠近W窗⼝,触发器进⼊稳定态的时间就越长。

在同步设计中,源触发器(Source FlipFlop)的输出必须在⼀个时钟周期内稳定下来,才能够被⽬的触发器(Destination FlipFlop)准确采样。

如果tR过⼤,可能让⽬的寄存器采样到亚稳态,会导致亚稳态的传播。

FPGA中的亚稳态问题

FPGA中的亚稳态问题

1. 应用背景1.1 亚稳态发生原因在FPGA系统中,如果数据传输中不满足触发器的T su和T h不满足,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间(recovery time)不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D的值。

这段时间称为决断时间(resolu tion time)。

经过resolution time之后Q端将稳定到0或1上,但是稳定到0或者1,是随机的,与输入没有必然的关系。

1.2 亚稳态发生场合只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。

1.3 亚稳态危害由于产生亚稳态后,寄存器Q端输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值。

在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱。

在复位电路中产生亚稳态可能会导致复位失败。

怎么降低亚稳态发生的概率成了FPGA设计需要重视的一个注意事项。

2. 理论分析2.1 信号传输中的亚稳态在同步系统中,输入信号总是系统时钟同步,能够达到寄存器的时序要求,所以亚稳态不会发生。

亚稳态问题通常发生在一些跨时钟域信号传输以及异步信号采集上。

它们发生的原因如下:(1)在跨时钟域信号传输时,由于源寄存器时钟和目的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的目的寄存器,所以无法保证满足目的寄存器Tsu和Th的要求;(2)在异步信号采集中,由于异步信号可以在任意时间点到达目的寄存器,所以也无法保证满足目的寄存器Tsu和Th的要求;当数据在目的寄存器Tsu-Th时间窗口发生变化,也即当数据的建立时间或者保持时间不满足时,就可能发生亚稳态现象。

FPGA亚稳态和毛刺小结

FPGA亚稳态和毛刺小结

FPGA亚稳态和毛刺小结1首先介绍一下建立时间和保持时间的基本概念:1.1建立时间和保持时间:图1.1tsh:建立时间,th:保持时间建立时间:是指时钟触发器上升沿到来之前,数据稳定不变的时间。

如果建立时间不够,则数据不能在这个时钟进入触发器。

保持时间:是指时钟触发器上升沿到来之后,数据保持不变的时间。

如果保持时间不够,则数据同样不能被打入触发器。

由于PCB走线时,存在分布电感和电容,所以几纳秒的毛刺将被自然滤除,而在PLD内部决无分布电感和电容,所以在PLD/FPGA设计中,竞争和冒险问题将变的较为突出。

2关于毛刺的基本概念:信号在FPGA内通过连线和逻辑单元时,都会产生延时。

延时产生的原因:①:连线的长短和逻辑单元的数目,②:受器件的制造工艺、工作电压、温度等条件的影响,所以在信号变化的瞬间,组合逻辑的输出有先后顺序,往往会产生一些尖峰的信号,这些信号称为毛刺。

如果有毛刺,该电路称为冒险电路。

只由内部电路决定。

看下面的例子:我们可以看到,A,B,C,D四个输入信号,最后导致输出出现毛刺。

原因是A,B,C,D信号输入不是同时发生。

(即使同时发生,它们各自由于连线和逻辑单元的原因,到达门电路的时间也不同。

)所以可以说,只要输入信号同时发生变化,由于走线的原因,必将产生毛刺。

所以我们不能直接将其输出,要进行一些措施。

方法一:格雷码代替二进制计数器,由于格雷码每次只有一位进行变化,不满足产生毛刺的条件。

所以可以减小错误方法二:另一种更常见的方法是利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号,这种方法类似于将异步电路转化为同步电路。

如图:由于异步输入不是总能满足所馈送的触发器满足建立时间和保持时间,所以常常会产生亚稳态。

3关于亚稳态知识的基本概念图1.2:采用一个时钟同步下的模型其中:tco为触发器数据输出延时;T delay=T comb 为经过组合逻辑的延时;Tsetup(tsu)为建立时间;Tpd为时钟延时,一般时钟延时可以忽略。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的跨时钟域信号处理——亚稳态在特权的上篇博文《基于FPGA的跨时钟域信号处理——专用握手信号》中提出了使用专门的握手信号达到异步时钟域数据的可靠传输。

列举了一个简单的由请求信号req、数据信号data、应答信号ack组成的简单握手机制。

riple兄更是提出了req和ack这两个直接的跨时钟域信号在被另一个时钟域的寄存器同步时的亚稳态问题。

这个问题估计是整个异步通信中最值得探讨和关注的。

很幸运,特权同学找到了很官方的说法——《ApplicationNote42:Metastability in Altera Devices》,一口气读完全文,有一个单词送给这篇文章很合适——“nice”。

特权同学过去的所有疑惑都在文章中找到了答案,尽管altera在文章的最后只是竭尽全力的在吹捧自己的好。

如果你E文还不错(该不会比我这个4次都没过掉4级考试的家伙差吧,~_~),那么去享受原文吧。

或者你可以考虑看看特权同学的翻译水平,哈哈……什么是亚稳态?所有数字器件(例如FPGA)的信号传输都会有一定的时序要求,从而保证每个寄存器将捕获的输入信号正确输出。

为了确保可靠的操作,输入寄存器的信号必须在时钟沿的某段时间(寄存器的建立时间Tsu)之前保持稳定,并且持续到时钟沿之后的某段时间(寄存器的保持时间Th)之后才能改变。

而该寄存器的输入反映到输出则需要经过一定的延时(时钟到输出的时间Tco)。

如果数据信号的变化违反了Tsu后者Th的要求,那么寄存器的输出就会处于亚稳态。

此时,寄存器的输出会在高电平1和低电平0之间盘旋一段时间,这也意味着寄存器的输出达到一个稳定的高或者低电平的状态所需要的时间会大于Tco。

在同步系统中,输入信号总是能够达到寄存器的时序要求,所以亚稳态不会发生。

亚稳态问题通常发生在一些跨时钟域信号的传输上。

由于数据信号可能在任何时间到达异步时钟域的目的寄存器,所以设计者无法保证满足Tsu和Th的要求。

然而,并非所有违反寄存器的Tsu或Th要求的信号会导致输出亚稳态。

某个寄存器进入了亚稳态后重新回到稳定状态的时间取决于器件的制造工艺及工作环境。

在大多数情况下,寄存器将会快速的返回稳定状态。

寄存器在时钟沿采样数据信号好比一个球从小山的一侧抛到另一侧。

如图1所示,小山的两侧代表数据的稳定状态——旧的数据值或者新的数据值;山顶代表亚稳态。

如果球被抛到山顶上,它可能会停在山顶上,但实际上它只要稍微有些动静就会滚落到山底。

在一定时间内,球滚的越远,它达到稳定状态的时间也就越短。

如果数据信号的变化发生在时钟沿的某段时间之后(Th),就好像球跌落到了小山的“old data value”一侧,输出信号仍然保持时钟变化前的值不变。

如果数据信号的变化发生在时钟沿的某段时间(Tsu)之前,并且持续到时钟沿之后的某段时间(Th)都不再变化,那就好像球跌落到了小山的“new data value”一侧,输出数据达到稳定状态的时间为Tco。

然而,当一个寄存器的输入数据违反了Tsu或者Th,就像球被抛到了山顶。

如果球在山顶停留的越久,那么它到达山底的时间也就越长,这就相应的延长了从时钟变化到输出数据达到稳定状态的时间(Tco)。

图1图2很好的阐释了亚稳态信号。

在时钟变化的同时,寄存器的输入数据信号也处于从低电平到高电平的变化状态,这就违反了寄存器的Tsu要求。

图中的输出信号从低电平变化到亚稳态,即盘旋于高低电平之间的一个状态。

信号输出A 最终达到输入信号的新状态值1,信号输出B却返回了输入信号的旧状态值0。

在这两种情况下,信号输出变化稳定在固定的1或者0状态的时间远超过了寄存器的固有Tco。

图2如果输出信号在下一个寄存器捕获数据前(下一个时钟锁存沿的Tsu时间前)处于一个稳定的有效状态,那么亚稳态信号不会对该系统照成影响。

但是如果亚稳态信号在下一个寄存器捕获数据时仍然盘旋于高或者低电平之间,那将会对系统的后续电路产生影响。

继续讨论球和小山的比喻,当球到达山底的时间(处于稳定的逻辑值0或1)超过了扣除寄存器Tco以外的余量时间,那么问题就随着而来。

同步寄存器当信号变化处于一个不相关的电路或者以不时钟域,它在被使用前就需要先被同步到新的时钟域中。

新的时钟域中的第一个寄存器将扮演同步寄存器的角色。

为了尽可能减少异步信号传输中由于亚稳态引发的问题,设计者通常在目的时钟域中使用一串连续的寄存器(同步寄存器链或者同步装置)将信号同步到新的时钟域中。

这些寄存器有额外的时间用于信号在被使用前从亚稳态达到稳定值。

同步寄存器到寄存器路径的时序余量,也就是亚稳态信号达到稳定的最大时间,也被认为是亚稳态持续时间。

同步寄存器链,或者同步装置,被定义为一串达到以下要求的连续寄存器:■链中的寄存器都由相同的时钟或者相位相关的时钟触发;■链中的第一个寄存器由不相关时钟域或者是异步的时钟来触发;■每个寄存器的扇出值都为1,链中的最后一个寄存器可以例外。

同步寄存器链的长度就是达到以上要求的同步时钟域的寄存器数量,图3是一个两级的同步寄存器链,图3传输在不相关时钟域的信号,都有可能在相对于捕获寄存器时钟沿的任何时间点变化。

因此,设计者无法预测信号变化的顺序或者说信号两次变化间经过了几个锁存时钟周期。

例如,一条异步总线的各个数据信号可能在不同的时钟沿变化,结果接收到的数据值可能是错误的。

设计者必须考虑到电路的这些情况,而使用双时钟FIFO(DCFIFO)传输信号或者使用握手信号进行控制。

FIFO使用同步装置处理来自不同时钟域的控制信号,数据的读写使用两套独立的总线。

此外,如果异步信号作为两个时钟域的握手逻辑,这些控制信号就需要用于指示何时数据信号可以被接收时钟域锁存。

如此一来,就可以利用同步寄存器确保亚稳态不会影响控制信号的传输,从而保证数据在使用前有充足的时间等待亚稳态达到稳定。

文章其实还没有结束,只不过altera在后面很官方的提出了所谓的MTBF (mean time between failures)的概念,即所谓的平均无故障时间的概念。

列了个公式,分析了各个参数,当然也不忘提他们的器件参数对于这个MTBF做了多大的贡献。

然后也提出了它们是如何进行该公式参数的推导。

我们还是回到主题,在明确了这些基本的概念和基本的方法后,就要学以致用。

在上篇博文没有解决的一个关键问题在于如何最有效的进行握手信号req、ack的采样。

这个问题我们可以先以altera提出的MTBF推导公式的各个参数入手分析。

在这个公式中,Tmet就是指寄存器从时钟上升沿触发后的时序余量时间,Fclk是接收时钟域的时钟频率,Fdata是数据的变化频率,而C1、C2则是与器件有关的参数,对于用户是一个固定值。

由此看来,设计者只能通过改变Tmet、Fclk、Fdata来提高MTBF值。

MTBF值越大,说明出现亚稳态的几率越小。

要增大MTBF值,可以延长Tmet、也可以降低Fclk和Fdata这两个频率。

首先我们看看如何延长Tmet时间。

Tmet时间 = 采样时钟周期时间–输出信号正常的Tco时间 - 数据到达下一级寄存器的输入端口的其它延时时间Tdata - 下一级寄存器Tsu时间。

图4从严格意义上来说,Tmet时间还应该加上时钟网络延时时间(Tclk2-Tclk1)。

总之,这个Tmet时间是指正常没有亚稳态情况下,寄存器输出信号从源寄存器到目的寄存器的建立时间余量。

由于决定Tmet取值的参数中Tco和Tsu都是由FPGA器件本身的工艺以及工作环境决定的,设置时钟网络延时参数也很大程度上由器件决定,所以,如果在时钟频率Fclk和数据变化率Fdata固定的情况下,要增大Tmet值,那么设计者要做的只能是减小Tdata值。

而这个Tdata是指两个寄存器间的逻辑延时以及走线延时之和,要最大程度的减小它,估计也只能是不在连个寄存器间添加任何逻辑而已,正如我们的实例中也只有简单的input=output。

再看Fclk,它是接收域的采样时钟,就是异步信号需要被同步到的那个时钟域,它的频率是越小越好。

当然了,事物都其两面性,这个频率小到影响系统正常工作可就不行了。

设计者需要从各个方面考虑来决定这个频率,不会仅仅为了降低亚稳态发生的概率而无限制的降低系统的时钟频率。

如此分析,发现这个Fclk基本也是一个比较固定的值,不是可以随便说降就降的。

降低Fclk其实也就是在增大Tmet时间,因为它是Tmet公式计算中的被减数,哈哈,好像是一环扣一环。

另外,在不降低采样频率Fclk的情况下,通过使用使能信号的方式得到一个二分频时钟去采样信号也可以达到降频的目的,只不过这样会多耗费几个时钟周期用于同步,但是有时也能够明显改善性能。

特权同学的二分频采样思路如图5所示,前两级采样电路都做了2分频,然后第三级使用原来时钟进行采样。

它的好处在于给第一级和第二级同步寄存器更多的Tmet时间,将亚稳态抑制在第二级寄存器输入之前,从而保证第三级寄存器的可靠采样。

虽然它在一、二级寄存器的输入端增加了一些逻辑,可能会增大Tdata,但是相比于这个采样时钟的一半将额,它的变化是可以忽略不计的。

图5另一种办法是在不降低每级寄存器的采样频率的情况下采用更多的同步寄存器,尽量去使用后级的寄存器,这也是一个笨办法。

Altera的笔记里打了一个比喻,如果一个设计你使用了9级的同步寄存器,那么MTBF是100年,而当你使用了10级的同步寄存器,那么MTBF是1000年。

这个办法其实有点类似冗余,这是所有人都知道的可以提高可靠性的原始办法。

这种思路的弊端和前面提到的方法一样,需要付出多个时钟周期为代价。

最后看这个Fdata,这个是发送时钟域的数据变化率,似乎也是由系统决定的,设计者也无法做太多改变。

其实对于一般的应用,如果系统的时钟频率不太高,器件的特性还算可以(只是一些泛泛的说法,具体问题要具体分析),特权同学觉得上篇博文提出的握手信号同步方法就足以应付亚稳态问题。

如果到高频范畴来讨论亚稳态,那将会是一项更有挑战性的任务,只可惜特权同学目前接触的最高频也只不过100MHz而已。

特权同学自觉才疏学浅,班门弄斧了。

无独有偶,特权同学这篇博文即将收官之际,无意中看到船长的博客中《理解FPGAs中的亚稳态》一文也涉及到了altera的这篇笔记,也做了一下翻译,似乎比特权同学翻译的好。

不过在此做个声明,特权同学的博文一贯坚持原创,即便参考其它资料,也大都有所提及,并且有自己的评论和思考,这应该是每位电子工程师应该有的严谨和认真的态度。

相关文档
最新文档