CN108197063B - Fpga的spi接口主动串行配置方法及装置 - Google Patents

Fpga的spi接口主动串行配置方法及装置 Download PDF

Info

Publication number
CN108197063B
CN108197063B CN201711469458.1A CN201711469458A CN108197063B CN 108197063 B CN108197063 B CN 108197063B CN 201711469458 A CN201711469458 A CN 201711469458A CN 108197063 B CN108197063 B CN 108197063B
Authority
CN
China
Prior art keywords
state machine
fpga
configuration
module
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711469458.1A
Other languages
English (en)
Other versions
CN108197063A (zh
Inventor
张亭亭
王黎明
贾红
陈维新
韦嶔
程显志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XI'AN INTELLIGENCE SILICON TECHNOLOGY Inc
Original Assignee
XI'AN INTELLIGENCE SILICON TECHNOLOGY Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by XI'AN INTELLIGENCE SILICON TECHNOLOGY Inc filed Critical XI'AN INTELLIGENCE SILICON TECHNOLOGY Inc
Priority to CN201711469458.1A priority Critical patent/CN108197063B/zh
Publication of CN108197063A publication Critical patent/CN108197063A/zh
Application granted granted Critical
Publication of CN108197063B publication Critical patent/CN108197063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C

Abstract

本发明涉及一种FPGA的SPI接口主动串行配置方法及装置,该方法包括:(a)FPGA上电;(b)执行上电复位和上电检查;(c)启动状态机以完成所述SPI接口的主动串行配置。本发明实施例,通过控制FPGA器件内配置相关模块,使PFGA器件内部实现SPI接口主动串行配置,时序简单,易于操作。

Description

FPGA的SPI接口主动串行配置方法及装置
技术领域
本发明属于专用集成电路领域,具体涉及一种FPGA的SPI接口主动串行配置方法及装置。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex ProgrammableLogic Device)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA器件大多是基于SRAM结构的编程工艺,掉电后编程信息立即丢失,每次上电时,外部电路需要将配置数据重新下载到FPGA片内的RAM中,在完成这个配置过程后,FPGA芯片才能按照用户的设计正常工作。目前主流的配置模式主要有以下几种:Active serial(AS,主动串行模式),Active prarllel(AP,主动并行模式),Passive serial(PS,被动串行模式),Joint Test Action Group(JTAG,边界扫描模式)。Active serial主动串行模式配置方式最简单,也最常用,其中SPI接口主动串行配置是应用很广的一种方式,但是现有技术均是基于各配置方式的应用,没有FPGA器件内部实现SPI接口主动串行配置的方法。
因此,如何实现FPGA器件内部实现SPI接口主动串行配置是研究的重点问题。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种FPGA的SPI接口主动串行配置方法及装置。本发明要解决的技术问题通过以下技术方案实现:
本发明实施例提供了一种FPGA的SPI接口主动串行配置方法及装置。包括:
(a)FPGA上电;
(b)执行上电复位和上电检查;
(c)启动状态机以完成所述SPI接口的主动串行配置。
在本发明的一个实施例中,上电复位包括:复位配置电路、状态寄存器和控制寄存器。
在本发明的一个实施例中,步骤(c)包括:
(c1)刷新状态机启动SRAM清空状态机;
(c2)获取配置模式为主动串行配置模式;
(c3)所述刷新状态机启动比特流引擎状态机并驱动主时钟信号输出;
(c4)所述刷新状态机启动唤醒状态机。
在本发明的一个实施例中,步骤(c1)包括:所述SRAM清空状态机清除SRAM中的内容。
在本发明的一个实施例中,启动比特流引擎状态机包括:
(x1)发送操作码和地址到外部引导存储设备;
(x2)接收所述外部引导存储设备的输出的第一数据;
(x3)将所述第一数据写入SRAM中。
在本发明的一个实施例中,第一数据包括:同步头数据以及含有控制信息的比特流数据。
在本发明的一个实施例中,启动唤醒状态机包括:
(y1)对所述FPGA内核进行复位;
(y2)将所述外部引导存储设备输出的第二数据写入所述FPGA中;
(y3)所述FPGA输出数据。
本发明的另一个实施例提供了一种FPGA的SPI接口主动串行配置装置,包括:
多个管脚;
上电复位模块101,以完成上电复位;
上电检查模块102,以完成上电检查;
专用配置管脚解析模块103,以解析所述管脚并生成对应的指示信号;
配置控制模块104,用以控制刷新状态机进行状态跳转;
SRAM清空模块106,用以执行SRAM清空状态机;
配置核心时钟生成模块107,用以产生主时钟信号;
配置输入输出模块108,用以根据驱动主时钟指示信号控制所述主时钟信号的输出。
在本发明的一个实施例中,所述配置控制模块104包括:
刷新模块105,用以执行所述刷新状态机;
SPI比特流引擎模块109,用以执行SPI比特流引擎状态机;
唤醒模块110,用以执行唤醒状态机。
在本发明的一个实施例中,多个管脚包括:初始化管脚、开关信号管脚、配置模式管脚、配置完成管脚、主时钟管脚。
与现有技术相比,本发明的有益效果:
1.本发明的方法可以使FPGA器件内部实现SPI接口主动串行配置;
2.本发明的方法实现SPI接口主动串行配置所需端口数量较少,易于操作。
附图说明
图1为本发明实施例提供的一种FPGA的SPI接口主动串行配置方法的流程示意图;
图2为本发明实施例提供的一种FPGA的SPI接口主动串行配置装置的模块结构示意图;
图3为本发明实施例提供的另一种FPGA的SPI接口主动串行配置方法的流程示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
实施例一
请参见图1,图1为本发明实施例提供的一种FPGA的SPI接口主动串行配置方法的流程示意图。该FPGA的SPI接口主动串行配置方法,包括:
(a)FPGA上电;
(b)执行上电复位和上电检查;
(c)启动状态机以完成所述SPI接口的主动串行配置。
本发明实施例通过FPGA器件内部的多个状态机实现了SPI接口主动串行配置,不需要用户再进行其他操作,逻辑时序清晰明了,不易出错。
实施例二
本实施例在上述实施例的基础上,重点对FPGA的SPI主动配置方法的详细流程进行进一步描述。请参见图2,图2为本发明实施例提供的一种FPGA的SPI接口主动串行配置装置的模块结构示意图。该SPI接口主动串行配置装置包括:多个管脚;上电复位模块101,以完成上电复位;上电检查模块102,以完成上电检查;专用配置管脚解析模块103,以解析所述管脚并生成对应的指示信号;配置控制模块104,用以控制刷新状态机进行状态跳转;SRAM清空模块106,用以执行SRAM清空状态机;配置核心时钟生成模块107,用以产生主时钟信号;配置输入输出模块108,用以根据驱动主时钟指示信号控制所述主时钟信号的输出。
其中,配置控制模块104包括:刷新模块105,用以执行刷新状态机;SPI比特流引擎模块109,用以执行SPI比特流引擎状态机;唤醒模块110,用以执行唤醒状态机。
其中,多个管脚包括:初始化管脚、开关信号管脚、配置模式管脚、配置完成管脚、主时钟管脚。
该SPI接口主动串行配置装置根据FPGA内部的专用配置管脚解析模块103生成的相关指示信号,控制所述配置控制模块104中所述刷新模块105的刷新状态机进行状态跳转,所述刷新状态机跳转过程中会依次启动所述SRAM清空模块106的SRAM清空状态机,所述比特流引擎模块109的SPI比特流引擎状态机,所述唤醒模块110的唤醒状态机,最终完成SPI接口主动配置过程。
该SPI接口主动串行配置装置实现SPI接口主动配置方法具体包括:
(a)FPGA上电;
(b)执行上电复位和上电检查;
其中,上电复位包括:复位配置电路、状态寄存器和控制寄存器。
(c)启动状态机以完成所述SPI接口的主动串行配置。
进一步地,步骤(c)包括:
(c1)刷新状态机启动SRAM清空状态机;所述SRAM清空状态机清除SRAM中的内容。
(c2)获取配置模式为主动串行配置模式;
(c3)所述刷新状态机启动比特流引擎状态机并驱动主时钟信号输出;
(c4)所述刷新状态机启动唤醒状态机。
进一步地,启动比特流引擎状态机包括:
(x1)发送操作码和地址到外部引导存储设备;
(x2)接收所述外部引导存储设备的输出的第一数据;所述第一数据包括:同步头数据以及含有控制信息的比特流数据。
(x3)将所述第一数据写入SRAM中。
进一步地,启动唤醒状态机包括:
(y1)对所述FPGA内核进行复位;
(y2)将所述外部引导存储设备输出的第二数据写入所述FPGA中;
(y3)所述FPGA输出数据。
本实施例通过这种方法,可以使FPGA器件作为主设备,主动向外部从设备发送读取数据信号,并控制整个配置过程的完成,不需要用户再进行其他操作。逻辑清晰明了,易于操作。
实施例三
请再次参见图2同时请参见图3,图3为本发明实施例提供的另一种FPGA的SPI接口主动串行配置方法的流程示意图。本实施例在上述实施例的基础上,重点对FPGA的SPI主动配置方法的流程进行详细描述。
具体地,一种FPGA的SPI接口主动串行配置方法,包括:
(S01)执行上电复位和上电检查。具体包括:
FPGA所在的系统控制FPGA上电后,同时启动上电复位模块101和上电检查模块102。此时,配置控制模块104中的刷新模块105的刷新状态机处于空闲状态;
所述上电复位模块101生成上电复位信号,即全局复位信号,设置上电复位信号为有效,执行上电复位,即首先将配置完成信号设置为低电平,同时复位配置电路、各状态寄存器、控制寄存器,即将所述状态寄存器和所述控制寄存器都复位成初始值并清除配置存储器,来为配置做准备。当上电复位执行完成后,将上电复位信号释放后进入步骤(S02)。
所述上电检查模块102进行上电检查,此时初始化配置管脚作为输出管脚使用并由所述上电检查模块102控制,输出初始化配置信号,若上电检查未完成,则设置所述初始化配置信号为低电平,若上电检查完成,则将所述初始化配置管脚作为输入管脚使用,将所述初始化配置管脚外接上拉电阻,固定为高电平,即设置所述初始化配置信号为高电平。
(S02)启动SRAM清空模块106中的SRAM清空状态机,清除SRAM中的内容。具体包括:
上电复位信号释放后启动所述SRAM清空状态机,清除所述SRAM中的内容,直到清空SRAM状态机完成;在所述清空SRAM状态机完成后会持续检测初始化配置管脚输出的初始化配置信号以等待上电检查完成,若初始化配置信号为高电平,则表示上电检查已经完成,则进入步骤(S03)。
(S03)获取配置模式。具体包括:
采样配置模式管脚输出的配置模式信号,如果根据配置模式信号判断FPGA器件选择了SPI接口主动串行配置模式,则进入步骤(S04)。
(S04)刷新状态机启动比特流引擎状态机并同时驱动主时钟信号输出。具体包括:
刷新状态机的状态进行跳转以启动比特流引擎模块109的SPI比特流引擎状态机。启动所述SPI比特流引擎状态机后,首先给外部引导存储设备发送操作码和地址;然后接收从外部引导存储设备输出的第一数据,第一数据包括:同步头数据以及含有控制信息的比特流数据。将所述第一数据写入所述FPGA的SRAM中;写入完成后所述比特流引擎状态机发送完成信号给所述刷新状态机,控制其状态继续跳转,进入步骤(S05)启动唤醒模块110的唤醒状态机。
驱动主时钟信号输出具体包括:配置核心时钟生成模块107在上电后即产生主时钟信号,在获取配置模式为所述SPI接口主动串行配置模式后,所述刷新模块105会输出驱动主时钟输出指示信号给配置输入输出模块108,所述配置输入输出模块108收到驱动主时钟输出指示信号后通过主时钟管脚输出主时钟信号作为SPI接口的时钟信号使用。
(S05)刷新状态机启动唤醒状态机。具体包括:
所述刷新状态机的状态进行跳转以启动所述唤醒状态机,首先对所述FPGA器件内核进行复位,所述FPGA器件内核指所述FPGA内部除了配置相关模块以外的其他模块,复位释放后接收外部引导存储设备输出的第二数据,写入所述FPGA内部,最后所述FPGA接口输出数据。在所述唤醒状态机执行完成后,将配置完成信号设置为高电平,至此整个SPI接口主动串行配置过程完成。
通过本发明实施例,可以达到以下有益效果:
1.本发明实施例的方法可以实现SPI接口主动串行模式,FPGA器件作为主设备,在每次上电时,都主动向外部从设备发送读取数据信号,并控制整个配置过程的完成,不需要用户再进行其他操作。
2.本发明实施例的方法SPI串行接口所需端口数量少,时序简单易于操作。
3.本发明实施例的方法主要使用了多个状态机实现配置流程,逻辑及时序清晰明了,不易出错。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (6)

