CN106681944B - 一种基于单spi闪存的fx3-fpga快速启动方法及系统 - Google Patents

一种基于单spi闪存的fx3-fpga快速启动方法及系统 Download PDF

Info

Publication number
CN106681944B
CN106681944B CN201611064399.5A CN201611064399A CN106681944B CN 106681944 B CN106681944 B CN 106681944B CN 201611064399 A CN201611064399 A CN 201611064399A CN 106681944 B CN106681944 B CN 106681944B
Authority
CN
China
Prior art keywords
fpga
spi
peripheral controller
usb peripheral
spi flash
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
CN201611064399.5A
Other languages
English (en)
Other versions
CN106681944A (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.)
NANJING MAGEWELL ELECTRONIC TECHNOLOGY Co Ltd
Original Assignee
NANJING MAGEWELL ELECTRONIC TECHNOLOGY Co Ltd
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 NANJING MAGEWELL ELECTRONIC TECHNOLOGY Co Ltd filed Critical NANJING MAGEWELL ELECTRONIC TECHNOLOGY Co Ltd
Priority to CN201611064399.5A priority Critical patent/CN106681944B/zh
Publication of CN106681944A publication Critical patent/CN106681944A/zh
Application granted granted Critical
Publication of CN106681944B publication Critical patent/CN106681944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于单SPI闪存的FX3‑FPGA快速启动方法及系统,在单个SPI闪存中存储FPGA配置文件和USB外设控制器固件镜像文件,FPGA配置文件存储在SPI闪存地址0,由FPGA先通过SPI闪存读取配置文件启动,再将USB外设控制器的启动镜像数据映射到地址0,使USB外设控制器得以通过FPGA间接访问SPI闪存实现启动。采用本发明的方法FPGA‑FX3启动速度快,且启动仅需单个SPI闪存,设备成本低、生产方便、实现系统升级功能的软件实现简单。

Description

