理解FPGA中的亚稳态

合集下载

理解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、信号跨时钟域传输产生的故障总是不太容易复现。

硬件工程师笔试题

硬件工程师笔试题

硬件工程师笔试题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异步FIFO设计中的问题与解决办法

FPGA异步FIFO设计中的问题与解决办法

TECHNOLO GY REVIEW 技术纵横 FPGA异步FIFO设计中的问题与解决办法■太原科技大学 谢文华 高文华 摘 要通过分析异步FIFO的基本结构和工作原理,以降低亚稳态的出现频率、充分利用异步FIFO的内存资源为主要目的,提出一种在FP GA内部实现的异步FIFO设计方法。

本文在传统设计的基础上提出一种新颖的电路结构来准确判断空/满标志位的产生,即检测加计数器的方法;并用QuartusII对其进行仿真,得到了比较好的性能。

 关键词异步FIFO 亚稳态 FP GA 随着数字电子系统设计规模的扩大,一些实际应用系统中往往含有多个时钟,数据不可避免地要在不同的时钟域之间传递。

如何在异步时钟之间传输数据,是数据传输中一个至关重要的问题,而采用FIFO正是解决这一问题的有效方法。

异步FIFO是一种在电子系统中得到广泛应用的器件,多数情况下它都是以一个独立芯片的方式在系统中应用。

本文介绍一种充分利用FPG A内部的RAM资源,在FPG A内部实现异步FIFO模块的设计方法。

这种异步FIFO比外部FIFO芯片更能提高系统的稳定性。

1 FIFO的基本结构和工作原理FIFO(First In First Out)是一种采用环形存储结构的先进先出存储器。

其使用一个双端口存储器存放数据,数据发送方在一端写入数据,接收方在另一端读出数据,能够协调好两个时钟域的工作,满足高时钟频率的要求。

FIFO在FP GA设计中主要用来缓冲数据和隔离时钟或相位差异。

访问FIFO时不需要地址线,只需要数据线和读写控制信号线,且数据地址由内部读写指针自动加1完成,因此利用FIFO实现数据的缓存具有接口简单、读写方便的优点。

根据FIFO的工作时钟,可将FIFO分为同步FIFO 和异步FIFO[1]。

同步FIFO是指读时钟和写时钟为同一个时钟,在时钟沿来临时同时进行读写操作;异步FIFO 是指读写时钟不是同一个时钟,而是相互独立的。

《数字信号处理的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对于读写文件速度最快,波形窗口比较好用。

eda名词解释

eda名词解释

名词解释:1.EDA(Electronic Design Automation):电子设计自动化,是从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

2.HDL(Hardware Description Language):硬件描述语言,是一种以文本形式描述数字电路和数字系统的语言,是指对硬件电路进行行为描述、寄存器传输描述或者结构化描述的一种新兴语言。

3.FPGA(Field Programmable Gate Array):现场可编程逻辑门阵列,它采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。

FPGA利用小型查找表(16×1RAM)来实现组合逻辑。

4.CPLD(Complex Programmable Logic Device):复杂的可编程逻辑器件, 主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。

是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。

其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

5.IP(Internet Protocol): 网络之间互连的协议,也就是为计算机网络相互连接进行通信而设计的协议。

在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。

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系统中三种方式减少亚稳态的产生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)。

电子硬件工程师笔试题

电子硬件工程师笔试题

下列是自己整理的各个公司电子硬件工程师笔试的题目与答案:汉王笔试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 门可能使灌电流过大,而烧坏逻辑门。

亚稳态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中的亚稳态现象

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

【转】亚稳态详解

【转】亚稳态详解

【转】亚稳态详解1.什么是亚稳态简单来说,就是信号传输没有满⾜触发器的建⽴保持时间,此时触发器输出端Q在有效时钟沿之后⽐较长的⼀段时间处于不确定的状态,在这段时间⾥Q端⽑刺、振荡、固定的某⼀电压值,⽽不是等于数据输⼊端D的值。

之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输⼊没有必然的关系。

2.亚稳态的危害从其定义中可以看到,由于输出在稳定下来之前可能是⽑刺、振荡、固定的某⼀电压值,在信号传输中产⽣亚稳态就会导致与其相连的其他数字部件将做出不同的判断,有的判断到“1”有的判断到“0”,有的判断为0~1之间的中间值,还会使下⼀级产⽣亚稳态(即导致亚稳态的传播)。

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

3.亚稳态的发⽣场合1)异步信号检测2)跨时钟域信号传输3)复位电路4)其他不满⾜建⽴保持时间的电路4.具体分析为什么会产⽣亚稳态产⽣亚稳态的原因就是违反了建⽴保持时间。

最典型的就是跨时钟域和异步传输。

在跨时钟域信号传输时,由于源寄存器时钟和⽬的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的⽬的寄存器,所以⽆法保证满⾜⽬的寄存器Tsu和Th的要求。

在异步信号采集中,由于异步信号可以在任意时间点到达⽬的寄存器,所以也⽆法保证满⾜⽬的寄存器Tsu和Th的要求。

