时序优化和上板调试小结

  1. fpga 内部对于除法 ,不论是取整还是求余 ,都十分不友好。特别是除法+组合逻辑+大位宽 的的组合方式,会综合处很大的逻辑深度和逻辑级数,造成时序违例;

解决: 使用移位计算取代 ,这也是为什么fpga 喜欢定义参数==2的幂次方;

乘法和除法使用累加/累减 实现(注意处理的最大时钟周期);

  1. fpga 内部对于乘法的计算也不友好,通常是将乘法逻辑拆分+打拍的方式修复时序。 如果不必要的过大位宽也不利于时序收敛;

解决:使用右移实现;

计算拆分+流水;

  1. 对于逻辑内部设计到基于软件配置信息,fpga 内部自己计算输出的一些内参信息。 如果内参信息的计算设计的除法/乘法/加法/减法 等组合运算时 ,完全可以将内参的计算剥离出来,转换成配置接口的形式传入。 fpga 工程师可以提供脚本,借助脚本计算出软件将要配置的所有接口信息。

解决: 删除内参生成逻辑,改为软件配置接口实现,fpga 提供参数生成脚本,帮助软件配置;

  1. fpga内部对于bram的depth 必须是2 的幂次方,比如深度为1024 ,那么bram的深度位宽是10 ,另外xilinx 的bram深度 是 (数据存储位宽 * 深度)

  2. 数据输入fifo ,做整包调度,允许整包丢弃。逻辑需要保证实现整包写和整包读取; 也就是,在写的过程中,不care反压,只在写的第一拍判断输入缓存是否afull。

在读的第一拍,判断后级FIFO是否afull ,不afull 一直读取,后续的读不care 后记fifo 的afull

  1. 对于图像的读写仿真测试,需要借助fwrite和fread,将dut的 输出保存到文件,借助py 解析文件,可以快速定位代码问题;

  2. 项目开发步骤: 编码===》仿真===》修改时序===》再次仿真验证===》上板调试===》 加ila,signaltap ===》 项目pass

相关推荐
FPGA小徐2 小时前
深度神经网络FPGA设计进展、实现与展望
fpga开发
FPGA小徐5 小时前
FPGA数字信号处理(一)数字混频实现详解|NCO/DDS原理、有符号数避坑、直流滤除工程实战
fpga开发
Passionate.Z6 小时前
基于FPGA的CLAHE自适应限制对比度直方图均衡算法硬件verilog实现
图像处理·嵌入式硬件·算法·fpga开发·fpga
Szime20 小时前
AD9694 国产替代方案:四通道高速 ADC 在通信与雷达项目中的选型参考
单片机·嵌入式硬件·fpga开发
kaizq1 天前
在线MakerChip虚拟FPGA设计动态仿真实践
fpga开发·mulerun·makerchip·virtualfpgalab·在线动态仿真·imacopilot
FPGA小徐1 天前
OV5640 摄像头 DDR3 缓存 HDMI/VGA 显示系统详解与
fpga开发
Monkey of Semi1 天前
ARTIX-7 FPGA 核心板学习之FPGA Xilinx 7 series 命名规则
fpga开发
ALINX技术博客1 天前
【黑金云课堂】FPGA技术教程Vitis开发:TCP以太网通信
网络协议·tcp/ip·fpga开发
FPGA小徐1 天前
FPGA 电赛信号叠加与分离项目 完整工程包
fpga开发
FPGA小徐1 天前
FPGA在做信号处理相比cpu的优势对比
fpga开发