一種通過(guò)芯片內(nèi)部的mcu配置芯片內(nèi)置fpga的方法
【專(zhuān)利摘要】一種內(nèi)置有FPGA的集成電路芯片,所述集成電路芯片包括:FPGA模塊;用于存儲(chǔ)FPGA的邏輯映射信息的第一存儲(chǔ)模塊;MCU,通過(guò)與外部通訊,為第一存儲(chǔ)模塊寫(xiě)入FPGA模塊的邏輯映射信息。其中所述FPGA模塊在MCU寫(xiě)入所述邏輯映射信息后,通過(guò)讀取第一存儲(chǔ)模塊中的所述邏輯映射信息完成FPGA模塊的邏輯映射的配置。此外,本發(fā)明還提供了一種用于配置集成電路芯片內(nèi)置的FPGA的方法。
【專(zhuān)利說(shuō)明】—種通過(guò)芯片內(nèi)部的MCU配置芯片內(nèi)置FPGA的方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明提出一種通過(guò)芯片內(nèi)部的MCU配置芯片內(nèi)置FPGA的方法,完成對(duì)芯片內(nèi)置FPGA硬件邏輯的映射配置。
【背景技術(shù)】
[0002]在芯片內(nèi)置FPGA這種特殊的芯片結(jié)構(gòu)中,需要配置芯片內(nèi)置的FPGA硬件的邏輯映射。
[0003]現(xiàn)有的配置FPGA的方法是;通過(guò)接口(比如I2C/SD10/SPI/UART/JTAG),而不是MCU,把配置信息下載到配置存儲(chǔ)單元中。
[0004]針對(duì)的問(wèn)題:如果芯片內(nèi)置FPGA,那么要使得系統(tǒng)工作,需要進(jìn)行2種配置:1.配置FPGA,2.配置MCU使得芯片工作。
[0005]改進(jìn):1.本發(fā)明通過(guò)內(nèi)置的MCU去配置內(nèi)置FPGA,使得原本需要配置FPGA的步驟,由MCU來(lái)完成。要使得系統(tǒng)工作,只需要對(duì)MCU進(jìn)行相應(yīng)的配置,通過(guò)MCU去配置FPGA。
[0006]2.原本的配置,需要有2個(gè)接口,一個(gè)是通過(guò)MCU去配置芯片,另一個(gè)接口去配置芯片內(nèi)置的FPGA。通過(guò)本方法,可以達(dá)到只需要一個(gè)接口就可以完成配置信息的目的。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提出一種內(nèi)置FPGA模塊的集成電路芯片以及配置芯片內(nèi)置FPGA的方法,通過(guò)芯片內(nèi)部的MCU,完成對(duì)芯片內(nèi)置FPGA硬件邏輯的映射配置。
[0008]具體的,本發(fā)明提供一種內(nèi)置有FPGA的集成電路芯片,所述集成電路芯片包括:FPGA模塊;用于存儲(chǔ)FPGA的邏輯映射信息的第一存儲(chǔ)模塊;MCU,通過(guò)與外部通訊,為第一存儲(chǔ)模塊寫(xiě)入FPGA模塊的邏輯映射信息。其中所述FPGA模塊在MCU寫(xiě)入所述邏輯映射信息后,通過(guò)讀取第一存儲(chǔ)模塊中的所述邏輯映射信息完成FPGA模塊的邏輯映射的配置。
[0009]所述的集成電路芯片中還可以包括一個(gè)第二存儲(chǔ)模塊,存儲(chǔ)有MCU啟動(dòng)程序。
[0010]所述的集成電路芯片中還可以包括一個(gè)DMA模塊,受MCU控制,通過(guò)總線(xiàn)對(duì)所述第一和第二存儲(chǔ)模塊進(jìn)行訪(fǎng)問(wèn)
[0011]以及,本發(fā)明提供一種對(duì)集成電路芯片中的內(nèi)置FPGA模塊的配置方法,包括以下步驟:1)MCU讀取第二存儲(chǔ)模塊中的啟動(dòng)程序,對(duì)集成電路芯片進(jìn)行硬件初始話(huà)工作;2)MCU將存在于芯片外部的配置代碼下載到第二存儲(chǔ)模塊中;3)MCU運(yùn)行第二存儲(chǔ)模塊中的配置代碼,把FPGA映射配置信息寫(xiě)入到第一存儲(chǔ)模塊中;4) FPGA模塊讀取第一存儲(chǔ)模塊中的所述映射配置信息并完成邏輯映射的配置。
[0012]此外,本發(fā)明提供一種對(duì)集成電路芯片中的內(nèi)置FPGA模塊的配置方法,包括以下步驟:1)MCU讀取第二存儲(chǔ)模塊中的啟動(dòng)程序,對(duì)集成電路芯片進(jìn)行硬件初始化工作;2)MCU通知DMA,讓DMA將存在于芯片外部的配置代碼下載到第二存儲(chǔ)模塊中;3)MCU運(yùn)行第二存儲(chǔ)模塊中的配置代碼,并通知DMA ;4)DMA把FPGA映射配置信息寫(xiě)入到第一存儲(chǔ)模塊中;5)FPGA模塊讀取第一存儲(chǔ)模塊中的所述映射配置信息并完成邏輯映射的配置。【專(zhuān)利附圖】
【附圖說(shuō)明】
[0013]圖1芯片內(nèi)置FPGA的芯片架構(gòu)
[0014]圖2不含有DMA的MCU配置內(nèi)置FPGA流程圖
[0015]圖3含有DMA的MCU配置內(nèi)置FPGA流程圖
【具體實(shí)施方式】
[0016]本發(fā)明主要是通過(guò)芯片內(nèi)部的MCU配置芯片內(nèi)置FPGA的邏輯映射。如附圖1所示,芯片中有MCU,MCU通過(guò)JTAG/SPI/I2C/SD10接口與外面接口進(jìn)行通訊。MCU通過(guò)AMBA/PCIE總線(xiàn)與其他模塊進(jìn)行通訊。MCU可以與內(nèi)置的FPGA模塊,cfg_f lash_ctrl模塊,sram_ctrl模塊,mcu_flash_ctrl模塊進(jìn)行通訊。圖中的FPGA指代的是芯片內(nèi)置的FPGA模塊。cfg_flash_ctrl模塊指的是控制cfg_flash讀寫(xiě)動(dòng)作的模塊。Cfg_flash指的是存儲(chǔ)著FPGA的映射配置信息的存儲(chǔ)模塊。Mcu_flash_ctrl模塊指的是控制mcu_flash讀寫(xiě)動(dòng)作的模塊。mcu_flash指的是存儲(chǔ)著MCU啟動(dòng)指令的模塊。sram_ctrl模塊指的是控制sram讀寫(xiě)動(dòng)作的模塊。sram指的是靜態(tài)隨機(jī)存儲(chǔ)器。DMA是指直接內(nèi)存訪(fǎng)問(wèn)模塊。(分開(kāi)寫(xiě)了)DMA通過(guò)AMBA/PCIE總線(xiàn),可以訪(fǎng)問(wèn)總線(xiàn)上的從設(shè)備。DMA通過(guò)AMBA/PCIE總線(xiàn),通過(guò)訪(fǎng)問(wèn)cfg_flash_ctrl,實(shí)現(xiàn)對(duì)cfg_flash這個(gè)存儲(chǔ)單元進(jìn)行訪(fǎng)問(wèn)。DMA通過(guò)AMBA/PCIE總線(xiàn),通過(guò)訪(fǎng)問(wèn)mcu_flash_ctrl,實(shí)現(xiàn)對(duì)mcu_flash這個(gè)存儲(chǔ)單元進(jìn)行訪(fǎng)問(wèn)。DMA通過(guò)AMBA/PCIE總線(xiàn),通過(guò)訪(fǎng)問(wèn)sram_ctrl,實(shí)現(xiàn)對(duì)sram這個(gè)存儲(chǔ)單元進(jìn)行訪(fǎng)問(wèn)。芯片內(nèi)置的FPGA模塊通過(guò)cfg_flash_ctrl讀取cfg_flash中的FPGA的邏輯映射信息。
[0017]該芯片架構(gòu)的配置流程有2種方式:區(qū)別在于是否含有DMA模塊進(jìn)行配置。
[0018]不含有DMA模塊的配置流程:
[0019]如圖2所示,開(kāi)始時(shí),MCU從mcu_flash_ctrl讀mcu_flash里面存儲(chǔ)的啟動(dòng)加載程序,對(duì)芯片進(jìn)行硬件初始化工作。接著,MCU通過(guò)JTAG/SPI/I2C/SD10接口將存在于芯片外部的配置代碼下載到MCU的sram/flash中(這里flash指的是架構(gòu)圖上的mcu_flash)。然后,MCU運(yùn)行在sram/flash中的配置代碼,把FPGA映射配置信息通過(guò)AMBA/PCIE總線(xiàn)寫(xiě)入到cfg_flash里面。FPGA模塊通過(guò)cfg_f lash_ctrl模塊去讀取cfg_flash的配置FPGA邏輯映射的信息。這樣,通過(guò)MCU完成對(duì)芯片內(nèi)置FPGA的邏輯映射信息的配置。
[0020]如圖3所示,開(kāi)始時(shí),MCU從mcu_flash_ctrl讀mcu_flash里面存儲(chǔ)的啟動(dòng)加載程序,對(duì)芯片進(jìn)行硬件初始化工作。接著,MCU通知DMA,讓DMA通過(guò)JTAG/SPI/I2C/SD10接口將存在于芯片外部的配置代碼下載到MCU的sram/flash中(這里flash指的是架構(gòu)圖上的mcu_flash)。然后,MCU運(yùn)行在sram/flash中的配置代碼,通知DMA。DMA把FPGA映射配置信息通過(guò)AMBA/PCIE總線(xiàn)寫(xiě)入到cfg_flash里面。FPGA模塊通過(guò)cfg_flash_ctrl模塊去讀取cfg_f Iash的配置FPGA邏輯映射的信息。這樣,通過(guò)MCU (含有DMA)完成對(duì)芯片內(nèi)置FPGA的邏輯映射信息的配置。
[0021]下面對(duì)本發(fā)明所記載的加載程序模塊的部分進(jìn)行說(shuō)明。加載程序模塊為系統(tǒng)啟動(dòng)后第一個(gè)要加載的部分,該部分主要完成系統(tǒng)啟動(dòng)時(shí)硬件初始化的工作,MCU的基本配置(例如,時(shí)鐘相關(guān)配置),并且提供對(duì)外部存儲(chǔ)器的原子操作接口等),該部分程序在MCU芯片生產(chǎn)的時(shí)候固化到內(nèi)部的,用戶(hù)只可以讀取。[0022]此外根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述的mcu_f lash、cfg_flash和sram也可以是同一個(gè)存儲(chǔ)模塊的不同存儲(chǔ)區(qū)間,其可以分別通過(guò)mcu_flash_ctrl模塊、cfg_f lash_ctrl模塊和sram_ctrl模塊進(jìn)行控制和訪(fǎng)問(wèn)?;蛘咚龅膍cu_flash和cfg_f Iash可以是一個(gè)存儲(chǔ)模塊的不同存儲(chǔ)區(qū)間,通過(guò)mcu_flash_ctrl模塊、cfg_f lash_ctrl模塊進(jìn)行控制和訪(fǎng)問(wèn)?;蛘撸龅拇鎯?chǔ)模塊可以以其他形式進(jìn)行整合。
[0023]雖然本發(fā)明只是陳述了實(shí)現(xiàn)本申請(qǐng)的一個(gè)【具體實(shí)施方式】,但是本領(lǐng)域技術(shù)人員可以在此基礎(chǔ)上作出更多的改型。例如所述的系統(tǒng)架構(gòu)可以是硬件系統(tǒng),也可以是軟件系統(tǒng);所述切換更高可靠性的保護(hù)模式的操作,可以采用本領(lǐng)域技術(shù)人員能夠想到的其他的操作方式;以及本領(lǐng)域技術(shù)人員還可以采用其他數(shù)據(jù)模塊來(lái)替代所述存儲(chǔ)器接收以及存儲(chǔ)所述插入冗余數(shù)據(jù)的數(shù)據(jù)信息。
【權(quán)利要求】
1.一種內(nèi)置有FPGA的集成電路芯片,所述集成電路芯片包括: FPGA模塊; 用于存儲(chǔ)FPGA的邏輯映射信息的第一存儲(chǔ)模塊; MCU,通過(guò)與外部通訊,為第一存儲(chǔ)模塊寫(xiě)入FPGA模塊的邏輯映射信息, 其中所述FPGA模塊在MCU寫(xiě)入所述邏輯映射信息后,通過(guò)讀取第一存儲(chǔ)模塊中的所述邏輯映射信息完成FPGA模塊的邏輯映射的配置。
2.如權(quán)利要求1所述的集成電路芯片,其中還包括: 第二存儲(chǔ)模塊,存儲(chǔ)有MCU啟動(dòng)程序。
3.如權(quán)利要求2所述的集成電路芯片,其中還包括: 第一存儲(chǔ)模塊控制模塊,用于接收MCU指令控制第一存儲(chǔ)模塊的讀寫(xiě),并且所述FPGA模塊通過(guò)該第一存儲(chǔ)模塊控制模塊從第一存儲(chǔ)模塊中讀取邏輯映射信息; 第二存儲(chǔ)模塊控制模塊,用于控制第二存儲(chǔ)模塊的讀寫(xiě)。
4.如權(quán)利要求2所述的集成電路芯片,其中所述的第一存儲(chǔ)模塊和第二存儲(chǔ)模塊為同一個(gè)存儲(chǔ)模塊的不同存儲(chǔ)區(qū)間。
5.如權(quán)利要求3所述的集成電路芯片,其中所述的第一存儲(chǔ)模塊和第二存儲(chǔ)模塊為同一個(gè)存儲(chǔ)模塊的不同存儲(chǔ)區(qū)間,所述第一存儲(chǔ)模塊控制模塊和第二存儲(chǔ)模塊控制模塊分別控制該存儲(chǔ)模塊。
6.如權(quán)利要求1所述的集成電路芯片,其中還包括: DMA,受MCU控制,通過(guò)總線(xiàn)對(duì)所述第一存儲(chǔ)模塊進(jìn)行訪(fǎng)問(wèn)。
7.如權(quán)利要求2所述的集成電路芯片,其中還包括: DMA,受MCU控制,通過(guò)總線(xiàn)對(duì)所述第一和第二存儲(chǔ)模塊進(jìn)行訪(fǎng)問(wèn)。
8.如權(quán)利要求3所述的集成電路芯片,其中還包括: DMA,受MCU控制,通過(guò)總線(xiàn)借助第一和第二存儲(chǔ)模塊控制模塊,對(duì)所述第一和第二存儲(chǔ)模塊進(jìn)行訪(fǎng)問(wèn)。
9.權(quán)利要求2所述的集成電路芯片中的內(nèi)置FPGA模塊的配置方法,包括以下步驟: DMCU讀取第二存儲(chǔ)模塊中的啟動(dòng)程序,對(duì)集成電路芯片進(jìn)行硬件初始話(huà)工作; 2)MCU將存在于芯片外部的配置代碼下載到第二存儲(chǔ)模塊中; 3)MCU運(yùn)行第二存儲(chǔ)模塊中的配置代碼,把FPGA映射配置信息寫(xiě)入到第一存儲(chǔ)模塊中; 4)FPGA模塊讀取第一存儲(chǔ)模塊中的所述映射配置信息并完成邏輯映射的配置。
10.權(quán)利要求7所述的集成電路芯片中的內(nèi)置FPGA模塊的配置方法,包括以下步驟: DMCU讀取第二存儲(chǔ)模塊中的啟動(dòng)程序,對(duì)集成電路芯片進(jìn)行硬件初始話(huà)工作; 2)MCU通知DMA,讓DMA將存在于芯片外部的配置代碼下載到第二存儲(chǔ)模塊中; 3)MCU運(yùn)行第二存儲(chǔ)模塊中的配置代碼,并通知DMA; 4)DMA把FPGA映射配置信息寫(xiě)入到第一存儲(chǔ)模塊中; 5)FPGA模塊讀取第一存儲(chǔ)模塊中的所述映射配置信息并完成邏輯映射的配置。
【文檔編號(hào)】G06F9/445GK103677868SQ201210326394
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2012年9月6日 優(yōu)先權(quán)日:2012年9月6日
【發(fā)明者】歐耿洲, 金傳恩, 高占東 申請(qǐng)人:合肥科盛微電子科技有限公司