【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故改成同步复位),再进行调试即正确。

相关推荐
brave and determined1 天前
可编程逻辑器件学习(day29):Verilog HDL可综合代码设计规范与实践指南
深度学习·fpga开发·verilog·fpga·设计规范·硬件编程·嵌入式设计
碎碎思3 天前
不用 JTAG 也能刷 FPGA:TinyFPGA-Bootloader 让比特流加载更简单
fpga开发
贝塔实验室3 天前
Altium Designer 6.0 初学教程-在Altium Designer 中对PCB 进行板层设置及内电层进行分割
嵌入式硬件·fpga开发·编辑器·硬件工程·信息与通信·信号处理·pcb工艺
ThreeYear_s3 天前
【FPGA+DSP系列】——MATLAB simulink单相PWM全控整流电路基础版
开发语言·matlab·fpga开发
forgeda3 天前
赛灵思FPGA的市场份额,要从2025年的55%,进一步提升到2030年的70%,凭什么?
ai·fpga开发
怀民民民3 天前
关于ADC
单片机·嵌入式硬件·fpga开发·adc·学习总结·模数转化
太爱学习了3 天前
步进电机sin曲线加速及FPGA实现
fpga开发·步进电机
尤老师FPGA3 天前
LVDS系列33:Xilinx 7系 ADC LVDS接口参考设计(四)
fpga开发
FPGA_无线通信3 天前
FPGA PCIE 包解析
fpga开发
Aaron15883 天前
通用的通感控算存一体化平台设计方案
linux·人工智能·算法·fpga开发·硬件工程·射频工程·基带工程