理解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跨时钟域亚稳态研究

有时序要求 。 “ 建立时 间” ( e u 和 复杂 化 ,只 要系 统 中存 在跨 时钟 产 生亚 稳 态 ,此 时 触发 器 输 出端 Q Stp
tm )是指在时钟沿到来之前 ,触发 域 ,亚稳态就是无法避免的,因此设 在有 效 时钟 沿之后 较长 时间处于 不 ie
器输 入信号 必须保 持稳 定 的时间 。 计 的电路首先要减少亚稳态导致错误 确定状态 ,在这段时间 内Q 端产生毛 “ 保持时间 ” (o d t m )则是指 的发生,其次要使系统对产生的错误 刺并 不断振 荡 ,最 终 固定在某一 个 H l ie
即所有时钟寄存器 的时钟共享一个时 的建立 时间T U S )之 前保 持 稳 定 ,
2 2亚稳态分析 . 跨 时钟异 步输入信 号可 以在任
并且 持续 到时钟沿 之后 的某段 时 间
( 寄存 器 的保 持 时间T )之后 才 能 何 时间 点翻转 ,它与下 级 同步采样 h
辑器件 内采用多个时钟,且核心模块 改变 。寄存器 的输 入反 映到输 出则 信 号没有 必然联 系 。此 外 ,在 数据
在 时钟 沿之 后 ,信 号必 须保 持稳定 不敏感。前者要靠 同步来实现 ,而后 值 ,这 个值 不一定 等于 原来数据 输 的 时间 。这 些指标 通常 比较保 守 , 度 )环 境下 时序各 有差异 的情 况 。 如果一个设计满足 了这些 时序要求 , 则 触发器 出现 错误 的可是一 个不 e i
F G 设计 中,要 减少亚稳 态导 正确 定 的稳 态值 。也就 是说这 种处 PA
定状态 ,就会导致系统混乱 。
致 的错误 并使系 统对产 生 的错 误不 理方 法不 能排 除采 样错 误 的产 生 。
亚 稳态 的危害 主要是 破坏 系统 敏感 ,就要 正确 定义和处 理F G 内 P A 这 时就要 求所 设计 的系 统对采 样错

FPGA工程师面试试题

FPGA工程师面试试题

