【Lattice FPGA 开发】Diamond在线调试Reveal逻辑乱跳的解决

在Vivado中在always块中写逻辑时如果出现always块中的异步复位敏感词在块内部未使用的情况,如下例的rst:

复制代码
always @(posedge clk or posedge rst)
begin 	
	if(~tx_sense_flag)
		o_rd_adr <= 'd1;
    else if((o_rd_adr == 'd94) & (bit_cnt == 'd7))
        o_rd_adr <= 'd1;
	else if(bit_clk_en)
		o_rd_adr <= o_rd_adr + 7'd1;
    else
        o_rd_adr <= o_rd_adr;
end 

综合时出现[Synth 8-91] ambiguous clock in event control。

解决办法是在begin end 中加入复位初始化条件,或者删除@()中的 or posedge rst即可。

而在Diamond中对该情况不会进行报错。

这导致在调试时遇到Reveal抓取的逻辑与预期的并不相符,出现不规律乱跳的情况,如下图:

o_rd_adr应该在bit_clk_en为1时自加一,其他情况下保持不变。而实际中o_rd_adr并不是预期的效果。

解决办法:删除掉or posedge rst(由于块中未使用rst故改成同步复位),再进行调试即正确。

相关推荐
XINVRY-FPGA3 小时前
XCZU4EV-1FBVB900E Xilinx FPGA AMD Zynq UltraScale+ MPSoC EV(Embedded Vision)
arm开发·嵌入式硬件·计算机视觉·fpga开发·硬件架构·硬件工程·fpga
从今天开始学习Verilog3 小时前
FFT算法实现之fft IP核
算法·fpga开发
Turing_kun11 小时前
基于FPGA的SPI控制FLASH读写
fpga开发
hahaha601619 小时前
差模干扰 & 共模干扰
fpga开发
璞致电子19 小时前
【PZ-KU060-KFB】——Kintex UltraScale 纯 FPGA 开发平台,释放高速并行计算潜能,高性价比的 FPGA 解决方案
fpga开发·fpga
我爱C编程1 天前
基于FPGA的16QAM软解调+卷积编码Viterbi译码通信系统,包含帧同步,信道,误码统计,可设置SNR
fpga开发·16qam·软解调·帧同步·卷积编码·viterbi译码
南棱笑笑生1 天前
20250726让荣品的PRO-RK3566开发板使用TF卡启动
fpga开发
水果里面有苹果1 天前
1-FPGA的LUT理解
fpga开发
千宇宙航2 天前
闲庭信步使用图像验证平台加速FPGA的开发:第二十七课——图像腐蚀的FPGA实现
图像处理·计算机视觉·fpga开发·图像腐蚀
小白到大佬2 天前
High Speed SelectIO Wizard ip使用记录
fpga开发·lvds·高速接口