Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vhdl zynqsoc-Zedboard上的简单加法器控制信号_Vhdl_Fpga_Hardware Acceleration_Zynq - Fatal编程技术网

Vhdl zynqsoc-Zedboard上的简单加法器控制信号

Vhdl zynqsoc-Zedboard上的简单加法器控制信号,vhdl,fpga,hardware-acceleration,zynq,Vhdl,Fpga,Hardware Acceleration,Zynq,我是Zedboard的新手,正在准备转移一个复杂的硬件加速器,我目前正在一个普通的FPGA板上工作。无论如何,我想在跑步之前先走路,所以我已经完成了Zedboard speedway教程,现在正在玩一些小项目。我的第一个是一个简单的加法器加速器: -向pl(可编程逻辑)发送2个数字,以注册a和b -pl将数字相加 -PS(CPU)中断表示计算已完成 -在ISR中,PS从reg c读取结果 对于这种设计,我在AXI互连中使用了3个寄存器(a、b、c),我使用CIP创建了IP模板 基本上,什么是发送

我是Zedboard的新手,正在准备转移一个复杂的硬件加速器,我目前正在一个普通的FPGA板上工作。无论如何,我想在跑步之前先走路,所以我已经完成了Zedboard speedway教程,现在正在玩一些小项目。我的第一个是一个简单的加法器加速器:

-向pl(可编程逻辑)发送2个数字,以注册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的用户逻辑HDL中构建一个开关,因此当断言写入reg B时,我可以向加法器发送一个启用信号?或者,如果数据没有立即完全写入,我会遇到一些并发问题吗?

为此,我使用CIP创建了AXI perph,然后修改了使用的逻辑和两个新端口en和INTERRUP。按照这些说明,我使用了这些外部连接


然后,我将这两个外部连接连接到GPIO接口,以提供所需的功能

在您的大型设计中,使用GPIOs控制加速器的调度将很难获得性能。我建议在软件和硬件之间设置命令块的FIFO

例如,您的外围设备可以实现一个AXI流从设备,以接收来自软件的命令,以及一个AXI流主设备,以将结果指示发送回软件

它可以断言一个中断,以指示响应FIFO中存在值


为了获得更高的性能,请在DRAM中设置这些FIFO,并在外围设备中使用AXI读/写主机。

先走后跑:这意味着首先要使用GPIO。它将处理一些开关,寄存器和灯(显示?)刚刚好。稍后,如果需要避免额外的硬件层,或者GPIO驱动程序太慢,您可以开发自己的AXI外围设备。