我是Zedboard的新手,正在努力转移我目前在常规FPGA板上工作的复杂硬件加速器。无论如何,我想在我跑步之前走路,所以已经完成了Zedboard高速公路教程,现在正在玩小项目。我的第一个是简单的加法器加速器:
- 向pl(可编程逻辑)发送2个数字,发送到reg a和b
- pl添加数字
- 中断PS(CPU)信号,计算结束。
- 在ISR中,PS从reg c
读取结果对于这个设计,我在AXI互连中使用了3个寄存器(a,b,c),我使用CIP创建了IP模板。
基本上,尽管发送控制信号以启用PL的最佳方式是什么。那么我应该如何向PL加法器发信号通知我已经在reg a和b中加载了两个数字并且现在想要添加它们?
- 我应该创建1位信号GPIO互连,在IP上添加第4个1位控制寄存器吗?或者使用BUS2IPdata信号有更“时尚”的方法吗?
- 或者是否有另一种方法可以创建自定义PS到PL控制使能信号?
非常感谢 萨姆
目前的想法:
- 根据BUS2IPWrCE在user_logic HDL中建立一个开关,所以当断言写入reg B时,我可以向我的加法器发出一个使能信号?或者我会遇到一些并发问题,数据没有立即完全写入?
答案 0 :(得分:0)
为此,我使用CIP创建了AXI perph,然后修改了used_logic和两个新端口,en和interrupt。按照这些说明,我使用了这些外部连接。http://www.programmableplanet.com/author.asp?section_id=2142&doc_id=264841
然后,我将这两个外部连接连接到GPIO接口,以提供所需的功能。
答案 1 :(得分:0)
在较大的设计中,使用GPIO控制加速器的调度很难获得性能。我建议在软件和硬件之间设置命令块的FIFO。
例如,您的外围设备可以实现AXI流从设备,从软件接收命令,以及AXI流主设备,将结果指示发送回软件。
它可以断言一个中断来指示响应FIFO中有值。
为了获得更高的性能,请在DRAM中设置这些FIFO,并在外设中使用AXI读/写主机。