FPGA工程师面试试题FPGA工程师面试试题001、同步电路和异步电路的区别是什么?(仕兰微电子)2、什么是同步逻辑和异步逻辑?(汉王笔试)同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.3、什么是线与逻辑是两个输出信号相连可以实现与的功能.在硬件上,要用oc门来实现,由于不用 oc门可能使灌电流过大,而烧坏逻辑门. 同时在输出端口应加一个上拉电阻.4、什么是Setup 和Holdup时间?(汉王笔试)5、setup和holdup时间,区别.(南山之桥)6、解释setup time和hold time的定义和在时钟信号延迟时的变化.(未知)7、解释setup和hold time violation,画图说明,并说明解决办法.(威盛VIA2003.11.06 上海笔试试题)Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求.建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间.输入信号应提前时钟上升沿(如上升沿有效)T 时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器. 保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间.如果hold time 不够,数据同样不能被打入触发器.建立时间 (Setup Time)和保持时间(Hold time).建立时间是指在时钟边沿前,数据信号需要保持不变的时间.保持时间是指时钟跳变边沿后数据信号需要保持不变的时间.如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现 metastability的情况.如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量.8、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除.(仕兰微电子)9、什么是竞争与冒险现象?怎样判断?如何消除?(汉王笔试)在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争.产生毛刺叫冒险.如果布尔式中有相反的信号则可能产生竞争和冒险现象.解决方法:一是添加布尔式的消去项,二是在芯片外部加电容.10、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?(汉王笔试)常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V 的.CMOS输出接到TTL是可以直接互连.TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V.11、如何解决亚稳态.(飞利浦-大唐笔试)亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态.当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上.在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去.12、IC设计中同步复位与异步复位的区别.(南山之桥)13、MOORE 与 MEELEY状态机的特征.(南山之桥)14、多时域设计中,如何处理信号跨时域.(南山之桥)15、给了reg的setup,hold时间,求中间组合逻辑的delay范围.(飞利浦-大唐笔试)Delay16、时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min.组合逻辑电路最大延迟为T2max,最小为T2min.问,触发器D2的建立时间T3和保持时间应满足什么条件.(华为)17、给出某个一般时序电路的图,有Tsetup,Tdelay,Tck->q,还有 clock的delay,写出决定最大时钟的因素,同时给出表达式.(威盛VIA 2003.11.06 上海笔试试题)18、说说静态、动态时序模拟的优缺点.(威盛VIA2003.11.06 上海笔试试题)19、一个四级的Mux,其中第二级信号为关键信号如何改善timing.(威盛VIA2003.11.06 上海笔试试题)20、给出一个门级的图,又给了各个门的传输延时,问关键路径是什么,还问给出输入, 使得输出依赖于关键路径.(未知)21、逻辑方面数字电路的卡诺图化简,时序(同步异步差异),触发器有几种(区别,优点),全加器等等.(未知)22、卡诺图写出逻辑表达使.(威盛VIA 2003.11.06 上海笔试试题)23、化简F(A,B,C,D)= m(1,3,4,5,10,11,12,13,14,15)的和.(威盛)24、please show the CMOS inverter schmatic,layout and its cross sectionwith P-well process.Plot its transfer curve (Vout-Vin) And also explain theoperation region of PMOS and NMOS for each segment of the transfer curve? (威盛笔试题circuit design-beijing-03.11.09)25、To design a CMOS invertor with balance rise and fall time,please definethe ration of channel width of PMOS and NMOS and explain?26、为什么一个标准的倒相器中P管的宽长比要比N管的宽长比大?(仕兰微电子)27、用mos管搭出一个二输入与非门.(扬智电子笔试)28、please draw the transistor level schematic of a cmos 2 input AND gate andexplain which input has faster response for output rising edge.(less delaytime).(威盛笔试题circuit design-beijing-03.11.09)29、画出NOT,NAND,NOR的符号,真值表,还有transistor level的电路.(Infineon笔试)30、画出CMOS的图,画出tow-to-one mux gate.(威盛VIA 2003.11.06 上海笔试试题)31、用一个二选一mux和一个inv实现异或.(飞利浦-大唐笔试)32、画出Y=A*B+C的cmos电路图.(科广试题)33、用逻辑们和cmos电路实现ab+cd.(飞利浦-大唐笔试)34、画出CMOS电路的晶体管级电路图,实现Y=A*B+C(D+E).(仕兰微电子)35、利用4选1实现F(x,y,z)=xz+yz’.(未知)36、给一个表达式f=xxxx+xxxx+xxxxx+xxxx用最少数量的与非门实现(实际上就是化简).37、给出一个简单的由多个NOT,NAND,NOR组成的原理图,根据输入波形画出各点波形. (Infineon笔试)38、为了实现逻辑(A XOR B)OR (C AND D),请选用以下逻辑中的一种,并说明为什么?1)INV 2)AND 3)OR 4)NAND 5)NOR 6)XOR 答案:NAND(未知)39、用与非门等设计全加法器.(华为)40、给出两个门电路让你分析异同.(华为)41、用简单电路实现,当A为输入时,输出B波形为…(仕兰微电子)42、A,B,C,D,E进行投票,多数服从少数,输出是F(也就是如果A,B,C,D,E中1的个数比0 多,那么F输出为1,否则F为0),用与非门实现,输入数目没有限制.(未知)43、用波形表示D触发器的功能.(扬智电子笔试)44、用传输门和倒向器搭一个边沿触发器.(扬智电子笔试)45、用逻辑们画出D触发器.(威盛VIA 2003.11.06 上海笔试试题)46、画出DFF的结构图,用verilog实现之.(威盛)47、画出一种CMOS的D锁存器的电路图和版图.(未知)48、D触发器和D锁存器的区别.(新太硬件面试)49、简述latch和filp-flop的异同.(未知)50、LATCH和DFF的概念和区别.(未知)51、latch与register的区别,为什么现在多用register.行为级描述中latch如何产生的. (南山之桥)52、用D触发器做个二分颦的电路.又问什么是状态图.(华为)53、请画出用D触发器实现2倍分频的逻辑电路?(汉王笔试)54、怎样用D触发器、与或非门组成二分频电路?(东信笔试)55、How many flip-flop circuits are needed to divide by 16? (Intel) 16分频?56、用filp-flop和logic-gate设计一个1位加法器,输入carryin和current-stage,输出 carryout和next-stage. (未知)57、用D触发器做个4进制的计数.(华为)58、实现N位Johnson Counter,N=5.(南山之桥)59、用你熟悉的设计方式设计一个可预置初值的7进制循环计数器,15进制的呢?(仕兰微电子)60、数字电路设计当然必问Verilog/VHDL,如设计计数器.(未知)61、BLOCKING NONBLOCKING 赋值的区别.(南山之桥)62、写异步D触发器的verilog module.(扬智电子笔试)module dff8(clk , reset, d, q);input clk;input reset;input [7:0] d;output [7:0] q;reg [7:0] q;always @ (posedge clk or posedge reset)if(reset)qelseqendmodule63、用D触发器实现2倍分频的Verilog描述? (汉王笔试) module divide2( clk , clk_o, reset);input clk , reset;output clk_o;wire in;reg out ;always @ ( posedge clk or posedge reset)if ( reset)outelseoutassign in = ~out;assign clk_o = out;endmodule64、可编程逻辑器件在现代电子设计中越来越重要,请问:a) 你所知道的可编程逻辑器件有哪些? b) 试用VHDL或VERILOG、ABLE描述8位D触发器逻辑.(汉王笔试)PAL,PLD,CPLD,FPGA.module dff8(clk , reset, d, q);input clk;input reset;input d;output q;reg q;always @ (posedge clk or posedge reset)if(reset)qelseqendmodule65、请用HDL描述四位的全加法器、5分频电路.(仕兰微电子)66、用VERILOG或VHDL写一段代码,实现10进制计数器.(未知)67、用VERILOG或VHDL写一段代码,实现消除一个glitch.(未知)68、一个状态机的题目用verilog实现(不过这个状态机画的实在比较差,很容易误解的).(威盛VIA 2003.11.06 上海笔试试题)69、描述一个交通信号灯的设计.(仕兰微电子)70、画状态机,接受1,2,5分钱的卖报机,每份报纸5分钱.(扬智电子笔试)71、设计一个自动售货机系统,卖soda水的,只能投进三种硬币,要正确的找回钱数. (1)画出fsm(有限状态机);(2)用verilog编程,语法要符合fpga设计的要求.(未知)72、设计一个自动饮料售卖机,饮料10分钱,硬币有5分和10分两种,并考虑找零:(1) 画出fsm(有限状态机);(2)用verilog编程,语法要符合fpga设计的要求;(3)设计工程中可使用的工具及设计大致过程.(未知)73、画出可以检测10010串的状态图,并verilog实现之.(威盛)74、用FSM实现101101的序列检测模块.(南山之桥)a为输入端,b为输出端,如果a连续输入为1101则b输出为1,否则为0.例如a: [***********]0110b: [***********]0000请画出state machine;请用RTL描述其state machine.(未知)75、用verilog/vddl检测stream中的特定字符串(分状态用状态机写).(飞利浦-大唐笔试)76、用verilog/vhdl写一个fifo控制器(包括空,满,半满信号).(飞利浦-大唐笔试)77、现有一用户需要一种集成电路产品,要求该产品能够实现如下功能:y=lnx,其中,x为4位二进制整数输入信号.y为二进制小数输出,要求保留两位小数.电源电压为3~5v假设公司接到该项目后,交由你来负责该产品的设计,试讨论该产品的设计全程.(仕兰微电子)78、sram,falsh memory,及dram的区别?(新太硬件面试)79、给出单管DRAM的原理图(西电版《数字电子技术基础》杨颂华、冯毛官205页图9-14b),问你有什么办法提高refresh time,总共有5个问题,记不起来了.(降低温度,增大电容存储容量)(Infineon笔试)80、Please draw schematic of a mon SRAM cell with 6 transistors,point outwhich nodes can store data and which node is word line control? (威盛笔试题circuit design-beijing-03.11.09)81、名词:sram,ssram,sdram名词IRQ,BIOS,USB,VHDL,SDRIRQ: Interrupt ReQuestBIOS: Basic Input Output SystemUSB: Universal Serial BusVHDL: VHIC Hardware Description LanguageSDR: Single Data Rate压控振荡器的英文缩写(VCO).动态随机存储器的英文缩写(DRAM).名词解释,无聊的外文缩写罢了,比如PCI、ECC、DDR、interrupt、pipeline、IRQ,BIOS,USB,VHDL,VLSI VCO(压控振荡器) RAM (动态随机存储器),FIR IIR DFT(离散傅立叶变换)或者是中文的,比如:a.量化误差 b.直方图 c.白平FPGA工程师面试试题011 什么是Setup 和Holdup时间?2 什么是竞争与冒险现象?怎样判断?如何消除?3 用D触发器实现2倍分频的逻辑电路? .......4 什么是5 什么是同步逻辑和异步逻辑?6 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。

