400-801-6772
86-0755-82557010
赛灵思大陆代理商基于Xilinx FPGA用于ASIC的常见问题总结

深圳宇航军工半导体有限公司 / 2019-09-10 15:04:39

赛灵思大陆代理商基于Xilinx FPGA用于ASIC的常见问题总结导读:本文总结了XilinxXC7V系列FPGA在ASIC前端验证中遇到的问题,并与您进行了记录和分享。如果有任何歧义或错误,请在评论中指出。


赛灵思大陆代理商基于Xilinx FPGA用于ASIC的常见问题总结


赛灵思大陆代理商基于Xilinx FPGA用于ASIC的常见问题总结.jpg


将FPGA用于ASIC验证与实现传统RTL设计的主要区别在于,根据应用场景,ASIC将有大量的门控时钟(锁相环门)和功率开关(功率门),其中功率门不需要在FPGA上实现,不能在FPGA上实现。它是IP供应商或铸钢厂提供的一个基本库文件,属于非综合类,前端仿真将有相应的仿真模型,当然,该模型不能在FPGA上实现。时钟门,即门控时钟,也有相应的仿真模型,只要稍加修改,就可以在FPGA上进行综合和实现。


FPGA本身有一个特殊的时钟单元,以Xilinx FPGA为例,是原语库中的BUFG。当使用BUFG时,FPGA工具可以保证每个触发器从时钟树到时钟输入C的路径相对较长,这可以有效地保证CLK_FISUW在一个合理的值范围内,因此在执行“综合优化-布局-布线”的过程时,就不会出现等待量问题,我们只需专注于解决设置容量问题。BUFG资源在Xilinx FPGA上是有限的和有价值的,因此传统的FPGA设计要求避免门控时钟码,时钟域的划分应该非常清晰,尽可能使整个设计工作在同步时钟中进行,这将有利于时序的收敛。


基于Xilinx FPGA的ASIC前端验证问题综述


然而,当用FPGA实现ASIC的验证时,门控时钟是不可避免的。例如,当ASIC开机和复位时,并不是所有的逻辑都同时工作,也就是说,只有一部分触发器开始工作,而很大一部分触发器可能根本无法接收到有效的时钟。这种情况与ASIC的启动过程是一致的,所以在FPGA上验证时应该保留这种情况。例如,ASIC需要在一定的情况下降低功耗,会关闭一个模块的时钟,这种时钟门为了降低功耗可以直接优化,并且不会影响FPGA验证ASIC的功能。


因此,在得到ASIC RTL后,首先要选择和处理这种可以优化的时钟门,然后经过处理综合RTL,看看各种资源的使用是否合理,只要LUT、FF、RAM等资源不超过FPGA的容量限制,当然,在利用率特别高的情况下,会导致后者的PR速度慢,有失败的风险,RTL可以适当地剪短。BUFG的使用应注重检查,XC7V系列FPGA单片BUFG不超过32,XC7V2000T这种多芯片FPGA将有32x4BUFG,但BUFG的使用越少,当BUFG特别使用时,就有可能报告错误所在,各时钟之间的关系应逐个分析,所有这些都是跨时钟域问题。


当大量使用BUFG时,可以在优化完成之前停止项目。使用Vivado打开dcp文件,搜索所有BUFG示例位置。人工MMCM消耗的BUFG IP可以一个地检查,BUFG应该一个地检查,修改原始的定时约束文件,增加每个BUFG的输出O,找到它的源时钟。我的经验是在这个时候不限制跨时钟域,这样Vivado的分析工具就会认为每两个时钟之间都有一种关系,并在报告中分析它们的设置和保持。在Vivado中,源修改的时间约束文件,即第一轮PR,在完成Report_TimeTime_SUBEAD命令的连接之后,获取整个设计时序检查报告,在此计时报告中将详细列出您定义的所有时钟、帧内报告和内部报表之间的关系:


1.内部报表是单个时钟内部设置和保持问题,通常只存在设置问题,如果存在延迟问题,则必须检查您的时钟代码是否使用了错误的BUFG,导致时钟倾斜过大,当存在设置问题时,可以查看关键路径,如果逻辑层数合理,但数据路径延迟很大,导致设置不能满足,必须打开Vivado布局工具,找出明显不合理的布线。


如果某个两个LUT之间的空间非常接近,但是行走延迟很大,比如2ns以上,那么这条线很可能会执行冗余绕组,当然,这是由路由工具本身实现的,这个绕线的目的可能是路径仍然存在于另一个时钟定时约束中,这可能是跨越时钟域的情况,所以您可以忽略这个设置的违反,但是如果逻辑级别本身已经超过60,但是您的路径时钟需要运行到80米,那么很难满足要求,要回头看RTL问题,最好是修改RTL,增加节拍;


二.内部报告显示所有跨时钟域问题。通常第一轮PR得到的报告之间的定时违规会很痛苦,不必看每条路径,而是每两条违规时钟来查看,你只能看到违规最严重的路径,首先检查工具所需的设置时间是否合理,因为我们没有对这两个时钟施加限制,所以这里的检查是最严格的,工具会按时钟移动。找出两个上升边最小的延迟,以检查设置问题。如果延迟目标不合理,可以增加多循环约束。延迟目标可能很小,只有几ns。


服务热线

400-801-6772

企业微信销售咨询