关于FPGA的代码书写错误引起的时序问题

一、现象

FPGA 从RAM中读取DAC数据后,出现偶尔从RAM读错数据的情形,有时候修改一些代码后又不出现该错误的

二、分析

根据这个现象应该是时序引起的,需要做实验定位问题是写数据有误还是读数据有误,最后通过实验分析是写数据有误。

三、手撕代码

发现写数据到ram中,有两个信息跨时钟且都是写信号,会出现类似"竞争与冒险"的错误,因为有个是先写另外一个是后写,但是这两个信号同时置为"1",且跨时钟域,又时写信号,所以它们走的内部路线可能是不一致的,有时候按照代码的意思走,所以不出现错误,但是有时候走的路线不一致从而导致发送逻辑的错误,因此修改代码,不让这个信号同时置为"1",先让第一个置"1"后再让另一个置为"1"。

相关推荐
XMAIPC_Robot2 小时前
基于RK3576+FPGA+AI工业控制器的工地防护检测装备解决方案
人工智能·fpga开发
XMAIPC_Robot14 小时前
基于 ZYNQ UltraScale+ OV5640的高速图像传输系统设计,支持国产替代
linux·数码相机·fpga开发·架构·边缘计算
读书点滴1 天前
关于FPGA软核的仿真(一)
fpga开发
XMAIPC_Robot1 天前
基于 NXP + FPGA+Debian 高可靠性工业控制器解决方案
运维·人工智能·fpga开发·debian·边缘计算
天天爱吃肉82181 天前
【嵌入式(2)深入剖析嵌入式开发:从基础到实战】
嵌入式硬件·fpga开发
ThreeYear_s2 天前
基于FPGA的VGA显示文字和动态数字基础例程,进而动态显示数据,类似温湿度等
fpga开发
GateWorld2 天前
《深入解析SPI协议及其FPGA高效实现》-- 第二篇:SPI控制器FPGA架构设计
fpga开发·开源协议
GateWorld2 天前
《深入解析UART协议及其硬件实现》-- 第三篇:UART ASIC实现优化与低功耗设计
fpga开发·开源协议
泪水打湿三角裤2 天前
自主设计一个DDS信号发生器
fpga开发
hahaha60162 天前
RK3588和FPGA桥片之间IO电平信号概率性不能通信原因
单片机·嵌入式硬件·fpga开发