关于FPGA设计中多时钟域和异步信号处理有关的问题

关于FPGA设计中多时钟域和异步信号处理有关的问题

有一个有趣的现象,众多数字设计特别是与FPGA设计相关的教科书都特别强调整个设计最好采用唯一的时钟域。

换句话说,只有一个独立的网络可以驱动一个设计中所有触发器的时钟端口。

虽然这样可以简化时序分析以及减少很多与多时钟域有关的问题,但是由于FPGA外各种系统限制,只使用一个时钟常常又不现实。

FPGA时常需要在两个不同时钟频率系统之间交换数据,在系统之间通过多I/O接口接收和发送数据,处理异步信号,以及为带门控时钟的低功耗ASIC进行原型验证。

本章讨论一下在FPGA设计中多时钟域和异步信号处理有关的问题和解决方案,并提供实践指导。

这里以及后面章节提到的时钟域,是指一组逻辑,这组逻辑中的所有同步单元(触发器、同步RAM块以及流水乘法器等)都使用同一个网络作为时钟。

假如设计中所有的触发器都使用一个全局网络,比如FPGA的主时钟输入,那么我们说这个设计只有一个时钟域。

假如设计有两个输入时钟,如图1所示,一个时钟给接口1使用,另一给接口2使用,那么我们说这个设计中有两个时钟域。

图1:双时钟域设计平时我们在设计中遇到的门控时钟、衍生时钟以及事件驱动的触发器都可归为时钟域类别。

如图2所示,通过一个简单门控时钟创建了一个新的时钟域。

我们知道,这类时钟控制在FPGA设计中并不被推崇(可以使用时钟使能替代时钟门控),然而它却非常有利于我们理解时钟域这一概念。

本章我们将着重详细讨论以下主题:•两个不同时钟域之间传输信号。

•亚稳态的产生以及对设计的可靠性的影响•通过相位控制避免亚稳态•在时钟域之间传输单个信号,将信号打两拍•使用FIFO在时钟域之间传输多位数据•使用分区同步器模块提高设计的组织架构•处理ASIC验证原型里的门控时钟•建立一个单时钟模块•自动门控移除图2:通过门控时钟创建的时钟域一、跨时钟域设计中包含多时钟域,首先要解决的是在不同时钟域之间传输信号的问题。

信号跨时钟域传输将会是一个大问题,原因如下:1、信号跨时钟域传输产生的故障总是不太容易复现。

关于FPGA中的亚稳态现象

关于FPGA中的亚稳态现象

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

