网站开发招标任务书,作图网址,中国空间站航天员首次出舱,泰兴网站设计目录 1.4配置流程
1.4.1 设备上电
编辑1.4.2 清除配置寄存器
1.4.3 采样模式引脚
1.4.4 同步
编辑1.4.5 检测设备ID
编辑1.4.6 加载配置数据
1.4.7 CRC校验
1.4.8 启动序列 1.4配置流程 对于所有配置模式#xff0c;7系列的基本配置流程都是相同的…目录 1.4配置流程
1.4.1 设备上电
编辑1.4.2 清除配置寄存器
1.4.3 采样模式引脚
1.4.4 同步
编辑1.4.5 检测设备ID
编辑1.4.6 加载配置数据
1.4.7 CRC校验
1.4.8 启动序列 1.4配置流程 对于所有配置模式7系列的基本配置流程都是相同的主要可以分为三个大块设备启动数据流加载启动序列。
1.4.1 设备上电 配置流程的第一步自然是设备上电这里也就解释了为何固化程序后需要下电再上电才能生效。配置涉及到的电源如下 VCCO_0以及VCCO_14、VCCO_15在前文已经提及其他的电源需要参照对应的数据手册推荐值进行配置例如K7对应手册【DS182】 FPGA在设备启动阶段的时序关系 TPORPower-on Reset (POR)TICCKCCLK Output Delay
FPGA上电启动后电压达到VCCO后在10~50ms后INIT_B信号拉高初始化完成FPGA开始加载配置工作。
上电后可以通过拉低将PROGRAM_B引脚切换为低电平来重新配置器件 INIT_B在初始化期间被内部驱动为低电平然后在上电情况下第一次上电配置在TPOR之后释放在其他情况下触发退回或者重配置等在TPL之后释放。如果INIT_B引脚在外部保持低电平则器件在初始化过程中的这一点等待直到该引脚被释放并且需要满足TPOR或TPL延迟。 FPGA上电第一次加载与PROGRAM_B没有关系只要达到延迟时间FPGA就会初始化完成INIT_B信号拉高直接进入配置数据过程。只有第二次重新配置才使用PROGRAM_B。 图中的时间参数可以在对应的FPGA数据手册中查看如K7系列对应【DS182】 1.4.2 清除配置寄存器 在器件上电后、PROGRAM_B引脚脉冲低电平后、使用JTAG JPROGRAM指令或IPROG命令后或在回退重试配置序列期间配置存储器会顺序清除。在此期间 Block RAM被重置为其初始状态并且触发器通过全局设置重置(GSR)的断言重新初始化。除少数配置输出引脚外I/O通过使用全局三态(GTS)置于High Z状态如果PUDC_B为低电平则内部上拉。 PUDC_B用于设置配置期间的上拉低电平有效电路上通过直连或者≤1kΩ连接到VCCO_14或GND禁止悬空。 清除配置寄存器发生在INIT_B为低的这个阶段。通常这个时间为3ms。 3ms的时间来自于复旦微的手册中JFM7K325T清除配置寄存器时间为20ms而对标产品为3ms。在从模式中推荐等待INIT_B拉高再进行配置。
1.4.3 采样模式引脚 当INIT_B引脚转换为高电平时器件对模式引脚M[2:0]进行采样并开始驱动CCLK如果处于主模式。此时器件开始在配置时钟的上升沿对配置数据输入引脚进行采样。 对于BPI和SelectMAP模式总线宽度最初为×8可以在状态寄存器查看。在总线宽度检测序列之后状态寄存器被更新。从串行、主串行、SPI和JTAG模式忽略总线宽度检测模式。
只有在通过电源循环或PROGRAM_B置位进行重新配置时才会再次对模式引脚进行采样。
1.4.4 同步 FPGA正常数据加载前需要做一个FPGA与配置方如FLASH之间的同步检查。方法是将一个特殊的32位同步字(0XAA995566)发送到FPGA。同步字会提醒FPGA即将到来的配置数据并将配置数据与内部配置逻辑对齐。 除“总线宽度自动检测”序列外同步之前配置输入引脚上的任何数据都将被忽略。
Xilinx在生成的.bit文件中已经自动加入了这个同步字。可以进行查看 表5-19说明了bit流的定义 1.4.5 检测设备ID 设备同步后必须通过设备ID检查才能加载配置数据帧。这可以防止配置具有针对不同设备格式化的比特流。如果在配置期间发生ID错误设备会尝试执行回退重新配置。 设备ID检查内置于比特流中器件ID检查是通过配置逻辑的比特流中的命令执行的而不是通过 JTAG IDCODE 寄存器。ID可以在【UG470】的表1-1中查找到例如7K325T对应3651093可以在bit文件中查找到 1.4.6 加载配置数据 在准备工作完成后FPGA开始加载配置数据。在这个过程中FPGA的所有可配置I/O根据HSWAPEN引脚的设置变为弱上拉(HSWAPE1)或者高阻态(HSWAPE0)。这个阶段的I/O引脚还没有变为用户需要的状态也最有可能影响到其他外围电路的上电时序和运行。 设计硬件电路时要特别注意并采取必要措施如加入上下拉电阻或改变器件加电顺序来尽量避免或减少FPGA配置时对电路其他器件的影响。
1.4.7 CRC校验 加载配置数据帧时器件会根据配置数据包计算循环冗余校验(CRC)值。加载配置数据帧后配置比特流可以向设备发出校验 CRC指令然后是预期的CRC值。如果设备计算的 CRC 值与比特流中的预期CRC值不匹配则设备将INIT_B拉低并中止配置此时用户必须把PROG-B引脚拉低才能进行重新配置。 默认情况下CRC校验包含在配置比特流中如果禁用CRC检查则存在加载错误配置数据帧的风险从而导致错误的设计行为或损坏器件。
1.4.8 启动序列 加载配置帧后FPGA不会马上执行用户的逻辑比特流指示设备进入启动序列。启动顺序由8阶段阶段0-7顺序状态机控制。用户可以选择每个启动事件的特定阶段见【UG628】 可以强制启动序列等待 MMCM 锁定或等待DCI与适当的选项匹配。这些选项通常设置为在MMCM锁定和/或DCI匹配之前防止DONE、GTS和GWE被断言防止设备操作。 默认情况下启动顺序 与启动相关的信号 DONE信号可通过DONE引脚或7系列FPGA状态寄存器获取其余只能通过7系列FPGA状态寄存器获取。对应的信号时序如下 从上图可以看出 FPGA最后的Startup过程有8个周期其中DONE变高仅仅是第4个周期。因此在DONE变高之后还需要再给3个CCLK。否则DONE虽然变高了FPGA程序并没有正确运行。
ISE会在设计中搜索用户是否使用了DCI如果是FPGA会使用2个周期的Start UpPhase等待DCI匹配上。即FPGA会在那儿等待直到DCI匹配上。如果我们在上位机读取了配置文件获得了文件大小我们把它写到负责加载FPGA的Flash里然后CCLK时钟就不给了。这就产生问题因为DCI匹配需要时间我们的问题就是过了一段时间DCI匹配完毕了但是CCLK却没有了因此FPGA一直处在Start UP的前2个Phase上不会到DONE。导致无法配置成功。