在 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?"

也许我错了,但对我来说,这说明你真的不知道你在做什么。

最简单的是:

  1. 实例一个zynq系统。
  2. 添加名称为 "AXI GPIO" 的 IP。 (顺便说一下,它是一个 AXI 从设备。)
  3. 运行自动连接。
  4. 将正确的 I/O 引脚分配给 GPIO 端口。 (查看你的开发系统手册)
  5. 构建系统。

顺便说一句,您在地址选项卡中找到外设的地址,它通常是 0x0080000000。

您写道您制作了一个服务器 (TCP/IP)。 "All" 它要做的是将接收到的值写入 GPIO 块中的寄存器。 (这里我假设 Xilinx 有一个描述 GPIO 块如何工作的文档,并有示例 GPIO 驱动程序。)