- UID
- 1029342
- 性别
- 男
|
时钟,复位和电源是数字芯片的基本需求。一般情况下,ASIC芯片会给出对输入时钟信号的明确要求,如频率,边沿,抖动,占空比,偏斜(skew),电平等。同样的对于复位也会有详细的要求如复位时间,顺序等。对于FPGA,情况相对复杂,简单来说是取决于用户的设计。这里探讨一下对于FPGA单纯逻辑设计(不含硬核),确定时钟和复位的指标要求时需要考虑的问题。
FPGA时钟的基础知识:
FPGA内有专用全局时钟网络(Dedicated Clock Network),也有专用时钟输入引脚(Dedicated ClockInput)。初学者往往会混淆这两个概念。从专用引脚进来的时钟信号不一定会使用专用时钟网络,反过来,专用时钟网络上的信号也不一定来自专用时钟引脚。
专用时钟网络是一种精心设计的昂贵的布线资源,使用它可以让时钟信号到达每一个同步元件(FF,RAM,DSPetc)的偏斜(skew)非常小。一般FPGA会集成几十条专用时钟网络。每一条专用时钟网络都有一个入口,入口处有一个选择器,可以选择或从专用引脚过来的时钟,或从PLL/DLL/SerDes过来的时钟,也或者从通用走线过来的时钟等。PLL/DLL/SerDes等硬核也是通过专用走线连接到时钟网络的。
有的FPGA可以支持复位信号使用专用时钟网络(双功能)。同样FPGA也支持专用时钟输入引脚用作通用IO(双功能)。
一个引起混淆的概念是板级时钟和FPGA时钟。在一个FPGA设计的网表中,只有连到触发器时钟端口的信号才会被看作FPGA的时钟信号。如果一个板级时钟信号从FPGA一个引脚进另一个引脚出,FPGA没有做任何处理,对FPGA来说这不是一个时钟信号。
一个常见问题是,既然通用引脚和专用引脚都可以上专用全局时钟网络,差别在哪里?专用引脚对应有专用的走线资源连接到时钟网络的入口选择器,好处是固定的时钟延时,而且可以保护时钟信号的质量。通用引脚需要使用通用走线资源连接到时钟网络的入口选择器。每一次编译(布局布线)会有不同的时钟延时。而且通用走线存在破坏时钟信号占空比,易受干扰,增加抖动的风险。一个不合理的设计可能出现时钟信号从专用引脚经通用走线上全局时钟。可以查看编译报告确认全局时钟网络的使用情况。
专用PLL/DLL输入引脚的道理是一样的,不再详细描述。
FPGA的时钟指标:
l 频率
应用决定了时钟的频率,频率约束导入EDA,布线后的时序报告可以给出设计能够支持的最大频率。
l 频率精度频率变化的上限为时序报告给出的最高可支持频率。从电路角度看,最低频率可以是0Hz。
l 抖动
逻辑只对周期抖动敏感。假设时钟的周期T,周期抖动为+/-Pj
一方面,最小的时钟周期T-Pj必须满足时序报告给出的最大支持频率。
另一方面,触发器的保持时间(holdtime)必须留出至少大于Pj的余量,这可以通过约束工具导入,或者反查时序报告,根据保持时间(holdtime)余量给出具体要求。
l 占空比
FPGA内部逻辑工作在单沿模式,对占空比不敏感,只要最小脉冲宽度大于器件指标即可(典型指标是小于1nS)。
FPGA接口若是双沿模式(DDR),占空比会影响时序余量。可以根据接口时序余量反过来推算对占空比的要求。
l 上升/下降沿时间
FPGA对上升/下降沿时间没有要求。但要求单调,不能有回钩。上升/下降时间短可以减少边沿爆漏在噪声的时间,有利于减小对干扰的敏感。
l 偏斜(skew)
伴有随路数据的时钟,需要根据时序报告给出的余量确定对外部偏斜(skew)要求,一般有系统给出。
FPGA的复位信号:
复位是个可大可小的问题。一般来讲,各个时钟域的复位应尽量先同步到各自时钟域,并滤除glitch后,再对各自时钟域的电路做同步或异步复位。
首先,复位必须在时钟稳定之后再解除。时钟稳定之前,应该保持复位有效。若时钟来自FPGA内部PLL/DLL,必须等到PLL/DLL锁定后再释放复位。
其次,时钟稳定之后,复位的宽度必须大于滤glitch模块的宽度门限。
小结
设计FPGA就好比在设计一个ASIC。设计完成之后,设计者需要分析设计,交付一个具体的时钟和复位指标,测试工程师才会有据可依,帮助公司生产合格的产品。 |
|