代码编织梦想

目录

1.前言

2.FPGA配置方式

3.FPGA配置过程

4.FPGA配置模式选择

5.主动串行配置

6.JTAG配置

7.被动串行配置


1.前言

目前,大多数FPGA芯片是基于 SRAM 的结构的, 而 SRAM 单元中的数据掉电就会丢失,因此系统上电后,必须要由配置电路将正确的配置数据加载到 SRAM 中,此后 FPGA 才能够正常的运行。

常见的配置芯片有EPCS 芯片 (EPCS4、EPCS8、EPCS16、EPCS64、EPCS128),还有通用的串行 SPI FLASH 芯片如 M25P40、 M25P16、 W25Q16 等。

配置(configuration)是对FPGA的内容进行编程的过程。每次上电后都需要进行配置是基于SRAM工艺FPGA的一个特点,也可以说是一个缺点。FPGA配置过程如下:

 

2.FPGA配置方式

根据FPGA在配置电路中的角色,可以将配置方式分为三类:

1.FPGA主动串行(AS)方式 

2. JTAG方式  

3. FPGA被动(Passive)方式

3.FPGA配置过程

FPGA的配置包括3各阶段:复位、配置和初始化。

FPGA正常上电后,当其nCONFIG管脚被拉低时,器件处于复位状态,这时所有的配置RAM内容被清空,并且所有I/O处于高阻态,FPGA的状态管脚nSTATUS和CONFIG_DONE管脚也将输出为低。当FPGA的nCONFIG管脚上出现一个从低到高的跳变以后,配置就开始了,同时芯片还会去采样配置模式(MSEL)管脚的信号状态,决定接受何种配置模式。

随之,芯片将释放漏极开路(open-drain)输出的nSTATUS管脚,使其由片外的上拉电阻拉高,这样,就表示FPGA可以接收配置数据了。在配置之前和配置过程中,FPGA的用户I/O均处于高阻态。

在接收配置数据的过程中,配置数据由DATA管脚送入,而配置时钟信号由DCLK管脚送入,配置数据在DCLK的上升沿被锁存到FPGA中,当配置数据被全部载入到FPGA中以后,FPGA上的CONF_DONE信号就会被释放,而漏极开路输出的CONF_DONE信号同样将由外部的上拉电阻拉高。因此,CONF_DONE管脚的从低到高的跳变意味着配置的完成,初始化过程的开始,而并不是芯片开始正常工作。

INIT_DONE是初始化完成的指示信号,它是FPGA中可选的信号,需要通过Quartus II工具中的设置决定是否使用该管脚。在初始化过程中,内部逻辑、内部寄存器和I/O寄存器将被初始化,I/O驱动器将被使能。

当初始化完成以后,器件上漏极开始输出的INIT_DONE管脚被释放,同时被外部的上拉电阻拉高。这时,FPGA完全进入用户模式,所有的内部逻辑以及I/O都按照用户的设计运行,这时,那些FPGA配置过程中的I/O弱上拉将不复存在。不过,还有一些器件在用户模式下I/O也有可编程的弱上拉电阻。在完成配置以后,DCLK信号和DATA管脚不应该被浮空(floating),而应该被拉成固定电平,高或低都可以。 

4.FPGA配置模式选择

用户可以通过设置FPGA上的MSEL0、MESL1两个引脚的状态来选择配置方式。各种方式的MSEL0、MESL1设置如下表所列:

说明:

在上表中,如果只采用一种配置方式,则可以直接将MSEL0、MESL1连接到VCC(注意要与FPGA的IO口的供电VCCIO相同)或GND;

如果需要多种配置方式,那么MSEL要用控制器(单片机、CPLD等)来控制以进行切换;

MSEL管脚在配置开始前必须处于一个固定的状态,因此不能将MSEL管脚悬空。

5.主动串行配置

主动串行配置方式(AS)是将配置数据事先存储在串行配置器件EPCS中,然后在系统上电时Cyclone IV FPGA通过串行接口读取配置数据(如果是压缩数据,还会进行解压缩处理)对内部的SRAM单元进行配置。

因为上述配置过程中FPGA控制配置接口,因此通常称为主动配置方式。在配置期间,Cyclone IV用过串行接口来读配置数据,来对里面的SRAM编程。串行配置器件的四个接口包括,串行时钟输入DCLK,串行数据输出DATA,低有效的片选信号NCE,串行数据输入ASDI。

主动串行配置电路图:

因为FPGA上的nSTATUS、CONFIG_DONE管脚都是开漏结构,所以都要接上拉电阻。FPGA的片选脚nCE必须接地。

6.JTAG配置

通过JTAG接口,利用Quartus II软件可以直接对FPGA进行单独的硬件重新配置。Quartus II软件在编译时会自动生成用于JTAG配置的.sof文件。

如果同时使用AS方式和JTAG方式来配置FPGA,JTAG配置方式拥有最高的优先级,此时AS方式将停止,而执行JTAG方式配置。

利用Quartus II软件和USB Blaster等下载电缆可下载配置数据到FPGA。Quartus II软件可以验证JTAG配置是否成功。JTAG配置通过下载电缆使用SOF、Jam或者JBC文件直接对FPGA进行配置,这种配置方式只能用于调试阶段,因为,掉电后FPGA中的配置数据将丢失。

