[X]关闭

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

文档创建者:KevinLin
浏览次数:6092
最后更新:2021-05-23
本帖最后由 KevinLin 于 2021-5-21 10:07 编辑

老师好,最近测试ps-pl通过bram实现小批量数据传输(工程CH19_PS_PL_BRAM)  编译遇到个报错:[DRC NDRV-1] 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) bit[1:0]2位作为2个按键输入,第bit[2]作为PS→PL的触发引脚;通道2(GPIO2) bit[0]作为工作指示灯,bit[1]用作PL→PS中断触发IO。修改的工程IO通过system_wrapper引出(官方教程通过system_i引出),system_top做了申明inout [1:0]AXI_GPIO_BTN_tri_io,
inout [0:0]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[1:0]}),
.AXI_GPIO_LED_tri_io({AXI_GPIO_LED_tri_io_1,AXI_GPIO_LED_tri_io[0:0]}),

与教程唯一的区别就是通过system_wrapper引出,请问可能是什么原因引起的呢,看到教程上通过system_i引出,定义是这样的:
  wire [0:0]GPIO_tri_i_0;
  wire [1:1]GPIO_tri_i_1;
  wire [0:0]GPIO_tri_o_0;
  wire [1:1]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引出在定义和配置上有什么区别么,请帮忙指教一下,非常感谢。


发表评论已发布 2

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 ...

明白,谢谢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则