[X]关闭

7020 CH19 利用BRAM进行PL和PS间通信

文档创建者:伊人
浏览次数:4848
最后更新:2020-02-15
1.如图1和图2 ,应该定义wire FCLK_CLK0,这样似乎更规范
2. gpio的宽度为什么定义为2位,我觉得一位就够用了,而且,pl端的代码中也没有使用到  wire [1:1]GPIO_tri_o_1这个信号,是不是我理解错误
3. axi gpio 翻转一次,产生一次中断,这个过程是在axi_gpio 这个ip核中完成的吗?或者体现在代码中那个函数?
4. 因为对这个中断怎么产生的不太清楚,所以我想这个例程是否可以不用中断,而是在主函数中用一个死循环去读取gpio的状态,pl读写完成后,跳出死循环
5. ps写一次数据之后,为什么用的是上升沿的方式去通知pl,而不是给gpio置1这种方式,这样做有什么考虑吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

发表评论已发布 3

uisrc

发表于 2020-2-14 13:29:00 | 显示全部楼层

1、这个问题自己觉得方便就用 哪一种
2、GPIO_tri_o 定义的是输出,而同时,也可以支持输入GPIO_tri_i,也就是输出的结果,可以读回来确认
3、4、根据问题2,所以当我们PS翻转IO后,PL就会IO翻转,那么就会产生一个输入中断。中断的时效要比while死循环好,而且不占用额外的CPU
5、对于FPGA来说,如果用电平判断是不行的,得取跳变沿同步。否则会一直读到电平值
越努力越幸运!加油!

伊人

发表于 2020-2-15 11:26:26 | 显示全部楼层

msxbo 发表于 2020-2-14 13:29
1、这个问题自己觉得方便就用 哪一种
2、GPIO_tri_o 定义的是输出,而同时,也可以支持输入GPIO_tri_i,也 ...

3. pl GPIO_tri_i[1]产生一次翻转,AXI_GPIO IP核就会自动产生一次中断是吗?这个中断的产生是自动完成的是吗?
6. 关于pl端读BRAM,如图3,这个状态机里面,在0状态下将bram_en置1,紧接着1状态就置0,然后2状态将数据给bram_rd_data,我不太理解,我觉得应该先读数据,然后给bram_en 置0,请老师解答,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

uisrc

发表于 2020-2-15 11:34:07 | 显示全部楼层

3、GPIO的IP是采集它自己反转的信号,就能产生中断,中断产生后,C代码里面需要中断函数处理
6、在ps_bram_wr_done为0期间,bram_en就是0
越努力越幸运!加油!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则