CN116301936B - 一种fpga配置文件加速固化系统及方法 - Google Patents
一种fpga配置文件加速固化系统及方法 Download PDFInfo
- Publication number
- CN116301936B CN116301936B CN202310196893.0A CN202310196893A CN116301936B CN 116301936 B CN116301936 B CN 116301936B CN 202310196893 A CN202310196893 A CN 202310196893A CN 116301936 B CN116301936 B CN 116301936B
- Authority
- CN
- China
- Prior art keywords
- chip
- pin
- soft core
- fpga
- packet 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
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 title abstract description 10
- 238000004364 calculation method Methods 0.000 claims abstract description 37
- 238000004891 communication Methods 0.000 claims abstract description 10
- 239000003990 capacitor Substances 0.000 claims description 42
- 238000001723 curing Methods 0.000 claims description 39
- 238000007711 solidification Methods 0.000 claims description 12
- 230000008023 solidification Effects 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 239000011324 bead Substances 0.000 claims description 6
- 101100055224 Anemone leveillei AL10 gene Proteins 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及文件固化技术领域,公开了一种FPGA配置文件加速固化系统及方法;包括FPGA芯片、缓冲器、JTAG接口和配置芯片;FPGA芯片包括CPU软核、锁相环、片内时钟和RAM模块,RAM模块接入CPU软核,片内时钟通过锁相环接入CPU软核;CPU软核与配置芯片之间通过QSPI协议建立通信;CPU软核通过缓冲器与JTAG接口相连;上位机通过仿真器接入JTAG接口,并为FPGA芯片内下载可执行文件,CPU软核运行可执行文件与上位机建立通信;本发明通过FPGA芯片对写入配置芯片进行回读,并在FPGA芯片内部进行校验的方式缩短固化时间,同时通过回读及CRC校验计算确保配置文件写入配置芯片的准确性。
Description
技术领域
本发明属于文件固化技术领域,涉及一种FPGA配置文件加速固化系统及方法。
背景技术
大规模现场可编程门阵列(以下简称FPGA)器件目前被广泛应用在工业控制的多个领域。在实际应用中,对计算能力、数据带宽、逻辑复杂度的要求越来越高。目前,业内多采用基于SRAM工艺的FPGA来解决这些问题。这种FPGA不具备静态存储特性,每次上电后,都需要从配置芯片内读取配置文件,并加载至片内SRAM执行,从而实现具体的功能。随着FPGA内部逻辑资源的增加,配置文件的长度也越来越大。将配置文件固化到配置芯片的时间也越来越长。
目前市面上,通常采用FPGA厂商提供的工具来实现配置文件的固化功能。但是该工具兼容的FPGA芯片种类大多,没有针对具体FPGA型号进行设计,导致固化时间过长,降低了产品开发阶段的研发效率,也降低了产品在量产阶段的生产效率。
发明内容
本发明解决的技术问题在于提供一种FPGA配置文件加速固化系统及方法,通过FPGA芯片对写入配置芯片进行回读,并在FPGA芯片内部进行校验的方式缩短固化时间,同时通过回读及CRC校验计算确保配置文件写入配置芯片的准确性。
本发明是通过以下技术方案来实现:
一种FPGA配置文件加速固化系统,包括FPGA芯片、缓冲器、JTAG接口和配置芯片;FPGA芯片包括CPU软核、锁相环、片内时钟和RAM模块,RAM模块接入CPU软核,片内时钟通过锁相环接入CPU软核;
CPU软核与配置芯片之间通过QSPI协议建立通信;CPU软核通过缓冲器与JTAG接口相连;上位机通过仿真器接入JTAG接口,并为FPGA芯片内下载可执行文件,CPU软核运行可执行文件与上位机建立通信;
上位机通过运行TCL脚本将需要写入配置芯片的配置文件分包为多个单包数据,将单包数据发送至CPU软核,同时对发送单包数据进行CRC校验计算;CPU软核将单包数据暂存至RAM模块内,同时对接收的单包数据进行CRC校验计算;
CPU软核将RAM模块内的单包数据通过QSPI协议写入配置芯片;CPU软核回读写入配置芯片内的单包数据并将其与RAM模块内的单包数据进行校验;
所有单包数据写入完成后,上位机完成全部单包数据的CRC校验计算并获得发送CRC校验码,CPU软核完成全部单包数据的CRC校验计算并获得接收CRC校验码;上位机将发送CRC校验码发送至CPU软核,由CPU软核对发送CRC校验码与接收CRC校验码进行校验,两者一致时,完成配置文件的固化。
进一步地,所述FPGA芯片型号为XC7VX690T-2FFG1761I,FPGA芯片由FPGA芯片U55-1和U55-4组成;
FPGA芯片U55-1的M10接输入电压端子VCC_1V8;M10、T11、N11和Y21引脚相连;
Y21引脚还接贴片电容C126,贴片电容C126与贴片磁珠L6的一端相连且接地;贴片磁珠L6的另一端与Y20引脚相连;
N10引脚与配置芯片U56的第六引脚,以及贴片电阻R645的一端相连;贴片电阻R645的一端还与贴片电容C1264的一端相连;贴片电容C1264的另一端接地;贴片电阻R645的另一端接输入电压端子VCC_1V8;
AG11引脚与贴片电阻R639一端、贴片电容C248一端、信号端子1V8_INIT0#相连,贴片电阻R639的另一端接输入电压端子VCC_1V8,贴片电容C248另一端接地;
AJ11引脚接贴片电容C1263一端、贴片电阻R640一端,贴片电容C1263另一端接地,贴片电阻R640另一端接输入电压端子VCC_1V8;
AL11引脚接贴片电阻R471一端、信号端子1V8_DONE0,贴片电阻R471另一端接输入电压端子VCC_1V8;
AJ10引脚接贴片电阻R641一端、贴片电阻R642一端,贴片电阻R641另一端接输入电压端子VCC_1V8,贴片电阻R642另一端接地;
AK10引脚接贴片电阻R643一端、贴片电阻R644一端;
AL10引脚接贴片电阻R646一端、贴片电阻R647一端;
电阻R643另一端、电阻R646另一端和贴片电阻R641另一端相连,贴片电阻R644另一端、贴片电阻R647另一端和贴片电阻R642另一端相连;
P10引脚与贴片电容C1168一端相连,贴片电容C1168另一端接地;
FPGA芯片U55-4的AF28、AH32、AJ29、AK36、AL33、AM30和AN37引脚相连且接输入电压端子VCC_1V8;
AM36引脚与配置芯片U56的第五引脚相连;
AN36引脚与配置芯片U56的第二引脚相连;
AJ36引脚与配置芯片U56的第三引脚相连;
AJ37引脚与配置芯片U56的第七引脚相连;
AL36引脚与配置芯片U56的第一引脚相连;
AP36引脚接贴片电阻R637一端相连,贴片电阻R637另一端接地。
进一步地,缓冲器型号为SN74ALVC244PWR,缓冲器与JTAG接口相连;
缓冲器U62的第九引脚与FPGA芯片U55-1的T10引脚相连;
缓冲器U62的第十三引脚与FPGA芯片U55-1的R10引脚相连;
缓冲器U62的第十八引脚与FPGA芯片U55-1的P11引脚相连;
缓冲器U62的第十四引脚与FPGA芯片U55-1的P10引脚相连;
缓冲器U62的第二和第四引脚相连且接JTAG接口J2的第六引脚、贴片电阻R410一端;
缓冲器U62的第六和第八引脚相连且接JTAG接口J2的第三引脚、贴片电阻R419一端;
缓冲器U62的第十一引脚接JTAG接口J2的第五引脚、贴片电阻R445一端;贴片电阻R410、R419和R445相连且接输入电压端子VCC_1V8;
缓冲器U62的第七引脚接JTAG接口J2的第四引脚;
JTAG接口J2的第一引脚接输入电压端子VCC_1V8;JTAG接口J2的第二引脚接地;
缓冲器U62的第二十引脚接输入电压端子VCC_1V8和贴片电容C1238一端,贴片电容C1238另一端接地;
缓冲器U62的第十、十九引脚接地。
进一步地,配置芯片型号为N25Q256A11EF840E;配置芯片U56的第八引脚接输入电压端子VCC_1V8和贴片电容C1265一端,贴片电容C1265另一端接地;配置芯片U56的第四和第八引脚均接地。
进一步地,CRC校验计算采用CRC-32校验算法,CRC-32校验算法的校验多项式为:
X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1;X为bit位;CRC校验码的初始值为全0。
进一步地,单包数据的最大长度为1024字节。
一种FPGA配置文件加速固化系统的固化方法,包括如下步骤:
S1、上位机通过仿真器为FPGA芯片下载可执行文件;
S2、上位机运行TCL脚本将配置文件分包为多个单包数据;
S3、FPGA芯片运行可执行文件与上位机通信;FPGA芯片的CPU软核获取上位机内单包数据的数量;
S4、上位机将单包数据发送至CPU软核,同时对发送的单包数据进行CRC校验计算;
S5、CPU软核将接收的单包数据暂存至FPGA芯片的RAM模块,同时对接收的单包数据进行CRC校验计算;
S6、CPU软核读取配置芯片的ID,检查FPGA芯片与配置芯片的连接状态;
S7、CPU软核将RAM模块内的单包数据通过QSPI协议写入配置芯片,CPU软核回读单包数据,并校验回读的单包数据与RAM模块内的单包数据的一致性;
若不一致,CPU软核置错误标志并停止配置文件固化,CPU软核将故障信息发送至上位机;
否则,继续进行配置文件的固化,新的单包数据直接覆盖RAM模块中的单包数据;
S8、CPU软核判断全部的单包数据是否写入完成;
若未完成,继续执行步骤S4;
若写入完成,上位机完成对所有发送的单包数据的CRC校验计算,并获得发送CRC校验码;CPU软核完成对所有接收的单包数据的CRC校验计算,并获得接收CRC校验码;
S9、上位机将发送CRC校验码发送至CPU软核,由CPU软核校验发送CRC校验码和接收CRC校验码是否一致;
若一致,FPGA芯片完成配置文件固化,由上位机输出配置文件固化结果;
若不一致,CPU软核置错误标志并停止配置文件固化,CPU软核将故障信息发送至上位机。
进一步地,所述S3中,FPGA芯片还包括锁相环和片内时钟,片内时钟通过锁相环接入CPU软核。
进一步地,所述S2中,单包数据的最大长度为1024字节。
进一步地,所述S4、S5和S8中,CRC校验计算采用CRC-32校验算法,CRC-32校验算法的校验多项式为:
X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1;X为bit位;CRC校验码的初始值为全0。
与现有技术相比,本发明具有以下有益的技术效果:
1、本发明提供的FPGA配置文件加速固化系统及方法,由FPGA芯片的CPU软核直接操作配制芯片,在配置芯片上进行读写数据,在对写入配置芯片内的单包数据进行校验时,以CPU软核回读的形式将回读的单包数据与暂存在RAM模块内的单包数据进行比对校验,无需将配置芯片的全部数据发送至上位机,省去了CPU软核与上位机之间通信传输环节;同时,通过CPU软核回读的方式能够确保配置文件的单包数据在写入过程的准确性;再结合上位机向FPGA芯片发送单包数据时进行CRC校验计算,CPU软核将单包数据写入配置芯片时进行CRC校验计算,分别获得的发送CRC校验码和接收CRC校验码,判断整个配置文件写入的准确性。
2、本发明提供的FPGA配置文件加速固化系统及方法,FPGA芯片与配置芯片采用QSPI协议通信,QSPI协议为四线制,同一时间可发送4bit数据(0.5字节数据),可以缩短单字节数据的传输时间,提高固化配置文件的工作效率;FPGA与配置芯片交互的QSPI接口工作时钟为100MHz,可以充分发挥配置芯片的工作性能,缩短单bit数据传输时间。
附图说明
图1为本发明的硬件连接示意图;
图2为FPGA芯片的内部结构意图;
图3为FPGA芯片U55-1的电路图;
图4为FPGA芯片U55-4的电路图;
图5为配置芯片U56的电路图;
图6为JTAG接口J2的电路图;
图7为实施例1配置文件固化完成后,上位机输出的固化结果图。
具体实施方式
下面结合附图对本发明做进一步详细描述,所述是对本发明的解释而不是限定。
如图1和图2所示,本发明公开了一种FPGA配置文件加速固化系统,包括FPGA芯片、缓冲器、JTAG接口和配置芯片;FPGA芯片包括CPU软核、锁相环、片内时钟和RAM模块,RAM模块接入CPU软核,片内时钟通过锁相环接入CPU软核。CPU软核为MicroBlaze嵌入式软核,MicroBlaze嵌入式软核为32位RISC微处理器,工作时钟为100MHz。所述片内时钟为RC振荡器,典型输出频率为65MHz时钟。锁相环将片内时钟输入的65MHz时钟转换为100MHz,为CPU软核提供工作时钟。
CPU软核与配置芯片之间通过QSPI协议建立通信;CPU软核通过缓冲器与JTAG接口相连;上位机通过仿真器接入JTAG接口,并为FPGA芯片内下载可执行文件,CPU软核运行可执行文件与上位机建立通信。
具体的,可执行文件为flash_programmer可执行程序,CPU软核运行flash_programmer可执行程序与上位机建立通信。上位机内还装有TCL脚本,上位机可通过运行TCL脚本,检测上位机与仿真器、FPGA芯片的连接状态;还能够通过运行TCL脚本将需要写入配置芯片的配置文件分包为多个最大长度为1024字节的单包数据。
上位机通过运行TCL脚本将需要写入配置芯片的配置文件分包为多个单包数据,单包数据的最大长度为1024字节。将单包数据发送至CPU软核,同时对发送单包数据进行CRC校验计算;CPU软核将单包数据暂存至RAM模块内,同时对接收的单包数据进行CRC校验计算,CPU软核将RAM模块内的单包数据通过QSPI协议写入配置芯片;CPU软核回读写入配置芯片内的单包数据并将其与RAM模块内的单包数据进行校验,确包写入的单包数据的准确性;所有单包数据写入完成后,上位机完成全部单包数据的CRC校验计算并获得发送CRC校验码,CPU软核完成全部单包数据的CRC校验计算并获得接收CRC校验码;上位机将发送CRC校验码发送至CPU软核,由CPU软核对发送CRC校验码与接收CRC校验码进行校验,两者一致时,完成配置文件的固化;确保写入的整个文件的准确性。
所述FPGA芯片型号为XC7VX690T-2FFG1761I,FPGA芯片由FPGA芯片U55-1和U55-4组成。
FPGA芯片U55-1的M10接输入电压端子VCC_1V8;M10、T11、N11和Y21引脚相连。
Y21引脚还接贴片电容C126,贴片电容C126与贴片磁珠L6的一端相连且接地;贴片磁珠L6的另一端与Y20引脚相连。
N10引脚与配置芯片U56的第六引脚,以及贴片电阻R645的一端相连;贴片电阻R645的一端还与贴片电容C1264的一端相连;贴片电容C1264的另一端接地;贴片电阻R645的另一端接输入电压端子VCC_1V8。
AG11引脚与贴片电阻R639一端、贴片电容C248一端、信号端子1V8_INIT0#相连,贴片电阻R639的另一端接输入电压端子VCC_1V8,贴片电容C248另一端接地。
AJ11引脚接贴片电容C1263一端、贴片电阻R640一端,贴片电容C1263另一端接地,贴片电阻R640另一端接输入电压端子VCC_1V8。
AL11引脚接贴片电阻R471一端、信号端子1V8_DONE0,贴片电阻R471另一端接输入电压端子VCC_1V8。
AJ10引脚接贴片电阻R641一端、贴片电阻R642一端,贴片电阻R641另一端接输入电压端子VCC_1V8,贴片电阻R642另一端接地。
AK10引脚接贴片电阻R643一端、贴片电阻R644一端。
AL10引脚接贴片电阻R646一端、贴片电阻R647一端。
电阻R643另一端、电阻R646另一端和贴片电阻R641另一端相连,贴片电阻R644另一端、贴片电阻R647另一端和贴片电阻R642另一端相连。
P10引脚与贴片电容C1168一端相连,贴片电容C1168另一端接地。
缓冲器型号为SN74ALVC244PWR,缓冲器与JTAG接口相连。
缓冲器U62的第九引脚与FPGA芯片U55-1的T10引脚相连。
缓冲器U62的第十三引脚与FPGA芯片U55-1的R10引脚相连。
缓冲器U62的第十八引脚与FPGA芯片U55-1的P11引脚相连。
缓冲器U62的第十四引脚与FPGA芯片U55-1的P10引脚相连。
缓冲器U62的第二和第四引脚相连且接JTAG接口J2的第六引脚、贴片电阻R410一端。
缓冲器U62的第六和第八引脚相连且接JTAG接口J2的第三引脚、贴片电阻R419一端。
缓冲器U62的第十一引脚接JTAG接口J2的第五引脚、贴片电阻R445一端;贴片电阻R410、R419和R445相连且接输入电压端子VCC_1V8。
缓冲器U62的第七引脚接JTAG接口J2的第四引脚。
JTAG接口J2的第一引脚接输入电压端子VCC_1V8;JTAG接口J2的第二引脚接地。
缓冲器U62的第二十引脚接输入电压端子VCC_1V8和贴片电容C1238一端,贴片电容C1238另一端接地。
缓冲器U62的第十、十九引脚接地。
FPGA芯片U55-4的AF28、AH32、AJ29、AK36、AL33、AM30和AN37引脚相连且接输入电压端子VCC_1V8。
AM36引脚与配置芯片U56的第五引脚相连。
AN36引脚与配置芯片U56的第二引脚相连。
AJ36引脚与配置芯片U56的第三引脚相连。
AJ37引脚与配置芯片U56的第七引脚相连。
AL36引脚与配置芯片U56的第一引脚相连。
AP36引脚接贴片电阻R637一端相连,贴片电阻R637另一端接地。
配置芯片型号为N25Q256A11EF840E;配置芯片U56的第八引脚接输入电压端子VCC_1V8和贴片电容C1265一端,贴片电容C1265另一端接地;配置芯片U56的第四和第八引脚均接地。
CRC校验计算采用CRC-32校验算法,CRC-32校验算法的校验多项式为:
X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1;X为bit位;CRC校验码的初始值为全0。
本发明还公开了一种FPGA配置文件加速固化方法,包括如下步骤:
S1、上位机通过仿真器为FPGA芯片下载可执行文件。
S2、上位机运行TCL脚本将配置文件分包为多个单包数据,单包数据的最大长度为1024字节。
S3、FPGA芯片运行可执行文件与上位机通信;FPGA芯片的CPU软核获取上位机内单包数据的数量。
S4、上位机将单包数据发送至CPU软核,同时对发送的单包数据进行CRC校验计算。
S5、CPU软核将接收的单包数据暂存至FPGA芯片的RAM模块,同时对接收的单包数据进行CRC校验计算。
S6、CPU软核读取配置芯片的ID,检查FPGA芯片与配置芯片的连接状态。
S7、CPU软核将RAM模块内的单包数据通过QSPI协议写入配置芯片,CPU软核回读单包数据,并校验回读的单包数据与RAM模块内的单包数据的一致性。
若不一致,CPU软核置错误标志并停止配置文件固化,CPU软核将故障信息发送至上位机。
否则,继续进行配置文件的固化,新的单包数据直接覆盖RAM模块中的单包数据。
S8、CPU软核判断全部的单包数据是否写入完成。
若未完成,继续执行步骤S4。
若写入完成,上位机完成对所有发送的单包数据的CRC校验计算,并获得发送CRC校验码;CPU软核完成对所有接收的单包数据的CRC校验计算,并获得接收CRC校验码。
S9、上位机将发送CRC校验码发送至CPU软核,由CPU软核校验发送CRC校验码和接收CRC校验码是否一致。
若一致,FPGA芯片完成配置文件固化,由上位机输出配置文件固化结果。
若不一致,CPU软核置错误标志并停止配置文件固化,CPU软核将故障信息发送至上位机。
所述S3中,FPGA芯片还包括锁相环和片内时钟,片内时钟通过锁相环接入CPU软核。
所述S4、S5和S8中,CRC校验计算采用CRC-32校验算法,CRC-32校验算法的校验多项式为:
X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1;X为bit位;CRC校验码的初始值为全0。
按照图3至6以及上述的连接关系搭建本发明的FPGA配置文件加速固化系统;其中JTAG接口J2的工作时钟为30MHz。
下面提供具体的实施例。
实施例1
本发明公开了一种FPGA配置文件加速固化的方法,在硬件部分的基础上,固化大小为74,392,219字节的文件,文件中包含3个版本的配置文件。具体的固化过程如下:
S1、上位机通过仿真器为FPGA芯片下载可执行文件。
S2、上位机运行TCL脚本将大小为74,392,219字节的配置文件分包为72,648个长度为1024字节的单包数据和1个长度为667字节的单包数据;其中,一个单包数据的最大长度为1024字节。
S3、FPGA芯片运行可执行文件与上位机通信;FPGA芯片的CPU软核获取上位机内单包数据的数量。
S4、上位机将单包数据发送至CPU软核,同时对发送的单包数据进行CRC校验计算。
S5、CPU软核将接收的单包数据暂存至FPGA芯片的RAM模块,同时对接收的单包数据进行CRC校验计算。
S6、CPU软核读取配置芯片的ID(0x200xBB0x2A),检查FPGA芯片与配置芯片的连接状态。
S7、CPU软核将RAM模块内的单包数据通过QSPI协议写入配置芯片,CPU软核回读单包数据,并校验回读的单包数据与RAM模块内的单包数据的一致性。
若不一致,CPU软核置错误标志并停止配置文件固化,CPU软核将故障信息发送至上位机。
否则,继续进行配置文件的固化,新的单包数据直接覆盖RAM模块中的单包数据。
S8、CPU软核判断全部的单包数据是否写入完成。
若未完成,继续执行步骤S4。
若写入完成,上位机完成对所有发送的单包数据的CRC校验计算,并获得发送CRC校验码;CPU软核完成对所有接收的单包数据的CRC校验计算,并获得接收CRC校验码。
S9、上位机将发送CRC校验码发送至CPU软核,由CPU软核校验发送CRC校验码和接收CRC校验码是否一致。
若一致,FPGA芯片完成配置文件固化,由上位机输出配置文件固化结果;固化结果如图1。
若不一致,CPU软核置错误标志并停止配置文件固化,CPU软核将故障信息发送至上位机。
采用本发明中的固化方法后,固化配置文件的时长为23分钟;相较于采用传统固化方式固化本实施例1中的配置文件所需时长为40分钟,固化时间缩短了42.5%。
以上给出的实施例是实现本发明较优的例子,本发明不限于上述实施例。本领域的技术人员根据本发明技术方案的技术特征所做出的任何非本质的添加、替换,均属于本发明的保护范围。
Claims (6)
1.一种FPGA配置文件加速固化系统,其特征在于,包括FPGA芯片、缓冲器、JTAG接口和配置芯片;FPGA芯片包括CPU软核、锁相环、片内时钟和RAM模块,RAM模块接入CPU软核,片内时钟通过锁相环接入CPU软核;
CPU软核与配置芯片之间通过QSPI协议建立通信;CPU软核通过缓冲器与JTAG接口相连;上位机通过仿真器接入JTAG接口,并为FPGA芯片内下载可执行文件,CPU软核运行可执行文件与上位机建立通信;
上位机通过运行TCL脚本将需要写入配置芯片的配置文件分包为多个单包数据,将单包数据发送至CPU软核,同时对发送单包数据进行CRC校验计算;CPU软核将单包数据暂存至RAM模块内,同时对接收的单包数据进行CRC校验计算;
CPU软核将RAM模块内的单包数据通过QSPI协议写入配置芯片;CPU软核回读写入配置芯片内的单包数据并将其与RAM模块内的单包数据进行校验;
所有单包数据写入完成后,上位机完成全部单包数据的CRC校验计算并获得发送CRC校验码,CPU软核完成全部单包数据的CRC校验计算并获得接收CRC校验码;上位机将发送CRC校验码发送至CPU软核,由CPU软核对发送CRC校验码与接收CRC校验码进行校验,两者一致时,完成配置文件的固化;
所述FPGA芯片型号为XC7VX690T-2FFG1761I,FPGA芯片由FPGA芯片U55-1和U55-4组成;
FPGA芯片U55-1的M10接输入电压端子VCC_1V8;M10、T11、N11和Y21引脚相连;
Y21引脚还接贴片电容C126,贴片电容C126与贴片磁珠L6的一端相连且接地;贴片磁珠L6的另一端与Y20引脚相连;
N10引脚与配置芯片U56的第六引脚,以及贴片电阻R645的一端相连;贴片电阻R645的一端还与贴片电容C1264的一端相连;贴片电容C1264的另一端接地;贴片电阻R645的另一端接输入电压端子VCC_1V8;
AG11引脚与贴片电阻R639一端、贴片电容C248一端、信号端子1V8_INIT0#相连,贴片电阻R639的另一端接输入电压端子VCC_1V8,贴片电容C248另一端接地;
AJ11引脚接贴片电容C1263一端、贴片电阻R640一端,贴片电容C1263另一端接地,贴片电阻R640另一端接输入电压端子VCC_1V8;
AL11引脚接贴片电阻R471一端、信号端子1V8_DONE0,贴片电阻R471另一端接输入电压端子VCC_1V8;
AJ10引脚接贴片电阻R641一端、贴片电阻R642一端,贴片电阻R641另一端接输入电压端子VCC_1V8,贴片电阻R642另一端接地;
AK10引脚接贴片电阻R643一端、贴片电阻R644一端;
AL10引脚接贴片电阻R646一端、贴片电阻R647一端;
电阻R643另一端、电阻R646另一端和贴片电阻R641另一端相连,贴片电阻R644另一端、贴片电阻R647另一端和贴片电阻R642另一端相连;
P10引脚与贴片电容C1168一端相连,贴片电容C1168另一端接地;
FPGA芯片U55-4的AF28、AH32、AJ29、AK36、AL33、AM30和AN37引脚相连且接输入电压端子VCC_1V8;
AM36引脚与配置芯片U56的第五引脚相连;
AN36引脚与配置芯片U56的第二引脚相连;
AJ36引脚与配置芯片U56的第三引脚相连;
AJ37引脚与配置芯片U56的第七引脚相连;
AL36引脚与配置芯片U56的第一引脚相连;
AP36引脚接贴片电阻R637一端相连,贴片电阻R637另一端接地。
2.根据权利要求1所述的一种FPGA配置文件加速固化系统,其特征在于,缓冲器型号为SN74ALVC244PWR,缓冲器与JTAG接口相连;
缓冲器U62的第九引脚与FPGA芯片U55-1的T10引脚相连;
缓冲器U62的第十三引脚与FPGA芯片U55-1的R10引脚相连;
缓冲器U62的第十八引脚与FPGA芯片U55-1的P11引脚相连;
缓冲器U62的第十四引脚与FPGA芯片U55-1的P10引脚相连;
缓冲器U62的第二和第四引脚相连且接JTAG接口J2的第六引脚、贴片电阻R410一端;
缓冲器U62的第六和第八引脚相连且接JTAG接口J2的第三引脚、贴片电阻R419一端;
缓冲器U62的第十一引脚接JTAG接口J2的第五引脚、贴片电阻R445一端;贴片电阻R410、R419和R445相连且接输入电压端子VCC_1V8;
缓冲器U62的第七引脚接JTAG接口J2的第四引脚;
JTAG接口J2的第一引脚接输入电压端子VCC_1V8;JTAG接口J2的第二引脚接地;
缓冲器U62的第二十引脚接输入电压端子VCC_1V8和贴片电容C1238一端,贴片电容C1238另一端接地;
缓冲器U62的第十、十九引脚接地。
3.根据权利要求1所述的一种FPGA配置文件加速固化系统,其特征在于,配置芯片型号为N25Q256A11EF840E;配置芯片U56的第八引脚接输入电压端子VCC_1V8和贴片电容C1265一端,贴片电容C1265另一端接地;配置芯片U56的第四和第八引脚均接地。
4.根据权利要求1所述的一种FPGA配置文件加速固化系统,其特征在于,CRC校验计算采用CRC-32校验算法,CRC-32校验算法的校验多项式为:
X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1;X为bit位;CRC校验码的初始值为全0。
5.根据权利要求1所述的一种FPGA配置文件加速固化系统,其特征在于,单包数据的最大长度为1024字节。
6.一种FPGA配置文件加速固化系统的固化方法,应用于权利要求1所述的FPGA配置文件加速固化系统,其特征在于,包括如下步骤:
S1、上位机通过仿真器为FPGA芯片下载可执行文件;
S2、上位机运行TCL脚本将配置文件分包为多个单包数据;
S3、FPGA芯片运行可执行文件与上位机通信;FPGA芯片的CPU软核获取上位机内单包数据的数量;
S4、上位机将单包数据发送至CPU软核,同时对发送的单包数据进行CRC校验计算;
S5、CPU软核将接收的单包数据暂存至FPGA芯片的RAM模块,同时对接收的单包数据进行CRC校验计算;
S6、CPU软核读取配置芯片的ID,检查FPGA芯片与配置芯片的连接状态;
S7、CPU软核将RAM模块内的单包数据通过QSPI协议写入配置芯片,CPU软核回读单包数据,并校验回读的单包数据与RAM模块内的单包数据的一致性;
若不一致,CPU软核置错误标志并停止配置文件固化,CPU软核将故障信息发送至上位机;
否则,继续进行配置文件的固化,新的单包数据直接覆盖RAM模块中的单包数据;
S8、CPU软核判断全部的单包数据是否写入完成;
若未完成,继续执行步骤S4;
若写入完成,上位机完成对所有发送的单包数据的CRC校验计算,并获得发送CRC校验码;CPU软核完成对所有接收的单包数据的CRC校验计算,并获得接收CRC校验码;
S9、上位机将发送CRC校验码发送至CPU软核,由CPU软核校验发送CRC校验码和接收CRC校验码是否一致;
若一致,FPGA芯片完成配置文件固化,由上位机输出配置文件固化结果;
若不一致,CPU软核置错误标志并停止配置文件固化,CPU软核将故障信息发送至上位机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310196893.0A CN116301936B (zh) | 2023-03-03 | 2023-03-03 | 一种fpga配置文件加速固化系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310196893.0A CN116301936B (zh) | 2023-03-03 | 2023-03-03 | 一种fpga配置文件加速固化系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116301936A CN116301936A (zh) | 2023-06-23 |
CN116301936B true CN116301936B (zh) | 2023-10-20 |
Family
ID=86816220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310196893.0A Active CN116301936B (zh) | 2023-03-03 | 2023-03-03 | 一种fpga配置文件加速固化系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116301936B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484214A (zh) * | 2014-12-30 | 2015-04-01 | 华中科技大学 | 一种sram型fpga的配置、刷新与程序上注一体化系统 |
CN104503813A (zh) * | 2015-01-19 | 2015-04-08 | 中国人民解放军国防科学技术大学 | 一种fpga远程加载大容量配置位流文件的方法 |
CN111638887A (zh) * | 2020-05-27 | 2020-09-08 | 重庆航天工业有限公司 | 一种用于fpga芯片的程序固化方法 |
CN113268263A (zh) * | 2021-06-10 | 2021-08-17 | 北京无线电测量研究所 | 一种fpga的回读刷新方法和系统 |
CN113268262A (zh) * | 2021-05-25 | 2021-08-17 | 中国科学院空天信息创新研究院 | 一种fpga远程更新配置方法、系统、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196729B (zh) * | 2018-11-30 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 应用程序更新方法、设备和装置及存储介质 |
-
2023
- 2023-03-03 CN CN202310196893.0A patent/CN116301936B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484214A (zh) * | 2014-12-30 | 2015-04-01 | 华中科技大学 | 一种sram型fpga的配置、刷新与程序上注一体化系统 |
CN104503813A (zh) * | 2015-01-19 | 2015-04-08 | 中国人民解放军国防科学技术大学 | 一种fpga远程加载大容量配置位流文件的方法 |
CN111638887A (zh) * | 2020-05-27 | 2020-09-08 | 重庆航天工业有限公司 | 一种用于fpga芯片的程序固化方法 |
CN113268262A (zh) * | 2021-05-25 | 2021-08-17 | 中国科学院空天信息创新研究院 | 一种fpga远程更新配置方法、系统、电子设备和存储介质 |
CN113268263A (zh) * | 2021-06-10 | 2021-08-17 | 北京无线电测量研究所 | 一种fpga的回读刷新方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116301936A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101504692B (zh) | 一种验证和测试片上系统的系统及方法 | |
US20040202015A1 (en) | SDIO card development system | |
CN107562504A (zh) | 一种dsp程序分段加载的串口实现方法 | |
CN102736938A (zh) | Fpga配置程序的烧写方法 | |
CN105653409B (zh) | 一种基于数据类型转换的硬件仿真器验证数据提取系统 | |
CN116301936B (zh) | 一种fpga配置文件加速固化系统及方法 | |
CN113270137A (zh) | 一种基于fpga嵌入式软核的ddr2测试方法 | |
CN116090378A (zh) | 基于UVM的PCIe转RapidIO桥接芯片验证平台 | |
CN102193860B (zh) | 微控制器在线调试电路及方法、微控制器 | |
CN112181444B (zh) | 一种基于1553b总线的dsp多核数据烧写方法 | |
CN112445508B (zh) | 一种基于can总线的arm应用程序在线升级的方法 | |
CN109870961A (zh) | 支持工作参数nfc传输的时间继电器及对应系统 | |
CN115794701A (zh) | 一种dma功能虚拟串口的bmc芯片及方法 | |
Szecówka et al. | USB receiver/transmitter for FPGA implementation | |
CN113867771A (zh) | 一种基于fpga的远程固件升级方法 | |
CN111782531A (zh) | 一种芯片的固件完整性检测方法及系统 | |
CN107729033B (zh) | 实现在线编程的嵌入式系统、编程器及方法 | |
KR20000060737A (ko) | 프로세서와 재설정가능 칩을 사용한 집적회로 에뮬레이터 | |
CN111506333A (zh) | 一种双dsp程序在线升级方法及系统 | |
CN111339020A (zh) | 一种串口数据的收发方法 | |
CN112445659B (zh) | 一种多协议高速serdes测试实现方法及系统 | |
CN116781679A (zh) | 嵌入式设备参数装订系统和装置 | |
CN220252843U (zh) | 一种电子保险丝操作逻辑的验证装置 | |
CN104731704A (zh) | Nand flash管理软件的测试方法 | |
JP6138666B2 (ja) | 車載用制御装置のロギングシステム |
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 |