1.一种FPGA的SPI接口主动串行配置方法,其特征在于,包括:
(a)FPGA上电;
(b)执行上电复位和上电检查;
(c)启动状态机以完成所述SPI接口的主动串行配置;
其中,步骤(c)包括:
(c1)刷新状态机启动SRAM清空状态机;
(c2)获取配置模式为主动串行配置模式;
(c3)所述刷新状态机启动比特流引擎状态机并驱动主时钟信号输出,所述启动比特流引擎状态机包括:
(x1)发送操作码和地址到外部引导存储设备;
(x2)接收所述外部引导存储设备的输出的第一数据;
(x3)将所述第一数据写入SRAM中;
(c4)所述刷新状态机启动唤醒状态机,步骤(c4)启动唤醒状态机包括:
(y1)对所述FPGA内核进行复位;
(y2)将所述外部引导存储设备输出的第二数据写入所述FPGA中;
(y3)所述FPGA输出数据。
2.根据权利要求1所述的方法,其特征在于,上电复位包括:
复位配置电路、状态寄存器和控制寄存器。
3.根据权利要求1所述的方法,其特征在于,步骤(c1)包括:
所述SRAM清空状态机清除SRAM中的内容。
4.根据权利要求1所述的方法,其特征在于,第一数据包括:
同步头数据以及含有控制信息的比特流数据。
5.一种FPGA的SPI接口主动串行配置装置,其特征在于,包括:
多个管脚;
上电复位模块101,以完成上电复位;
上电检查模块102,以完成上电检查;
专用配置管脚解析模块103,以解析所述管脚并生成对应的指示信号;
配置控制模块104,用以控制刷新状态机进行状态跳转
SRAM清空模块106,用以执行SRAM清空状态机;
配置核心时钟生成模块107,用以产生主时钟信号;
配置输入输出模块108,用以根据驱动主时钟指示信号控制所述主时钟信号的输出;
其中,所述配置控制模块104包括:
刷新模块105,用以执行所述刷新状态机;
SPI比特流引擎模块109,用以执行SPI比特流引擎状态机,执行比特流引擎状态机包括:
发送操作码和地址到外部引导存储设备;
接收所述外部引导存储设备的输出的第一数据;
将所述第一数据写入SRAM中;
唤醒模块110,用以执行唤醒状态机,所述执行唤醒状态机包括:
对所述FPGA内核进行复位;
将所述外部引导存储设备输出的第二数据写入所述FPGA中;
所述FPGA输出数据。
6.根据权利要求5所述的装置,其特征在于,多个管脚包括:
初始化管脚、开关信号管脚、配置模式管脚、配置完成管脚、主时钟管脚。
CN201711469458.1A 2017-12-29 2017-12-29 Fpga的spi接口主动串行配置方法及装置 Active CN108197063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711469458.1A CN108197063B (zh) 2017-12-29 2017-12-29 Fpga的spi接口主动串行配置方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711469458.1A CN108197063B (zh) 2017-12-29 2017-12-29 Fpga的spi接口主动串行配置方法及装置

