以前在设计FPGA时从来没有关注过fmax,因为很少碰到因为时序不满足导致系统无法正常工作。后来尽管在程序很大的时候会出现slack为负的情况,但是不影响系统的运行。这可能是我做过的项目与视频有关,视频的帧与帧之间的时间(1/20秒)相对于10ns而言(时钟频率(100MHZ)的倒数)还是非常大的。
但是在时间很严格的微观设计中,fmax必须重视。
fmax=1/tmax,tmax=tco+tsu+tlogic+troute,(时钟到输出时间,建立时间,组合逻辑延迟,布线延迟)
这四个因素中tlogic的时间较大,troute与tlogic大概是1:1或1:2关系。
1.在组合逻辑中插入触发器,增加流水级
2.模块边界输入输出寄存
3.组合逻辑平衡
4.三段式状态机设计
5.复制高扇出节点
用户358341 2011-7-20 09:59