在逻辑设计中选择状态机的类型
扫描二维码
随时随地手机看文章
在逻辑设计中,经常用到二进制(S1=001、S2=010、S3=011及S4=100等)、枚举(S1=100,S2=110、S3=101及S4=111等)和One-Hot(S1=00000001、S2=00000010及S3=00000100等)等类型状态机。二进制和枚举包含了许多组合反馈逻辑,以实现当前状态到下一个状态的膨‘转。由于资源利用率高,因此比较适合CPLD的逻辑设计;而One ̄Hot计数器由于始终只有一位变化,组合反馈资源少,具有最高的速度和较强的抗干扰性能。因此在叩GA设计中,基本上选择这种状态机类型,以提高设计的工作速度。
(1)Clock Uncertainty
在ISE的timing report中经常会看到Clock Uncertainty这个参数,大部分情况下,我们对这个参数不敏感.因为这个参数的值逦常较小,不会很大地影响时序。但是在一些时序很紧张的场合,如逻辑跑在200M以上时,这个参数就不得不关心了.clock Unrtajnty包括输入时钟抖动、DCM、PLL jiter 和phase error,system jitter即系统引入的jitter。如果发现这个参数己经大刭影响速度的话 则要检查是否。△以减少输入时钟抖动 去掉DCM,以及走命可以减小DCM、PLL抖动和phase eeror。
(2)Hold time error
有时在逻辑内郜会碰到hold fime er的问题,大部分情况这个问题都是囚为clockskew大于data path delay造成的.即以上分析的两个寄存器的时钟端的时钟存在较大相位偏差,且因为数据路径的延时较小 所以造成了这个问题.解决涧题一般从时钟的角度出发 观察为什么clock skew大,通常便用个全局时钟线时,clmk skew都会比较小所以出现这个问题是因为我们的时钟没有使用全局时时钟线所致,很少情况也会因为数据路径的延时很小造成'这时通过在数据通路上插入两级反向器来解决。
综上所述,提高逻辑的工作速度的办法有很多,以上只是列出一些常见的问题,在遇到问题时一定要冷静分析关键路径,找到解决方案。
来源:ks990次