Publications (2)

Publication Number Publication Date
CN108197063A CN108197063A (zh) 2018-06-22
CN108197063B true CN108197063B (zh) 2021-01-22

Family

ID=62585778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711469458.1A Active CN108197063B (zh) 2017-12-29 2017-12-29 Fpga的spi接口主动串行配置方法及装置

Country Status (1)

Country Link
CN (1) CN108197063B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111324191A (zh) * 2020-02-14 2020-06-23 深圳市紫光同创电子有限公司 一种sram模块的电源管理系统及电源管理方法、fpga芯片

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1928824A (zh) * 2006-09-20 2007-03-14 华为技术有限公司 一种加载fpga目标程序的方法及系统
US7397274B1 (en) * 2005-04-07 2008-07-08 Lattice Semiconductor Corporation In-system programming of a non-compliant device using multiple interfaces of a PLD
CN102087606A (zh) * 2011-02-16 2011-06-08 电子科技大学 一种fpga配置文件更新装置
CN102609286A (zh) * 2012-02-10 2012-07-25 株洲南车时代电气股份有限公司 一种基于处理器控制的fpga配置程序远程更新系统及其方法
CN103885921A (zh) * 2014-04-22 2014-06-25 国家电网公司 Flash存储器、fpga芯片以及fpga芯片的配置方法
CN105446783A (zh) * 2015-12-25 2016-03-30 浙江大学 一种皮卫星dsp程序快速加载方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397274B1 (en) * 2005-04-07 2008-07-08 Lattice Semiconductor Corporation In-system programming of a non-compliant device using multiple interfaces of a PLD
CN1928824A (zh) * 2006-09-20 2007-03-14 华为技术有限公司 一种加载fpga目标程序的方法及系统
CN102087606A (zh) * 2011-02-16 2011-06-08 电子科技大学 一种fpga配置文件更新装置
CN102609286A (zh) * 2012-02-10 2012-07-25 株洲南车时代电气股份有限公司 一种基于处理器控制的fpga配置程序远程更新系统及其方法
CN103885921A (zh) * 2014-04-22 2014-06-25 国家电网公司 Flash存储器、fpga芯片以及fpga芯片的配置方法
CN105446783A (zh) * 2015-12-25 2016-03-30 浙江大学 一种皮卫星dsp程序快速加载方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于SPI FLASH的FPGA多重配置";李平 等;《现代电子技术》;20131115;第36卷(第22期);第1-2节 *

