Nexys4-DDR迁移指南

介绍

本指南描述了如何将一个ISE或EDK项目的目标是Nexys3板到Nexys4-DDR。

第1步:更新项目

遵循本指南的第一步是将项目升级到ISE或EDK 14.7,如果它是在较早的版本中设计的。这在ISE和EDK中处理方式不同。

伊势项目

这可以通过在project Navigator 14.7中打开新项目,然后允许工具自动更新来实现。这通常是成功的,但如果项目特别老,在尝试升级IP核时可能会导致问题。如果您在升级项目时遇到问题,请尝试将问题发布到Digilent论坛

EDK项目

如果您的设计是AXI设计,请在Xilinx Platform Studio中打开项目。允许工具升级任何IP,它认为是安全的升级。如果项目太旧,可能您使用的IP核的版本在14.7中不再存在。如果是这种情况,在升级到14.7之前,您可能必须将项目升级到仍然包含核心的早期版本。例如,如果您的项目是在13.3中创建的,您可能需要在14.2中打开它并升级它,然后在14.7中再次打开它。如果您在升级项目时遇到问题,请尝试将问题发布到Digilent论坛

如果你的设计是一个PLB设计,那么它将需要重新设计与等效的AXI版本的PLB核心。这是因为Xilinx不支持7系列设备中的PLB总线。如果您仍然希望使用EDK,那么您将需要从头开始:我们没有任何基于EDK的参考设计或Nexys4-DDR的基本系统构建包。如果你想将你的设计迁移到Vivado,在Nexys 4 DDR资源中心有许多示例项目和教程可以帮助你熟悉它。

步骤2:瞄准Nexys4-DDR FPGA

接下来,需要编辑项目设置,以便瞄准Nexys4-DDR上的Artix-7 FPGA。更换设备为XC7A100T,包装为CSG324,转速等级为1。如果使用ISE,您将需要重新生成设计中的任何IP核。

第3步:修改约束

您将需要更新您的设计的引脚约束。打开UCF文件和Nexys4-DDR主UCF文件(可用)在这里)并将文件中的约束替换为主UCF中找到的文件。例如,假定在Nexys3上有LD0,如下所示:

NET "myled" LOC=U16 | IOSTANDARD=LVCMOS33;

Nexys4-DDR UCF对LD0有这样的约束:

#NET“led<0>”LOC=H17 | IOSTANDARD=LVCMOS33;# IO_L18P_T2_A24_15

然后,您应该将您的UCF中的约束替换为Nexys4-DDR Master UCF中的约束。然后将NET名称替换为顶级端口的名称,并取消注释:

NET“myled”LOC=H17 | IOSTANDARD=LVCMOS33;# IO_L18P_T2_A24_15

您将需要为设计中的每个顶级端口执行此操作。如果不清楚Nexys3上特定组件的哪个引脚对应Nexys4-DDR上的哪个引脚,请尝试在下一节中寻找您的组件,看看是否清除了问题。

步骤4:需要额外更改的组件

Nexys4-DDR的一些硬件更改将影响您与某些组件的交互方式。如果你的Nexys3设计使用了下面的任何组件,你将需要阅读你需要做什么改变,以使设计工作在Nexys4-DDR。

实例化的FPGA资源

任何实例化的FPGA原语(DSP片、pll、DDR寄存器等)都需要更新为7系列等效。请注意,为了反映Artix部分7系列织物的变化,这些原语的使用可能已经改变。您需要查阅Xilinx文档,了解您正在使用的FPGA的特定特性,以确定是否存在这种情况。类中所有新的原语声明都可以找到7系列图书馆指南。

VHDCI连接器

NEXYS4-DDR不再具有高密度/高速连接器。除非您可以修改设备以连接到PMOD,否则您必须删除与VHDCI连接器上的设备通信的任何方面。如果您的设计需要高密度/高速连接器,则应考虑迁移到NexysVideo平台,它有一个完全填充的LPC FMC连接器。

德普/ DSTM

Nexys4-DDR不再支持通过USB传输DEPP或DSTM数据。如果您的设计使用其中一种方法向主机发送数据,那么需要修改它以使用另一种方法进行通信。可能的选项包括板载USB-UART、与实例化的BSCAN原语配对的JTAG和以太网。如果您的设计包含一个microblaze处理器,那么最好的选择可能是以太网。不需要高带宽的非微火焰设计可以使用UART,它是最容易使用的。JTAG是最难实现的,但是提供了更快的数据速率(1MHz- 30MHz)。