一种基于单SPI闪存的FX3-FPGA快速启动方法及系统
技术领域
本发明涉及一种基于单SPI闪存的FX3-FPGA快速启动方法及系统。
背景技术
Cypress FX3系列控制器芯片被广泛应用于USB 3.x设备中,并广泛通过GPIF II接口与FPGA相结合实现高速的数据传输。在这样的系统中,通常采用双SPI闪存的方式,1个用于Cypress FX3 控制器,1个用于FPGA的配置,其启动原理如图1所示。此方式系统起动速度快,但需要2片存储器,成本高;系统批量生产时需烧录2个不同的Flash,生产效率低,并且系统更新升级时需更新2个不同的Flash,会增加系统软件的复杂度并降低易用性。
现有技术中采用单SPI闪存启动FX3的原理如图2所示,采用SPI闪存完成FX3启动后,通过SPI读取SPI闪存中FPGA的Bit流,并通过GPIO控制FPGA被动配置接口,实现FPGA的配置启动。采用本方法由于需通过软件控制I/O引脚实现类似SPI协议的FPGA配置协议,其整个配置过程CPU被占用,效率低下,并且GPIO输出配置时钟信号抖动大,可靠性差,时钟频率低,配置速度慢。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种基于单SPI闪存的FX3-FPGA快速启动方法。
为实现上述技术目的,本发明采用如下技术方案:
一种基于单SPI闪存的FX3-FPGA快速启动方法,包括如下步骤:
(1)USB外设控制器Reset信号置于有效状态;
(2)FPGA从SPI闪存中读取FPGA配置文件,完成配置后,将USB外设控制器Reset信号置为无效;
(3)USB外设控制器向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储USB外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据发送至FPGA,FPGA将接收到的数据发送至USB外设控制器,完成USB外设控制器的启动;
其中,所述USB外设控制器为FX3系列的USB3.x控制器。
所述方法中,USB外设控制器、FPGA和SPI闪存采用菊花链式连接,USB外设控制器通过SPI连接FPGA,USB外设控制器作为SPI主设备,FPGA作为SPI从设备;FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备。
USB外设控制器完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使USB外设控制器能够访问到整个SPI闪存。
SPI闪存中预存储FPGA配置文件和FX3固件镜像。
USB外设控制器Reset信号通过下拉电阻置于有效状态。
本发明的另一目的在于提供一种可快速启动FX3-FPGA的系统。
为实现上述技术目的,本发明采用如下技术方案:
一种基于单SPI闪存的FX3-FPGA快速启动系统,所述系统包括USB外设控制器、FPGA和SPI闪存;
USB外设控制器、FPGA和SPI闪存采用菊花链式连接;
USB外设控制器通过SPI连接FPGA,USB外设控制器作为SPI主设备,FPGA作为SPI从设备;
FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备;
其中,所述USB外设控制器为FX3系列的USB3.x控制器。
所述系统中,FPGA、USB外设控制器启动方式具体如下:
(1)USB外设控制器Reset信号置于有效状态;
(2)FPGA通过SPI从SPI闪存中读取FPGA配置文件,完成配置后,将USB外设控制器Reset信号置为无效;
(3)USB外设控制器通过SPI向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储USB外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据通过SPI发送至FPGA,FPGA将接收到的数据通过SPI发送至USB外设控制器,完成USB外设控制器的启动。
采用上述方法和系统的USB 3.x装置也在本发明的保护范围之内。
本发明的方法中,外设控制器对SPI闪存访问通过FPGA间接实现,启动速度快。且启动仅需单个SPI闪存,设备成本低、生产方便、实现系统升级功能的软件实现简单。本发明的内容还可以进一步拓展,通过外设控制器启动代码重定向功能实现存放多个代码版本等功能。
附图说明
图1为现有双SPI闪存启动方式原理图;
图2为现有单SPI闪存启动方式原理图;
图3为本发明单SPI闪存启动方式原理图。
具体实施方式
下面结合附图说明和具体实施方式对本发明的技术方案作进一步描述。
实施例1
本实施例具体说明本发明方法的实现方式。
本发明的方法具体包括如下步骤:
(1)将FX3 Reset信号置于有效状态;
为保证FPGA先完成配置,然后FX3通过FPGA间接访问SPI闪存,在一开始FX3的RESET#为低电平(本实施例中通过下拉电阻拉低),即处于复位状态;当FPGA配置完成后,FPGA将RESET#拉高,此时FX3才开始启动。
(2)FPGA从SPI闪存中读取FPGA配置文件,完成配置后,将FX3 Reset信号置为无效;
FPGA和SPI闪存采用SPI连接,FPGA作为主设备,SPI闪存作为从设备,SPI闪存通过MISO接口将配置文件发送至FPGA,完成FPGA的配置。
(3)FX3向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储FX3固件镜像的地址,并通过SPI发送至SPI闪存;
FX3和FPGA间采用SPI连接,FX3作为主设备,FPGA作为从设备,FX3通过MOSI接口向SPI闪存发送读取命令。
SPI闪存中预先存储FX3固件镜像文件和FPGA配置文件,SPI闪存地址0存放FPGA配置位流,FX3和FPGA均需从SPI闪存的地址0引导,在FPGA配置完成后,FPGA将FX3的启动镜像数据映射到地址0,实现FX3的启动。
(4)SPI闪存将读取数据发送至FPGA,FPGA将接收到的数据发送至FX3,完成FX3的启动。
FX3完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使FX3能够访问到整个SPI闪存。
本发明的方法可应用于FX3及后续系列产品,如FX3PD等。
实施例2
本实施例具体说明本发明系统的实现方式。
如图3所示的一种基于单SPI闪存的FX3-FPGA快速启动系统,所述系统包括FX3外设控制器、FPGA和SPI闪存;FX3外设控制器可通过USB 2.0/3.x接口与USB连接线连接。
其中,FX3外设控制器、FPGA和SPI闪存采用菊花链式连接;
FX3外设控制器通过SPI连接FPGA,FX3外设控制器作为SPI主设备,FPGA作为SPI从设备;
FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备;
FPGA和FX3外设控制器的启动方式具体如下:
(1)FX3外设控制器Reset信号置于有效状态;
(2)FPGA通过SPI从SPI闪存中读取FPGA配置文件,完成配置后,将FX3外设控制器Reset信号置为无效;
(3)FX3外设控制器通过SPI向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储FX3外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据通过SPI发送至FPGA,FPGA将接收到的数据通过SPI发送至FX3外设控制器,完成FX3外设控制器的启动。
FX3完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使FX3能够访问到整个SPI闪存。

Claims (7)

1.一种基于单SPI闪存的FX3-FPGA快速启动方法,其特征在于,包括如下步骤:
(1)USB外设控制器Reset信号置于有效状态;
(2)FPGA从SPI闪存中读取FPGA配置文件,完成配置后,将USB外设控制器Reset信号置为无效;
(3)USB外设控制器向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储USB外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据发送至FPGA,FPGA将接收到的数据发送至USB外设控制器,完成USB外设控制器的启动;
其中,所述USB外设控制器为FX3系列的USB3.x控制器。
2.根据权利要求1所述的方法,其特征在于,USB外设控制器、FPGA和SPI闪存采用菊花链式连接,USB外设控制器通过SPI连接FPGA,USB外设控制器作为SPI主设备,FPGA作为SPI从设备;FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备。
3.根据权利要求1所述的方法,其特征在于,USB外设控制器完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使USB外设控制器能够访问到整个SPI闪存。
4.根据权利要求1所述的方法,其特征在于,SPI闪存中预存储FPGA配置文件和FX3固件镜像。
5.根据权利要求1所述的方法,其特征在于,USB外设控制器Reset信号通过下拉电阻置于有效状态。
6.一种基于单SPI闪存的FX3-FPGA快速启动系统,其特征在于,所述系统包括USB外设控制器、FPGA和SPI闪存;
USB外设控制器、FPGA和SPI闪存采用菊花链式连接;
USB外设控制器通过SPI连接FPGA,USB外设控制器作为SPI主设备,FPGA作为SPI从设备;
FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备;
其中,所述USB外设控制器为FX3系列的USB3.x控制器;
FPGA、USB外设控制器启动方式具体如下:
(1)USB外设控制器Reset信号置于有效状态;
(2)FPGA通过SPI从SPI闪存中读取FPGA配置文件,完成配置后,将USB外设控制器Reset信号置为无效;
(3)USB外设控制器通过SPI向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储USB外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据通过SPI发送至FPGA,FPGA将接收到的数据通过SPI发送至USB外设控制器,完成USB外设控制器的启动。
7.根据权利要求6所述的系统,其特征在于,USB外设控制器完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使USB外设控制器能够访问到整个SPI闪存。
CN201611064399.5A 2016-11-25 2016-11-25 一种基于单spi闪存的fx3-fpga快速启动方法及系统 Active CN106681944B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611064399.5A CN106681944B (zh) 2016-11-25 2016-11-25 一种基于单spi闪存的fx3-fpga快速启动方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611064399.5A CN106681944B (zh) 2016-11-25 2016-11-25 一种基于单spi闪存的fx3-fpga快速启动方法及系统

