0

我想在 Vivado 中创建一个基本项目,该项目接受我输入到客户端的值,该值被发送到我制作的服务器(用 C 语言),然后服务器将该值写入 Vivado 中的外围设备,然后将该数据外围设备中的输出引脚被发送到分配给 LED 的输出引脚,从而使 LED 亮起。

基本上我想从客户端-->服务器-->外围设备-->LED灯亮

例如,在客户端(GUI)中,我想给它一个值,例如 0011,由服务器接收。然后服务器将该值写入外围设备,在这种情况下,LED0 和 LED1 不亮,但 LED2 和 LED3 会亮。

我知道如何在 Vivado 中制作 AXI4 外设,并且已经制作了客户端-服务器 (TCP/IP)。我的问题是我需要什么代码/设计块然后将数据写入外围设备并将其分配给 LED?

我应该使外围设备成为主设备还是从设备?总的来说,我应该如何从这里开始。我正在使用通过以太网电缆连接到我的计算机的 Red Pitaya (Xilinx Zynq 7010 SoC)。

另外,我想通过运行命令将比特流加载到 Red Pitaya 上运行程序(使用 WinSCP)

cat FILE_NAME.bit > /dev/xdevcfg

在PuTTY中(通过IP地址连接到Pitaya),然后在pitaya上运行服务端,然后从客户端发送信号给服务端接收。这是接近它的正确方法吗?

如果无论如何我的逻辑不正确,请告诉我

4

1 回答 1

0

我有点被你的说法吓到了。

  • 首先你说“我知道如何在 Vivado 中制作 AXI4 外设”

  • 接下来我读到:“我应该让外围设备成为主设备还是从设备?”

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

最简单的是:

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

顺便说一下,您可以在地址选项卡中找到外围设备的地址,通常为 0x0080000000。

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

于 2019-08-28T18:21:36.110 回答