购买域名后用wordpress建站,优秀网站设计的标准,百度推广销售员的工作内容,企业信用信息查询公示系统山东启动STARTUPEn Primitive #xff08;原语#xff09;参数在 FPGA的主 SPI模式下非常有用。当你启用这个参数时#xff0c;对于 7 系列设备#xff0c;STARTUPE2 原语会被包含在设计中#xff1b;而对于 UltraScale™ 设备#xff0c;则是 STARTUPE3 原语。这些原语在 FP…启动STARTUPEn Primitive 原语参数在 FPGA的主 SPI模式下非常有用。当你启用这个参数时对于 7 系列设备STARTUPE2 原语会被包含在设计中而对于 UltraScale™ 设备则是 STARTUPE3 原语。这些原语在 FPGA 配置后成为IP核的一部分。
1 启用STARTUPEn 原语参数 STARTUPEn如STARTUPE2或STARTUPE3原语在FPGA设计中起着关键的作用特别是在与FPGA的SPI配置接口相关时。
FPGA内部的一个输出端口SCK_O即SPI的时钟输出会与STARTUPEn原语连接。这个连接允许FPGA在配置过程中与外部的SPI从设备通常是配置存储器进行通信。在FPGA配置之前STARTUPEn也可以用于预配置过程其中外部SPI从设备会被预先配置。这个过程确保了FPGA在上电时可以立即从已知的状态开始工作。
在FPGA配置完成后SCK_O端口会驱动STARTUPEn原语的USRCCLK0端口。这个信号在FPGA IP核外部是不可见的因为它是内部连接的一部分。
实例化STARTUPEn原语会影响ext_spi_clk外部SPI时钟的最大频率。这是因为STARTUPEn原语的性能会限制SPI接口可以支持的最大时钟速率。如下图所示 注对于xip和标准模式ext_spi_clk可能被限制为60 MHz。 UltraScale™设备的频率数字预计与7系列相似。 上表中提到的频率特定于传统的SPI x 1模式。如果我们改变模式和其他设置它们会发生变 化。
2 使用双通道四通道模式
启用Dual Quad模式这个参数仅在UltraScale™及未来系列的设备中在特定的IP核配置下才有效。 Master modeIP核工作在主模式下即它是SPI通信的发起者和控制者。 STARTUP enabled SPI mode is QUAD Number of slaves is 2IP核配置为与两个SPI从设备通信。 当“Enable Dual Quad Mode”参数被启用时IP核将拥有两个SPI接口。这意味着它可以同时与两个flash存储器或其他SPI从设备通信如图3-2所示。这提高了数据传输的效率和灵活性允许IP核在单个时钟周期内与两个从设备交换数据。 在SPI通信中当涉及到多个从设备时数据流量的控制是通过从设备选择寄存器SPISSR来控制实现的。
3 不启用STARTUPEn 原语参数
SCK_O 和 IO1_I 端口是IP核的一部分但由于它们不是IP核内部实例化的原语这些端口作为IP核的外部端口存在并被放置在用户配置位置的输入输出块IOB, Input/Output Block中。
1 在传统和增强非XIP模式下
无论是否选择了Enable Performance Mode都设置该模式。这时不选择Enable XIP Mode。AXI Quad SPI IP核支持Winbond、Micron、Spansion和Macronix存储器。当使用AXI Quad SPI IP核测试不同的存储器时确实需要检查不同存储器所需的命令是否相同。如果不同存储器的命令、地址和数据行为都相同那么可以选择其中一个设备作为基准存储器来测试IP核。
IP核通过内部逻辑了解目标内存的命令及其预期行为。当IP核尝试执行一个不被存储器设备支持的命令时它会设置一个命令错误标志。一旦命令错误被设置IP核将不会执行与该命令相关的SPI事务并生成一个命令错误中断。这允许系统识别并响应不支持的命令从而避免潜在的错误或数据损坏。
在命令阶段之后如果包含地址相位则根据地址模式位定义的模式在SPI事务中传输下一个DTR数据/地址/寄存器传输内容。地址相位通常用于指定存储器中要访问的具体位置例如读取或写入的起始地址。
如果特定命令包含数据相位则根据读或写操作以及数据模式位设置的模式来执行数据相位。数据相位涉及数据的实际传输无论是从存储器读取数据还是向存储器写入数据。
dummy bytes虚拟字节是在与某些存储器通信时特别是在执行某些指令时为了符合特定时序要求而插入的额外字节。这些虚拟字节并不包含实际的数据或地址信息但它们对于确保命令的正确执行至关重要。
在SPI通信中DTRData/Address/Register Transfer是数据传输的基本单元它可能包含地址、数据、控制信号或其他信息。当执行某些指令时除了需要传输的实际数据字节数外还需要在DTR中包含一定数量的dummy bytes。
对于读取命令在传输地址位之后IP核立即切换到输入模式并开始在DRR中存储数据。因此请注意有多少虚拟字节在DRR中被忽略。例如对于Winbond存储器中的快速读取双输出命令DTR应填充一个命令字节加三个地址字节加上dummy cycle虚拟周期的两个虚拟字节加上要从存储器中读取的虚拟字节数。命令和地址在标准SPI模式下传输之后IP核切换到输入模式并开始存储数据。数据在IO0_I和IO_1线上传输并存储在SPI DRR中包括两个虚拟循环加上有效数据。因此在读取SPI DRR时忽略掉SPI DRR的前6个字节。FIFO中可用的有效数据从第七个字节开始。这也适用到其他双读取或四读取命令。
对于每个新事务必须清除SPI DTR FIFO。SPI DTR中的第一个条目始终被视为命令条目它与所选SPI模式的相应存储器的内置逻辑进行交叉检查。
2在XIP模式下
当“Enable Performance Mode”和“Enable XIP Mode”都被选中时IP核将支持标准模式、双模式和四模式具体设置和配置如下
标准模式Standard mode设置“Mode”为“Standard”“Slave Device”设置为Winbond、Micron、Macronix或Spansion等支持的存储器设备。双通道模式Dual mode设置“Mode”为“Dual”“Slave Device”同样需要设置为Winbond、Micron、Macronix或Spansion等支持的存储器设备。在双模式下SPI通信将使用两条数据线如IO0和IO1同时进行数据传输。四通道模式Quad mode设置“Mode”为“Quad”“Slave Device”也需要是Winbond、Micron、Macronix或Spansion等支持四模式的存储器设备。在四模式下SPI通信将使用四条数据线如IO0、IO1、IO2和IO3同时进行数据传输。
此模式的假设为
Winbond存储器
在每次上电复位状态后会执行一个高性能模式命令以确保Winbond存储器被配置在高性能模式下。随后可能会执行DIOFR0xBBh或QIOFR0xEBh这样的命令来进一步操作该存储器。 当设置Quad模式时对于Winbond存储器确实需要预先通过向状态寄存器写入来设置QEQuad Enable位为1。 如果IP核不负责向状态寄存器写入任何内容来配置Quad模式那么这项工作就需要由外部系统或初始化代码来完成。在XIP模式下预配置存储器的责任在于系统设计者或初始化代码。 当IP核在执行DIOFR或QIOFR命令之前被配置为双模式或四模式时IP核会在上电复位POR后在AXI4接口接收事务之前向存储器写入高性能模式HPM命令。这个HPM命令需要一个命令周期和三个dummySPI周期来完成。这个HPM命令在存储器中的写入仅在系统上电时执行一次。当HPM命令成功写入后Winbond存储器就被配置为高性能模式(HPM — 0xA3h)并允许DIOFR或QIOFR命令在相应的模式下进行操作。 Micron Memory 在Micron存储器中无论是易失性配置寄存器还是非易失性配置寄存器其关于dummy周期的字段VCR[7:4]和NVCR[15:12]在出厂时都被设置为默认值即1111。IP核特征是基于这些dummy周期寄存器的默认设置即1111来设计的。这意味着当这些寄存器保持默认设置时IP核可以预期按照特定的行为模式来工作。 建议不要更改默认的易失性配置寄存器VCR和非易失性配置寄存器NVCR配置。 在每个新事务开始时IP核发送相应的命令、地址和所需要的dummy周期然后接收数据。 Spansion 存储器 当IP核不直接写入状态寄存器并假定在执行XIP模式之前已经完成这一配置时这通常意味着系统设计师或开发者需要在系统启动或初始化阶段进行必要的配置。 当设置四通道模式时Spansion内存必须预先通过写入配置寄存器来设置QUAD位为1。这一步骤是为了确保内存能够按照四通道模式进行工作以提供更高的数据传输速率和吞吐量。 Macronix 存储器 在Macronix存储器中配置寄存器负责处理虚拟周期的信息。虚拟周期的配置因配置寄存器中的bit6和bit7DC0和DC1的设置而异。默认情况下bit6和bit7的值为00。 根据Macronix的数据手册DC0和DC1的不同设置会对应不同的虚拟周期数量。 推荐不要改变默认的配置寄存器配置。