Publications (2)

Publication Number Publication Date
CN106681944A CN106681944A (zh) 2017-05-17
CN106681944B true CN106681944B (zh) 2019-10-18

Family

ID=58865946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611064399.5A Active CN106681944B (zh) 2016-11-25 2016-11-25 一种基于单spi闪存的fx3-fpga快速启动方法及系统

Country Status (1)

Country Link
CN (1) CN106681944B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116610631B (zh) * 2023-07-21 2023-09-26 西安智多晶微电子有限公司 支持多片SPI Flash访问的FPGA启动配置方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408902A (zh) * 2008-10-06 2009-04-15 南京大学 基于fpga和usb总线的高速数据采集与传输方法
CN103577741A (zh) * 2013-03-13 2014-02-12 深圳市振华微电子有限公司 一种usb外设
CN104881388A (zh) * 2015-06-12 2015-09-02 哈尔滨工业大学 基于fpga的usb 3.0接口模块
CN105608032A (zh) * 2014-11-01 2016-05-25 江苏绿扬电子仪器集团有限公司 Usb接口电路系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080147931A1 (en) * 2006-10-17 2008-06-19 Smart Modular Technologies, Inc. Data striping to flash memory
US20080109566A1 (en) * 2006-11-03 2008-05-08 Hitt David H Usb mass storage device interconnect module having automatic file transfer capability and method of operation thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408902A (zh) * 2008-10-06 2009-04-15 南京大学 基于fpga和usb总线的高速数据采集与传输方法
CN103577741A (zh) * 2013-03-13 2014-02-12 深圳市振华微电子有限公司 一种usb外设
CN105608032A (zh) * 2014-11-01 2016-05-25 江苏绿扬电子仪器集团有限公司 Usb接口电路系统
CN104881388A (zh) * 2015-06-12 2015-09-02 哈尔滨工业大学 基于fpga的usb 3.0接口模块

Also Published As

Publication number Publication date
CN106681944A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
US9389804B2 (en) Host, system, and methods for transmitting commands to non-volatile memory card
CN1199117C (zh) 信源同步及公共时钟协议中的数据传输
CN101545933B (zh) 用于雷电探测的远程智能升级装置及其实现方法
WO2017172014A1 (en) Usb interface using repeaters with guest protocol support
TWI378467B (en) Method and system for improving latency to memory device and integrated circuits therefor
US7707321B2 (en) Chained DMA for low-power extended USB flash device without polling
CN102012885A (zh) 采用动态i2c总线实现通讯的系统及方法
CN1169193A (zh) 同步dma传输协议
WO2002097643A1 (en) Method and apparatus for interconnecting wired-and buses
CN103454996A (zh) 主从机系统及其控制方法
CN204537117U (zh) 一种基于微处理器的fpga远程在线升级系统
US20110016267A1 (en) Low-Power USB Flash Card Reader Using Bulk-Pipe Streaming with UAS Command Re-Ordering and Channel Separation
CN104834620A (zh) 串行外设接口spi总线电路、实现方法以及电子设备
JP2007251947A (ja) マルチマスタのチェーン接続された二線シリアルバス
CN102073611B (zh) 一种i2c总线控制系统及方法
WO2016197883A1 (zh) 一种在线更新单片机程序的方法及系统
CN106407145A (zh) 接口访问方法、系统及存储卡
CN102752180A (zh) Can总线网络节点的实现方法
CN104077166A (zh) 基于fpga中ip核的epcs与epcq存储器在线升级方法
CN103077139B (zh) 使用内部集成电路总线的集成电路及其控制方法
CN106681944B (zh) 一种基于单spi闪存的fx3-fpga快速启动方法及系统
CN204155612U (zh) 闪存烧入器及烧入系统
US9892032B2 (en) Management of random cache read operations
US20180357121A1 (en) Error correction calculation upon serial bus abort
CN113886297A (zh) 一种基于dma的spi并发通讯se装置及方法

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