fpga(field-programmable gate array),即现场可编程门阵列,它是作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。对于时序如何用fpga来分析与设计,本文将详细介绍。
基本的电子系统如图 1所示,一般自己的设计都需要时序分析,如图 1所示的design,上部分为时序组合逻辑,下部分只有组合逻辑。而对其进行时序分析时,一般都以时钟为参考的,因此一般主要分析上半部分。在进行时序分析之前,需要了解时序分析的一些基本概念,如时钟抖动、时钟偏斜(tskew)、建立时间(tsu)、保持时间(th)等。时序分析也就是分析每一个触发器(寄存器)是否满足建立时间/保持时间,而时序的设计的实质就是满足每一个触发器的建立时间/保持时间的要求。
图 1 基本的电子系统
一、时钟抖动和时钟偏斜
1. 时钟抖动
时钟信号边沿变化的不确定时间称为时钟抖动,如图 2所示。一般情况下的时序分析是不考虑时钟抖动,如果考虑时钟抖动,则建立时间应该是tsu+t1,保持时间应该是th+t2。
图 2 时钟抖动时序图
2. 时钟偏斜
时序偏斜分析图如图 3所示。时钟的分析起点是源寄存器(reg1),终点是目标寄存器(reg2)。时钟在图中的结构中传输也会有延迟,时钟信号从时钟源传输到源寄存器的延时为tc2s,传输到目标寄存器的延时为tc2d。时钟网络的延时为tc2s与tc2d之差,即tskew=tc2d-tc2s。
图 3 时钟偏斜时序图
二、建立时间和保持时间
建立时间(setup time)常用tsu表示,指的是在触发器的时钟信号上升沿到来以前,数据和使能信号稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器,使能信号无效,也就是说在这个时钟周期对数据的操作时无效的;保持时间(hold time)常用th表示,指的是在触发器的时钟信号上升沿到来以后,数据和使能信号稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器,对数据的操作同样是无效的,使能信号无效。数据要能稳定传输,就必须满足建立时间和保持时间的关系,图 4标识了它们间的关系。
图 4 建立时间/操持时间的概念
三、发送沿和捕获沿
(1) 发送沿(launch edge):前级寄存器发送数据对应的时钟沿,是时序分析的起点;
(1) 捕获沿(latch edge):后记寄存器捕获数据对应的时钟沿,是时序分析的终点。相对于launch edge通常为一个时钟周期,但不绝对,如多周期。
“信号跳变抵达窗口”:对latch寄存器来说,从previous时钟对应的hold time开始,到current 时钟对应的setup time 结束。
“信号电平采样窗口”:对latch寄存器来说,从current时钟对应的setup time开始,到current时钟对应的hold time结束。
launch寄存器必须保证驱动的信号跳变到达latch寄存器的时刻处于“信号跳变抵达窗口”内,才能保证不破坏latch寄存器的“信号电平采样窗口”。
图 5 launch edge和latch edge
四、数据和时钟的时序分析
如图 6所示,为分析建立时间/保持时间的基本电路图。tclk1为reg1的时钟延时,tclk2为reg2的时钟延时,tco为reg1固有延时,tdata为reg1的到reg2之间组合逻辑的延时,tsu为reg2的建立时间,th为reg2的保持时间,设时钟clk周期为t,这里分析数据的建立时间和保持时间。
图 6 基本电路图
1、建立时间的分析
如图 7所示,建立时间的分析是以第一个launch edge为基准,在latch edge查看结果。建立时间的裕量(t为时钟周期):
setup stack = (t+tclk2) – tsu – (tclk1+tco+tdata)
假设△t = tclk2-tclk1,则:
setup stack = (t+△t) – tsu – (tco+tdata)
可见△t 0影响保持时间,使保持时间的要求更加苛刻。。因此对于△t尽量避免,采用同步单时钟,并且尽量采用全局的时钟信号,这样△t几乎为0,,△t的影响几乎不存在,可以忽略不计。
如果保持时间的裕量hold stack小于0,则不满足保持时间,也就会产生不稳定态,并通过寄存器传输下去。
图 8 保持时间时序分析图
五、dt6000s项目实例
dt6000s项目上有4路光以太网接口连接到fpga,由fpga进行实现mac层和解码iec61850的sv和goose。以太网phy通过mii接口和fpga,因此fpga与外部的接口有4路mii接口。项目初期是实现1路光以太网接口,并且验证功能正确之后,但是后期变成的4路光以太网时,总会存在1路光以太网通信不正常。经过分析得到是fpga通mii接口和phy的时序不满足。如图 9所示为mii接口的时序图,时序不满足分为tx_clk和rx_clk。
其一是phy输出的tx_clk和fpga依据tx_clk产生的txd[3:0]&tx_en延时大,主要延时为内部逻辑的延时,pcb延时小并且一致,导致phy的tx_clk的建立时间不满足,从而导致发送数据错误。
其二是phy输出的rx_clk和rxd[3:0]&rx_dv&rx_er到fpga内部同步触发器的延时之差太大,导致fpga内部同步触发器的rx_clk的建立时间不满足,从而导致接收数据错误。
因此fpga在综合时需要添加约束,使之时序满足要求,约束的条件为txd[3:0]和tx_en的输出延时要少。rx_clk和rxd[3:0]&rx_dv&rx_er路径延时之差要小。添加约束之后,4路mii接口的光以太网数据通信就正常了。
图 9 mii时序图
这里阐述了时序分析基础,说明概念的同时进行了时序分析,通过时序分析理解建立时间和保持时间。希望大家阅读本文之后可以对fpga时序分析有进一步的了解。
潍柴动力发布SiC项目招标,SiC进军已指日可待
到底什么是智能家居?融入生活的智能家居了解一下
血压计语音芯片IC方案 支持远程更新语音 WT588F02B
到底微带线和带状线延时上的差别有多大?
2024年大型数据中心芯片盘点
如何利用FPGA进行时序分析设计
Meta将推出两款原型头显,量产或需要时间
四层交换机的特点
笔记本简介
华为开始收取5G专利费 那么到底能收多少呢?
中国本土IC企业的资本化道路为何频频失败?
共享豪车现身杭州!20元开兰博基尼、50元就可开劳斯莱斯,从此走向人生巅峰
富士康收入创造历史记录 并未受苹果新手机高价格影响
连接器是铁路设施中最关键的设备之一
中国移动与中国广电已经开始700M天线测试
量子计算会成为下一代网络安全威胁?
DIY一个模型列车控制器电路
贸泽电子开始分销AmbiMate MS4系列传感器模块,只需一种PCB占位即可满足所有传感器配置
李开复:人工智能领域如何拯救人性
如何用Python语法加速C+的数值计算