数据存储的并行PCM

Nexys4-DDR不再具有并行PCM。您需要修改您的设计,以便使用板载Quad-SPI闪存或附加的microSD卡进行数据存储。

Quad-SPI PCM

quadspi PCM已被quadspi Flash所取代。界面是相同的,但是读写时间稍有不同,所以您的设计必须考虑到这一点。Nexys4-DDR上的Quad-SPI flash的部件编号为S25FL128S。

CellRAM

Nexys4-DDR不再拥有CellRAM,取而代之的是128MBDDR2。如果您有一个使用CellRAM的非微火焰设计,那么您可以使用“SRAM到DDR”组件作为您的设计和DDR2之间的适配器。对该组件进行了描述在这里.这个组件不像CellRAM那样支持同步突发访问,所以如果您需要高带宽访问,您将需要在设计中直接实例化内存接口生成器(MIG)。在“设计资源”部分可以找到正确配置MIG以与Nexys4-DDR上的内存一起工作的文件在这里

如果您有使用外部存储器控制器(EMC)核心或自定义Digilent的MicroBlaze设计,则应将其删除并用MIG替换它。这将大大提高MicroBlaze系统的性能。使用上面提到的文件正确配置MIG。

uart.

NEXYS4-DDR UART端口现在与JTAG端口共享。这不会影响您的设计,但是您只需要将一根微型USB电缆连接到您的计算机。

VGA

Nexys4-DDR有12位VGA,而Nexys3有8位VGA。您可以将设计中的RGB数据的最高有效位连接到Nexys4-DDR上的最高有效位,然后将剩余的较低位驱动到零。另一个选择是更新你的设计,生成12位视频数据,并利用额外的颜色分辨率。

以太网

Nexys3上的LAN8710以太网PHY已被Nexys4-DDR上的LAN8720A所取代。这个PHY使用RMII接口而不是MII接口,因此microblaze设计将需要在外部接口和axi_ethernetlite核心之间插入一个mii_to_rmii核心。RMII核心需要50兆赫必须从时钟生成器核心生成的参考时钟。您还必须直接向PHY提供一个50MHz参考时钟,该时钟与提供给mii_to_rmii核心的时钟相移45度。这就解释了mii_to_rmii内核所引入的延迟。

步骤5:编程选项

Nexys4-DDR与Nexys3有不同的编程选择。以下是配置FPGA的方法发生了哪些变化的概述:

JTAG编程

与Nexys3一样,JTAG编程仍然可以在Adept或iMPACT中完成。

内置闪存

Nexys4-DDR只保留了Quad-SPI flash,并取消了平台和并行pcm。你可以从冲击编程的quadspi flash。Nexys4-DDR上的Quad-SPI flash的部件编号为S25FL128S。你再也不能从内行人那里编程四方spi flash了GUI在Windows。

可连接的内存

Nexys4-DDR可以通过存储在thumbdrive或microSD卡上的位文件进行编程。只需将设备格式化为FAT32,并将.bit文件放在根目录中(在设备上只放置一个位文件)。然后将设备连接到microSD连接器(J1)或USB-HOST端口(J5)。最后,将跳线模式设置为USB/SD,并选择所需的JP2设备。下次你再通电时,FPGA将使用你的位文件进行编程。

步骤6:利用新功能

Nexys4-DDR有许多特性,你可能想在设计中利用它们。以下是其中的一小部分:

  • microSD卡用于高密度数据存储
  • 12位VGA(从8位颜色增加)
  • 脉宽调制音频输出
  • 在PDM麦克风
  • 使用硬件SPI加速度计
  • IIC温度传感器
  • 额外的按钮/ led /开关
  • 8位7段显示(从4位增加)
  • 2 RGB led
  • 模拟输入通过XADC Pmod
  • 更高的密度/更高的带宽内存(DDR2)
  • 更快的30MHz JTAG总线,更快的编程速度(从1.6MHz增加)
  • FPGA结构内的大量新特性

仍然陷入困境?

如果你在项目移植到Nexys4-DDR上仍然有问题,请在Digilent论坛,我们将尽我们最大的努力使您的设计启动和运行。