解决VIvado编程中遇到的bug 4

解决VIvado编程中遇到的bug 4

语言 :Verilg HDL

EDA工具: Vivado、modelsim

一、引言

此系列博客专门发表 博主在开发过程中遇到的各种bug,以及bug的思路分析以及解决方法,帮助诸君在开发过程中遇到类似的问题能迅速找到解决思路和方法。

二、问题、分析及解决方法
1. 需要利用XADC的模拟输入通道,对部分的输入电压进行监控,在例化XADC模块时,发生报错
(1)错误

[Place 30-372] Bank 35 has terminals with incompatible standards:

Incompatible Pair of IO Standards: (OUT of IO Standard LVCMOS33) & (IN

of IO Standard LVCMOS18) have incompatible Vccs The following

terminals correspond to these IO Standards: SioStd: LVCMOS33 VCCO =

3.3 Termination: 0 TermDir: Out Bank: 35 Drv: 12 Placed :

Term: Z7_CHAOUT_JLQHKG

Term: Z7_FSQH_KG

Term: Z7_JZFS_GDKG

Term: Z7_JZGDKG

Term: Z7_JZJS_GDKG

Term: Z7_JZ_ask

Term: Z7_JZ_bpsk

Term: Z7_NWJZ_QHKG SioStd: LVCMOS18 VCCO = 1.8 Termination: 0 TermDir: In Bank: 35 Placed :

Term: vauxn0

Term: vauxn1

Term: vauxn2

Term: vauxn3

Term: vauxn4

Term: vauxn5

Term: vauxn9

Term: vauxp0

Term: vauxp1

Term: vauxp2

Term: vauxp3

Term: vauxp4

Term: vauxp5

Term: and vauxp9

(2)分析

1、错误的核心是LVCMOS33标准通常使用3.3V的电源电压,而LVCMOS18标准通常使用1.8V的电源电压。当一个输出端口使用3.3V的电压而一个输入端口使用1.8V的电压时,如果这两个端口直接相连,就可能导致电压不匹配的问题,因为输入端口可能无法承受3.3V的电压

2、后面查到是因为xadc管脚被占用,导致编译一直报错,xadc脚是专用管脚,硬件上被占用,程序上被例化,结果编译报错

(3)解决办法

将程序上例化的管脚去掉,像如果这种xadc专用管脚,最后单独留出来。不然忘记的话,就会导致管脚冲突。

2、vivado在固化 fpga发生报错
(1)错误

[Writecfgmem 68-20] SPI_BUSWIDTH property is set to "1" on bitfile

F:/ethernet_test/udp_loopback1/udp_loopback1.runs/impl_1/top.bit.

This property has to be set to "4" to generate a configuration memory

file for the SPIX4 interface. Please ensure that a valid value has

been set for the property BITSTREAM.Config.SPI_buswidth and rerun this

command.

(2)分析

这个错误信息是在使用Vivado工具生成FPGA配置文件时遇到的。错误指出SPI_BUSWIDTH属性被设置为"1",但是为了生成适用于SPIX4接口的配置内存文件,这个属性需要被设置为"4"。

(3)解决办法

有两种解决办法:

1、在生成mcs文件时候,选择SPI X1,就可以使用SPI X1的模式生成MCS固化文件。

2、将BITSTREAM.Config.SPI_buswidth的值从"1"改为"4"。完成属性修改后,重新生成BIT流文件。 具体步骤可以参考我的上一篇博客,有详细的vivado设置步骤。关于FPGA 使用SPI FLASH固化时如何配置固化参数

SPIX4接口通常指的是一个四线SPI接口,包括数据线(通常为MOSI和MISO)和时钟线(SCLK),以及一个片选线(CS)。将SPI_BUSWIDTH设置为"4"意味着配置文件将支持这种四线SPI接口

3、vivado编译时报错
(1)错误

[DRC LUTLP-1] Combinatorial Loop Alert: 1 LUT cells form a

combinatorial loop. This can create a race condition. Timing analysis

may not be accurate. The preferred resolution is to modify the design

to remove combinatorial logic loops. If the loop is known and

understood, this DRC can be bypassed by acknowledging the condition

and setting the following XDC constraint on any one of the nets in the

loop: 'set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets

<myHier/myNet>]'. One net in the loop is sim_pdw_gen/c2_pdw_lenth[0].

Please evaluate your design. The cells in the loop are:

sim_pdw_gen/c2_pdw_lenth_inferred_i_16.

(2)分析

这个错误信息是Vivado工具在设计规则检查(DRC)过程中发现的一个问题,具体是关于组合逻辑环(Combinatorial Loop)的警告。警告表明设计中存在一个组合逻辑环,这可能导致竞争条件(race condition)。由于存在组合逻辑环,时序分析可能不准确。推荐解决方案是修改设计以移除组合逻辑环

(3)解决办法

1、检查设计,确定组合逻辑环的确切位置和原因。修改设计以消除组合逻辑环。

2、这个报错我在抓ila信号的时候遇到过一次,这个时候我的解决办法是把抓取的信号打了一拍 ,再进行抓取

4、vivado编译时报错

(1)错误

[Place 30-640] Place Check : This design requires more BUFG and

BUFGCTRL cells than are available in the target device. This design

requires 35 of such cell types but only 32 compatible sites are

available in the target device. Please analyze your synthesis results

and constraints to ensure the design is mapped to Xilinx primitives as

expected. If so, please consider targeting a larger device

.##### (2)分析

这个错误信息是在使用Vivado工具进行FPGA设计布局时遇到的。错误指出设计需要的BUFG(全局缓冲器)和BUFGCTRL(可控全局缓冲器)单元数量超过了目标设备所能提供的数量。

(3)解决办法

这个报错是BUFG资源超了,解决办法只能是修改设计或者修改功能,节省BUFG的使用,BUFG的资源绝对不能滥用,要合理使用,如果还是资源不够的话,就只能考虑更换资源更多的FPGA设备了。

相关推荐
北城笑笑1 小时前
FPGA 14 ,硬件开发板分类详解,FPGA开发板与普通开发板烧录的区别
fpga开发·fpga
2202_754421541 小时前
一个计算频率的模块
驱动开发·fpga开发
小灰灰的FPGA2 小时前
低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能
fpga开发
yigan_Eins3 小时前
【数论】莫比乌斯函数及其反演
c++·经验分享·算法
爱写代码的派大星3 小时前
bug 就像隐藏在暗处的小怪兽
bug
燕双嘤3 小时前
Bug:引入Feign后触发了2次、4次ContextRefreshedEvent
bug
布说在见6 小时前
个人实施工作的一天 —— 繁琐的数据输入与未来的句里录数据
经验分享·实习实施
梅见十柒6 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
向上的车轮7 小时前
软件世界中的超级bug有哪些?
bug
管家婆客服中心8 小时前
提成制是什么?如何高效管理提成制?
经验分享·管家婆软件