KevinLin 发表于 2021-5-21 09:48:43

ZYNQ IO通过system_i 与system_wrapper引出,配置方式的区别

本帖最后由 KevinLin 于 2021-5-21 10:07 编辑

老师好,最近测试ps-pl通过bram实现小批量数据传输(工程CH19_PS_PL_BRAM)编译遇到个报错: Driverless Nets: Net u_system_wrapper/AXI_GPIO_BTN_tri_i_2, and u_system_wrapper/AXI_GPIO_LED_tri_i_1 are undriven.
我的测试在原PS-PL BRAM数据传输课程上修改,使用了axi_gpio的2个通道,通道1(GPIO) bit2位作为2个按键输入,第bit作为PS→PL的触发引脚;通道2(GPIO2) bit作为工作指示灯,bit用作PL→PS中断触发IO。修改的工程IO通过system_wrapper引出(官方教程通过system_i引出),system_top做了申明inout AXI_GPIO_BTN_tri_io,
inout AXI_GPIO_LED_tri_io,
做了定义
wire AXI_GPIO_BTN_tri_io_2;
wire AXI_GPIO_LED_tri_io_1;
u_system_wrapper例化做了处理:      
.AXI_GPIO_BTN_tri_io({AXI_GPIO_BTN_tri_io_2,AXI_GPIO_BTN_tri_io}),
.AXI_GPIO_LED_tri_io({AXI_GPIO_LED_tri_io_1,AXI_GPIO_LED_tri_io}),

与教程唯一的区别就是通过system_wrapper引出,请问可能是什么原因引起的呢,看到教程上通过system_i引出,定义是这样的:
wire GPIO_tri_i_0;
wire GPIO_tri_i_1;
wire GPIO_tri_o_0;
wire GPIO_tri_o_1;
例化:
      .GPIO_tri_i({GPIO_tri_i_1,GPIO_tri_i_0}),
      .GPIO_tri_o({GPIO_tri_o_1,GPIO_tri_o_0}),
      .GPIO_tri_t(),
通过system_i引出与system_wrapper引出在定义和配置上有什么区别么,请帮忙指教一下,非常感谢。


uisrc 发表于 2021-5-22 08:38:00

你需要了解下IOBUF源语的使用,通过源语实现三态控制
   IOBUF IOBUF_inst (
      .O(O),   // 1-bit output: Buffer output方向是外部引脚IO 输入到FPGA内部逻辑
      .I(I),   // 1-bit input: Buffer input方向是FPGA内部逻辑输出到外部引脚IO
      .IO(IO), // 1-bit inout: Buffer inout (connect directly to top-level port) 外部引脚IO
      .T(T)    // 1-bit input: 3-state enable input 定义输入还是输入,当T=0 IO是三态的可以用于输入,当T=1 是输出
   );

KevinLi_D3m9z 发表于 2021-5-23 15:22:16

uisrc 发表于 2021-5-22 08:38
你需要了解下IOBUF源语的使用,通过源语实现三态控制
   IOBUF IOBUF_inst (
      .O(O),   // 1-bit ou ...

明白,谢谢。
页: [1]
查看完整版本: ZYNQ IO通过system_i 与system_wrapper引出,配置方式的区别