CN111176911B - Novel high-speed FPGA auxiliary configuration system of large storage capacity - Google Patents
Novel high-speed FPGA auxiliary configuration system of large storage capacity Download PDFInfo
- Publication number
- CN111176911B CN111176911B CN201911129123.4A CN201911129123A CN111176911B CN 111176911 B CN111176911 B CN 111176911B CN 201911129123 A CN201911129123 A CN 201911129123A CN 111176911 B CN111176911 B CN 111176911B
- Authority
- CN
- China
- Prior art keywords
- module
- state
- configuration
- code stream
- main control
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
技术领域technical field
本发明涉及一种新型的大存储量高速FPGA辅助配置系统,属于集成电路技术领域。The invention relates to a novel large-storage high-speed FPGA auxiliary configuration system, which belongs to the technical field of integrated circuits.
背景技术Background technique
具有可编程能力的超大规模现场可编程门阵列(FPGA,Field Programmable GateArray)包含大量的可编程资源,并且这些可编程资源无法在一个测试码流中被同时使用。随着工艺的进步以及电路规模的大幅增加,测试码流文件也进一步增大。针对超大规模FPGA单个码流容量已达到数十兆比特,此外待测器件测试结构复杂度提升导致需要的码流文件个数大幅度增加,达到100~200个左右,所以在测试过程中,通常需要进行数百次配置才能够达到一定的故障覆盖率。目前配置较高的UltraFLEX以及V93000等设备的内存最高仅为128Mbyte,数百个bit的文件远远超过测试仪内存的容量,能力差距在20倍以上,因此码流配置无法直接通过测试仪进行。同时,对于量产测试而言,数百个测试向量需要在短时间内测试完成,而器件厂商提供的下载器配置速率最高只有12兆比特左右,完成一只电路的测试可能需要一个小时,这样的测试代价是不具备实际工程价值的。因此,短时间地完成大量测试配置是千万门级FPGA量产测试系统的一个挑战。解决该问题,既需要对测试向量的个数进行压缩,同时更重要的是利用器件的高速配置接口开发专用的配置辅助系统,加快单次配置的速度,使得整个测试系统具备实施量产测试的可行性。A very large-scale Field Programmable Gate Array (FPGA, Field Programmable Gate Array) with programmable capabilities includes a large number of programmable resources, and these programmable resources cannot be used simultaneously in one test code stream. With the progress of the technology and the substantial increase of the circuit scale, the test stream file is also further increased. For ultra-large-scale FPGAs, the capacity of a single code stream has reached tens of megabits. In addition, the increase in the complexity of the test structure of the device under test has led to a significant increase in the number of required code stream files, reaching about 100 to 200. Therefore, during the test process, usually Hundreds of configurations are required to achieve a certain fault coverage. At present, the maximum memory of UltraFLEX and V93000 devices with high configuration is only 128Mbyte, and the files of hundreds of bits far exceed the memory capacity of the tester, and the capacity gap is more than 20 times, so the stream configuration cannot be directly performed by the tester. At the same time, for mass production testing, hundreds of test vectors need to be tested in a short time, and the downloader configuration rate provided by the device manufacturer is only about 12 megabits, and it may take an hour to complete the test of a circuit. The cost of testing does not have actual engineering value. Therefore, completing a large number of test configurations in a short time is a challenge for the mass production test system of tens of millions of FPGAs. To solve this problem, it is necessary to compress the number of test vectors, and more importantly, to use the high-speed configuration interface of the device to develop a dedicated configuration auxiliary system to speed up the single configuration, so that the entire test system is capable of implementing mass production testing. feasibility.
发明内容Contents of the invention
本发明解决的技术问题是:克服现有技术的不足,提供了一种新型的大存储量高速FPGA辅助配置系统,该系统用于超大规模FPGA生产量产测试中,既解决了自动测试设备内存不足,无法存储大量FPGA测试码流的问题,又满足超大规模FPGA生产量产测试中对FPGA完成高速配置的需求。The technical problem solved by the present invention is to overcome the deficiencies of the prior art and provide a new large-storage high-speed FPGA auxiliary configuration system. Insufficient, the problem of being unable to store a large number of FPGA test code streams, and meeting the needs of high-speed configuration of FPGA in the mass production test of ultra-large-scale FPGA production.
本发明解决技术的方案是:一种新型的大存储量高速FPGA辅助配置系统,包括运行在上位机上的上位机烧写模块,以及码流存储器,主控FPGA模块,配置存储器模块,通信模块;The technical solution solution of the present invention is: a novel high-speed FPGA auxiliary configuration system with a large storage capacity, including a host computer programming module running on the host computer, and a code stream memory, a main control FPGA module, a configuration memory module, and a communication module;
所述的配置存储器模块中存储配置阶段主控FPGA模块的运行配置文件;配置存储器模块在每次系统上电时,将存储的运行配置文件发送至主控FPGA模块,主控FPGA模块根据所述的运行配置文件完成配置;The configuration memory module stores the operating configuration file of the main control FPGA module in the configuration stage; the configuration memory module sends the stored operating configuration file to the main control FPGA module when the system is powered on each time, and the main control FPGA module according to the described The running configuration file to complete the configuration;
在烧写阶段,从上位机将烧写阶段配置文件发送至主控FPGA模块,主控FPGA模块根据所述的烧写阶段配置文件完成烧写控制配置,所述上位机烧写模块将配置码流通过通信模块发送至主控FPGA模块,由主控FPGA模块将配置码流烧写至码流存储器,系统断电;In the programming phase, the configuration file of the programming phase is sent from the upper computer to the main control FPGA module, and the main control FPGA module completes the programming control configuration according to the configuration file of the programming phase, and the programming module of the upper computer sends the configuration code The stream is sent to the main control FPGA module through the communication module, and the main control FPGA module burns the configuration code stream to the code stream memory, and the system is powered off;
在配置阶段,系统上电,待主控FPGA模块运行配置文件完成配置后,接收外部发送的配置指令,从码流存储器中获取对应的配置码流,并将获取的配置码流通过通信模块发送至待测FPGA,完成待测FPGA的配置。In the configuration phase, the system is powered on, and after the main control FPGA module runs the configuration file to complete the configuration, it receives the configuration command sent from the outside, obtains the corresponding configuration code stream from the code stream memory, and sends the acquired configuration code stream through the communication module Go to the FPGA to be tested and complete the configuration of the FPGA to be tested.
优选的,还包括FPGA型号选择模块,通过该模块向主控FPGA模块发送不同的编码数据,主控FPGA模块根据编码数据确定待测FPGA的具体型号;码流存储器中烧写不同FPGA型号的配置码流;主控FPGA模块根据具体型号从码流存储器中获取对应的配置码流,用于配置。Preferably, also comprise FPGA model selection module, send different coded data to main control FPGA module by this module, main control FPGA module determines the specific model of FPGA to be tested according to coded data; Burn the configuration of different FPGA models in code stream memory Code stream; the main control FPGA module obtains the corresponding configuration code stream from the code stream memory according to the specific model for configuration.
优选的,在烧写阶段,配置码流烧写至码流存储器后,上位机烧写模块通过通信模块发送回读校验指令至主控FPGA模块,主控FPGA模块将码流存储器中的存储的配置码流数据读出,通过通信模块发送至上位机,由上位机与预先存储的码流进行校验,若校验合格,则完成烧写阶段,系统断电;否则,在当前主控FPGA模块的配置下,重新进行烧写操作,直至校验合格。Preferably, in the programming phase, after the configuration code stream is programmed into the code stream memory, the host computer programming module sends a read-back verification command to the main control FPGA module through the communication module, and the main control FPGA module stores the data in the code stream memory The configuration code stream data is read out, and sent to the host computer through the communication module, and the host computer checks with the pre-stored code stream. If the check is qualified, the programming stage is completed, and the system is powered off; Under the configuration of the FPGA module, perform the programming operation again until the verification is passed.
优选的,所述的码流存储器为FLASH存储器,由多片FLASH组成FLASH阵列,每片FLASH的数据信号和控制信号与主控FPGA模块的数据信号和控制信号连接,由主控FPGA模块完成每片FLASH的读、写以及擦除操作。Preferably, the code stream memory is a FLASH memory, a FLASH array is composed of multiple pieces of FLASH, and the data signal and control signal of each piece of FLASH are connected to the data signal and control signal of the main control FPGA module, and the main control FPGA module completes each Read, write and erase operations of the chip FLASH.
优选的,在烧写阶段,主控FPGA模块配置完成后,包括控制模块,FIFO模块,擦除模块,写模块,地址转换模块,通信控制模块;Preferably, in the programming stage, after the main control FPGA module is configured, it includes a control module, a FIFO module, an erase module, a write module, an address conversion module, and a communication control module;
所述的控制模块以状态机的方式实现待机状态、模式判断、握手、擦除、写状态的跳转;The control module realizes the jump of standby state, mode judgment, handshaking, erasing, and writing state in the form of a state machine;
FIFO模块用于对码流存储器进行写操作时进行数据缓冲;The FIFO module is used for data buffering when writing to the code stream memory;
地址转换模块,根据预先设置的配置码流存储地址,确定当前烧写的起始位置和结束位置;The address conversion module determines the start position and end position of the current programming according to the preset configuration code stream storage address;
擦除模块,写模块在状态机的控制下,分别对码流存储器进行擦除、写操作;在写操作过程中,从FIFO模块中将数据按照地址转换模块确定的起始、结束位置进行烧写。Under the control of the state machine, the erase module and the write module respectively perform erase and write operations on the code stream memory; during the write operation, the data is burned from the FIFO module according to the start and end positions determined by the address conversion module Write.
优选的,在烧写阶段,主控FPGA模块配置完成后,包括控制模块,FIFO模块,擦除模块,读模块、写模块,地址转换模块,通信控制模块;Preferably, in the programming phase, after the main control FPGA module is configured, it includes a control module, a FIFO module, an erasing module, a reading module, a writing module, an address conversion module, and a communication control module;
所述的控制模块以状态机的方式实现待机状态、模式判断、握手、擦除、读、写状态的跳转;The control module realizes the transition of standby state, mode judgment, handshaking, erasing, reading, and writing state by means of a state machine;
FIFO模块用于对码流存储器进行读写操作时进行数据缓冲;The FIFO module is used for data buffering when reading and writing the code stream memory;
地址转换模块,根据预先设置的配置码流存储地址,确定当前烧写的起始位置和结束位置;The address conversion module determines the start position and end position of the current programming according to the preset configuration code stream storage address;
擦除模块,读模块、写模块在状态机的控制下,分别对码流存储器进行擦除、写操作;在写操作过程中,从FIFO模块中将数据按照地址转换模块确定的起始、结束位置进行烧写,读操作过程用于码流校验。Under the control of the state machine, the erase module, the read module and the write module respectively perform erase and write operations on the code stream memory; during the write operation, the data is transferred from the FIFO module according to the start and end determined by the address conversion module The location is programmed, and the read operation process is used for code stream verification.
优选的,所述的擦除模块以状态机的方式实现待机状态、解锁指令状态、解锁指令确认状态、擦除指令状态、擦除指令确认状态、擦除时间等待状态的跳转;Preferably, the erasing module uses a state machine to realize jumps from standby state, unlock command state, unlock command confirmation state, erase command state, erase command confirmation state, and erase time waiting state;
当控制模块进入待机状态时,擦除模块同时进入待机状态;当控制模块进入擦除状态时,擦除模块由待机状态进入解锁指令状态,延迟预设的时间段后进入解锁指令确认状态,并对码流存储器进行解锁指令操作,操作完成后进入擦除指令状态,延迟预设的时间段后进入擦除指令确认状态,并对码流存储器进行擦除指令操作,进入擦除时间等待状态,时间等待完成后返回待机状态。When the control module enters the standby state, the erasing module enters the standby state at the same time; when the control module enters the erasing state, the erasing module enters the unlock command state from the standby state, and enters the unlock command confirmation state after a delay of a preset period of time, and Perform an unlock command operation on the code stream memory, enter the erase command state after the operation is completed, enter the erase command confirmation state after a preset period of time delay, and perform an erase command operation on the code stream memory to enter the erase time waiting state, Return to standby after the time wait is complete.
优选的,所述的写模块通过状态机的方式实现待机状态、写准备状态、写操作状态的跳转;Preferably, the writing module realizes the transition from standby state, write preparation state, and write operation state through a state machine;
当控制模块进入待机状态时,写模块同时处于待机状态;当控制模块进入写状态时,写模块进入写准备状态,对码流存储器进行写准备操作;完成该操作后进入写操作状态,根据上位机发出的指令,接收通信模块的配置码流数据,写入码流存储器的指定区域,完成操作后,跳回待机状态。When the control module enters the standby state, the write module is in the standby state at the same time; when the control module enters the write state, the write module enters the write preparation state and performs write preparation operations on the code stream memory; after completing this operation, it enters the write operation state, according to the upper Receive the configuration code stream data from the communication module, write it into the specified area of the code stream memory, and jump back to the standby state after completing the operation.
优选的,所述的读模块通过状态机的方式实现待机状态、读准备状态、读数据状态;Preferably, the read module implements the standby state, read ready state, and read data state through a state machine;
当控制模块进入待机状态时,读模块同时处于待机状态;当控制模块进入读状态时,读模块进入读准备状态,对码流存储器进行读准备操作;完成该操作后进入读数据状态,根据地址转换模块提供的地址,读取指定区域的码流数据,完成操作后,跳回待机状态。When the control module enters the standby state, the reading module is in the standby state at the same time; when the control module enters the reading state, the reading module enters the read preparation state, and performs the read preparation operation on the code stream memory; after completing this operation, it enters the read data state, according to the address Convert the address provided by the module, read the code stream data in the specified area, and jump back to the standby state after completing the operation.
优选的,在配置阶段,主控FPGA模块配置完成后,包括控制模块,FIFO模块,读模块,地址转换模块,码流输出模块;Preferably, in the configuration stage, after the main control FPGA module is configured, it includes a control module, a FIFO module, a reading module, an address conversion module, and a stream output module;
所述的控制模块以状态机的方式实现待机状态、握手、地址判断、地址转换、读状态、码流输出状态的跳转,通过状态的跳转控制对应的模块;The control module realizes the jump of standby state, handshake, address judgment, address conversion, read state, and code stream output state in the form of a state machine, and controls the corresponding module through the state jump;
FIFO模块用于对码流存储器进行读操作时进行数据缓冲;The FIFO module is used for data buffering when reading the code stream memory;
地址转换模块,根据接收的外部测试仪发送的地址进行地址判断,确定当前需要读出的码流序号,根据码流序号确定当前读模块读操作的起始位置和结束位置;The address conversion module judges the address according to the address sent by the received external tester, determines the serial number of the code stream that needs to be read out at present, and determines the start position and end position of the read operation of the current reading module according to the serial number of the code stream;
读模块根据所述的起始位置和结束位置从码流存储器中读取对应的码流;The reading module reads the corresponding code stream from the code stream memory according to the start position and the end position;
码流输出模块将读取的码流输出至通信模块。The code stream output module outputs the read code stream to the communication module.
本发明与现有技术相比的有益效果是:The beneficial effect of the present invention compared with prior art is:
(1)本发明系统能够用于超大规模FPGA生产量产测试中,既解决了自动测试设备内存不足,无法存储大量FPGA测试码流的问题,又满足超大规模FPGA生产量产测试中对FPGA完成高速配置的需求。(1) The system of the present invention can be used in the mass production test of ultra-large-scale FPGA production, which not only solves the problem that the automatic test equipment has insufficient memory and cannot store a large amount of FPGA test code streams, but also satisfies the need for FPGA completion in the mass production test of ultra-large-scale FPGA production. High-speed configuration needs.
(2)与传统的自动测试设备的内存相比,采用本发明的大容量FLASH存储器,可以存储大量测试码流,满足超大规模FPGA生产量产测试;(2) Compared with the internal memory of traditional automatic test equipment, the large-capacity FLASH memory of the present invention can be used to store a large number of test code streams to meet the mass production test of ultra-large-scale FPGA production;
(3)与传统采用JTAG配置模式,最高配置速率仅为6兆比特相比,本发明采用SelectMap配置模式,配置时钟为30兆赫兹,采用8位配置数据宽度,配置速率达到240兆比特,提高了FPGA的配置效率;(3) adopt JTAG configuration mode with tradition, the highest configuration rate is only compared with 6 megabits, the present invention adopts SelectMap configuration mode, configuration clock is 30 megahertz, adopts 8 configuration data widths, configuration rate reaches 240 megabits, improves Improve the configuration efficiency of FPGA;
(4)本发明烧写FLASH和配置FPGA两个阶段完全独立,并且配有FPGA型号选择功能,具有很强的灵活性和通用性,可以大大提高FPGA量产的测试效率。(4) The two stages of programming FLASH and configuring FPGA in the present invention are completely independent, and are equipped with an FPGA model selection function, which has strong flexibility and versatility, and can greatly improve the test efficiency of FPGA mass production.
(5)本发明设计有FPGA型号选择模块,使得本发明可以完成多种型号FPGA的配置功能,增加了辅助配置系统的普适性和通用性。(5) The present invention is designed with an FPGA model selection module, so that the present invention can complete the configuration functions of various types of FPGAs, increasing the universality and versatility of the auxiliary configuration system.
(6)本发明设计的读写模块状态机中增加了读、写准备操作,使得存储器读写操作时序更加清晰,增加了整个辅助配置系统的稳定性。(6) Read and write preparation operations are added to the state machine of the read-write module designed by the present invention, which makes the sequence of memory read-write operations clearer and increases the stability of the entire auxiliary configuration system.
(7)本发明擦除模块的状态机中解锁指令状态、擦除指令状态和擦出时间等待状态中均有预设足够的延迟时间,使存储器有足够的时间确认指令并响应指令,增加了辅助配置系统的稳定性。(7) In the state machine of the erasing module of the present invention, there is a preset sufficient delay time in the unlocking command state, the erasing command state and the erasing time waiting state, so that the memory has enough time to confirm the command and respond to the command, increasing the Auxiliary configuration system stability.
附图说明Description of drawings
图1为本发明辅助配置系统在烧写阶段的模块详图;Fig. 1 is the detailed diagram of the modules of the auxiliary configuration system of the present invention in the programming stage;
图2为本发明辅助配置系统在烧写阶段主控FPGA模块的模块详图;Fig. 2 is the detailed module diagram of the main control FPGA module of the auxiliary configuration system of the present invention in the programming stage;
图3为本发明辅助配置系统在烧写阶段主控FPGA模块中控制模块状态转移图;Fig. 3 is the state transfer diagram of the control module in the main control FPGA module of the auxiliary configuration system of the present invention in the programming stage;
图4为本发明辅助配置系统主控FPGA模块中FIFO模块状态转移图;Fig. 4 is the FIFO module state transfer diagram in the main control FPGA module of the auxiliary configuration system of the present invention;
图5为本发明辅助配置系统在烧写阶段主控FPGA模块中FLASH擦除模块状态转移图;Fig. 5 is a state transition diagram of the FLASH erasing module in the main control FPGA module of the auxiliary configuration system of the present invention in the programming stage;
图6为本发明辅助配置系统主控FPGA模块中FLASH读模块状态转移图;Fig. 6 is a state transition diagram of the FLASH reading module in the main control FPGA module of the auxiliary configuration system of the present invention;
图7为本发明辅助配置系统在烧写阶段主控FPGA模块中FLASH写模块状态转移图;Fig. 7 is a state transition diagram of the FLASH writing module in the main control FPGA module of the auxiliary configuration system of the present invention in the programming stage;
图8为本发明辅助配置系统在烧写阶段主控FPGA模块中地址转换模块状态转移图;Fig. 8 is the state transfer diagram of the address conversion module in the main control FPGA module of the auxiliary configuration system of the present invention in the programming stage;
图9为本发明辅助配置系统在烧写阶段主控FPGA模块中通信控制模块状态转移图;Fig. 9 is a state transition diagram of the communication control module in the main control FPGA module of the auxiliary configuration system of the present invention in the programming stage;
图10为本发明辅助配置系统在配置阶段的模块详图;Fig. 10 is a detailed diagram of modules of the auxiliary configuration system of the present invention in the configuration phase;
图11为本发明辅助配置系统在配置阶段主控FPGA模块的模块详图;Fig. 11 is the detailed module diagram of the main control FPGA module of the auxiliary configuration system of the present invention in the configuration stage;
图12为本发明辅助配置系统在配置阶段主控FPGA模块中控制模块状态转移图;Fig. 12 is a state transition diagram of the control module in the main control FPGA module of the auxiliary configuration system of the present invention in the configuration stage;
图13为本发明辅助配置系统在配置阶段主控FPGA模块中地址转换模块状态转移图;13 is a state transition diagram of the address conversion module in the main control FPGA module of the auxiliary configuration system of the present invention in the configuration stage;
图14为本发明辅助配置系统在配置阶段主控FPGA模块中配置输出模块状态转移图。Fig. 14 is a state transition diagram of the configuration output module in the main control FPGA module of the auxiliary configuration system of the present invention in the configuration phase.
具体实施方式Detailed ways
下面结合实施例对本发明作进一步阐述。The present invention will be further elaborated below in conjunction with embodiment.
一种新型的大存储量高速FPGA辅助配置系统,包括运行在上位机上的上位机烧写模块205,以及码流存储器201,主控FPGA模块202,配置存储器模块208,通信模块204;码流存储器201,主控FPGA模块202,配置存储器模块208,通信模块可以制作在一块电路板上,当然也可根据实际需要采用其他不同的形式。配置存储器模块用于存储配置阶段主控FPGA模块的运行配置文件;配置存储器模块在每次系统上电时,都会将存储的运行配置文件发送至主控FPGA模块,主控FPGA模块根据所述的运行配置文件完成配置;A new large-storage high-speed FPGA auxiliary configuration system, including a host computer programming module 205 running on the host computer, a code stream memory 201, a main control FPGA module 202, a configuration memory module 208, and a communication module 204; code stream memory 201, the main control FPGA module 202, the configuration memory module 208, and the communication module can be made on one circuit board, and of course other different forms can also be adopted according to actual needs. The configuration memory module is used to store the running configuration file of the main control FPGA module in the configuration phase; the configuration memory module will send the stored running configuration file to the main control FPGA module every time the system is powered on, and the main control FPGA module will Run the configuration file to complete the configuration;
在烧写阶段,从上位机将烧写阶段配置文件发送至主控FPGA模块202,主控FPGA模块202根据所述的烧写阶段配置文件完成烧写控制配置,上位机烧写模块205将配置码流通过通信模块发送至主控FPGA模块,由主控FPGA模块202将配置码流烧写至码流存储器201,系统断电;图1为本发明辅助配置系统在烧写阶段的模块详图,其中通信模块204由上位机通信模块206和测试接口模块207组成。该烧写阶段,可以通过额外配置一个FPGA型号选择模块203,向主控FPGA模块发送不同的编码数据,主控FPGA模块根据编码数据确定待测FPGA的具体型号;码流存储器中烧写不同FPGA型号的配置码流;主控FPGA模块根据具体型号从码流存储器中获取对应的配置码流,用于配置。In the programming stage, the programming stage configuration file is sent from the upper computer to the main control FPGA module 202, and the main control FPGA module 202 completes the programming control configuration according to the configuration file of the programming stage, and the upper computer programming module 205 will configure The code stream is sent to the main control FPGA module through the communication module, and the configuration code stream is programmed into the code stream memory 201 by the main control FPGA module 202, and the system is powered off; FIG. 1 is a detailed module diagram of the auxiliary configuration system of the present invention in the programming stage , wherein the communication module 204 is composed of a host computer communication module 206 and a test interface module 207 . In this programming phase, an additional FPGA model selection module 203 can be configured to send different encoded data to the main control FPGA module, and the main control FPGA module determines the specific model of the FPGA to be tested according to the encoded data; The configuration code stream of the model; the main control FPGA module obtains the corresponding configuration code stream from the code stream memory according to the specific model for configuration.
在烧写阶段,码流存储器201,FPGA型号选择模块203和上位机通信模块206分别与主控FPGA模块202连接并进行数据交互。上位机烧写模块205通过上位机通信模块206与主控FPGA模块202连接。In the programming stage, the code stream memory 201, the FPGA model selection module 203 and the upper computer communication module 206 are respectively connected with the main control FPGA module 202 and perform data interaction. The host computer programming module 205 is connected with the main control FPGA module 202 through the host computer communication module 206 .
码流存储模块201主要由FLASH阵列构成,每片FLASH的控制信号与数据信号均和主控FPGA模块202连接,这些信号包括:数据信号端DATA[31:0]、地址信号端ADDR[26:0]、时钟信号CLK、片选信号端CE、输出使能信号端OE、写使能信号端WE。FPGA型号选择模块203通过4位信号与FPGA相连,分别为:M3、M2、M1、M0;上位机通信模块206通过数据信号DATA[7:0]、片选信号端CE、输出使能信号端OE、写使能信号端WR、读使能信号端RD与主控FPGA模块202连接,通过TX、RX信号与上位机烧写模块205连接。The code stream storage module 201 is mainly composed of a FLASH array, and the control signals and data signals of each piece of FLASH are connected to the main control FPGA module 202. These signals include: data signal terminal DATA[31:0], address signal terminal ADDR[26: 0], clock signal CLK, chip select signal terminal CE, output enable signal terminal OE, and write enable signal terminal WE. The FPGA model selection module 203 is connected to the FPGA through 4-bit signals, namely: M3, M2, M1, and M0; the upper computer communication module 206 uses the data signal DATA[7:0], the chip selection signal terminal CE, and the output enable signal terminal OE, the write enable signal terminal WR, and the read enable signal terminal RD are connected to the main control FPGA module 202 , and connected to the programming module 205 of the host computer through TX and RX signals.
本发明分模块设计,以码流存储模块201为核心存储模块。由FLASH阵列构成,用于存储测试FPGA的配置码流。The present invention is divided into modules, and the code stream storage module 201 is used as the core storage module. Consists of a FLASH array and is used to store the configuration code stream of the test FPGA.
在烧写阶段,如图2所示,所述主控FPGA模块202包括控制模块301,FIFO模块302,擦除模块303,读模块304,写模块305,地址转换模块306,通信控制模块307。In the programming stage, as shown in FIG. 2 , the main control FPGA module 202 includes a control module 301, a FIFO module 302, an erase module 303, a read module 304, a write module 305, an address conversion module 306, and a communication control module 307.
在系统上电进入工作状态后,如图3所示,控制模块301会进入状态401;进入状态401之后,在上位机烧写模块205提供的控制信号作用下进入状态402;在烧写模式下,工作步骤依次为:状态401、状态402、状态403、状态404、状态405、状态406。After the system is powered on and enters the working state, as shown in Figure 3, the control module 301 will enter the state 401; after entering the state 401, it will enter the state 402 under the action of the control signal provided by the host computer programming module 205; in the programming mode , the working steps are: state 401, state 402, state 403, state 404, state 405, state 406.
其中,状态401为进入工作后的待机状态,等待上位机烧写模块205的指令;状态402为模式判断状态,根据来自上位机烧写模块205的命令,选择进入状态401、状态403、状态404、状态405、状态406其中的一个状态;状态403为握手状态,当接收来自上位机烧写模块205的指令要求进入状态403后,主控FPGA模块202根据FPGA型号选择模块203的编码数据,发送当前编码数据指定FPGA型号,与上位机烧写模块205实现握手,然后进入状态401;状态404为FLASH擦除状态,当接收来自上位机烧写模块205的指令要求进入状态404后,主控FPGA模块202根据上位机烧写模块205的指令数据,对指定的FLASH区域进行擦除操作,擦除完成后,将完成状态反馈给上位机烧写模块205,然后进入状态401;状态405为FLASH读状态,当接收来自上位机烧写模块205的指令要求进入状态405后,主控FPGA模块202根据上位机烧写模块205的指令数据,对指定的FLASH区域进行读操作,并将读取的数据上传至上位机烧写模块205,待完成指定区域的数据读取工作后,将完成状态反馈给上位机烧写模块205,然后进入状态401;状态406为FLASH写状态,当接收来自上位机烧写模块205的指令要求进入状态406后,主控FPGA模块202根据上位机烧写模块205的指令数据,对指定的FLASH区域进行写操作,通过接受来自上位机烧写模块205的码流数据,将数据写到FLASH的指定区域,完成写操作后,将完成状态反馈给上位机烧写模块205,然后进入状态401。Among them, the state 401 is the standby state after entering the work, waiting for the instruction of the host computer programming module 205; the state 402 is the mode judgment state, according to the command from the host computer programming module 205, choose to enter the state 401, state 403, and state 404 , state 405, state 406 one of the states; state 403 is the handshake state, when receiving the instruction from the host computer programming module 205 to enter the state 403, the main control FPGA module 202 selects the encoded data of the module 203 according to the FPGA model, and sends The current coded data specifies the FPGA model, shakes hands with the upper computer programming module 205, and then enters the state 401; the state 404 is the FLASH erasing state. Module 202 performs an erase operation on the designated FLASH area according to the instruction data of host computer programming module 205. After the erasing is completed, the completion status is fed back to host computer programming module 205, and then enters state 401; state 405 is FLASH read State, after receiving the command request from the host computer programming module 205 to enter the state 405, the main control FPGA module 202 reads the specified FLASH area according to the instruction data of the host computer programming module 205, and reads the read data Upload to the host computer programming module 205, after completing the data reading work in the specified area, the completion status will be fed back to the host computer programming module 205, and then enter the state 401; the state 406 is the FLASH writing state, when receiving from the host computer After the command request of the write module 205 enters the state 406, the main control FPGA module 202 performs a write operation on the specified FLASH area according to the instruction data of the host computer programming module 205, and accepts the code stream data from the host computer programming module 205, Write the data to the specified area of FLASH, and after the writing operation is completed, the completion status is fed back to the programming module 205 of the host computer, and then enters the state 401 .
FIFO模块302是控制模块301对码流存储器进行读写操作时的数据缓冲模块,起到缓冲数据和异步读取的作用。如图4所示,分为待机状态407,复位FIFO状态408,写操作状态409,读操作状态410,具体工作步骤依次为:状态407、状态408、状态409、状态410。The FIFO module 302 is a data buffer module when the control module 301 reads and writes the code stream memory, and plays the role of buffering data and asynchronous reading. As shown in Figure 4, it is divided into standby state 407, reset FIFO state 408, write operation state 409, and read operation state 410. The specific working steps are: state 407, state 408, state 409, and state 410.
其中,状态407为待机状态,当控制模块301进入待机状态时,FIFO模块302同时进入待机状态;状态408为复位FIFO状态,当FIFO模块离开待机状态407后,进入复位FIFO状态,对FIFO进行复位,以备读写操作;状态409为写操作状态,当控制模块301执行状态405时,从码流存储器中读取的数据会先写入FIFO模块中;当控制模块301执行状态406时,从上位机烧写模块205接收的数据先写入FIFO模块中;状态410为读操作状态,当控制模块301执行状态405时,从FIFO模块中读取数据上传至上位机烧写模块205;当控制模块301执行状态406时,从FIFO模块中读取数据写入FLASH中。Wherein, state 407 is standby state, and when control module 301 enters standby state, FIFO module 302 enters standby state simultaneously; State 408 is reset FIFO state, after FIFO module leaves standby state 407, enters reset FIFO state, resets FIFO , in preparation for read and write operations; state 409 is a write operation state, when the control module 301 executes state 405, the data read from the code stream memory will first be written into the FIFO module; when the control module 301 executes state 406, from The data received by the upper computer programming module 205 is first written into the FIFO module; the state 410 is a read operation state, and when the control module 301 executes the state 405, the data read from the FIFO module is uploaded to the upper computer programming module 205; When module 301 executes state 406, data is read from the FIFO module and written into FLASH.
擦除模块303是控制模块301对码流存储器进行块擦除操作时调用模块,如图5所示,分为待机状态411、解锁指令状态412、解锁指令确认状态413、擦除指令状态414、擦出指令确认状态415、擦除时间等待状态416,工作步骤为状态411、状态412、状态413、状态414、状态415、状态416。The erasing module 303 is a module called when the control module 301 performs a block erasing operation on the code stream memory. As shown in FIG. Erase instruction confirmation state 415 , erasure time waiting state 416 , the working steps are state 411 , state 412 , state 413 , state 414 , state 415 , and state 416 .
其中,状态411为待机状态,当控制模块301进入待机状态时,擦除模块同时进入待机状态;状态412为解锁指令状态,当控制模块301进入状态404时,擦除模块由状态411进入状态412,对指定FLASH进行解锁指令操作;状态413为解锁指令确认状态,完成状态412后,进入状态413,对指定FLASH进行解锁指令确认操作,完成擦除FLASH的准备工作;状态414为擦除指令状态,完成状态413后,进入状态414,对指定区域的FLASH进行块擦除指令操作;状态415为擦除指令确认状态,完成状态414后,进入状态415,对指定区域的FLASH进行块擦除指令确认操作,完成后,FLASH开始对指定区域进行擦除;状态416为擦除时间等待状态,完成状态415后,进入状态416,由于FLASH块擦除需要一定的时间,状态416设定了一个block的擦除等待时间,计时完成后,跳回状态411。Wherein, the state 411 is the standby state, when the control module 301 enters the standby state, the erasing module enters the standby state simultaneously; the state 412 is the unlock command state, when the control module 301 enters the state 404, the erasing module enters the state 412 from the state 411 , perform an unlock command operation on the specified FLASH; state 413 is the unlock command confirmation state, after completing state 412, enter state 413, perform an unlock command confirmation operation on the specified FLASH, and complete the preparation for erasing the FLASH; state 414 is the erase command state , after completing state 413, enter state 414, perform block erase command operation on the FLASH in the specified area; state 415 is the erase command confirmation state, after completing state 414, enter state 415, perform block erase command on the FLASH in the specified area Confirm the operation, after completion, FLASH starts to erase the designated area; state 416 is the erasing time waiting state, after completing state 415, enter state 416, because the FLASH block erase needs certain time, state 416 has set a block After the erasing waiting time is completed, jump back to state 411.
读模块304是控制模块301进入状态405,对FLASH进行读操作时调用的模块,如图6所示,分为待机状态417、读准备状态418、读数据状态419,工作步骤为:状态417、状态418、状态419。The reading module 304 is the module that the control module 301 enters the state 405 and calls when the FLASH is read. As shown in FIG. State 418, State 419.
其中,状态417是待机状态,当控制模块301进入待机状态时,读模块同时处于待机状态;状态418是读准备状态,当控制模块301进入状态405时,读模块进入读准备状态,对FLASH相关使能引脚进行读准备操作;状态419是读操作状态,完成状态418后,进入状态419,根据地址转换模块提供的地址,读取指定区域的FLASH数据,完成操作后,跳回状态417。Wherein, state 417 is standby state, and when control module 301 enters standby state, reading module is in standby state simultaneously; Enable the pin to perform the read preparation operation; state 419 is the read operation state, after completing state 418, enter state 419, read the FLASH data in the specified area according to the address provided by the address conversion module, and jump back to state 417 after completing the operation.
写模块305是控制模块301进入状态406,对FLASH进行写操作时调用的模块,如图7所示,分为待机状态420、写准备状态421、写操作状态422,工作步骤为:状态420、状态421、状态422。Write module 305 is the module that control module 301 enters state 406, calls when FLASH is written, as shown in Figure 7, is divided into standby state 420, write ready state 421, write operation state 422, working steps are: State 421, State 422.
其中,状态420是待机状态,当控制模块301进入待机状态时,写模块同时处于待机状态;状态421是写准备状态,当控制模块301进入状态406时,写模块进入写准备状态,对FLASH相关使能引脚进行写准备操作;状态422是写操作状态,完成状态421后,进入状态422,根据上位机烧写模块205的指令,接收上位机烧写模块205的码流数据,写入FLASH的指定区域,完成操作后,跳回状态420。Wherein, state 420 is standby state, when control module 301 enters standby state, write module is in standby state simultaneously; State 421 is write preparation state, when control module 301 enters state 406, write module enters write preparation state, relevant to FLASH Enable the pin for write preparation operation; state 422 is the write operation state, after completing state 421, enter state 422, according to the instruction of the host computer programming module 205, receive the code stream data of the host computer programming module 205, and write it into FLASH After completing the operation, jump back to state 420.
地址转换模块306是控制模块301在状态404、状态405、状态406下,根据上位机烧写模块205发送的指令数据中的指定FPGA型号的码流及其序号,在码流存储器中划分地址区域,便于码流数据的写入和读取。如图8所示,分为待机状态423、地址转换等待状态424、FLASH模式判断状态425、码流序号判断状态426。工作步骤分为:状态423、状态424、状态425、状态426;The address conversion module 306 is that the control module 301 divides the address area in the code stream memory according to the code stream and its serial number of the specified FPGA model in the instruction data sent by the host computer programming module 205 under the state 404, state 405, and state 406 , to facilitate the writing and reading of stream data. As shown in FIG. 8 , it is divided into a standby state 423 , an address conversion waiting state 424 , a FLASH mode judging state 425 , and a stream number judging state 426 . The working steps are divided into: state 423, state 424, state 425, state 426;
其中,状态423是地址转换模块的待机状态,当控制模块301进入待机状态时,地址转换模块同时进入待机状态;状态424是地址转换等待状态,当控制模块301进入状态403握手成功后,地址转换模块等待接收开始使能信号,准备跳转到下一状态;状态425是FLASH模式判断状态,完成状态424后,地址转换模块接收控制模块的指令,通过当前指令判断进入以下三种模式:FLASH擦除模式、FLASH读模式、FLASH写模式其中的一种;状态426是码流序号判断状态,完成状态425后,根据控制模块的指令中的码流序号,分配指定的FLASH区域,提供给FLASH擦除模块、FLASH读模块、FLASH写模块,对指定区域进行相应的操作,完成操作后,跳回状态423。Wherein, state 423 is the standby state of address translation module, when control module 301 enters standby state, address translation module enters standby state simultaneously; The module waits to receive the start enable signal, and is ready to jump to the next state; state 425 is the judgment state of FLASH mode. After completing state 424, the address conversion module receives the instruction of the control module, and enters the following three modes through the judgment of the current instruction: FLASH erase One of the delete mode, FLASH read mode, and FLASH write mode; state 426 is the code stream sequence number judgment state, after completing state 425, according to the code stream sequence number in the command of the control module, the designated FLASH area is allocated and provided to the FLASH eraser The delete module, the FLASH read module, and the FLASH write module perform corresponding operations on the specified area, and jump back to state 423 after the operation is completed.
通信控制模块307是主控FPGA模块202实现与上位机通信模块206数据交互的模块,根据上位机通信模块206相应管脚的状态,对上位机通信模块206进行读或写操作;如图9所示,分为待机状态427、模式判断状态428、读模式状态429、写模式状态430;工作步骤为状态427、状态428、状态429或状态430。The communication control module 307 is a module for the main control FPGA module 202 to realize data interaction with the upper computer communication module 206, and read or write the upper computer communication module 206 according to the status of the corresponding pins of the upper computer communication module 206; as shown in Figure 9 It is divided into standby state 427, mode judgment state 428, read mode state 429, and write mode state 430; the working steps are state 427, state 428, state 429 or state 430.
其中,状态427是待机状态,当控制模块301进入待机状态时,通信控制模块307同时进入待机状态;状态428是模式判断状态,当控制模块301跳出待机状态后,通信控制模块307同时跳出待机状态,根据上位机通信模块206相应管脚的电平状态,判断进行以下两种模式:读模式、写模式其中的一种;状态429是读模式状态,完成状态428后,判断符合读模式条件,通信控制模块307进入读模式状态,读取上位机通信模块206输出的有效数据,传送至控制模块301,供控制模块301解析指令,完成操作后,跳回状态427;状态430是写模式状态,完成状态428后,判断符合写模式条件,通信控制模块307进入写模式状态,接收来自控制模块301的数据,传送至上位机通信模块206的相应管脚,完成操作后,跳回状态427。Wherein, state 427 is standby state, when control module 301 enters standby state, communication control module 307 enters standby state simultaneously; State 428 is mode judgment state, after control module 301 jumps out of standby state, communication control module 307 jumps out of standby state simultaneously According to the level state of the corresponding pin of the upper computer communication module 206, it is judged to perform the following two modes: one of the read mode and the write mode; the state 429 is the state of the read mode, and after the completion of the state 428, it is judged that the read mode condition is met, The communication control module 307 enters the read mode state, reads the valid data output by the upper computer communication module 206, and transmits it to the control module 301 for the control module 301 to analyze the instruction. After completing the operation, jump back to the state 427; the state 430 is the write mode state, After completing state 428, it is determined that the write mode condition is met, and the communication control module 307 enters the write mode state, receives data from the control module 301, and transmits it to the corresponding pin of the upper computer communication module 206, and jumps back to state 427 after completing the operation.
FPGA型号选择模块203通过不同的编码数据为主控FPGA模块提供待测FPGA的具体型号,通过调整FPGA型号选择模块203的编码值,可以使用同一个辅助配置系统进行不同型号FPGA的量产测试,增加了辅助配置系统的通用性。The FPGA model selection module 203 provides the specific model of the FPGA to be tested for the main control FPGA module through different coded data, and by adjusting the code value of the FPGA model selection module 203, the same auxiliary configuration system can be used to carry out mass production tests of different types of FPGAs, Increased versatility of the auxiliary configuration system.
通信模块204由上位机通信模块206和测试接口模块207组成。在烧写阶段,上位机通信模块206主要完成上位机烧写模块205和主控FPGA模块202的通信。上位机通信模块206通过USB接口与上位机烧写模块205连接,通过数据信号、控制信号实现与主控FPGA模块202的通信。The communication module 204 is composed of a host computer communication module 206 and a test interface module 207 . In the programming phase, the upper computer communication module 206 mainly completes the communication between the upper computer programming module 205 and the main control FPGA module 202 . The upper computer communication module 206 is connected with the upper computer programming module 205 through a USB interface, and realizes communication with the main control FPGA module 202 through data signals and control signals.
上位机烧写模块205主要完成配置和回读校验。上位机烧写模块205通过上位机通信模块206实现与主控FPGA模块202之间数据和控制信号的交互。在配置码流时由上位机发送时钟、配置码流数据和控制指令,通过上位机通信模块206连接主控FPGA模块202,完成配置码流烧写至码流存储器的操作。在码流校验时,由上位机烧写模块205通过上位机通信模块206发送回读校验指令至主控FPGA模块202,主控FPGA模块202将码流存储器中存储的配置码流数据读出,通过主控FPGA模块202和上位机通信模块206发送至上位机,与上位机中预先存储的码流进行校验。The host computer programming module 205 mainly completes configuration and readback verification. The host computer programming module 205 realizes the interaction of data and control signals with the main control FPGA module 202 through the host computer communication module 206 . When configuring the code stream, the upper computer sends the clock, configures the code stream data and control instructions, and connects the main control FPGA module 202 through the upper computer communication module 206 to complete the operation of programming the configured code stream to the code stream memory. During code stream verification, the host computer programming module 205 sends a read-back verification instruction to the main control FPGA module 202 through the host computer communication module 206, and the main control FPGA module 202 reads the configuration code stream data stored in the code stream memory. sent to the host computer through the main control FPGA module 202 and the host computer communication module 206, and checked with the pre-stored code stream in the host computer.
图10为本发明辅助配置系统在配置阶段的模块详图,在配置阶段,辅助配置系统主要由码流存储器201,主控FPGA模块202,FPGA型号选择模块203,通信模块204,配置存储器模块208组成;其中,通信模块204由上位机通信模块206和测试接口模块207组成。FIG. 10 is a detailed module diagram of the auxiliary configuration system of the present invention in the configuration stage. In the configuration stage, the auxiliary configuration system mainly consists of a code stream memory 201, a main control FPGA module 202, an FPGA model selection module 203, a communication module 204, and a configuration memory module 208. Composition; wherein, the communication module 204 is composed of the upper computer communication module 206 and the test interface module 207.
码流存储器201,配置存储器模块208,通信模块204和FPGA型号选择模块203分别与主控FPGA模块202连接并进行数据交互。在配置待测FPGA时,由自动测试仪发送地址信号和控制信号,主控FPGA模块202接收到地址信号和控制信号后从码流存储器模块201中读取配置码流,烧写至待测FPGA中。在配置阶段,FPGA型号选择模块203通过不同的编码数据为主控FPGA模块202提供待测FPGA的具体型号。The code stream memory 201, the configuration memory module 208, the communication module 204 and the FPGA model selection module 203 are respectively connected with the main control FPGA module 202 and perform data interaction. When configuring the FPGA to be tested, the automatic tester sends an address signal and a control signal, and the main control FPGA module 202 reads the configuration code stream from the code stream memory module 201 after receiving the address signal and the control signal, and burns it into the FPGA to be tested middle. In the configuration stage, the FPGA model selection module 203 provides the master FPGA module 202 with a specific model of the FPGA to be tested through different coded data.
在配置阶段,所述主控FPGA模块202包括控制模块501,FIFO模块502,读模块503,地址转换模块504,配置输出模块505;In the configuration phase, the main control FPGA module 202 includes a control module 501, a FIFO module 502, a reading module 503, an address conversion module 504, and a configuration output module 505;
如图11所示,在系统上电进入工作状态后,控制模块501会进入待机状态601;进入状态601之后,在自动测试仪提供的控制信号作用下进入握手状态602;在配置模式下,如图12所示,工作步骤依次为:状态601、状态602、状态603、状态604、状态605、状态606.As shown in Figure 11, after the system is powered on and enters the working state, the control module 501 will enter the standby state 601; after entering the state 601, it will enter the handshake state 602 under the control signal provided by the automatic tester; in the configuration mode, as As shown in Figure 12, the working steps are: state 601, state 602, state 603, state 604, state 605, state 606.
其中,状态601为系统上电进入工作状态后的待机状态;状态602为握手状态,控制模块501根据测试接口模块207的相应管脚电平状态,实现握手状态;状态603为地址判断状态,完成状态602后,控制模块501根据测试接口模块207的相应管脚电平状态,计算当前需要读出的码流的序号;状态604为地址转换状态,完成状态603后,根据码流序号,控制模块501通过地址转换模块得到相应的地址信息;状态605为FLASH读模式状态,控制模式501根据地址信息,读取相应区域的FLASH数据;状态606为配置输出状态,本发明中采用SelectMAP的配置方式,通过读取的数据,经过配置输出模块506将码流数据传送至测试接口模块207,直至待测FPGA,完成操作后,跳回状态601。Among them, the state 601 is the standby state after the system is powered on and enters the working state; the state 602 is the handshake state, and the control module 501 realizes the handshake state according to the corresponding pin level state of the test interface module 207; the state 603 is the address judgment state, complete After the state 602, the control module 501 calculates the sequence number of the code stream that needs to be read out according to the corresponding pin level state of the test interface module 207; the state 604 is the address conversion state, and after completing the state 603, according to the code stream sequence number, the control module 501 obtains corresponding address information by address conversion module; State 605 is the FLASH read mode state, and control mode 501 reads the FLASH data of corresponding area according to address information; State 606 is configuration output state, adopts the configuration mode of SelectMAP among the present invention, Through the read data, the code stream data is transmitted to the test interface module 207 through the configuration output module 506 until the FPGA to be tested, and then jumps back to the state 601 after the operation is completed.
FIFO模块502是控制模块501对码流存储器进行读操作时的数据缓冲模块,起到缓冲数据和异步读取的作用。如图4所示,分为待机状态607,复位FIFO状态608,写操作状态609,读操作状态610,具体工作步骤依次为:状态607、状态608、状态609、状态610。The FIFO module 502 is a data buffer module when the control module 501 reads the code stream memory, and plays the role of buffering data and asynchronously reading. As shown in Figure 4, it is divided into standby state 607, reset FIFO state 608, write operation state 609, and read operation state 610. The specific working steps are: state 607, state 608, state 609, and state 610.
其中,状态607为待机状态,当控制模块501进入待机状态时,FIFO模块502同时进入待机状态;状态608为复位FIFO状态,当FIFO模块离开待机状态607后,进入复位FIFO状态,对FIFO进行复位,以备读写操作;状态609为写操作状态,当控制模块501执行状态605时,从码流存储器中读取的数据会先写入FIFO模块中,完成操作后,跳回状态607;状态610为读操作状态,当控制模块501执行状态606时,从FIFO模块中读取数据传送至配置输出模块506中,完成操作后,跳回状态607。Wherein, state 607 is standby state, and when control module 501 enters standby state, FIFO module 502 enters standby state simultaneously; State 608 is reset FIFO state, after FIFO module leaves standby state 607, enters reset FIFO state, resets FIFO , to prepare for read and write operations; state 609 is a write operation state, when the control module 501 executes state 605, the data read from the code stream memory will first be written into the FIFO module, and after the operation is completed, jump back to state 607; state 610 is the read operation state. When the control module 501 executes the state 606, the data is read from the FIFO module and sent to the configuration output module 506. After the operation is completed, it returns to the state 607.
读模块503是控制模块501进入状态605后,对FLASH进行读操作时调用的模块,如图6所示,分为待机状态611、读准备状态612、读数据状体613,工作步骤为:状态611、状态612、状态613。The reading module 503 is a module called when the control module 501 enters the state 605 and reads the FLASH. As shown in FIG. 611 , status 612 , status 613 .
其中,状态611是待机状态,当控制模块501进入待机状态时,读模块同时处于待机状态;状态612是读准备状态,当控制模块501进入状态605时,读模块进入读准备状态,对FLASH相关使能引脚进行读准备操作;状态613是读操作状态,完成状态612后,进入状态613,根据地址转换模块提供的地址,读取指定区域的FLASH数据,完成操作后,跳回状态611。Wherein, state 611 is standby state, when control module 501 enters standby state, read module is in standby state simultaneously; State 612 is read preparation state, when control module 501 enters state 605, read module enters read preparation state, related to Enable the pin to perform the read preparation operation; state 613 is the read operation state, after completing state 612, enter state 613, read the FLASH data in the specified area according to the address provided by the address conversion module, and jump back to state 611 after completing the operation.
地址转换模块504是控制模块501在状态604下,根据当前选择的FPGA型号和自动测试仪发送的码流序号,计算相应地址的模块。如图13所示,分为待机状态614、地址转换等待状态615、码流序号判断状态616。工作步骤分为:状态614、状态615、状态616。The address conversion module 504 is a module for the control module 501 to calculate the corresponding address according to the currently selected FPGA model and the serial number of the code stream sent by the automatic tester in the state 604 . As shown in FIG. 13 , it is divided into a standby state 614 , an address conversion waiting state 615 , and a stream sequence number judgment state 616 . The working steps are divided into: state 614 , state 615 , and state 616 .
其中,状态614是地址转换模块的待机状态,当控制模块501进入待机状态时,地址转换模块504同时进入待机状态;状态615是地址转换等待状态,当控制模块501进入状态603握手成功后,地址转换模块等待接收开始使能信号,准备跳转到下一状态;状态616是码流序号判断状态,完成状态615后,根据码流序号,计算相应的FLASH区域,提供给FLASH读模块,对指定区域进行读操作,完成操作后,跳回状态614。Wherein, state 614 is the standby state of address conversion module, when control module 501 enters standby state, address conversion module 504 enters standby state simultaneously; State 615 is address conversion waiting state, after control module 501 enters state 603 handshake success, address The conversion module waits for the start enable signal to be received, and is ready to jump to the next state; state 616 is the code stream sequence number judgment state, and after completing state 615, the corresponding FLASH area is calculated according to the code stream sequence number, and provided to the FLASH reading module for the specified The area performs a read operation, and jumps back to state 614 after the operation is completed.
配置输出模块505是控制模块501在状态606下,调用该模块对测试接口模块207输出SelectMAP形式的数据流,完成配置待测FPGA的工作,如图14所示,分为待机状态617、握手状态618、数据输出状态619。工作步骤分为状态617、状态618、状态619。Configuration output module 505 is that control module 501 is under state 606, calls this module to test interface module 207 and outputs the data flow of SelectMAP form, completes the work of configuring the FPGA to be tested, as shown in Figure 14, is divided into standby state 617, handshake state 618. Data output status 619. The working steps are divided into state 617 , state 618 and state 619 .
其中,状态617是待机状态,控制模块501进入待机状态时,配置输出模块505同时进入待机状态;状态618是握手状态,当控制模式501进入状态606时,配置输出模块505发送Program请求信号,根据接收Initial信号的变化,判断是否握手成功;状态619是数据输出状态,完成状态618后,配置输出模块505按照SelectMAP数据格式,将FLASH中相应区域的数据发送至测试接口模块207,直至待测FPGA中,完成操作后,跳回状态617。Wherein, state 617 is standby state, when control module 501 enters standby state, configuration output module 505 enters standby state simultaneously; State 618 is handshake state, when control mode 501 enters state 606, configuration output module 505 sends Program request signal, according to Receive the change of the Initial signal to judge whether the handshake is successful; the state 619 is the data output state, after completing the state 618, the configuration output module 505 sends the data of the corresponding area in the FLASH to the test interface module 207 according to the SelectMAP data format, until the FPGA to be tested , after the operation is completed, jump back to state 617.
本发明未详细说明部分属于本领域技术人员的公知常识。Parts not described in detail in the present invention belong to the common knowledge of those skilled in the art.
Claims (8)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911129123.4A CN111176911B (en) | 2019-11-18 | 2019-11-18 | Novel high-speed FPGA auxiliary configuration system of large storage capacity |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911129123.4A CN111176911B (en) | 2019-11-18 | 2019-11-18 | Novel high-speed FPGA auxiliary configuration system of large storage capacity |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111176911A CN111176911A (en) | 2020-05-19 |
| CN111176911B true CN111176911B (en) | 2023-08-08 |
Family
ID=70653789
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911129123.4A Active CN111176911B (en) | 2019-11-18 | 2019-11-18 | Novel high-speed FPGA auxiliary configuration system of large storage capacity |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111176911B (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114327298A (en) * | 2022-01-28 | 2022-04-12 | 中科亿海微电子科技(苏州)有限公司 | FPGA (field programmable Gate array) -based method for simulating SSM (System management Module) configuration interface and SSM configuration interface |
| CN115267515B (en) * | 2022-04-21 | 2025-07-25 | 北京时代民芯科技有限公司 | Automatic testing system and method for programmable integrated circuit |
| CN115061942B (en) * | 2022-08-22 | 2022-11-29 | 中科亿海微电子科技(苏州)有限公司 | Downloading verification method and device for configuration code of programmable logic device |
| CN120123162B (en) * | 2025-04-15 | 2025-08-08 | 深圳市山海半导体科技有限公司 | A chip testing platform and system based on FPGA |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101826999A (en) * | 2010-04-26 | 2010-09-08 | 瑞斯康达科技发展股份有限公司 | Method and device for online message flow monitoring and bandwidth compensation |
| CN102043747A (en) * | 2010-12-17 | 2011-05-04 | 浙江大学 | Method for downloading field programmable gate array (FPGA) logic codes under joint test action group (JTAG) download mode |
| US8159259B1 (en) * | 2007-08-06 | 2012-04-17 | Lewis James M | Self-modifying FPGA for anti-tamper applications |
| CN103198868A (en) * | 2013-04-16 | 2013-07-10 | 西北核技术研究所 | Fault simulation system and fault analysis method for single event upset |
| CN105573798A (en) * | 2015-12-22 | 2016-05-11 | 北京华峰测控技术有限公司 | Method and circuit capable of reconfiguring FPGA (field programmable gate array) quickly |
| CN106291336A (en) * | 2016-07-15 | 2017-01-04 | 上海华岭集成电路技术股份有限公司 | A kind of FPGA real-time method for down loading of test configurations code stream and system |
| CN106372032A (en) * | 2016-09-08 | 2017-02-01 | 北京航空航天大学 | FPGA (field programmable gate array) dynamic reconstruction method |
| CN106843955A (en) * | 2017-01-17 | 2017-06-13 | 西安电子科技大学 | Based on compressing file and contactless FPGA Dynamic Configurations |
| CN109542478A (en) * | 2018-11-09 | 2019-03-29 | 中电科仪器仪表有限公司 | A kind of system and method updating FPGA program in SPI Flash |
| CN109683829A (en) * | 2019-01-04 | 2019-04-26 | 中国科学院声学研究所东海研究站 | Intelligent storage control system and its application based on FPGA |
-
2019
- 2019-11-18 CN CN201911129123.4A patent/CN111176911B/en active Active
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8159259B1 (en) * | 2007-08-06 | 2012-04-17 | Lewis James M | Self-modifying FPGA for anti-tamper applications |
| CN101826999A (en) * | 2010-04-26 | 2010-09-08 | 瑞斯康达科技发展股份有限公司 | Method and device for online message flow monitoring and bandwidth compensation |
| CN102043747A (en) * | 2010-12-17 | 2011-05-04 | 浙江大学 | Method for downloading field programmable gate array (FPGA) logic codes under joint test action group (JTAG) download mode |
| CN103198868A (en) * | 2013-04-16 | 2013-07-10 | 西北核技术研究所 | Fault simulation system and fault analysis method for single event upset |
| CN105573798A (en) * | 2015-12-22 | 2016-05-11 | 北京华峰测控技术有限公司 | Method and circuit capable of reconfiguring FPGA (field programmable gate array) quickly |
| CN106291336A (en) * | 2016-07-15 | 2017-01-04 | 上海华岭集成电路技术股份有限公司 | A kind of FPGA real-time method for down loading of test configurations code stream and system |
| CN106372032A (en) * | 2016-09-08 | 2017-02-01 | 北京航空航天大学 | FPGA (field programmable gate array) dynamic reconstruction method |
| CN106843955A (en) * | 2017-01-17 | 2017-06-13 | 西安电子科技大学 | Based on compressing file and contactless FPGA Dynamic Configurations |
| CN109542478A (en) * | 2018-11-09 | 2019-03-29 | 中电科仪器仪表有限公司 | A kind of system and method updating FPGA program in SPI Flash |
| CN109683829A (en) * | 2019-01-04 | 2019-04-26 | 中国科学院声学研究所东海研究站 | Intelligent storage control system and its application based on FPGA |
Non-Patent Citations (1)
| Title |
|---|
| 王群泽.FPGA测试系统的研究与设计.《中国优秀硕士学位论文全文数据库 信息科技辑》.2011,(第8期),正文第7-56页. * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111176911A (en) | 2020-05-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111176911B (en) | Novel high-speed FPGA auxiliary configuration system of large storage capacity | |
| JP5235202B2 (en) | Test apparatus and test method | |
| CN102087606B (en) | FPGA configuration file update device | |
| CN109542478A (en) | A kind of system and method updating FPGA program in SPI Flash | |
| CN105404538B (en) | The load of FPGA a kind of and the device and method of escalation target code | |
| US9411700B2 (en) | Storage tester capable of individual control for a plurality of storage | |
| CN111897749B (en) | FLASH communication control system and method based on Quad-SPI controller and expansion | |
| CN219225016U (en) | FPGA prototype test board of Retimer chip | |
| CN106843959A (en) | A kind of FPGA remotely updating devices and method | |
| CN107491267B (en) | High-speed image data storage device based on L VDS interface | |
| CN111782453A (en) | An online test method of SRAM type FPGA based on ATE | |
| CN101788646B (en) | ATE (Automatic Test Equipment) test method of FPGA (Field Programmable Gate Array) configuration device | |
| CN106649142A (en) | High-speed memorizer with outage renew function | |
| CN101582688A (en) | Dynamic configuration circuit with FPGA loading mode | |
| CN102855150B (en) | A kind of method and system to equipment burning information to be programmed | |
| CN116246680A (en) | PROM programmer | |
| CN109283451A (en) | A system and method for detecting good quality of integrated circuits | |
| CN112596743B (en) | Military FPGA general reconstruction circuit based on JTAG interface | |
| KR101806807B1 (en) | Memory card | |
| CN116010184A (en) | Test method, system, equipment, processing method of test program and chip | |
| CN109491959A (en) | A kind of programmable logic device configurator | |
| CN1979687A (en) | Full detecting method for inlaid flash memory of simplified base pin | |
| CN214540759U (en) | FPGA chip and electronic system | |
| CN109582232A (en) | A kind of sequence read-write multi-disc Flash system and method based on FPGA | |
| CN102543215A (en) | Nand FLASH intelligent detection method based on ARM controller |
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 |