硬件工程师笔试题

硬件工程师笔试题

硬件工程师笔试题1、同步电路和异步电路的区别是什么?同步逻辑是时钟之间存在固定的因果关系。

异步逻辑是指时钟之间没有固定的因果关系。

电路设计可分为同步电路设计和异步电路设计。

同步电路使用时钟脉冲来同步其子系统,而异步电路不使用时钟脉冲进行同步。

它的子系统使用特殊的“开始”和“结束”信号来同步它们。

异步电路具有以下优点:无时钟偏移问题、低功耗、平均性能而非最差性能、模块化、可组合性和可重用性整个设计中只有一个全局时钟成为同步逻辑。

只有时钟脉冲同时到达各记忆元件的时钟端,才能发生预期改变。

",多时钟系统逻辑设计成为异步逻辑。

电路状态改变由输入信号引起同步逻辑是时钟之间有固定的因果关系。

异步逻辑是各时钟之间没有固定的因果关系。

2、什么是\线与\逻辑,要实现它,在硬件特性上有什么具体要求?线路和逻辑是两个连接的输出信号,用于实现和的功能。

在硬件方面,有必要使用OC 门。

如果没有OC门,灌注电流可能过大,逻辑门可能烧坏。

同时,应在输出端口添加上拉电阻器。

3.设置和等待时间是多少?ttl集成电路的主要型式为晶体管-晶体管逻辑门(transistor-transistorlogicgate),ttl大部分都采用5v电源。

1.输出高电平uoh和低电平UOLOH≥2.4V,UOL≤ 0.4v2输入高电平和输入低电平UIH≥ 2.0V,UIL≤ 0.8Vcmos电路是电压控制器件,输入电阻极大,对于干扰信号十分敏感,因此不用的输入端不应开路,接到地或者电源上。

cmos电路的优点是噪声容限较宽,静态功耗很小。

1.输出高电平uoh和输出低电平uoluoh≈vcc,uol≈gnd2.输入高电平uoh和输入低电平uoluih≥0.7vcc,uil≤0.2vcc1) TTL电路是电流控制器件,CMOS电路是电压控制器件。

防御措施:1)在输入端和输出端加钳位电路,使输入和输出不超过不超过规定电压。

2)芯片的电源输入端加去耦电路,防止vdd端出现瞬间的高压。

《数字信号处理的FPGA实现》读书笔记

《数字信号处理的FPGA实现》读书笔记

<数字信号处理的FPGA实现>Verilog写状态机大概有这样几点要求:1、组合逻辑完成状态转移的条件判断,时序逻辑完成状态机的状态转移。

2、组合逻辑和时序逻辑分别在两个不同的always块中完成,根据状态机状态通过译码逻辑产生的与状态机无关的逻辑部分不要放在专用的状态机always块中。

3、状态编码预先定义为parameter,状态较少的状态机推荐使用one-hot方式编码,以减小译码逻辑的复杂度,提高性能。

4、建议单独使用一个模块来描述状态机。

5、状态机应有一个default状态,在上电复位的时候作为初始状态。

6、注意状态机组合逻辑中的if...else语句,不要出现latch。

7、对于复杂状态机,最好采用状态机嵌套方式完成。

其实上面很多都是按照Synopsys LEDA的coding style的要求的,状态机的写法相对固定,因此很多Design entry的工具可以自动生成状态机代码,Xilinx也有工具支持直接由状态转移图输入完成状态机的编码。

所以关键还是画好状态转移图,其他就相对简单了。

visual hdl+ISE+synplify Pro+modelsim!1.设计输入1)设计的行为或结构描述。

2)典型文本输入工具有UltraEdit-32和Editplus.exe.。

3)典型图形化输入工具-Mentor的Renoir。

4)我认为UltraEdit-32最佳。

2.代码调试1)对设计输入的文件做代码调试,语法检查。

2)典型工具为Debussy。

3.前仿真1)功能仿真2)验证逻辑模型(没有使用时间延迟)。

3)典型工具有Mentor公司的ModelSim、Synopsys公司的VCS和VSS、Aldec公司的Active、Cadense公司的NC。

4)我认为做功能仿真Synopsys公司的VCS和VSS速度最快,并且调试器最好用,Mentor 公司的ModelSim对于读写文件速度最快,波形窗口比较好用。

fpga面试题目及答案(3篇)

fpga面试题目及答案(3篇)

第1篇1. FPGA是什么?FPGA(现场可编程门阵列)是一种可编程逻辑器件,它可以根据用户的需求进行编程,实现各种数字电路功能。

FPGA具有高灵活性、高集成度、低功耗等优点,广泛应用于通信、工业控制、消费电子等领域。

答案:FPGA是一种可编程逻辑器件,可以根据用户需求进行编程,实现各种数字电路功能。

2. VHDL和Verilog的区别是什么?VHDL和Verilog都是硬件描述语言,用于描述数字电路和系统。

两者在语法和功能上存在一些差异:- VHDL是一种强类型语言,具有丰富的数据类型和操作符,易于编写复杂的数字电路描述。

- Verilog是一种弱类型语言,数据类型较为简单,但具有简洁的语法,便于快速编写代码。

答案:VHDL和Verilog的区别在于数据类型和语法,VHDL是强类型语言,Verilog 是弱类型语言。

