Xilinx 7系列 FPGA硬件知识系列(九)——FPGA的配置

目录

1 .1配置模式

1.1.1  主模式

1.1.2  从模式

1.2  7种配置模式

1.2.1  主串配置模式

1.2.2  从串配置模式

​编辑1.2.3  主并配置模式

1.2.4  从并配置模式

1.2.5  JTAG配置模式

​编辑1.2.6  主SPI配置模式

​编辑1.2.7  主BPI配置模式

1.2.8  FPGA BPI加载时间(参考xapp587)

2、BPI FLASH配置实例

​3、BPI FLASH配置时序

4、配置时钟最大频率计算


1 .1配置模式

       由于Xilinx FPGA配置数据存储在CMOS配置锁存器(CCL)中,因此必须在断电后重新配置。比特流每次都通过特定的配置引脚加载到器件中。常用的配置模式可以分为:

主模式:主串口、主SelectMAP(并行×8 ×16)、主SPI(×1 ×2 ×4)、主BPI(×8 ×16

从模式:从串口、从SeletMAP(并行×8 ×16 ×32)J

TAG模式(调试模式)

系统模式(多片配置模式)

       通过在专用模式输入引脚M[2:0]上设置适当的电平来选择特定的配置模式。M2、M1和M0模式引脚应通过上拉或下拉电阻(≤1kΩ)或直接接地或VCCO_0设置为恒定直流电压电平。在配置期间和配置之后不应切换模式引脚。


      无论模式引脚M[2:0]设置如何,JTAG/边界扫描配置接口始终可用。

      主模式和从模式指的是配置时钟CCLK的方向,在主模式中CCLK为输出,从模式中CCLK为输入。

       由于CCLK引脚存在容差,因此可以使用比CCLK更精准的时钟EMCCLK引脚。启用外部主配置时钟(EMCCLK)选项,全速加载配置程序,具体见UG470 2章节。

1.1.1  主模式

       FPGA自加载配置模式,通常称为主模式,可用于串行或并行数据路径。主模式利用各种类型的非易失性存储器(如Flash、EEPROM等)来存储FPGA的配置信息。FPGA在驱动配置逻辑的内部振荡器中生成配置时钟信号,并在CCLK输出引脚上可见。

      【UG470】的表1-1提供了7系列生成比特流长度,可以注意到不同型号的FPGA所需的最小配置Flash容量不同:


1.1.2  从模式

外部控制加载FPGA配置模式,通常称为从模式,也可用于串行或并行数据路径。在从模式下,处理器、微控制器、DSP处理器或测试仪等外部“智能代理”将配置映像下载到FPGA中,从配置模式的优势在于FPGA比特流几乎可以驻留在整个系统中的任何位置。

1.2  7种配置模式

1.2.1  主串配置模式

在该模式下,FPGA向外部的非易失性串行数据存储器或者控制器发出CCLK时钟信号,配置数据会以串行方式载入FPGA,在前几代的FPGA中,存储器通常选择Xilinx官方的XCF串行系列存储器,并给出了相应的设计原理图,但在7系列FPGA中,这种方式被放弃了,其官方的配置文档里并无主串配置模式的相关详细描述。

1.2.2  从串配置模式

如下图1所示,在该模式下,由外部的处理器提供CCLK时钟和串行数据,用户实现起来相对复杂,不够大众化,不做介绍。


1.2.3  主并配置模式

    官方文档并无详细设计描述,无从参考。

1.2.4  从并配置模式

        如下图所示,在该模式下,外部处理器提供配置时钟和并行的配置数据,该模式相对于串行方式来说,配置的速度快,但设计稍微复杂。下图为官方给出的详细配置原理图,该模式同样使用较少。

1.2.5  JTAG配置模式

       如下图所示,该模式属于工程调试模式,咱们在设计FPGA时必带这种模式。该模式只能在线配置和调试FPGA,无法存储逻辑代码。最简单的操作方式是使用Xilinx官方提供的专用JTAG调试下载器,但同时也允许用户通过外部处理器自行设计JTAG的数据协议来配置FPGA逻辑代码。再次强调,该模式只是一个调试模式。


1.2.6  主SPI配置模式

       这种模式应该算是咱们使用最广泛的配置模式了,通过外挂一个SPI存储器即可。通常该模式和JTAG配置模式一起设计。JTAG模式在线调试好逻辑代码后,将该逻辑代码存储在SPI存储器中,以后FPGA上电后就会自动载入存储器中的逻辑代码。下图为官方给出的详细配置原理图。


1.2.7  主BPI配置模式

       该模式的时钟CCLK同样由FPGA提供,并行的数据比SPI模式的串行数据配置速度要快,但设计稍微复杂一点。下图为官方给出的详细配置原理图:


      我们在设计FPGA时,基本上都是采用JTAG配置模式+主SPI配置模式或者JTAG配置模式+主BPI配置模式。前者用于一般的应用,后者用于对FPGA上电后逻辑代码载入速度有较高要求的应用。

1.2.8  FPGA BPI加载时间(参考xapp587)

并行NOR FLASH是存储和传输比特流的常用选择,因为×16的数据总线可提供比SPI FLASH更快的配置,此外,NOR FLASH还可提供更大的容量。

BPI配置接口


CCLK:该引脚是除JTAG之外的所有配置模式的初始配置时钟源。同步读取模式下CCLK必须与BPI FLASH相连接以便顺序输出数据;异步读取模式下CCLK悬空,不直接为BPI FLASH提供时钟,由FPGA内部使用来生成地址和采样数据。

EMCCLK:该引脚为外部主配置时钟输入。此输入提供外部时钟,FPGA配置控制器在从比特流标头读取EMCCLK命令后切换使用此时钟而不是CCLK(内部配置时钟)。EMCCLK可实现更可预测的配置时间,因为时钟容差由所选的外部振荡器决定。(与SPI FLASH相同)

RS[1:0]:预留引脚。用于多bit程序,以在多版本之间进行选择并提供回退功能。当检测到配置错误时,RS [1:0]被主动为低以加载回退bit文件。

2、BPI FLASH配置实例

下图中EMCCLK外部输入80MHz时钟,RS引脚为预留引脚,如不需要修订程序则悬空处理。


3、BPI FLASH配置时序

        在BPI配置模式下,FPGA始终以异步读取模式从NOR flash开始读取。即从给定的起始地址递增地址总线,NOR flash发送回比特流数据。

        当在比特流头中读取同步命令时,FPGA配置控制器对连接的BPI FLASH的读配置寄存器(RCR)执行异步写操作以设置同步模式和延迟位。

       在成功写入RCR之后,FPGA控制器然后启动同步读取并读取比特流数据内容。配置完成后,保持同步读取模式。

BPI配置时序波形图
4、配置时钟最大频率计算

要计算传输的最大频率需要考虑到BPI FLASH输出时钟规范(BPI datasheet)及电路的延迟。公式如下:


TCHQV(Flash clock to out):BPI FLASH手册中有明确说明该时钟的输出数值。如PC28F00AP30TF,其TCHQV为17ns,如下图: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/522488.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【牛客】VL74 异步复位同步释放

描述 题目描述: 请使用异步复位同步释放来将输入数据a存储到寄存器中,并画图说明异步复位同步释放的机制原理 信号示意图: clk为时钟 rst_n为低电平复位 d信号输入 dout信号输出 波形示意图: 输入描述: clk为时…

RocketMQ -- 低时延、高性能、高可靠、万亿级容量、灵活扩展的分布式消息流式传输平台

第一章 RocketMQ 概述 一、RocketMQ 简介 1.1 消息队列 MQ(Message Queue)是一种提供消息队列服务的中间件,也称消息中间件,是一套提供了海量消息生产、存储、消费全过程 API 的软件系统。 MQ 的作用: 限流削峰异步…

静态时序分析:SDC约束命令set_case_analysis详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 目录 指定值 指定端口/引脚列表 简单使用 set_case_analysis命令用于对电路进行特定模式的设定,例如对于一个工作在正常模式下的芯片,…

Igraph入门指南 3

4、图转换到其他R数据结构 图是对实体关系的表达,在igraph中,图可以转换为三种数据结构。 4-1 图转邻接矩阵:as_adjacency_matrix | as_adj,结果是矩阵 邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵,但本函数使用…

Linux学习之线程

目录 线程概念 1.什么是线程? 2.线程的优缺点 3.线程异常 4.线程用途 线程操作 1.如何给线程传参 2.线程终止 3.获取返回值 4.分离状态 5.退出线程 线程的用户级地址空间: 线程的局部存储 线程的同步与互斥 互斥量mutex 数据不一致的主要过…

组合逻辑电路(二)(译码器和编码器)

目录 译码器 简单逻辑门译码器 二进制译码器 2线-4线译码器 3线-8线译码器 二-十进制译码器 4线-10线译码器 七段显示译码器 编码器 二进制普通编码器 二-十进制普通编码器(8421BCD码编码器) 优先编码器(Priority Encoder) 译…

(day 2)JavaScript学习笔记(基础之变量、常量和注释)

概述 这是我的学习笔记,记录了JavaScript的学习过程,我是有一些Python基础的,因此在学习的过程中不自觉的把JavaScript的代码跟Python代码做对比,以便加深印象。我本人学习软件开发纯属个人兴趣,大学所学的专业也非软件…

3dmax画图卡顿解决方法---模大狮模型网

当你在使用3D Max进行画图时遇到卡顿问题,可以尝试以下方法来解决: 减少模型复杂度:如果你的场景中有过多的高细节模型,可能会导致卡顿。尝试减少模型的复杂度,合并或简化多边形数量过多的模型。这将减轻计算机的负担&…

mysql数据库(下)

目录 约束 约束的概念和分类 1、约束的概念: 2、约束的分类 1、主键约束 2、默认约束 3、非空约束 4、唯一约束 5、外键约束 约束 约束的概念和分类 1、约束的概念: 约束时作用于表中列上的规则,用于限制加入表的数据约束的存在保证…

超级简单的Docker安装(centos7)

文章目录 先安装所需要的工具包设置远程仓库安装启动docker查看版本 先安装所需要的工具包 yum install -y yum-utils #安装工具包,缺少这些依赖将无法完成;设置远程仓库 yum-config-manager --add-repo https://download.docker.com/linux/centos/doc…

灵魂指针,教给(二)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看,已成习惯 创作不易,多多支持! 目录 一、数组名的理解 二、使用指针访问数组 三、一维数组传参本质 四、冒泡排序 五、二级指针 六、指针数组 七、指针数组…

下载一些ROS的包的方式

ROS Index 我们可以去ROS Index网站下载一些我们需要的包。打开浏览器在网址框输入index.ros.org。或者点击此处链接ROS Index 在这个网站中我们可以浏览并找到我们需要的包,也可以下载它的源代码或者仅安装到我们的系统中来使用。(安装过程在终端中进行…