Fpga在mcu芯片中工作的方法和裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供了一種FPGA在MCU芯片中工作的方法和裝置,所述微控制單元MCU芯片中集成有現(xiàn)場(chǎng)可編程門陣列FPGA模塊和閃存芯片,所述現(xiàn)場(chǎng)可編程門陣列模塊包括現(xiàn)場(chǎng)可編程門陣列FPGA器件和現(xiàn)場(chǎng)可編程門陣列FPGA?IO配置子模塊,所述FPGA?IO配置子模塊與MCU芯片中的所有元件分別相連,所述方法包括:當(dāng)現(xiàn)場(chǎng)可編程門陣列FPGA器件調(diào)試完成,并且,給微控制單元MCU芯片上電后,讀取所述閃存芯片中預(yù)置的程序數(shù)據(jù)信息;讀取所述閃存芯片中預(yù)置的硬件描述信息;將所述硬件描述信息燒錄至所述FPGA器件中;將所述FPGA器件進(jìn)行復(fù)位處理;所述MCU芯片采用所述FPGA執(zhí)行所述程序數(shù)據(jù)信息。本發(fā)明可以降低成本,減少浪費(fèi),并且能夠使得FPGA中的電路和MCU芯片其他部分電路協(xié)同工作。
【專利說明】FPGA在MCU芯片中工作的方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及集成電路【技術(shù)領(lǐng)域】,特別是涉及一種FPGA在MCU芯片中工作的方法和 一種FPGA在MCU芯片中工作的裝置。
【背景技術(shù)】
[0002] 隨著集成電路工藝的不斷提高,現(xiàn)場(chǎng)可編程門陣列FPGA (Field - Programmable Gate Array)作為專用集成電路(ASIC,Application_Specific Integrated Circuit)領(lǐng)域中 的一種半定制電路而出現(xiàn),F(xiàn)PGA的邏輯塊和連接可以按照用戶的需要而改變,通過可編輯 的連接把FPGA內(nèi)部的邏輯塊連接起來,所以FPGA可以完成所需要的邏輯功能。
[0003] 由于FPGA具有極高的靈活性,MCU (Micro Control Unit,微控制單元)芯片廠商 寄望于將FPGA集成于MCU芯片中,以解決MCU芯片在不同應(yīng)用場(chǎng)景對(duì)功能需求不一樣的矛 盾。
[0004] 通常,完整的FPGA -般包含大量的LUT (Look-Up-Tab 1 e,查找表),實(shí)現(xiàn)組合 邏輯電路,觸發(fā)器,實(shí)現(xiàn)時(shí)序邏輯電路,還包含一定數(shù)量的Memory, DCM(Digital Clock Manager),用于產(chǎn)生時(shí)鐘,乘法器,以及10 buffer。FPGA中的電路可以單獨(dú)工作,MCU芯片 的電路也可以單獨(dú)工作,將完整的FPGA直接集成于MCU芯片中時(shí),F(xiàn)PGA和MCU芯片的工作 互不相關(guān),各自繼續(xù)獨(dú)立工作。
[0005] 然而,完整的FPGA面積很大,集成到MCU芯片上時(shí)需要增加芯片非常大的面積,造 成成本的增加,并且,完整的FPGA中包含了一些不必要的元件,造成浪費(fèi),更重要的是,當(dāng) 需要實(shí)現(xiàn)FPGA中的電路和MCU芯片其他部分電路協(xié)同工作時(shí),由于FPGA和MCU芯片的工 作互不相關(guān),因此,這種需求難以實(shí)現(xiàn)。
[0006] 因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是:提供一種FPGA在 MCU芯片中工作的方法和裝置,用以降低成本,減少浪費(fèi),并且能夠使得FPGA中的電路和 MCU芯片其他部分電路協(xié)同工作。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種FPGA在MCU芯片中工作的方法,用 以降低成本,減少浪費(fèi),并且能夠使得FPGA中的電路和MCU芯片其他部分電路協(xié)同工作。
[0008] 相應(yīng)的,本發(fā)明實(shí)施例還提供了一種FPGA在MCU芯片中工作的裝置,用以保證上 述方法的實(shí)現(xiàn)及應(yīng)用。
[0009] 為了解決上述問題,本發(fā)明公開了一種FPGA在MCU芯片中工作的方法,所述微控 制單元MCU芯片中集成有現(xiàn)場(chǎng)可編程門陣列FPGA模塊和閃存芯片,所述現(xiàn)場(chǎng)可編程門陣列 模塊包括現(xiàn)場(chǎng)可編程門陣列FPGA器件和現(xiàn)場(chǎng)可編程門陣列FPGA 10配置子模塊,所述FPGA 10配置子模塊與MCU芯片中的所有元件分別相連,所述方法包括:
[0010] 當(dāng)現(xiàn)場(chǎng)可編程門陣列FPGA器件調(diào)試完成,并且,給微控制單元MCU芯片上電后,讀 取所述閃存芯片中預(yù)置的程序數(shù)據(jù)信息; toon] 讀取所述閃存芯片中預(yù)置的硬件描述信息;
[0012] 將所述硬件描述信息燒錄至所述FPGA器件中;
[0013] 將所述FPGA器件進(jìn)行復(fù)位處理;
[0014] 所述MCU芯片采用所述FPGA執(zhí)行所述程序數(shù)據(jù)信息。
[0015] 優(yōu)選地,所述現(xiàn)場(chǎng)可編程門陣列FPGA調(diào)試完成的步驟包括:
[0016] 將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場(chǎng)可編程門陣列FPGA器件中;
[0017] 依據(jù)所述硬件描述信息生成對(duì)應(yīng)的軟件驅(qū)動(dòng)程序;
[0018] 依據(jù)所述10分配信息配置所述FPGA器件的10引腳;
[0019] 將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;
[0020] 對(duì)所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序;
[0021] 執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),則獲得調(diào)試正確的處理結(jié)果;
[0022] 將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
[0023] 優(yōu)選地,所述方法還包括:
[0024] 當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),若硬件描述信息出現(xiàn)錯(cuò)誤,則 修改對(duì)應(yīng)的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則 寫入現(xiàn)場(chǎng)可編程門陣列FPGA器件中的子步驟。
[0025] 優(yōu)選地,所述方法還包括:
[0026] 當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),若軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則 修改對(duì)應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中的子步 驟。
[0027] 優(yōu)選地,所述現(xiàn)場(chǎng)可編程門陣列模塊包括所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息 下載子模塊,所述FPGA配置信息下載子模塊與閃存控制器互連,所述閃存控制器與閃存芯 片互連,所述將所述硬件描述信息燒錄至所述FPGA器件中的步驟包括:
[0028] 所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊接收所述閃存控制器傳輸?shù)挠?件描述信息;
[0029] 所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述硬件描述信息進(jìn)行格式 化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的硬件描述信息;
[0030] 所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述硬件描述信息寫入所述 FPGA器件。
[0031] 依據(jù)本發(fā)明的實(shí)施例,公開了一種FPGA在MCU芯片中工作的裝置,所述微控制單 元MCU芯片中集成有現(xiàn)場(chǎng)可編程門陣列FPGA模塊和閃存芯片,所述現(xiàn)場(chǎng)可編程門陣列模塊 包括現(xiàn)場(chǎng)可編程門陣列FPGA器件,所述裝置包括:
[0032] 程序數(shù)據(jù)信息讀取單元,用于在現(xiàn)場(chǎng)可編程門陣列FPGA調(diào)試完成,并且,給微控 制單元MCU芯片上電后,讀取所述閃存芯片中預(yù)置的程序數(shù)據(jù)信息;
[0033] 硬件描述信息讀取單元,用于讀取所述閃存芯片中預(yù)置的硬件描述信息;
[0034] 硬件描述信息燒錄單元,用于將所述硬件描述信息燒錄至所述FPGA器件中;
[0035] FPGA器件復(fù)位單元,用于將所述FPGA器件進(jìn)行復(fù)位處理;
[0036] 程序數(shù)據(jù)信息執(zhí)行單元,用于所述MCU芯片采用所述FPGA執(zhí)行所述程序數(shù)據(jù)信 肩、。
[0037] 優(yōu)選地,所述裝置包括:
[0038] 信息寫入單元,用于將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場(chǎng)可編程門陣 列FPGA器件中;
[0039] 軟件驅(qū)動(dòng)程序生成單元,用于依據(jù)所述硬件描述信息生成對(duì)應(yīng)的軟件驅(qū)動(dòng)程序;
[0040] 10引腳配置單元,用于依據(jù)所述10分配信息配置所述FPGA器件的10引腳;
[0041] 軟件驅(qū)動(dòng)程序載入單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;
[0042] 軟件驅(qū)動(dòng)程序執(zhí)行單元,用于對(duì)所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng) 程序;
[0043] 調(diào)試正確處理結(jié)果獲得單元,用于執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí), 獲得調(diào)試正確的處理結(jié)果;
[0044] 保存單元,用于將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
[0045] 優(yōu)選地,所述裝置還包括:
[0046] 硬件描述信息出錯(cuò)單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí), 若硬件描述信息出現(xiàn)錯(cuò)誤,則修改對(duì)應(yīng)的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件描述信息 和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場(chǎng)可編程門陣列FPGA器件中的子步驟。
[0047] 優(yōu)選地,所述裝置還包括:
[0048] 軟件驅(qū)動(dòng)程序出錯(cuò)單元,用于執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),若 軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對(duì)應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū)動(dòng)程序載入 到所述MCU芯片中的子步驟。
[0049] 優(yōu)選地,所述現(xiàn)場(chǎng)可編程門陣列模塊包括所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息 下載子模塊,所述FPGA配置信息下載子模塊與閃存控制器互連,所述閃存控制器與閃存芯 片互連,所述硬件描述信息燒錄單元包括:
[0050] 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊的硬件描述信息接收子單元, 用于接收所述閃存控制器傳輸?shù)挠布枋鲂畔ⅲ?br>
[0051] 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊的格式化子單元,用于將所述 硬件描述信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的硬件描述信息;
[0052] 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊信息寫入子單元,用于將所述 硬件描述信息寫入所述FPGA器件。
[0053] 與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
[0054] 本發(fā)明通過在FPGA調(diào)試完成后將硬件描述信息燒錄至FPGA器件中,確保了硬件 描述信息完整無誤,提高了 FPGA器件的穩(wěn)定性,同時(shí),通過配置FPGA模塊的10與MCU芯片 中其他部分信號(hào)連接,這樣有效的共用了 MCU芯片的電路,減小了 FPGA器件的面積,降低了 成本,減少了浪費(fèi)同時(shí)也使得FPGA中的電路和MCU芯片其他部分電路協(xié)同工作。
[0055] 進(jìn)一步的,本發(fā)明通過閃存芯片將硬件描述信息燒錄至FPGA器件中,由于閃存芯 片具有掉電數(shù)據(jù)信息不丟失的特點(diǎn),因此,F(xiàn)PGA器件在掉電后,硬件描述信息不會(huì)丟失,進(jìn) 一步提高了 FGPA器件的穩(wěn)定性。
【專利附圖】
【附圖說明】
[0056] 圖1示出了本發(fā)明一種集成現(xiàn)場(chǎng)可編程門陣列FPGA模塊的微控制單元MCU芯片 的結(jié)構(gòu)圖;
[0057] 圖2示出了本發(fā)明一種微控制單元MCU芯片中現(xiàn)場(chǎng)可編程門陣列FPGA模塊的結(jié) 構(gòu)圖;
[0058] 圖3示出了本發(fā)明的一種FPGA在MCU芯片中工作的方法實(shí)施例的步驟流程圖;
[0059] 圖4示出了本發(fā)明一種FPGA在MCU芯片中工作的裝置實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0060] 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0061] 參照?qǐng)D1,示出了本發(fā)明一種集成現(xiàn)場(chǎng)可編程門陣列FPGA模塊的微控制單元MCU 芯片的結(jié)構(gòu)圖。
[0062] 如圖1所示,所述MCU芯片集成有現(xiàn)場(chǎng)可編程門陣列FPGA模塊,所述MCU芯片還 包括:
[0063] CPU、系統(tǒng)總線、芯片10控制模塊以及時(shí)鐘復(fù)位模塊,其中,
[0064] 所述CPU和所述FPGA模塊分別連接在所述系統(tǒng)總線上;所述時(shí)鐘復(fù)位與所述 FPGA模塊互連;
[0065] 在實(shí)際應(yīng)用中,CPU (Central Processing Unit,中央處理器),一般為IP核 (Intellectual Property Core,知識(shí)產(chǎn)權(quán)核),所謂IP核,一般為某一方提供的、在芯片設(shè) 計(jì)上的可重用模塊。CPU是MCU芯片中運(yùn)算與控制核心,可以執(zhí)行軟件編譯完成的代碼程序 等,達(dá)到控制芯片中各部分合理運(yùn)行的目的。
[0066] 芯片10控制可以是用于控制MCU芯片10用途的模塊,在本發(fā)明實(shí)施例中,芯片10 控制的主要作用可以是將MCU芯片10配置成FPGA的10或者普通的GPIO (General Purpose Input Output) 〇
[0067] 時(shí)鐘復(fù)位可以是提供MCU芯片時(shí)鐘與復(fù)位的模塊,時(shí)鐘部分包括PLL(Phase Locked Loop,鎖相環(huán)),用于提供各種頻率的時(shí)鐘(比如10MHZ?100MHZ)。在本發(fā)明實(shí)施 例中,時(shí)鐘復(fù)位部分還可以用于提供FPGA (Field - Programmable Gate Array,現(xiàn)場(chǎng)可編程 門陣列)所需要的時(shí)鐘和復(fù)位。
[0068] 需要說明的是,在時(shí)鐘復(fù)位中可以預(yù)留一些時(shí)鐘,例如:高頻時(shí)鐘,低頻時(shí)鐘,與 系統(tǒng)同頻時(shí)鐘等,還可以預(yù)留一些可配置的復(fù)位信號(hào)等,連接到FPGA 10配置子模塊中,為 FPGA器件中的邏輯提供時(shí)鐘復(fù)位信號(hào)。
[0069] 此外,系統(tǒng)總線同樣可以預(yù)設(shè)一些保留地址空間,這些地址空間與MCU其他部分 不沖突,這樣CPU可以通過系統(tǒng)總線中的預(yù)設(shè)的保留地址空間訪問FPGA器件中的邏輯。
[0070] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括直接存儲(chǔ)器訪問DMA,所述 DMA連接在所述系統(tǒng)總線上。
[0071] DMA (Direct Memory Access,直接存儲(chǔ)器訪問),負(fù)責(zé)將數(shù)據(jù)從一個(gè)地址空間傳輸 到另外一個(gè)地址空間,如果用CPU完成此項(xiàng)操作,則增加 CPU大量的負(fù)載和中斷資源,同時(shí) 傳輸?shù)男屎脱訒r(shí)會(huì)增加。而DMA傳輸?shù)乃俣群托示菴PU好,因此DMA為MCU芯片中 的重要組成部分。
[0072] 需要說明的是,DMA中預(yù)設(shè)了一些DMA通道,通過將信號(hào)連接到FPGA 10配置模塊, 可以預(yù)留給FPGA模塊使用。
[0073] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括靜態(tài)隨機(jī)存儲(chǔ)器SRAM,所述 SRAM連接在所述系統(tǒng)總線上;所述SRAM與所述閃存控制器互連。
[0074] SRAM (Static Random Access Memory,靜態(tài)隨機(jī)存儲(chǔ)器),為標(biāo)準(zhǔn)IP。一般用于存儲(chǔ) 數(shù)據(jù),斷電后數(shù)據(jù)丟失,讀寫速度快,可實(shí)時(shí)讀寫。在本發(fā)明實(shí)施例中可以當(dāng)做內(nèi)存使用,存 放CPU運(yùn)行中臨時(shí)數(shù)據(jù),以及其他一些暫存數(shù)據(jù),還可以復(fù)用成FPGA的SRAM使用。當(dāng)FPGA 需要用到SRAM,將其中部分空間當(dāng)做FPGA的SRAM使用,這樣在實(shí)現(xiàn)FPGA器件時(shí),可以不需 要實(shí)現(xiàn)SRAM,以減小面積,節(jié)約資源。
[0075] 需要說明的是,SRAM在通用的MCU中,通常當(dāng)成內(nèi)存使用,在本發(fā)明實(shí)施例中, SRAM可以復(fù)用成FPGA模塊的SRAM使用。假設(shè)SRAM的總大小為T0P_SIZE ;用戶在FPGA模 塊中需要使用SRAM,則用戶需要分配好FPGA模塊中需要使用SRAM的大小,以及內(nèi)存需要 使用的SRAM大小,總大小不能超過T0P_SIZE。假設(shè)用戶配置FPGA中需要使用SRAM的大小 為 FPGA_SIZE (FPGA_SIZE 小于 T0P_SIZE),則內(nèi)存可使用的 SRAM 大小為 T0P_SIZE 減 FPGA_ SIZE。在MCU芯片的SRAM設(shè)計(jì)實(shí)現(xiàn)時(shí),需要設(shè)計(jì)兩套訪問SRAM的器件,一套用于MCU芯片 訪問內(nèi)存使用,在本發(fā)明實(shí)施例中,用于MCU芯片訪問內(nèi)存時(shí)訪問的地址空間為0?Τ0Ρ_ SIZE減FPGA_SIZE減1 ;另外一套用于FPGA模塊使用的SRAM,訪問的地址空間為T0P_SIZE 減FPGA_SIZE?T0P_SIZE減1,此套訪問SRAM的信號(hào)連接到FPGA 10配置模塊。通過配置 SRAM與FPGA器件相連接,可以實(shí)現(xiàn)FPGA器件中的邏輯訪問SRAM的功能。如果將FPGA_ SIZE設(shè)置成0,則所有的SRAM都用于內(nèi)存。
[0076] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述MCU芯片還包括聯(lián)合測(cè)試工作組JTAG, 所述聯(lián)合測(cè)試工作組JTAG與所述FPGA互連。
[0077] JTAG(Joint Test Action Group,聯(lián)合測(cè)試工作組),是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議 (IEEE1149. 1兼容),主要用于芯片內(nèi)部測(cè)試。在本發(fā)明實(shí)施例中JTAG可以用于配置FPGA 器件。
[0078] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括閃存控制器,所述閃存控制 器與所述FPGA互連。
[0079] 閃存控制器,為閃存芯片與MCU芯片的接口,可以將閃存芯片中的程序數(shù)據(jù)讀取 到MCU芯片中,用于CPU執(zhí)行程序,也可以將FPGA的配置信息讀取到FPGA模塊中,用于配 置FPGA器件。同時(shí),閃存控制器還可以用于擦寫閃存芯片中的數(shù)據(jù)。
[0080] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括閃存芯片,所述閃存芯片與 所述閃存控制器互連。
[0081] 閃存芯片,具有可讀,可擦寫,斷電數(shù)據(jù)不丟失的特點(diǎn),但讀寫速度慢,并且大部分 時(shí)間是在讀取數(shù)據(jù),在MCU芯片中主要用于程序存儲(chǔ)以及一些常量數(shù)據(jù)的存儲(chǔ),在本發(fā)明 實(shí)施例中,閃存芯片還可以用于存儲(chǔ)FPGA器件的配置信息。因此,在MCU芯片上電后可以自 動(dòng)讀取閃存芯片中存儲(chǔ)的配置信息,自動(dòng)的將該配置信息燒錄到FPGA器件中。為了讓MCU 芯片更加小巧,可以采用MCP (Multiple Chip Package,多芯片封裝)技術(shù)將MCU芯片與閃 存芯片制造在同一個(gè)封裝內(nèi)。
[0082] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括設(shè)備集,所述設(shè)備集連接在 所述系統(tǒng)總線上。
[0083] 設(shè)備集:在MCU芯片中,一般會(huì)包含多種外設(shè),常用的比如SPI (Serial Peripheral Interface,串行夕卜設(shè)接口)、UART (Universal Asynchronous Receiver/Transmitter, 即通用異步收發(fā)傳輸器)、I2C(Inter - Integrated Circuit),一種兩線式串行總線, USB (Universal Serial Bus,通用串行總線)等等,有時(shí)一種外設(shè)可能會(huì)包含多個(gè),比如3個(gè) SPI。設(shè)備集即包含所有這些外設(shè)的集合。
[0084] 參照?qǐng)D2,示出了本發(fā)明一種微控制單元MCU芯片中現(xiàn)場(chǎng)可編程門陣列FPGA模塊 的結(jié)構(gòu)圖。
[0085] 如圖2所示,所述FPGA模塊設(shè)置有現(xiàn)場(chǎng)可編程門陣列FPGA器件和現(xiàn)場(chǎng)可編程門 陣列FPGA 10配置子模塊,所述FPGA器件和所述FPGA 10配置子模塊各自包括內(nèi)部10引腳, 所述FPGA器件的內(nèi)部10引腳與所述FPGA 10配置子模塊的內(nèi)部10引腳互連,所述FPGA器 件和所述FPGA 10配置子模塊之間通過互連的內(nèi)部10引腳對(duì)進(jìn)行內(nèi)部相互通信;
[0086] 所述FPGA 10配置子模塊與所述芯片10控制對(duì)應(yīng)的10引腳相連,所述芯片10控 制連接到預(yù)設(shè)的外接設(shè)備上;
[0087] 所述FPGA器件中的外接信號(hào)通過互連的內(nèi)部10引腳傳輸?shù)剿鯢PGAI0配置子 模塊中,再通過相連的對(duì)應(yīng)的10引腳傳輸?shù)剿鲂酒?0控制中,之后傳輸?shù)剿鐾饨釉O(shè)備 中。
[0088] 所述現(xiàn)場(chǎng)可編程門陣列FPGA還包括現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模 塊、配置寄存器,其中,
[0089] 所述FPGA配置信息下載子模塊中10引腳的輸出端與所述FPGA器件中10引腳的 輸入端相連,所述FPGA器件中10引腳的輸出端與所述FPGAI0配置子模塊中10引腳的輸 入端相連,所述配置寄存器中10引腳的輸出端與所述FPGA 10配置子模塊中10引腳的輸入 端相連,所述配置寄存器中10引腳的輸入端連接在所述系統(tǒng)總線上。
[0090] 在具體應(yīng)用中,F(xiàn)PGA配置信息下載子模塊可以用于配置FPGA器件,將MCU芯片提 供的配置信息,轉(zhuǎn)化成用于FPGA器件配置下載的標(biāo)準(zhǔn)數(shù)據(jù)格式的配置信息,即符合JTAG協(xié) 議的數(shù)據(jù)格式的配置信息,通過FPGA配置信息下載子模塊燒錄FPAG器件的通路,從FPGA 器件固定的端口將配置信息配置下載到FPGA器件中,因此,將FPGA器件中的可編程邏輯轉(zhuǎn) 化成專用邏輯,以達(dá)到實(shí)現(xiàn)該專用邏輯對(duì)應(yīng)的專用功能的目的。
[0091] 配置寄存器:主要包括一系列寄存器,由系統(tǒng)總線配置,這些寄存器通過從配置寄 存器到FPGA 10配置子模塊的數(shù)據(jù)通路,對(duì)FPGA的10進(jìn)行配置,將FPGA模塊的10與MCU 芯片連接。
[0092] FPGA 10配置模塊與MCU芯片中其他元件的信號(hào)連接可以用于共用MCU芯片中的 部分電路,以減少M(fèi)CU芯片的面積。
[0093] 本發(fā)明實(shí)施例的核心構(gòu)思之一在于,
[0094] 參照?qǐng)D3,示出了本發(fā)明的一種FPGA在MCU芯片中工作的方法實(shí)施例的步驟流程 圖,所述微控制單元MCU芯片中集成有現(xiàn)場(chǎng)可編程門陣列FPGA模塊和閃存芯片,所述現(xiàn)場(chǎng) 可編程門陣列模塊包括現(xiàn)場(chǎng)可編程門陣列FPGA器件,具體可以包括如下步驟:
[0095] 步驟301,當(dāng)現(xiàn)場(chǎng)可編程門陣列FPGA器件調(diào)試完成,并且,給微控制單元MCU芯片 上電后,讀取所述閃存芯片中預(yù)置的程序數(shù)據(jù)信息;
[0096] 在具體實(shí)現(xiàn)中,當(dāng)現(xiàn)場(chǎng)可編程門陣列FPGA器件調(diào)試完成后,給微控制單元MCU芯 片上電,閃存控制器可以自動(dòng)將閃存芯片中的程序數(shù)據(jù)信息讀取到MCU芯片內(nèi)部,并且保 存在MCU芯片內(nèi)部專用的Memory上,MCU芯片內(nèi)部專用的Memory可以實(shí)現(xiàn)在閃存控制器 內(nèi)的Memory上,而閃存控制器內(nèi)的Memory可以由SRAM實(shí)現(xiàn)。
[0097] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述現(xiàn)場(chǎng)可編程門陣列FPGA調(diào)試完成的步 驟可以包括以下子步驟:
[0098] 子步驟A101,將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場(chǎng)可編程門陣列FPGA 器件中;
[0099] 在具體應(yīng)用中,硬件描述信息可以是通過硬件描述語言對(duì)FPGA編寫的 RTL(Register-Transfer Level,寄存器傳輸級(jí))代碼,與普通的通過硬件描述語言設(shè)計(jì)電 路一致。
[0100] 10分配信息可以是設(shè)計(jì)RTL代碼時(shí)的頂層端口分配到FPGA的10上的信息,由于 FPGA是實(shí)現(xiàn)在MCU芯片上的,F(xiàn)PGA的10最終是通過MCU芯片的10,或者,通過MCU芯片內(nèi) 部配置到FPGA 10的關(guān)鍵信號(hào)來實(shí)現(xiàn)。
[0101] 現(xiàn)場(chǎng)可編程門陣列FPGA器件一般包含大量的LUT (Look-Up-Tab 1 e,查找表), 實(shí)現(xiàn)組合邏輯電路,觸發(fā)器,實(shí)現(xiàn)時(shí)序邏輯電路,還包含一定數(shù)量的Memory (內(nèi)存), DCM (Digital Clock Manager,數(shù)字時(shí)鐘管理器),用于產(chǎn)生時(shí)鐘,乘法器,以及10 buffer (輸 入輸出緩沖器)。
[0102] 將硬件描述信息和10分配信息寫入FPGA器件中,F(xiàn)PGA器件可以組成具有所需功 能的邏輯電路。
[0103] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述預(yù)置的硬件描述信息包括寄存器傳輸級(jí) RTL代碼,在所述將預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場(chǎng)可編程門陣 列FPGA器件中的步驟之前,還包括以下步驟:
[0104] 獲取寄存器傳輸級(jí)RTL代碼;
[0105] 依據(jù)所述寄存器傳輸級(jí)RTL代碼分配所述FPGA器件的10引腳,生成10分配信 息;
[0106] 在FPGA 10分配時(shí),可以是將RTL代碼的頂層端口分配到FPGA的10上。
[0107] 需要注意的是,F(xiàn)PGA器件的10引腳要與MCU芯片的10分配相適應(yīng),例如,在RTL 設(shè)計(jì)的頂層端口上需要用到MCU的系統(tǒng)總線,則這些總線信號(hào),需要分配到FPGA的總線10 上。所謂FPGA的總線10,是指將預(yù)設(shè)好的部分FPGA的10,通過配置寄存器,配置成與系統(tǒng) 總線信號(hào)連接,這樣可實(shí)現(xiàn)通過CPU控制FPGA模塊中的電路。
[0108] 將所述寄存器傳輸級(jí)RTL代碼和10分配信息按照所述FPGA器件的寫入格式進(jìn)行 編譯,生成預(yù)設(shè)的硬件描述信息和10分配信息。
[0109] 作為本發(fā)明具體實(shí)現(xiàn)的一種示例,設(shè)計(jì)好的RTL代碼和10分配信息可以通過FPGA 的編譯工具編譯成用于配置FPGA器件的數(shù)據(jù)信息。
[0110] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述MCU芯片還包括聯(lián)合測(cè)試工作組JTAG, 所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊與聯(lián)合測(cè)試工作組JTAG互連,所述步驟 301具體可以包括以下子步驟:
[0111] 子步驟S11,所述聯(lián)合測(cè)試工作組JTAG接收預(yù)設(shè)的聯(lián)合測(cè)試工作組JTAG下載器發(fā) 送的預(yù)設(shè)的硬件描述信息和10分配信息;所述預(yù)設(shè)的硬件描述信息和10分配信息通過所 述聯(lián)合測(cè)試工作組JTAG下載器下載獲得;
[0112] 作為本發(fā)明具體應(yīng)用的一種示例,JTAG是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議(IEEE1149. 1兼 容),可以用于芯片內(nèi)部測(cè)試。在本發(fā)明實(shí)施例中可以采用JTAG配置下載FPGA器件。
[0113] 聯(lián)合測(cè)試工作組JTAG下載器可以按照國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議的要求下載數(shù)據(jù)信息, 這種下載方式為FPGA器件提供的標(biāo)準(zhǔn)下載方式,可以稱為JTAG下載。
[0114] 聯(lián)合測(cè)試工作組JTAG下載器下載預(yù)設(shè)的硬件描述信息和10分配信息后,通過將 MCU芯片外預(yù)設(shè)的JTAG下載器,連接到MCU芯片中的聯(lián)合測(cè)試工作組JTAG,可以將該預(yù)設(shè) 的硬件描述信息和10分配信息發(fā)送給JTAG。
[0115] 子步驟S12,所述聯(lián)合測(cè)試工作組JTAG將所述預(yù)設(shè)的硬件描述信息和10分配信息 發(fā)送至所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊;
[0116] 聯(lián)合測(cè)試工作組JTAG通過數(shù)據(jù)通路2,即JTAG與FPGA配置信息下載子模塊的數(shù) 據(jù)通路,連接到FPGA配置信息下載子模塊,可以將預(yù)設(shè)的硬件描述信息和10分配信息發(fā)送 至所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊。
[0117] 子步驟S13,所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊接收所述聯(lián)合測(cè)試 工作組JTAG發(fā)送的預(yù)設(shè)的硬件描述信息和10分配信息。
[0118] 通過數(shù)據(jù)通路2,即JTAG與FPGA配置信息下載子模塊的數(shù)據(jù)通路,現(xiàn)場(chǎng)可編程門 陣列FPGA配置信息下載子模塊即可以接收到聯(lián)合測(cè)試工作組JTAG發(fā)送的數(shù)據(jù)信息。
[0119] 需要說明的是,在實(shí)際應(yīng)用中,在MCU芯片外,還可以通過USB轉(zhuǎn)JTAG設(shè)備,例如 J-Link仿真器,J-Link仿真器一端連接USB,另一端連接JTAG,將USB信號(hào)轉(zhuǎn)換成JTAG信 號(hào)接到MCU芯片上,實(shí)現(xiàn)USB配置下載FPGA,或者,通過串口轉(zhuǎn)JTAG設(shè)備,實(shí)現(xiàn)串口配置下 載 FPGA。
[0120] 子步驟S14,所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述預(yù)設(shè)的硬件 描述信息和10分配信息寫入所述FPGA器件。
[0121] 在具體實(shí)現(xiàn)中,現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊通過數(shù)據(jù)通路1,即 FPGA配置信息下載子模塊燒錄FPAG器件的數(shù)據(jù)通路,將所述預(yù)設(shè)的硬件描述信息和10分 配信息寫入所述FPGA器件中,即可以配置FPGA器件。
[0122] 本發(fā)明通過采用聯(lián)合測(cè)試工作組JTAG的方式將數(shù)據(jù)信息燒錄至FPGA器件中,聯(lián) 合測(cè)試工作組JTAG具有配套使用的設(shè)備以保證數(shù)據(jù)信息格式的要求,同時(shí),操作還很簡(jiǎn) 單,方便用戶使用,配套使用的設(shè)備不占用MCU芯片的面積,從而可以降低成本。
[0123] 在本發(fā)明實(shí)施例的另一種優(yōu)選示例中,所述MCU芯片還包括系統(tǒng)總線,所述現(xiàn)場(chǎng) 可編程門陣列FPGA配置信息下載子模塊連接到所述系統(tǒng)總線上,所述步驟301具體可以包 括以下子步驟:
[0124] 子步驟S21,所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊接收所述系統(tǒng)總線 上傳輸?shù)念A(yù)設(shè)的硬件描述信息和10分配信息;
[0125] 在具體實(shí)現(xiàn)中,系統(tǒng)總線上連接了 MCU芯片的CPU等元件,這種通過系統(tǒng)總線配置 FPGA的方式可以稱為軟件下載,即通過CPU或DMA數(shù)據(jù)調(diào)度,從MCU芯片中其他地址空間 (比如SRAM)中將數(shù)據(jù)讀取,通過系統(tǒng)總線,通過數(shù)據(jù)接口 3,即系統(tǒng)總線與FPGA配置信息 下載子模塊的數(shù)據(jù)通路,載入到FPGA配置信息下載子模塊。
[0126] 子步驟S22,將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù) 據(jù)格式的預(yù)設(shè)的硬件描述信息和10分配信息。
[0127] 在FPGA配置信息下載子模塊中,需要將數(shù)據(jù)轉(zhuǎn)化成FPGA器件可配置下載的標(biāo)準(zhǔn) 數(shù)據(jù)格式,即一種符合JTAG協(xié)議的數(shù)據(jù)格式,再通過數(shù)據(jù)通路1,即FPGA配置信息下載子模 塊燒錄FPAG器件的數(shù)據(jù)通路,配置下載FPGA器件。
[0128] 需要說明的是,任意總線地址空間上數(shù)據(jù),均可以配置下載FPGA器件。如果MCU 芯片中設(shè)備集裝置包括SPI,則可實(shí)現(xiàn)SPI下載FPGA,如果設(shè)備集中包括串口,則可實(shí)現(xiàn)串 口下載FPGA,以此類推。
[0129] 子步驟S23,所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格 式的預(yù)設(shè)的硬件描述信息和10分配信息寫入所述FPGA器件。
[0130] 在具體實(shí)現(xiàn)中,現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊通過數(shù)據(jù)通路1,即 FPGA配置信息下載子模塊燒錄FPAG器件的數(shù)據(jù)通路,將所述預(yù)設(shè)的硬件描述信息和10分 配信息寫入所述FPGA器件中,即可以配置FPGA器件。
[0131] 本發(fā)明通過采用系統(tǒng)總線的方式將數(shù)據(jù)信息燒錄至FPGA器件中,使得系統(tǒng)總線 上任意地址空間上的數(shù)據(jù)信息均可以燒錄到FPGA器件中,采用系統(tǒng)總線的方式不需要增 加額外的器件,從而可以降低成本。
[0132] 在本發(fā)明實(shí)施例的另一種優(yōu)選示例中,所述MCU芯片還包括閃存控制器,所述現(xiàn) 場(chǎng)可編程門陣列FPGA配置信息下載子模塊與閃存控制器互連,所述閃存控制器與閃存芯 片互連,所述步驟301具體可以包括以下子步驟:
[0133] 子步驟S31,現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊接收所述閃存控制器傳 輸?shù)念A(yù)設(shè)的硬件描述信息和10分配信息,所述預(yù)設(shè)的硬件描述信息和10分配信息通過所 述閃存控制器讀取所述閃存芯片獲得;
[0134] 在實(shí)際應(yīng)用中,閃存控制器可以連接閃存芯片,閃存芯片具有掉電數(shù)據(jù)信息不丟 失的特點(diǎn),F(xiàn)PGA器件為現(xiàn)場(chǎng)可編程器件,掉電后數(shù)據(jù)信息將丟失,因此,將FPGA的數(shù)據(jù)信息 保存到閃存芯片中,可以達(dá)到數(shù)據(jù)信息掉電不丟失的效果。這種配置FPGA器件的方式可以 稱為閃存下載。
[0135] MCU芯片上電后,閃存控制器自動(dòng)讀取閃存芯片中保存的數(shù)據(jù)信息,通過數(shù)據(jù)通路 4,即閃存控制器與FPGA配置信息下載子模塊的數(shù)據(jù)通路,將數(shù)據(jù)信息載入FPGA配置信息 下載子模塊。
[0136] 需要說明的是,閃存下載需要將預(yù)設(shè)的硬件描述信息和10分配信息通過閃存控 制器擦寫到閃存芯片中,然后MCU芯片重新上電自動(dòng)讀取預(yù)設(shè)的硬件描述信息和10分配信 肩、。
[0137] 子步驟S32,將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù) 據(jù)格式的預(yù)設(shè)的硬件描述信息和10分配信息。
[0138] 子步驟S33,所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格 式的預(yù)設(shè)的硬件描述信息和10分配信息寫入所述FPGA器件。
[0139] 在具體實(shí)現(xiàn)中,MCU芯片上電后,閃存控制器自動(dòng)讀取閃存芯片中保存的預(yù)設(shè)的硬 件描述信息和10分配信息,通過數(shù)據(jù)通路4,即閃存控制器與FPGA配置信息下載子模塊的 數(shù)據(jù)通路,將數(shù)據(jù)信息載入FPGA配置信息下載子模塊,在FPGA配置信息下載子模塊中,需 要將預(yù)設(shè)的硬件描述信息和10分配信息轉(zhuǎn)化成FPGA器件可配置下載的標(biāo)準(zhǔn)數(shù)據(jù)格式,即 一種符合JTAG協(xié)議的數(shù)據(jù)格式,再通過數(shù)據(jù)通路1,即FPGA配置信息下載子模塊燒錄FPAG 器件的數(shù)據(jù)通路,配置下載FPGA器件。
[0140] 本發(fā)明通過采用閃存控制器的方式將數(shù)據(jù)信息燒錄至FPGA器件中,燒錄的過程 為MCU芯片自動(dòng)執(zhí)行,不需要用戶做任何操作,由于閃存芯片具有斷電數(shù)據(jù)信息不丟失的 特點(diǎn),因此,可以在斷電的情況下保存數(shù)據(jù)信息。
[0141] 子步驟A102,依據(jù)所述硬件描述信息生成對(duì)應(yīng)的軟件驅(qū)動(dòng)程序;
[0142] 在實(shí)際應(yīng)用中,硬件電路需要與軟件驅(qū)動(dòng)程序配合才能正常工作。
[0143] 子步驟A103,依據(jù)所述10分配信息配置所述FPGA器件的10引腳;
[0144] 在具體實(shí)現(xiàn)中,在軟件驅(qū)動(dòng)程序設(shè)計(jì)中,10的配置需要與10分配信息配合。例如: 10分配信息中,將RTL代碼的總線信號(hào)分配到FPGA器件的總線10部分,則在軟件驅(qū)動(dòng)程序 設(shè)計(jì)時(shí),需要將FPGA器件的總線10通過FPGA 10配置子模塊配置成與系統(tǒng)總線連接。
[0145] 子步驟A104,將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;
[0146] 軟件驅(qū)動(dòng)程序可以通過系統(tǒng)總線載入到MCU芯片中。
[0147] 子步驟A105,對(duì)所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序;
[0148] 當(dāng)RTL代碼和軟件驅(qū)動(dòng)程序都準(zhǔn)備好,并載入到MCU芯片中時(shí),MCU芯片需要進(jìn) 行一次系統(tǒng)復(fù)位,讓軟件驅(qū)動(dòng)程序從起始位置開始執(zhí)行,系統(tǒng)總線讀取軟件驅(qū)動(dòng)程序到CPU 中,CPU執(zhí)行每條指令。。在實(shí)際應(yīng)用中,系統(tǒng)復(fù)位將CPU的指針指向0地址,程序從0地址 開始執(zhí)行軟件驅(qū)動(dòng)程序。
[0149] 需要說明的是,在實(shí)際的MCU芯片中,有一些特殊寄存器,以及記錄實(shí)際時(shí)間的 RTC (Real-Time Clock,實(shí)時(shí)時(shí)鐘)等沒有復(fù)位。
[0150] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,MCU芯片還包括靜態(tài)隨機(jī)存儲(chǔ)器SRAM,所述 SRAM連接在所述系統(tǒng)總線上,所述子步驟A104具體可以包括:
[0151] 子步驟S41,將所述軟件驅(qū)動(dòng)程序載入到所述SRAM ;
[0152] 當(dāng)MCU芯片中存在SRAM (Static Random Access Memory,靜態(tài)隨機(jī)存儲(chǔ)器)時(shí),可 以將軟件驅(qū)動(dòng)程序載入到所述SRAM。
[0153] SRAM 為標(biāo)準(zhǔn) IP 核(Intellectual Property Core,知識(shí)產(chǎn)權(quán)核)。SRAM -般用于 存儲(chǔ)數(shù)據(jù),斷電后數(shù)據(jù)丟失,讀寫速度快,可實(shí)時(shí)讀寫。在本發(fā)明實(shí)施例中可以當(dāng)做內(nèi)存使 用,存放CPU運(yùn)行中臨時(shí)數(shù)據(jù),以及其他一些暫存數(shù)據(jù),還可以復(fù)用成FPGA的SRAM使用。當(dāng) FPGA需要用到SRAM,將其中部分空間當(dāng)做FPGA的SRAM使用,這樣在實(shí)現(xiàn)FPGA器件時(shí),可 以不需要實(shí)現(xiàn)SRAM,以減小面積,節(jié)約資源。
[0154] 所述子步驟A105具體可以包括以下子步驟:
[0155] 子步驟S51,對(duì)所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述SRAM開始執(zhí)行所述軟件驅(qū)動(dòng)程 序。
[0156] 當(dāng)軟件驅(qū)動(dòng)程序載入到MCU芯片的SRAM時(shí),軟件驅(qū)動(dòng)程序從SRAM開始執(zhí)行。
[0157] 在本發(fā)明實(shí)施例的另一種優(yōu)選示例中,所述MCU芯片還包括閃存芯片,所述子步 驟A104具體可以包括如下子步驟:
[0158] 子步驟S61,將所述軟件驅(qū)動(dòng)程序載入到所述閃存芯片中;
[0159] 閃存芯片,具有可讀,可擦寫,斷電數(shù)據(jù)不丟失的特點(diǎn),但讀寫速度慢,并且大部分 時(shí)間是在讀取數(shù)據(jù),在MCU芯片中主要用于程序存儲(chǔ)以及一些常量數(shù)據(jù)的存儲(chǔ),在本發(fā)明 實(shí)施例中,閃存芯片還可以用于存儲(chǔ)FPGA器件的軟件驅(qū)動(dòng)程序。
[0160] 閃存芯片與閃存控制器相連,閃存控制器連接在系統(tǒng)總線上,因此,軟件驅(qū)動(dòng)程序 可以通過系統(tǒng)總線傳輸?shù)介W存控制器中,再通過閃存控制器與閃存芯片的通路載入到閃存 芯片中。
[0161] 所述子步驟A105具體可以包括以下子步驟:
[0162] 子步驟S71,對(duì)所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述閃存芯片開始執(zhí)行所述軟件驅(qū) 動(dòng)程序。
[0163] 當(dāng)軟件驅(qū)動(dòng)程序?qū)懭氲介W存芯片時(shí),軟件驅(qū)動(dòng)程序從閃存芯片開始執(zhí)行。
[0164] 子步驟A106,執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),獲得調(diào)試正確的結(jié) 果;
[0165] 在具體實(shí)現(xiàn)中,可以通過一些測(cè)試手段檢查硬件與軟件的行為是否正確,執(zhí)行軟 件驅(qū)動(dòng)程序后的輸出結(jié)果根據(jù)軟件驅(qū)動(dòng)程序的內(nèi)容而定,例如,I2C的軟件驅(qū)動(dòng)程序中,CPU 執(zhí)行程序后,通過系統(tǒng)總線配置10,設(shè)置I2C的時(shí)鐘復(fù)位,以及I2C外設(shè)本身的寄存器等,設(shè) 置完成之后啟動(dòng)I2C開始數(shù)據(jù)傳輸,測(cè)試手段包括傳輸?shù)臄?shù)據(jù)是否正確來確定。
[0166] 需要說明的是,MCU芯片中FPGA模塊的調(diào)試和檢測(cè)錯(cuò)誤可以根據(jù)軟件驅(qū)動(dòng)程序 設(shè)計(jì)的內(nèi)容,自主確定調(diào)試和檢測(cè)錯(cuò)誤的方式。FPGA模塊還可以通過一些仿真軟件(如 ModelSim)等手段協(xié)助調(diào)試。
[0167] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述硬件描述信息出現(xiàn)錯(cuò)誤時(shí),則修改對(duì)應(yīng) 的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場(chǎng) 可編程門陣列FPGA器件中的步驟;
[0168] 如果硬件的行為有錯(cuò)誤,則需要對(duì)硬件描述信息進(jìn)行修改,修改完成后,返回到將 預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場(chǎng)可編程門陣列FPGA器件中的步 驟,重新進(jìn)行一次調(diào)試流程。
[0169] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對(duì)應(yīng)的軟件 驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中的步驟。
[0170] 如果軟件的行為有錯(cuò)誤,則需要對(duì)軟件驅(qū)動(dòng)程序進(jìn)行修改,修改完成后,返回到將 所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中的步驟,重新進(jìn)行一次調(diào)試流程。
[0171] 子步驟A107,將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
[0172] 當(dāng)硬件和軟件所有的行為均正確之后,將硬件描述信息和軟件驅(qū)動(dòng)程序下載到閃 存芯片保存,其中,可以將信息硬件描述信息保存到閃存芯片中的FPGA配置信息下載空 間,將軟件驅(qū)動(dòng)程序保存到閃存芯片中的程序數(shù)據(jù)信息空間。由于閃存芯片斷電數(shù)據(jù)不丟 失,因此在下次上電后自動(dòng)執(zhí)行程序,自動(dòng)將硬件描述信息和軟件驅(qū)動(dòng)程序燒錄到FPGA器 件中。
[0173] 需要說明的是,所述閃存芯片中讀取的預(yù)置的程序數(shù)據(jù)信息可以不僅僅包括調(diào)試 時(shí)的軟件驅(qū)動(dòng)程序,調(diào)試時(shí)的軟件驅(qū)動(dòng)程序一般比較簡(jiǎn)單,只包含了配合FPGA器件中功能 實(shí)現(xiàn)的部分。實(shí)際應(yīng)用時(shí)調(diào)試FPGA器件的軟件驅(qū)動(dòng)程序可能只是整體的一小部分,另外可 能還包括驅(qū)動(dòng)整個(gè)MCU芯片所有外設(shè)的驅(qū)動(dòng)程序,具體需要根據(jù)實(shí)際的應(yīng)用場(chǎng)景去確定。
[0174] 步驟302,讀取所述閃存芯片中預(yù)置的硬件描述信息;
[0175] 在實(shí)際應(yīng)用中,閃存控制器在上電后自動(dòng)讀取閃存芯片中預(yù)置的硬件描述信息。
[0176] 步驟303,將所述硬件描述信息燒錄至所述FPGA器件中;
[0177] 在具體實(shí)現(xiàn)中,將硬件描述信息燒錄至所述FPGA器件中即將所需要的功能燒錄 到FPGA器件中。
[0178] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述現(xiàn)場(chǎng)可編程門陣列模塊包括所述現(xiàn)場(chǎng)可 編程門陣列FPGA配置信息下載子模塊,所述FPGA配置信息下載子模塊與閃存控制器互連, 所述閃存控制器與閃存芯片互連,所述步驟304具體可以包括以下子步驟:
[0179] 子步驟B201,所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊接收所述閃存控 制器傳輸?shù)挠布枋鲂畔ⅲ?br>
[0180] 子步驟B202,所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述硬件描述 信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的硬件描述信息;
[0181] 子步驟B203,所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述硬件描述 信息寫入所述FPGA器件。
[0182] 在具體實(shí)現(xiàn)中,閃存控制器自動(dòng)讀取閃存芯片中保存的預(yù)設(shè)的硬件描述信息,通 過數(shù)據(jù)通路4,即閃存控制器與FPGA配置信息下載子模塊的數(shù)據(jù)通路,將硬件描述信息載 入FPGA配置信息下載子模塊,在FPGA配置信息下載子模塊中,需要將預(yù)設(shè)的硬件描述信息 轉(zhuǎn)化成FPGA器件可配置下載的標(biāo)準(zhǔn)數(shù)據(jù)格式,即一種符合JTAG協(xié)議的數(shù)據(jù)格式,再通過數(shù) 據(jù)通路1,即FPGA配置信息下載子模塊燒錄FPAG器件的數(shù)據(jù)通路,配置下載FPGA器件。
[0183] 本發(fā)明通過閃存芯片將硬件描述信息燒錄至FPGA器件中,由于閃存芯片具有掉 電數(shù)據(jù)信息不丟失的特點(diǎn),因此,F(xiàn)PGA器件在掉電后,硬件描述信息不會(huì)丟失,進(jìn)一步提高 了 FGPA器件的穩(wěn)定性。
[0184] 步驟304,將所述FPGA器件進(jìn)行復(fù)位處理;
[0185] 在配置好FPGA器件之后,需要進(jìn)行FPGA器件復(fù)位,因?yàn)榇藭r(shí)FPGA器件中電路的 狀態(tài)是不確定的,需要通過對(duì)FPGA器件復(fù)位將電路的狀態(tài)復(fù)位到初始值。注意此步驟僅僅 對(duì)FPGA器件復(fù)位,而不是整個(gè)MCU芯片復(fù)位。
[0186] 步驟305,所述MCU芯片采用所述FPGA執(zhí)行所述程序數(shù)據(jù)信息。
[0187] 在具體應(yīng)用中,當(dāng)FPGA器件復(fù)位后,工作前的準(zhǔn)備工作都已就緒,CPU開始從程序 數(shù)據(jù)信息的起始位置執(zhí)行程序數(shù)據(jù)信息。
[0188] 例如:系統(tǒng)總線自動(dòng)將程序數(shù)據(jù)信息讀取到CPU中,CPU運(yùn)行程序數(shù)據(jù)信息的每條 指令,實(shí)現(xiàn)軟件程序設(shè)計(jì)者的意圖,配置相應(yīng)外設(shè)寄存器,狀態(tài)等信息,以及發(fā)送外設(shè)的開 始結(jié)束指令,以驅(qū)動(dòng)外設(shè)的運(yùn)行。在實(shí)際MCU芯片實(shí)現(xiàn)中,程序數(shù)據(jù)信息的執(zhí)行各有不同, CPU復(fù)位后默認(rèn)從0地址執(zhí)行,即將0地址上的數(shù)據(jù)讀取到CPU中執(zhí)行,如果從閃存中運(yùn)行, 則將0地址映射到閃存的開始位置上。
[0189] 整個(gè)流程均是自動(dòng)完成的,對(duì)用戶時(shí)不可見的,所以對(duì)用戶來說,F(xiàn)PGA器件已經(jīng)燒 錄成特定的專用電路了,與MCU芯片中其他電路沒有區(qū)別了,與MCU中的其他電路一樣正常 運(yùn)行。
[0190] 本發(fā)明通過在FPGA調(diào)試完成后將硬件描述信息燒錄至FPGA器件中,確保了硬件 描述信息完整無誤,提高了 FPGA器件的穩(wěn)定性,同時(shí),通過配置FPGA模塊的10與MCU芯片 中其他部分信號(hào)連接,這樣有效的共用了 MCU芯片的電路,減小了 FPGA器件的面積,降低了 成本,減少了浪費(fèi)同時(shí)也使得FPGA中的電路和MCU芯片其他部分電路協(xié)同工作。
[0191] 需要說明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組 合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐?據(jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該 知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施 例所必須的。
[0192] 參照?qǐng)D4,示出了本發(fā)明一種FPGA在MCU芯片中工作的裝置實(shí)施例的結(jié)構(gòu)框圖,所 述微控制單元MCU芯片中集成有現(xiàn)場(chǎng)可編程門陣列FPGA模塊和閃存芯片,所述現(xiàn)場(chǎng)可編程 門陣列模塊包括現(xiàn)場(chǎng)可編程門陣列FPGA器件,具體可以包括如下模塊:
[0193] 程序數(shù)據(jù)信息讀取單元401,用于在現(xiàn)場(chǎng)可編程門陣列FPGA調(diào)試完成,并且,給微 控制單元MCU芯片上電后,讀取所述閃存芯片中預(yù)置的程序數(shù)據(jù)信息;
[0194] 硬件描述信息讀取單元402,用于讀取所述閃存芯片中預(yù)置的硬件描述信息;
[0195] 硬件描述信息燒錄單元403,用于將所述硬件描述信息燒錄至所述FPGA器件中;
[0196] FPGA器件復(fù)位單元404,用于將所述FPGA器件進(jìn)行復(fù)位處理;
[0197] 程序數(shù)據(jù)信息執(zhí)行單元405,用于所述MCU芯片采用所述FPGA執(zhí)行所述程序數(shù)據(jù) 信息。
[0198] 在本發(fā)明的一種優(yōu)選示例中,所述裝置包括:
[0199] 信息寫入單元,用于將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場(chǎng)可編程門陣 列FPGA器件中;
[0200] 軟件驅(qū)動(dòng)程序生成單元,用于依據(jù)所述硬件描述信息生成對(duì)應(yīng)的軟件驅(qū)動(dòng)程序;
[0201] 10引腳配置單元,用于依據(jù)所述10分配信息配置所述FPGA器件的10引腳;
[0202] 軟件驅(qū)動(dòng)程序載入單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;
[0203] 軟件驅(qū)動(dòng)程序執(zhí)行單元,用于對(duì)所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng) 程序;
[0204] 調(diào)試正確處理結(jié)果獲得單元,用于執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí), 獲得調(diào)試正確的處理結(jié)果;
[0205] 保存單元,用于將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
[0206] 在本發(fā)明的一種優(yōu)選示例中,所述裝置還包括:
[0207] 硬件描述信息出錯(cuò)單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí), 若硬件描述信息出現(xiàn)錯(cuò)誤,則修改對(duì)應(yīng)的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件描述信息 和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場(chǎng)可編程門陣列FPGA器件中的子步驟。
[0208] 在本發(fā)明的一種優(yōu)選示例中,所述裝置還包括:
[0209] 軟件驅(qū)動(dòng)程序出錯(cuò)單元,用于執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),若 軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對(duì)應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū)動(dòng)程序載入 到所述MCU芯片中的子步驟。
[0210] 在本發(fā)明的一種優(yōu)選示例中,所述現(xiàn)場(chǎng)可編程門陣列模塊包括所述現(xiàn)場(chǎng)可編程門 陣列FPGA配置信息下載子模塊,所述FPGA配置信息下載子模塊與閃存控制器互連,所述閃 存控制器與閃存芯片互連,所述硬件描述信息燒錄單元包括:
[0211] 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊的硬件描述信息接收子單元, 用于接收所述閃存控制器傳輸?shù)挠布枋鲂畔ⅲ?br>
[0212] 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊的格式化子單元,用于將所述 硬件描述信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的硬件描述信息;
[0213] 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊信息寫入子單元,用于將所述 硬件描述信息寫入所述FPGA器件。
[0214] 對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān) 之處參見方法實(shí)施例的部分說明即可。
[0215] 本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與 其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0216] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算 機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和 硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可 用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上 實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0217] 本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序 產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框 圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商?供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理 終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處 理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多 個(gè)方框中指定的功能的裝置。
[0218] 這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備 以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包 括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方 框或多個(gè)方框中指定的功能。
[0219] 這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得 在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在 計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程 和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0220] 盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基 本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為 包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
[0221] 最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體意 在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包 括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品 或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句"包括一個(gè)……"限定的要 素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
[0222] 以上對(duì)本發(fā)明所提供的一種FPGA在MCU芯片中工作的方法和裝置,進(jìn)行了詳細(xì)介 紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只 是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā) 明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理 解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1. 一種FPGA在MCU芯片中工作的方法,其特征在于,所述微控制單元MCU芯片中集成 有現(xiàn)場(chǎng)可編程門陣列FPGA模塊和閃存芯片,所述現(xiàn)場(chǎng)可編程門陣列模塊包括現(xiàn)場(chǎng)可編程 門陣列FPGA器件和現(xiàn)場(chǎng)可編程門陣列FPGA 10配置子模塊,所述FPGA 10配置子模塊與MCU 芯片中的所有元件分別相連,所述方法包括: 當(dāng)現(xiàn)場(chǎng)可編程門陣列FPGA器件調(diào)試完成,并且,給微控制單元MCU芯片上電后,讀取所 述閃存芯片中預(yù)置的程序數(shù)據(jù)信息; 讀取所述閃存芯片中預(yù)置的硬件描述信息; 將所述硬件描述信息燒錄至所述FPGA器件中; 將所述FPGA器件進(jìn)行復(fù)位處理; 所述MCU芯片采用所述FPGA執(zhí)行所述程序數(shù)據(jù)信息。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述現(xiàn)場(chǎng)可編程門陣列FPGA調(diào)試完成的 步驟包括: 將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場(chǎng)可編程門陣列FPGA器件中; 依據(jù)所述硬件描述信息生成對(duì)應(yīng)的軟件驅(qū)動(dòng)程序; 依據(jù)所述10分配信息配置所述FPGA器件的10引腳; 將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中; 對(duì)所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序; 執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),則獲得調(diào)試正確的處理結(jié)果; 將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),若硬件描述信息出現(xiàn)錯(cuò)誤,則修改 對(duì)應(yīng)的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入 現(xiàn)場(chǎng)可編程門陣列FPGA器件中的子步驟。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),若軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改 對(duì)應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中的子步驟。
5. 根據(jù)權(quán)利要求1或2或3或4所述的方法,其特征在于,所述現(xiàn)場(chǎng)可編程門陣列模塊 包括所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊,所述FPGA配置信息下載子模塊與 閃存控制器互連,所述閃存控制器與閃存芯片互連,所述將所述硬件描述信息燒錄至所述 FPGA器件中的步驟包括: 所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊接收所述閃存控制器傳輸?shù)挠布?述信息; 所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述硬件描述信息進(jìn)行格式化, 生成標(biāo)準(zhǔn)數(shù)據(jù)格式的硬件描述信息; 所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊將所述硬件描述信息寫入所述FPGA 器件。
6. -種FPGA在MCU芯片中工作的裝置,其特征在于,所述微控制單元MCU芯片中集成 有現(xiàn)場(chǎng)可編程門陣列FPGA模塊和閃存芯片,所述現(xiàn)場(chǎng)可編程門陣列模塊包括現(xiàn)場(chǎng)可編程 門陣列FPGA器件,所述裝置包括: 程序數(shù)據(jù)信息讀取單元,用于在現(xiàn)場(chǎng)可編程門陣列FPGA調(diào)試完成,并且,給微控制單 元MCU芯片上電后,讀取所述閃存芯片中預(yù)置的程序數(shù)據(jù)信息; 硬件描述信息讀取單元,用于讀取所述閃存芯片中預(yù)置的硬件描述信息; 硬件描述信息燒錄單元,用于將所述硬件描述信息燒錄至所述FPGA器件中; FPGA器件復(fù)位單元,用于將所述FPGA器件進(jìn)行復(fù)位處理; 程序數(shù)據(jù)信息執(zhí)行單元,用于所述MCU芯片采用所述FPGA執(zhí)行所述程序數(shù)據(jù)信息。
7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置包括: 信息寫入單元,用于將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場(chǎng)可編程門陣列 FPGA器件中; 軟件驅(qū)動(dòng)程序生成單元,用于依據(jù)所述硬件描述信息生成對(duì)應(yīng)的軟件驅(qū)動(dòng)程序; 10引腳配置單元,用于依據(jù)所述10分配信息配置所述FPGA器件的10引腳; 軟件驅(qū)動(dòng)程序載入單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中; 軟件驅(qū)動(dòng)程序執(zhí)行單元,用于對(duì)所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序; 調(diào)試正確處理結(jié)果獲得單元,用于執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),獲得 調(diào)試正確的處理結(jié)果; 保存單元,用于將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 硬件描述信息出錯(cuò)單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),若硬 件描述信息出現(xiàn)錯(cuò)誤,則修改對(duì)應(yīng)的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件描述信息和10 分配信息按照預(yù)置規(guī)則寫入現(xiàn)場(chǎng)可編程門陣列FPGA器件中的子步驟。
9. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 軟件驅(qū)動(dòng)程序出錯(cuò)單元,用于執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),若軟件 驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對(duì)應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū)動(dòng)程序載入到所 述MCU芯片中的子步驟。
10. 根據(jù)權(quán)利要求6或7或8或9所述的裝置,其特征在于,所述現(xiàn)場(chǎng)可編程門陣列模 塊包括所述現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊,所述FPGA配置信息下載子模塊 與閃存控制器互連,所述閃存控制器與閃存芯片互連,所述硬件描述信息燒錄單元包括: 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊的硬件描述信息接收子單元,用于 接收所述閃存控制器傳輸?shù)挠布枋鲂畔ⅲ? 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊的格式化子單元,用于將所述硬件 描述信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的硬件描述信息; 位于現(xiàn)場(chǎng)可編程門陣列FPGA配置信息下載子模塊信息寫入子單元,用于將所述硬件 描述信息寫入所述FPGA器件。
【文檔編號(hào)】G06F11/26GK104050067SQ201410223004
【公開日】2014年9月17日 申請(qǐng)日期:2014年5月23日 優(yōu)先權(quán)日:2014年5月23日
【發(fā)明者】王南飛, 李寶魁 申請(qǐng)人:北京兆易創(chuàng)新科技股份有限公司