时序仿真频率一高就出错,但是程序上板子就正常工作,请大神指教这是怎么回事?
时间:10-02
整理:3721RD
点击:
各位大神,小弟自己写了一个SM3加密程序,时序仿真频率一高就出错,最高到62.5MHz,但是程序上板子频率到100MHz可以正常工作,请大神指教这是怎么回事?
时序仿真用的仿真模块和板上跑的模型是否一样!
一样的模块,板子上使用单片机给fpga发送数据,时序仿真时则是写tb给模块送数据
是否存在异步逻辑?
上板子时,工作时钟是由20M的晶振经pll 5倍频出来的,时序仿真则是使用always #5 clk=~clk;内部不存在异步电路。大神方便加qq372481163,这样交流方便些,谢谢大神。
仿真的timescale怎么设置的
`timescale 1ns/10ps 用上面的方式
仿真的时候初始化是否有reset
能否请大神们,具体点说?如果存在异步逻辑,会怎么样?多谢1
如果存在异步逻辑,设计上没有保证不会有问题的话,会导致出现错误是偶然的,你的FPGA上没有问题并不代表没有问题,仿真上刚好遇到而已。
这个就是最大的不同了,你tb给模块送数和单片机发数,2者时序上应该有差别。
这种情况也是有的,SM3算法加法链比较长,时序上确实比较紧张,仿真的延时模型和实际是不一致的,实际的延时情况未必是最差的,也许你换个便宜点的FPGA也不对了,所以不要纠结这个!
频率高仿真出错,说明时序有问题
上FPGA没出问题可能没碰到最worst的path
如果仿真模型正确的话,我感觉是仿真靠谱,板上跑的通,并不能说明一直没问题,就是没有遇到而已,有可能是小概率,其实你分析下STA就能看出不少问题的
clk约束设置到100M,看看有没有critical path
自己顶一下
