解决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 \\]'. 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设备了。

相关推荐
FPGA之旅1 小时前
FPGA从零到一实现FOC(一)之PWM模块设计
fpga开发·dubbo
源代码•宸2 小时前
C++高频知识点(二)
开发语言·c++·经验分享
XMAIPC_Robot2 小时前
基于ARM+FPGA的光栅尺精密位移加速度测试解决方案
arm开发·人工智能·fpga开发·自动化·边缘计算
MingYue_SSS2 小时前
开关电源抄板学习
经验分享·笔记·嵌入式硬件·学习
cycf3 小时前
状态机的设计
fpga开发
peace..4 小时前
温湿度变送器与电脑进行485通讯连接并显示在触摸屏中(mcgs)
经验分享·学习·其他
szxinmai主板定制专家5 小时前
【精密测量】基于ARM+FPGA的多路光栅信号采集方案
服务器·arm开发·人工智能·嵌入式硬件·fpga开发
TeleostNaCl6 小时前
Android 应用开发 | 一种限制拷贝速率解决因 IO 过高导致系统卡顿的方法
android·经验分享
通信射频老兵8 小时前
卫星通信基础知识---自由空间衰减和天线增益计算
经验分享·5g·数学建模·信号处理·射频工程
千宇宙航12 小时前
闲庭信步使用SV搭建图像测试平台:第三十二课——系列结篇语
fpga开发