Vivado 2023.1 IP块设计问题:RTL模块输出无法连接至AXI GPIO的LED接口
解决Vivado 2023.1中自定义RTL模块与AXI GPIO输出端口的连接问题
问题描述
我正在使用Vivado 2023.1,无法将自定义RTL模块的输出连接到用于驱动LED的AXI GPIO输出端口。
自定义RTL代码(优化冗余写法)
module led_blinker ( input wire sysclk, input wire rst, output wire led ); reg [26:0] counter; reg led_state; // 与PS复位逻辑匹配,采用低电平复位 always @(posedge sysclk or negedge rst) begin if (~rst) begin counter <= 27'd0; led_state <= 1'b0; end else begin if (counter == 27'd99999999) begin // 修改该值可调整LED闪烁频率 counter <= 27'd0; led_state <= ~led_state; end else begin counter <= counter + 1'b1; end end end // 简化组合逻辑赋值 assign led = led_state; endmodule
连接与配置步骤
配置AXI GPIO IP
打开AXI GPIO配置窗口,将目标通道设置为输出模式,位宽至少设为1(对应单个LED);若无需双通道,取消“Enable Dual Channel”勾选。在Block Design中完成模块连接
- 点击Block Design界面的
+按钮,选择“Add Module”,导入led_blinker模块。 - 连接时钟与复位:将PS端的
FCLK_CLK0连接到led_blinker的sysclk端口;将PS端的低电平复位信号FCLK_RESET0_N连接到led_blinker的rst端口(与模块低电平复位逻辑匹配)。 - 连接输出信号:将
led_blinker的led输出端口连接到AXI GPIO的GPIO_IO对应位(例如GPIO_IO[0])。
- 点击Block Design界面的
生成设计并验证
- 点击“Generate Output Products”生成IP输出文件,再选择“Create HDL Wrapper”创建顶层封装。
- 完成综合、实现后生成比特流,下载到开发板测试LED是否正常闪烁。
排查补充
若仍无法连接,检查Block Design中是否存在未解决的约束冲突,或确认AXI GPIO的输出通道已正确映射到开发板LED引脚(可通过“Open Implemented Design”查看引脚分配)。
内容的提问来源于stack exchange,提问作者user2979872
相关产品推荐
相关产品推荐

