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

一、现象

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

二、分析

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

三、手撕代码

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

相关推荐
&Cheems1 小时前
ZYNQ笔记(二十):Clocking Wizard 动态配置
笔记·fpga开发
怪小庄吖1 小时前
7系列 之 I/O标准和终端技术
经验分享·笔记·fpga开发·硬件架构·硬件工程·xilinx 7系列 fpga·i/o标准和终端技术
爱学习的张哥1 小时前
专栏项目框架介绍
git·fpga开发·udp·ddr·gt收发器
南山维拉11 小时前
【AXI总线专题】AXI-FULL-Master
fpga开发·zynq·axi-full
矿渣渣12 小时前
ZYNQ处理器在发热后功耗增加的原因分析及解决方案
嵌入式硬件·fpga开发·zynq
起床学FPGA16 小时前
异步FIFO的学习
学习·fpga开发
1560820721920 小时前
锁相环HMC830的调试
fpga开发
吸纹鸽1 天前
蓝桥杯FPGA赛道积分赛
fpga开发·蓝桥杯
&Cheems1 天前
ZYNQ笔记(二十一): VDMA HDMI 彩条显示
笔记·嵌入式硬件·fpga开发
灵风_Brend2 天前
秋招准备——2.跨时钟相关
fpga开发