微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 时序仿真频率一高就出错,但是程序上板子就正常工作,请大神指教这是怎么回事?

时序仿真频率一高就出错,但是程序上板子就正常工作,请大神指教这是怎么回事?

时间: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

自己顶一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top