3. 什么是FPGA的时钟域交叉问题?FPGA的时钟域交叉问题是指当多个时钟域的信号进行交互时,可能会出现信号竞争、数据丢失等现象,导致系统性能下降或功能失效。

答案:FPGA的时钟域交叉问题是指当多个时钟域的信号进行交互时,可能会出现信号竞争、数据丢失等现象。

4. 如何处理FPGA的时序问题?处理FPGA的时序问题主要包括以下几个方面:- 设计合理的时钟树,确保时钟信号在各个模块之间稳定传播。

- 合理设置时钟分频、倍频等参数,避免时钟抖动。

- 优化模块设计,减少信号路径长度,降低信号传播延迟。

- 进行时序仿真,确保满足设计要求。

答案:处理FPGA的时序问题主要包括设计合理的时钟树、设置时钟参数、优化模块设计和进行时序仿真。

5. FPGA的配置过程是怎样的?FPGA的配置过程主要包括以下几个步骤:- 编写配置文件:使用VHDL或Verilog等硬件描述语言编写配置文件,描述FPGA 内部电路的结构和功能。

- 编译配置文件:使用FPGA厂商提供的编译工具对配置文件进行编译,生成门级网表。

亚稳态

亚稳态

亚稳态(recovery time)2009-06-23 22:12亚稳态:是指触发器无法在某个规定时间段内达到一个可确认的状态。

当一个触发器进入亚稳态[1]时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。

在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。

亚稳态(metastability)时序电路采用触发器和锁存器作为存储单元,这两种器件都易进入亚稳态[1]。

所谓亚稳态是指触发器无法在某个规定的时间段内达到一个可确认的状态。

如图1所示,对任何一种触发器,在时钟触发沿前后存在一个小的时间窗口(称为判决窗口,decision window),输入信号在判决窗口内必须保持稳定,否则,触发器就会进入亚稳态,既无法预测该单元的的输出电平,也无法预测何时输出才能稳定在某个电平上。

这个判决窗口由建立时间(setup time)和保持时间(hold time)两部分组成。

并且时间窗口也是多种因素的函数,包括触发器设计、实现技术、运行环境以及无缓冲输出的负载等。

输入信号陡峭的边沿可以将此窗口减至最小,随着时钟频率的升高,会出现更多有问题的时间窗口,而随着数据频率的提升,这种窗口的命中概率会增加,即进入亚稳态的概率会增加。

亚稳态不能从根本上消除,但可以通过采取一定的措施使其对电路造成的影响降低。

[2]通常我们用故障间隔平均时间(MTBF,mean time between failures)来衡量亚稳态的影响。

MTBF越大则说明亚稳态对电路产生地影响越小,反之亦然。

如当MTBF等于几十年或者上百年时,我们就认为它对电路的影响基本上可以忽略。

实验结果表明:对于输入为异步信号的电路,其MTBF与从亚稳态状态下恢复的时间长度(如图1所示的)有着指数的关系[3]。

2 同步器(synchronizer)在实际中,我们常用的是采用两级触发器串联的同步器(如图1)[4]。

亚稳态fpga的原理

亚稳态fpga的原理

FPGA的基本原理FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种集成电路芯片,它可以由用户根据需要进行重新配置和重新编程,以实现特定的功能。

与传统的固定功能芯片相比,FPGA具有更高的灵活性和可重构性。

FPGA由大量的逻辑单元(Logic Element,LE)组成,每个逻辑单元包含查找表(Look-Up Table,LUT)、触发器和多路选择器等基本元件。

这些逻辑单元通过可编程连接资源(Programmable Interconnect Resources)相互连接,形成复杂的电路结构。

1. FPGA的工作原理FPGA的工作原理可以简单概括为:将用户设计的电路描述文件经过综合、布局、布线等过程转化为对FPGA内部逻辑单元和可编程连接资源进行配置的位流文件(Bitstream),然后加载到FPGA芯片中进行运行。

1.电路描述文件用户使用硬件描述语言(HDL)如VHDL或Verilog来描述所需实现的电路功能。

这些描述文件包括了电路结构、信号传输、时序约束等信息。

2.综合综合是将用户设计的高级语言描述转化为低级门级网表表示。

综合工具根据用户的描述生成逻辑电路的等效结构,包括逻辑门、时钟触发器等。

3.布局布局是将综合后的逻辑电路映射到FPGA芯片上。

布局工具根据逻辑电路和FPGA芯片的物理限制,将逻辑元件分配到FPGA芯片上的特定位置。

4.布线布线是将布局后的逻辑电路中的元件相互连接。

布线工具根据逻辑电路和FPGA芯片上的可编程连接资源,生成元件之间的连线路径。

5.位流文件生成位流文件(Bitstream)是将经过布线后的电路配置信息以二进制形式存储。

位流文件包含了对FPGA内部逻辑单元和可编程连接资源进行配置的具体指令。

6.加载与运行将位流文件加载到FPGA芯片中,配置FPGA内部资源,并开始执行用户设计的功能。

加载后,FPGA可以按照用户设计进行计算、数据处理、信号处理等操作。

FPGA系统中三种方式减少亚稳态的产生

FPGA系统中三种方式减少亚稳态的产生

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

这段时间称为决断时间(resoluTIon TIme)。

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

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

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

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

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

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

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

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

