在 Vivado 中写入外设,然后输出到 LED
Writing to a peripheral in Vivado and then outputting to a LED
我想在 Vivado 中创建一个基本项目,它采用我输入到客户端的值,该值被发送到我创建的服务器(在 C 中),然后服务器将该值写入 Vivado 中的外围设备,然后外围设备中的数据被发送到分配给 LED 的输出引脚,使 LED 亮起。
基本上我想从客户端-->服务器-->外设-->LED亮起
比如在客户端(一个GUI)我想给它一个值比如0011,这个值被服务器接收。然后服务器将该值写入外围设备,在这种情况下,LED0 和 LED1 不亮,但 LED2 和 LED3 会亮。
我知道如何在Vivado中制作AXI4外设,客户端-服务器(TCP/IP)已经制作完成。我的问题是我需要什么 code/design 块来获取写入外围设备的数据并将其分配给 LED?
我应该将外围设备设为主设备还是从设备?总的来说我很困惑我应该如何从这里开始。我正在使用通过以太网电缆连接到我的计算机的 Red Pitaya (Xilinx Zynq 7010 SoC)。
此外,我想到了 运行 Red Pitaya 上的程序,通过 运行 命令
将比特流加载到它上面(使用 WinSCP)
cat FILE_NAME.bit > /dev/xdevcfg
在PuTTY(通过IP地址连接火龙果),然后运行火龙果上的服务端,然后从客户端发送信号给服务端接收。这是接近它的正确方法吗?
如果我的逻辑有问题,请告诉我
我有点被你的发言震惊了。
你先说"I know how to make an AXI4 peripheral in Vivado"
接下来我读到:"Should I make the peripheral a Master or Slave?"
也许我错了,但对我来说,这说明你真的不知道你在做什么。
最简单的是:
- 实例一个zynq系统。
- 添加名称为 "AXI GPIO" 的 IP。 (顺便说一下,它是一个 AXI 从设备。)
- 运行自动连接。
- 将正确的 I/O 引脚分配给 GPIO 端口。 (查看你的开发系统手册)
- 构建系统。
顺便说一句,您在地址选项卡中找到外设的地址,它通常是 0x0080000000。
您写道您制作了一个服务器 (TCP/IP)。 "All" 它要做的是将接收到的值写入 GPIO 块中的寄存器。 (这里我假设 Xilinx 有一个描述 GPIO 块如何工作的文档,并有示例 GPIO 驱动程序。)
我想在 Vivado 中创建一个基本项目,它采用我输入到客户端的值,该值被发送到我创建的服务器(在 C 中),然后服务器将该值写入 Vivado 中的外围设备,然后外围设备中的数据被发送到分配给 LED 的输出引脚,使 LED 亮起。
基本上我想从客户端-->服务器-->外设-->LED亮起
比如在客户端(一个GUI)我想给它一个值比如0011,这个值被服务器接收。然后服务器将该值写入外围设备,在这种情况下,LED0 和 LED1 不亮,但 LED2 和 LED3 会亮。
我知道如何在Vivado中制作AXI4外设,客户端-服务器(TCP/IP)已经制作完成。我的问题是我需要什么 code/design 块来获取写入外围设备的数据并将其分配给 LED?
我应该将外围设备设为主设备还是从设备?总的来说我很困惑我应该如何从这里开始。我正在使用通过以太网电缆连接到我的计算机的 Red Pitaya (Xilinx Zynq 7010 SoC)。
此外,我想到了 运行 Red Pitaya 上的程序,通过 运行 命令
将比特流加载到它上面(使用 WinSCP)cat FILE_NAME.bit > /dev/xdevcfg
在PuTTY(通过IP地址连接火龙果),然后运行火龙果上的服务端,然后从客户端发送信号给服务端接收。这是接近它的正确方法吗?
如果我的逻辑有问题,请告诉我
我有点被你的发言震惊了。
你先说"I know how to make an AXI4 peripheral in Vivado"
接下来我读到:"Should I make the peripheral a Master or Slave?"
也许我错了,但对我来说,这说明你真的不知道你在做什么。
最简单的是:
- 实例一个zynq系统。
- 添加名称为 "AXI GPIO" 的 IP。 (顺便说一下,它是一个 AXI 从设备。)
- 运行自动连接。
- 将正确的 I/O 引脚分配给 GPIO 端口。 (查看你的开发系统手册)
- 构建系统。
顺便说一句,您在地址选项卡中找到外设的地址,它通常是 0x0080000000。
您写道您制作了一个服务器 (TCP/IP)。 "All" 它要做的是将接收到的值写入 GPIO 块中的寄存器。 (这里我假设 Xilinx 有一个描述 GPIO 块如何工作的文档,并有示例 GPIO 驱动程序。)