Vitis中xparameters.h未生成BRAM参数问题求助
问题
- 作为Vivado和Vitis新手,正在开发包含BRAM的设计
- BRAM已在块设计中完成配置,且在Vitis的XSA文件中可被识别,但应用组件的
xparameters.h文件里始终没有生成XPAR_BRAM_...相关参数定义 - 测试添加LED外设时,系统能自动生成对应
XPAR_参数,使用的是Vitis Unified IDE 2023.2.1版本 - 曾考虑用推断BRAM实现,但因为需要和Zynq处理器通信,觉得AXI方式实现难度太高
- 已尝试过修改BRAM分配的地址空间、删除并重新添加BRAM生成器及控制IP,操作后仅时序摘要存在警告,比特流可正常生成
解决方案
无需依赖自动生成的驱动或参数,直接手动定义BRAM分配的地址空间,使用Xil_Out32/Xil_In32(或64位版本Xil_Out64/Xil_In64)等底层IO函数即可完成BRAM的读写操作,示例代码如下:
#include "xil_io.h" #include <stdio.h> #include <xil_types.h> #include "xil_printf.h" // 替换为你实际分配的BRAM基地址和高位地址 #define BRAM_BASE_ADDRESS 0x40000000 #define BRAM_HIGH_ADDRESS 0x40003fff int main() { xil_printf("DEVICE STARTED\n"); u64 input = (u64)0x48656c6c6f212121; // 对应ASCII字符"Hello!!!" Xil_Out64(BRAM_BASE_ADDRESS, input); u64 data = Xil_In64(BRAM_BASE_ADDRESS); for (;;) { printf("DEVICE DATA: %llu\n", data); } return 0; }
注意:
BRAM_BASE_ADDRESS和BRAM_HIGH_ADDRESS需要替换为你在Vivado地址分配器中实际给BRAM分配的地址范围
内容的提问来源于stack exchange,提问作者Samuel Smith
相关产品推荐
相关产品推荐