它们发生的原因如下:(1)在跨时钟域信号传输时,由于源寄存器时钟和目的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的目的寄存器,所以无法保证满足目的寄存器Tsu和Th的要求;(2)在异步信号采集中,由于异步信号可以在任意时间点到达目的寄存器,所以也无法。

简谈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系统的可靠性和性能。

电子硬件工程师笔试题

电子硬件工程师笔试题

下列是自己整理的各个公司电子硬件工程师笔试的题目与答案:汉王笔试1.什么是建立时间和保持时间?建立时间(Setup Time)和保持时间(Hold time)。

建立时间是指在触发器时钟沿到来前,数据信号保持不变的时间。

保持时间是指在触发器时钟沿到来以后,数据信号保持不变的时间。

如果不满足建立和保持时间的话,那么 DFF 将不能正确地采样到数据,将会出现 metastability 的情况。

如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。

2.什么是竞争与冒险现象?怎样判断?如何消除?在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。

产生毛刺叫冒险。

如果布尔式中有相反的信号则可能产生竞争和冒险现象。

解决方法:一是接入滤波电容,二是引入选通脉冲,三是增加冗余项(只能消除逻辑冒险而不能消除功能冒险)。

3.请画出用 D 触发器实现 2 倍分频的逻辑电路?什么是状态图?答 D 触发器的输出端加非门接到 D 端,实现二分频。

状态图是以图形方式表示输出状态转换的条件和规律。

用圆圈表示各状态,圈内注明状态名和取值。

用→表示状态间转移。

条件可以多个Verilog 语言:module divide2( clk , clk_o, reset);input clk , reset;output clk_o;wire in;reg out ;always @ ( posedge clk or posedge reset)if ( reset)out <= 0;elseout <= in;assign in = ~out;assign clk_o = out;endmodule4.什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?线与逻辑是两个输出信号相连可以实现与的功能。

在硬件上,要用OC/OD 门来实现,由于不用 OC 门可能使灌电流过大,而烧坏逻辑门。

组合逻辑电路亚稳态传递

组合逻辑电路亚稳态传递

组合逻辑电路亚稳态传递
在数字电路中,根据逻辑功能的不同,可以将电路分成两大类,一类叫做组合逻辑电路,另一类叫做时序逻辑电路。

组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。

而时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。

组合逻辑电路中可能存在亚稳态传递的问题。

当输入信号发生变化时,电路可能会进入一种不稳定的状态,并在一段时间内保持这种状态,这种状态称为亚稳态。

在亚稳态期间,电路的输出可能不稳定,甚至可能出现错误的输出。

为了避免亚稳态传递,可以采用一些技术和方法,如使用高速时钟、增加寄存器、优化电路设计等。

在设计组合逻辑电路时,需要考虑到亚稳态传递的问题,并采取相应的措施来避免或减少亚稳态的影响,以确保电路的稳定性和可靠性。

时序分析基础: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‘,也是⼀个稳态值,亚稳态已经消去。

什么是亚稳态

什么是亚稳态

什么是亚稳态
1.什么是亚稳态?
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去
1.1 亚稳态发生的原因
在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端毛刺振荡固定的某一电压值,而不是等于数据输入端D的值这段之间成为决断时间(resolution time)经过resolution time 之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输入没有必然的关系亚稳态的危害
由于输出在稳定下来之前可能是毛刺振荡固定的某一电压值,因此亚稳态除了导致逻辑误判之外,输出0~1之间的中间电压值还会使下一级产生亚稳态(即导致亚稳态的传播)逻辑误判有可能通过电路的特殊设计减轻危害(如异步FIFO中Gray 码计数器的作用),而亚稳态的传播则扩大了故障面,难以处理
000。

亚稳态的概念

亚稳态的概念

亚稳态的概念亚稳态是物质在宏观和微观层面上的一种特殊状态,其在具有一定能量或者结构上处于局部能量最低或者局部结构最稳定状态,但不是全局能量最低或结构最稳定状态的状态。

亚稳态可以存在于各种不同的物质系统中,例如固体、液体和气体等。

亚稳态的形成主要是由于物质在形成过程中存在能量障碍,使得物质在达到全局最优状态之前被限制在一个局部最优状态中。

在大多数情况下,物质的能量应该趋于最低,具有最稳定的结构形态。

然而,由于动力学因素或者其他限制条件,物质可能无法达到全局能量最低状态,而是陷入局部能量最低状态,形成亚稳态。

例如,在固态材料中,晶体常常不是绝对稳定的,而是亚稳态。

在晶体的生长过程中,存在本体缺陷、晶格畸变等因素,导致晶体在达到全局最低能量状态之前被困在一个局部最低能量状态中。

这种亚稳态晶体在宏观上表现出稳定的特点,但在微观尺度上其结构并不完美,可能存在缺陷或畸变。

液体也可以存在亚稳态。

例如在金属玻璃体系中,金属被迅速冷却时,通常会形成非晶态金属。

非晶态金属在结构上并不像晶体那样有序排列,而是由无规则的团簇构成。

这种非晶态结构不是最稳定的状态,而是被限制在亚稳态中。

此外,液滴的形成和稳定也涉及到亚稳态。

当液滴极小或者处于高能状态下时,会受到表面张力的影响,使得其无法迅速扩展或者消散。