Also Published As

Publication number Publication date
CN108197063A (zh) 2018-06-22

Similar Documents

Publication Publication Date Title
US9141747B1 (en) System level tools to support FPGA partial reconfiguration
CN102609286B (zh) 一种基于处理器控制的fpga配置程序远程更新系统及其方法
KR100374328B1 (ko) 칩 설계 검증 및 테스트 장치 및 방법
JP4112886B2 (ja) デバイスのバス・プロトコル準拠試験方法およびシステム
US8521465B2 (en) General purpose protocol engine
US7231560B2 (en) Apparatus and method for testing motherboard having PCI express devices
US8415974B1 (en) Methods and circuits enabling dynamic reconfiguration
EP1573919B1 (en) Reconfiguration of the programmable logic of an integrated circuit
US8984349B2 (en) Method and system for automating the process of testing a device
US7757029B2 (en) On the fly configuration of electronic device with attachable sub-modules
US9037911B2 (en) Debug state machines and methods of their operation
JP4335999B2 (ja) プロセッサ内蔵半導体集積回路装置
US20100223502A1 (en) Memory-based trigger generation scheme in an emulation environment
Vipin et al. DyRACT: A partial reconfiguration enabled accelerator and test platform
TWI423033B (zh) 可串接之序列匯流排卡裝置及其管理方法及串接方法
US8386764B2 (en) BIOS architecture
JP5091387B2 (ja) 単一のtap(テストアクセスポート)を介して複数のtapにアクセスするための方法、および集積回路
US20040078179A1 (en) Logic verification system
US8639981B2 (en) Flexible SoC design verification environment
US8412918B1 (en) Booting mechanism for FPGA-based embedded system
CN101910972B (zh) 主装置用接口装置、附属装置用接口装置、主装置、附属装置、通信系统、以及接口电压切换方法
JP2004164647A (ja) ハードウエアによるデータ処理システム内の状態の保存/回復
US20100023602A1 (en) Method and apparatus for updating information on an embedded system
US9465073B2 (en) Integrated circuit (IC) for reconstructing values of flip-flops connected in a scan-chain by using a joint test action group (JTAG) interface, a method of operating the IC, and devices having the IC
CN106575249B (zh) 针对片上系统(soc)和系统的低功率调试架构

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant