解决VIvado编程中遇到的bug 4
- 关键词: 调用,Verilog HDL,modelsim,bug
一、引言
此系列博客专门发表 博主在开发过程中遇到的各种bug,以及bug的思路分析以及解决方法,帮助诸君在开发过程中遇到类似的问题能迅速找到解决思路和方法。
二、问题、分析及解决方法
1. 需要利用XADC的模拟输入通道,对部分的输入电压进行监控,在例化XADC模块时,发生报错
(1)错误
(2)分析
1、错误的核心是LVCMOS33标准通常使用3.3V的电源电压,而LVCMOS18标准通常使用1.8V的电源电压。当一个输出端口使用3.3V的电压而一个输入端口使用1.8V的电压时,如果这两个端口直接相连,就可能导致电压不匹配的问题,因为输入端口可能无法承受3.3V的电压
2、后面查到是因为xadc管脚被占用,导致编译一直报错,xadc脚是专用管脚,硬件上被占用,程序上被例化,结果编译报错
(3)解决办法
将程序上例化的管脚去掉,像如果这种xadc专用管脚,最后单独留出来。不然忘记的话,就会导致管脚冲突。
2、vivado在固化 fpga发生报错
(1)错误
(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)错误
(2)分析
这个错误信息是Vivado工具在设计规则检查(DRC)过程中发现的一个问题,具体是关于组合逻辑环(Combinatorial Loop)的警告。警告表明设计中存在一个组合逻辑环,这可能导致竞争条件(race condition)。由于存在组合逻辑环,时序分析可能不准确。推荐解决方案是修改设计以移除组合逻辑环
(3)解决办法
1、检查设计,确定组合逻辑环的确切位置和原因。修改设计以消除组合逻辑环。
2、这个报错我在抓ila信号的时候遇到过一次,这个时候我的解决办法是把抓取的信号打了一拍 ,再进行抓取
4、vivado编译时报错
(1)错误
.##### (2)分析
这个错误信息是在使用Vivado工具进行FPGA设计布局时遇到的。错误指出设计需要的BUFG(全局缓冲器)和BUFGCTRL(可控全局缓冲器)单元数量超过了目标设备所能提供的数量。
(3)解决办法
这个报错是BUFG资源超了,解决办法只能是修改设计或者修改功能,节省BUFG的使用,BUFG的资源绝对不能滥用,要合理使用,如果还是资源不够的话,就只能考虑更换资源更多的FPGA设备了。