这种亚稳态液滴可以在一定时间范围内保持稳定,直到达到临界条件后发生破裂或者扩散。

亚稳态的存在在很大程度上受到动力学因素的影响。

物质在形成过程中的能量障碍、物质迁移的限制、外界条件的变化等都可以导致物质陷入亚稳态。

此外,在某些情况下,亚稳态可以通过改变温度、压力或者其他条件来转变为稳态或者失稳。

亚稳态具有很大的实际意义。

首先,亚稳态的存在可以扩展物质的应用领域。

例如,亚稳态材料常常具有特殊的物理性质,可以在增强材料的力学性能,提高电子和热导率,以及改变材料的光学特性。

其次,通过控制物质的亚稳态,可以实现对材料性质的定向调控。

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

设计亚稳态 MTBF 为 1/failure_ratedesign。
设计人员使用 Altera® FPGA 时,不需要手动完成这些计算,这是因为 Altera Quartus® II 软件将亚稳态参数 集成到了工具中。
确定亚稳态常数
FPGA供应商可以通过 FPGA 的亚稳态特性来确定MTBF 方程中的常数。确定特性的难点在于典型FPGA设计 的 MTBF 一般在几年以上,因此,使用真实设计,在实际工作条件下测量亚稳态事件之间的时间间隔是不 可行的。为确定器件亚稳态常数, Altera 使用了测试电路,设计的这一电路具有较短的可测量 MTBF,如 图 4 所示。
可以把寄存器在时钟边沿采样数据信号形象的看成是球从山上滚落下来,如图 1 所示。山的两边代表稳定 状态——信号转换之后,信号的老数据和新数据,山顶代表压稳态。如果球从山顶滚落,它会处于不确定 状态,实际中,它稍偏向一侧,然后,落到山下。从山顶开始,越到山脚,球到达底部稳定状态的速度越 快。
如果数据信号在时钟沿之后以最小的 tH 转换,这就类似球从山的 “老数据值”一侧落下,输出信号保持在 该时钟转换的最初值不变。当寄存器数据输入在时钟沿之前以最小 tSU 转换,保持时间大于最小 tH,这就类 似球从山的 “新数据值”一侧落下,输出信号很快达到稳定的新状态,满足确定的 tCO 时间要求。但是,当 寄存器数据输入不能满足 tSU 或者 tH, 时,这就类似于球从山顶落下。如果球落在山顶附近,那么,它会花 很长时间才能落到山脚,增加了时钟转换到稳定输出的延时,超出了要求的 tCO。
tSU 要求。数据输出信号从低电平状态开始,进入压稳态,在高电平和低电平状态之间徘徊。信号输出 A 转换 到输入数据的新逻辑 1 状态,输出 B 返回到数据输入最初的逻辑 0 状态。在这两种情况下,输出转换到确 定的 1 或者 0 状态的时间被延迟了,超出了寄存器要求的 tCO。
图 2. 压稳态输出信号实例 t
MTBF 方程中的亚稳态时间常数 C2 取决于器件制造工艺技术相关的各种因素,包括晶体管速率和供电电压 等。采用较快的工艺技术和速度更快的晶体管,亚稳态信号能够很快达到稳定。 FPGA 从 180-nm 工艺尺寸 发展到 90 nm,晶体管在提高速度的同时也增大了亚稳态 MTBF。因此,亚稳态并不是 FPGA 设计人员主要 考虑的问题。
在器件中很多地方复制了这一电路,以减小本地差异的影响,对每一例化模块进行连续测试,以消除耦合 噪声。 Altera 对每一测试结构测量一分钟,记录错误数。以不同的时钟频率进行测试,在对数坐标上画出 MTBF 与 tMET 的关系。常数 C2 对应于试验结果趋势线的斜率,以常数 C1 线性标出曲线。
4
Signal transition occurs after
clock edge and minimum tH: Ball lands on the old data side.
Signal transition meets
register tSU and tH: Ball lands on the new data side.
Signal violates register tSU or tH: Ball balances at top of hill or takes too
long to reach the bottom. Output is
metastable and violates tCO.
图 2 描述了压稳态信号。时钟信号转换时,输入信号从低电平状态转换到高电平状态,不能满足寄存器的
图 4. 亚稳态特性参数测试电路结构
Synchronization register (Synchronizer chain of length 1)
DQ clka
src
DQ dest
DQ
D Q error
DQ clkb
在这一设计中, clka 和 clkb 是两路不相关的时钟信号。同步器输入数据在每一时钟周期进行触发 ( 较大的 fDATA)。同步器长度为 1,这是因为一个同步寄存器连接了两个目的寄存器。目的寄存器在一个时钟周期后以 及一个半时钟周期后采集同步器输出。如果信号在下一时钟沿到达之前进入亚稳态,电路探测到采样信号 出现了不同,输出一个错误信号。这一电路能够探测到半时钟周期内出现的大部分亚稳态事件。
WP-01082-1.2
2009 年 7 月, 1.2 版
1
理解 FPGA 中的压稳态
图 1. 利用球从山上落下描述压稳态
Altera 公司
Old data value
New data Old data value value
New data Old data value value
New data value
计算亚稳态 MTBF
亚稳态平均故障间隔时间 MTBF 大致估算了亚稳态导致出现两次设计失败之间的平均时间。较大的 MTBF ( 例如亚稳态失败间隔数百甚至数千年 ) 表明非常可靠的设计。所需要的 MTBF 取决于系统应用。例如, 急救医疗设备需要的 MTBF 要比消费类视频显示设备长得多。增大亚稳态 MTBF 能够减小信号传输导致设 备出现亚稳态问题的概率。
同步寄存器
当信号在不相关或者异步时钟域电路之间传送时,在使用该信号之前,需要将信号同步到新的时钟域。新 钟域中第一个寄存器起到了同步寄存器的作用。
2
Altera 公司
理解 FPGA 中的压稳态
为消除异步信号传送时压稳态导致的失败,电路设计人员通常在目的时钟域中使用多个串联寄存器 ( 同步 寄存器链或者同步器 ),将信号重新同步到新时钟域上。采用这些寄存器,在设计中的其他部分使用压稳态 信号之前,该信号能够有更多的时间转换到确定状态。同步寄存器至寄存器通路上的时序余量是压稳态信 号稳定所需要的时间,被称为压稳态稳定时间。
白皮书
理解 FPGA 中的压稳态
本白皮书介绍 FPGA 中的压稳态,为什么会出现这一现象,它是怎样导致设计失败的。介绍怎样计算压稳 态 MTBF,重点是对结果造成影响的各种器件和设计参数。
引言
当信号在不相关或者异步时钟域之间传送时,会出现压稳态,它是导致包括 FPGA 在内的数字器件系统失 败的一种现象。本白皮书介绍 FPGA 中的压稳态,解释为什么会出现这一现象,讨论它是怎样导致设计失 败的。
Altera 公司
理解 FPGA 中的压稳态
提高亚稳态 MTBF
由于 MTBF 方程中的指数 etMET ⁄ C2 因子, tMET/C2 项对 MTBF 计算的影响最大。因此,可以通过优化器件常数 C2,改进体系结构来提高亚稳态性能,或者优化设计,增大同步寄存器的 tMET。
改进 FPGA 体系结构
设计人员必须适应这种电路工作方式,例如,双时钟 FIFO (DCFIFO) 逻辑存储信号或者握手逻辑等。 FIFO 逻辑使用同步器在两个时钟域之间传送控制信号,然后,数据被写入双端口存储器,或者读出。 Altera 为 这一操作提供 DCFIFO 宏功能,它包括各种级别的延时,为控制信号提供亚稳态保护。如果异步信号被用 作两个时钟域之间的部分握手逻辑,控制信号会指出数据什么时候才能在时钟域之间进行传输。在这种情 况下,采用同步寄存器以确保亚稳态不会影响控制信号的接收,在任何亚稳态条件下,数据都有足够的建 立时间,在使用数据之前达到稳定。在设计比较好的系统中,每一信号在被使用之前都能达到稳定状态, 设计可以正常工作。
同步寄存器链或者同步器是满足以下要求的寄存器序列:
■ 链上的寄存器都由相同的或者相位相关的时钟进行同步 ■ 链上的第一个寄存器由不相关的时钟域进行驱动,即异步驱动。 ■ 每个寄存器只扇出连接一个寄存器,链上的最后一个寄存器除外。
同步寄存器链的长度是满足以上要求的同步时钟域中的寄存器数量。图 3 是长度为 2 的同步链的例子,假 设输出信号被送入多个目的寄存器。
CO
Logic 0
(resolves to old ?
如果数据输出信号在寄存器下次采集数据之前,转换到有效状态,那么,压稳态信号不会对系统工作有不 利影响。但是,如果压稳态信号不能在它到达下一设计寄存器之前转换到低电平或者高电平状态,那就会 导致系统失败。继续山和球的形象解释,当球到达山脚 ( 稳定逻辑状态 0 或者 1) 的时间超出分配的时间 后,即,寄存器 tCO 加上寄存器通路所有时序余量的时间,就会出现失败。当压稳态信号没有在分配的时间 内稳定下来时,如果目的逻辑观察到不一致的逻辑状态,即,不同的目的寄存器采集到不同的压稳态信号 值,出现逻辑失败。
在同步系统中,输入信号必须满足寄存器时序要求,因此,不会出现压稳态。信号在不相关或者异步时钟 域电路之间传输时,一般会出现压稳态问题。在这种情况下,由于信号可能在相对于目的时钟的任意时间 到达,因此,设计人员不能保证信号能够满足 tSU 和 tH 要求。然而,并不是所有不能满足寄存器 tSU 或者 tH 的信号转换都导致压稳态输出。寄存器是否会进入压稳态以及返回稳定状态所需要的时间与器件制造工艺 以及实际工作条件有关。在大部分情况下,寄存器会很快返回稳定状态。
设计中每一同步器链的 MTBF 确定了总的设计 MTBF。同步器的失效率是 1/MTBF,将每一同步器链的失 败概率相加得到整个设计的失败概率,如下所示:
∑ failure_ratedesign
=
M---T---B----F--1-d--e--s---i--g--n-
=
number i
of =
1chainsM---T---1B----F---i
图 3. 同步寄存器链实例
Synchronization Chain
Clock1 Domain
Data
DQ
Clock2 Domain
DQ
DQ
Output Registers
Clock1
Clock2
相关文档
最新文档