7.被动串行配置

被动串行PS配置方式是Altera Cyclone IV系列FPGA配置方式中比较常用的方式。但是,在工程应用中若采用这种配置方式,FPGA需要连接一个智能主机(比如复杂可编程逻辑器件CPLD/微控制单元MCU等)以给其提供配置时钟和配置数据。

在该配置方式下,智能主机在保证与存储配置数据的闪存通信无误的情况下,只需向FPGA提供一个DCLK信号和一个DATA0信号即可实现对FPGA的配置。另外,该DCLK信号还可以实现多种频率以满足用户对配置时间的需求,这是该配置方式的一大亮点。

本文介绍了以Altera型的FPGA芯片为例介绍了FPGA的上电过程,并描述了三种常见的配置模式,用户可以根据不同的需求来采用对应的配置模式,每种配置模式下对应的配置数据类型也是不相同的。

ddr3内存详解,存储器结构+时序+初始化过程-爱代码爱编程

转载 DDR3内存详解,存储器结构+时序+初始化过程 2017-06-17 16:10:33 a_chinese_man 阅读数 23423更多 分类专栏: 硬件开发基础 转自:http://www.360doc.com/content/14/0116/16/15528092_345730642.shtml   首先,我们先了解一下内存的大体结

fpga上电加载时序介绍-爱代码爱编程

FPGA上电加载时序介绍 注:本文章摘自:www.sohu.com/a/337269259_100281310,仅供记录笔记参考。 目前,大多数FPGA芯片是基于SRAM 的结构的, 而 SRAM 单元中的数据掉电就会丢

FPGA芯片上电加载程序时序详解-爱代码爱编程

博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect ---------------

详解FPGA上电配置过程时序图-爱代码爱编程

如前所述,FPGA是由存放在片内的RAM来设置其工作状态的,因此工作时需要对片内RAM进行编程。用户可根据不同的配置模式,采用不同的编程方式。Xilinx FPGA的常用配置模式有主串模式、从串模式、Select MAP模式等。 FPGA和CPLD不同,上电后不能直接工作,而是需要一个配置过程。Xilinx FPGA需要经过8个步骤才能正常地运行用户逻辑

FPGA开发之上电加载过程-爱代码爱编程

1、说明 \quad\enspace 此文概述了7系列fpga上电及程序加载流程。参考文件Ug470 fpga configuration 2、硬件架构图

Xilinx FPGA 笔面试问答题详解 - 第一章 FPGA基础及电路设计-爱代码爱编程

第一章 FPGA基础及电路设计 1. 描述FPGA是怎样的器件,其功能和应用是什么? FPGA (Field-Programmable Gate Array),即现场可编程门阵列,是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器

zynq启动模式详解及启动过程详解-爱代码爱编程

目录 - 1、  FSBL简介 - - Zynq的JTAG配置过程 - Zynq的启动流程     - Zynq启动阶段0——BootROM     - Zynq启动阶段1——FSBL     - Zynq启动阶段2——SSBL 启动模式注意事项 参考手册xilinx参考手册ug 1085章节11,Table 11-1: Boot Mod

【FPGA】基于SPI实现对flash读写操作-爱代码爱编程

FPGA基于SPI实现对flash读写操作 概括一、SPI协议、flash讲解1、SPI协议2、flash(1)WREN(2)RDID(3)WRSR(4)READ(5)PP(6)SE二、状态图三、代码1、代码分析2、全部代码(1)param(2)test(3)spi_master(4)wr_control(5)flash_write(6)flash

supported ssds-爱代码爱编程

Supported SSDs Selecting SSDs The FPGA Drive FMC is an adapter that has been designed to support PCIe Gen1 to Gen3. If you are using an M2 SSD that supports PCIe Gen1,2 or 3, th

笔试题-2023-泰凌微-数字ic设计【纯净题目版】-爱代码爱编程

回到首页:2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 推荐内容:数字IC设计学习比较实用的资料推荐 题目背景 笔试时间:2022.07.24 应聘岗位:数字IC设计 题目评价 难易程度:

笔试题-2023-华为-数字芯片【纯净题目版】-爱代码爱编程

回到首页:2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 推荐内容:数字IC设计学习比较实用的资料推荐 题目背景 笔试时间:2022.07.29 应聘岗位:数字IC设计 题目评价 难易程度:

吃透chisel语言.24.chisel时序电路(四)——chisel内存(memory)详解_chisel loadmemoryfromfile-爱代码爱编程

Chisel时序电路(四)——Chisel内存(Memory)详解 上一篇文章介绍了移位寄存器的实现和两种常用的移位寄存器,在实现串口通信的时候会很有用,对后面的高速接口设计可能又会有一定启发。在数字设计中,不仅仅有寄存器

详解fpga如何实现fp16格式点积级联运算-爱代码爱编程

作者:杨宇,Achronix资深现场应用工程师 通过使用Achronix Speedster7t FPGA中的机器学习加速器MLP72,开发人员可以轻松选择浮点/定点格式和多种位宽,或快速应用块浮点,并通过内部级联可以达到理想性能。 神经网络架构中的核心之一就是卷积层,卷积的最基本操作就是点积。向量乘法的结果是向量的每个元素的总和相乘在一起,