当数据在⽬的寄存器Tsu-Th时间窗⼝发⽣变化,也即当数据的建⽴时间或者保持时间不满⾜时,就可能发⽣亚稳态现象。

图1. 亚稳态产⽣⽰意图由图可知,当产⽣亚稳态后Tco时间后会有Tmet(决断时间)的振荡时间段,当振荡结束回到稳定状态时为“0”或者“1”,这个是随机的。

因此,会对后续电路判断造成影响。

5.亚稳态产⽣概率由上⾯分析得知,系统亚稳态发⽣的都是由于clk的Tsu和Th不满⾜,⼜或者是复位信号的移除和恢复时间不满⾜。

常⽤FPGA器件的Tsu+Th约等于1ns,复位移除和恢复时间相加约等于1ns。

(整理)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中的亚稳态

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

大部分情况下,寄存器会很快的进入一个定义的稳态中。

一个寄存器在时钟边沿取样一个数据信号可以形象地比喻成往一个小丘上抛球,如图1所示。

这个小丘的每一侧代表一个稳态——信号翻转后的新旧数据值——小丘的顶部代表亚稳态,球可能会平衡在这儿,但在实际中它会慢慢地滑向(falls slightly)一侧。

球落的离丘顶部越远,它就越快地到达在底部达到稳态。

(The further the ball lands from the top of the hill, the faster it reaches a stable state at the bottom.)如果一个数据信号在时钟边沿之后不超过最小保持时间之内翻转,类似于球落在小丘的“旧数据”端,对于这次时钟翻转输出信号仍旧保持原始值。

当一个寄存器的数据输入在时钟沿的最小建立时间之前翻转并且保持超过最小建立时间,这类似于球落在小丘的“新数据”端,输出很快的达到一个新问题以满足Tco的定义。

然而当一个寄存器的数据输入违反了建立和保持时间,这类似于球落在了丘的顶部。

如果球落在丘顶部附近,球将花费很长时间去到达底部,这将增大从时钟到输出的延迟并超过定义的Tco。

图1 亚稳态抛球图示图2举例说明亚稳态信号,当时钟翻转时输入信号从低电平翻转到高电平,违反了建立时间的要求。

数据输出信号从低电平开始进入亚稳态,然后在高低电平之间徘徊。

信号输出A输出了输入数据的新逻辑1,输出B回到了输入数据的原始逻辑0状态。

在两种情况中,输出翻转到逻辑1或逻辑0的延时都超过了寄存器定义的Tco。

什么时候亚稳态导致设计失败如果数据输出在下一个寄存器获取(capture)数据之前稳定在一个有效的状态,那么亚稳态信号不会消极地对系统运行产生影响。

但是如果亚稳态信号在到达下一个寄存器之前达到0或1的稳定状态,这将导致系统失效。

继续抛球的比喻,当球到达丘的底部花掉的时间超过指定的时间(寄存器Tco时间加上寄存器路径上的时序裕量),系统就会失效。

当一个亚稳态信号在指定时间内没有判决(resolve,意即稳定),如果目标逻辑得到一个不一致的逻辑状态,逻辑失效就会发生,这就是说对同一个亚稳态信号不同的目标寄存器得到了不同的值。

同步寄存器当一个信号在无关的电路或不同的时钟域之间传输,在新时钟域内使用这个信号之前必须进行同步。

在新时钟域里的第一个寄存器的作用就是一个同步寄存器。

为了最小化由异步信号中的亚稳态造成的实现,电路设计者通常在目标时钟域内使用一列寄存器(一个同步寄存器链或同步装置)来再同步(resynchronize)信号到新的时钟域内。

这些寄存器为潜在的亚稳态信号到达整个设计的其它部分提供了一些时间使其到达一个稳定的值。

同步装置中寄存器到寄存器路径上的时序裕量可以为亚稳态信号的提供稳定时间,就是亚稳态转稳态时间。

一个同步寄存器链或同步装置被定义成满足如下要求的一列寄存器:■链中的寄存器是由同一个时钟或相位相关时钟驱动■链中的第一个寄存器是由无关的时钟域驱动的,或是异步的■除了链中最后一个寄存器,每个寄存器的扇出只有一个寄存器。

同步寄存器链的长度是同步时钟域中满足以上要求的寄存器的个数。

图3中显示出了一个长度为2的简单同步链,信号的输出供给超过了一个目标寄存器。

注意相对于取样寄存器(capturing register)的时钟边沿,任何异步输入信号或在无关时钟域之间传输的信号可以在任何点翻转。

因此在数据翻转之前设计者无法预知信号的翻转顺序或目标时钟的边沿。

例如,一根总线上的异步信号(比如16bit的线)在一个时钟域中传输、同步,数据信号可以在时钟的不同边沿翻转,结果是从总线上收到的数据不可能正确。

设计者必须在电路中适应这种行为,比如双时钟FIFO逻辑存储数据或握手逻辑。

FIFO逻辑使用同步装置在两个时钟域之间传送控制信号,然后使用一个双口RAM对数据进行读写。

Altera为这个操作提供一个双时钟FIFO核,它包括不同级别的潜伏期并对控制信号进行亚稳态保护。

另外,如果一个异步信号做为两个时钟域之间的握手逻辑的一部分,控制信号指明了什么时候可以在时钟域之间传输数据。

在这个例子中,同步寄存器用来确保亚稳态不会干扰控制信号的接收,在亚稳态情况下数据在使用前有足够的时间达到稳定。

在一个恰当地设计的系统中,设计的运行完全正确只要信号在使用之前就达到了一个稳定的值。

计算亚稳态平均无故障时间(MTBF)失效之间的平均时间或者说平均无故障时间,取决于亚稳态提供的一个在各种实例中其导致的设计失效的平均时间估计。

一个高的平均无故障时间(比如两次亚稳态导致失效的时间为几百几千年)表明一个设计是健壮的。

平均无故障时间的要求取决于应用。

例如,一个医疗急救设备对平均无故障时间的要求要高于一个消费型视频播放器。

提高亚稳态导致的平均无故障时间减少了信号传输中在设备中导致亚稳态问题的风险。

亚稳态平均无故障时间(The metastability MTBF,即为由亚稳态决定的平均无故障时间)对一个特定的信号传输,或整个系统中的传输,可以由设计的一些信息和设备的特点来计算。

一个同步链的平均无故障时间可以由以下公式计算:C1和C2是常数,依赖于器件工艺和操作环境。

f CLK和f DA TA参数取决于设计规格:f CLK是接收异步信号的时钟域的时钟频率,f DA TA是异步数据的反复频率(toggling frequency)。

更快的时钟速率和更快的数据反复(faster-toggling data)会降低平均无故障时间。

t MET参数是亚稳态转稳定时间(vailable metastability settling time),或者说时序裕量大于寄存器Tco可以让潜在的亚稳态信号达到稳定值的时间。

t MET对同步链来说就是链中每个寄存器输出时序裕量的和。

整个设计的平均无故障时间由设计中的每个同步链决定。

对一个同步装置来说失效率是1/MTBF,则整个设计的失效率是把每个同步链的失效率加起来,如下:整个设计的亚稳态无故障时间是设计的失效率的倒数(1/failure_rate design)。

设计者使用Altera FPGA不需要手动计算这些,因为Altera的QuartusII软件在其工具里已经包含了亚稳态参数。

QuartusII软件报告了检测到的同步链的MTBF并提供整个设计的亚稳态MTBF。

亚稳态常识FPGA供应商决定MTBF计算公式中描述亚稳态的常数。

描述亚稳态常数的难点在于对典型的FPGA 设计平均无故障时间是数年,所以使用实际的设计在真实的运行条件下测量亚稳态事件之间的时间是不切实际的。

为了描述器件的几个特殊的亚稳态参数,Altera使用了一个有小的平均无故障时间的测试电路设计,如图4所示。

在这个设计中,时钟a和时钟b是两个无关的时钟信号。

到同步装置的数据输入每个时钟周期反复(toggles)一次(一个高的f DA TA)。

同步链的长度为1,因为同步寄存器输出到两个目标寄存器。

目标寄存器分别在一个和半个时钟周期后获取同步寄存器的输出。

如果信号在下个时钟沿之前到达亚稳态,电路检测并取样到不同的信号,并输出错误信号。

这个电路可以检测到很大部分的发生在半个时钟周期之内发生的亚稳态。

这个电路被复制到整个器件中来减少器件的影响,而且每个实例都被连续的测试以减少噪声的耦合。

Altera每个测试结构测量一分钟,并记录错误数。

测试在不同的时钟频率下进行,MTBF的t MET结果被标在一个对数坐标上。

C2常数符合实验结果中曲线的趋向,C1常数与曲线成线性关系。

提高亚稳态的平均无故障时间考虑到MTBF计算公式里的指数因子e tMET/ C2,t MET/C2对MTBF计算的影响较大。

因此亚稳态平均无故障时间可以通过增强结构优化器件的C2参数来提高,或者优化设计提高同步寄存器中的t MET。

FPGA的增强型结构在MTBF计算公式里的亚稳态时间常数C2和器件生产中的各种工艺因素有关,包括晶体管的速度和供电电压。

更快的工艺和更快的晶体管可以使亚稳态信号更快的稳定下来。

考虑到FPGA已经从180nm工艺提高到90nm,晶体管的速度提升通常也提高了亚稳态的平均无故障时间。

但是,供电电压减小了,但门限电压并没有适当的减小。

当一个寄存器进入亚稳态,它的电压大致是供电电压的一半。

随着供电电压的减小,亚稳态电压非常接近电路的门限电压。

当这些电压变的非常接近,电路的优势降低了并且寄存器需要更长的时间离开亚稳态。

当FPGA进入65nm或者更低,供电电压达到0.9V或者更低,门限电压的考虑会比提高晶体管速度更重要。

因此,亚稳态的平均无故障时间变得更差除非供应商设计FPGA电路去提高亚稳态的健壮性。

Altera使用FPGA结构的亚稳态分析来优化电路提高亚稳态平均无故障时间。

相关文档
最新文档