在mcu芯片中調(diào)試fpga的方法和裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供了一種在MCU芯片中調(diào)試FPGA的方法和裝置,所述微控制單元MCU芯片中集成有現(xiàn)場可編程門陣列FPGA模塊,所述現(xiàn)場可編程門陣列FPGA模塊包括現(xiàn)場可編程門陣列FPGA器件,所述方法包括:將預(yù)置的硬件描述信息和IO分配信息寫入現(xiàn)場可編程門陣列FPGA器件中;依據(jù)所述硬件描述信息生成對應(yīng)的軟件驅(qū)動(dòng)程序;依據(jù)所述IO分配信息配置所述FPGA器件的IO引腳;將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序。本發(fā)明可以保證FPGA在MCU芯片中的使用無誤,并且,當(dāng)數(shù)據(jù)信息存在錯(cuò)誤時(shí),可以及時(shí)發(fā)現(xiàn)并解決,使得FPGA可以正常使用,提高FPGA的穩(wěn)定性。
【專利說明】在MCU芯片中調(diào)試FPGA的方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及集成電路【技術(shù)領(lǐng)域】,特別是涉及一種在MCU芯片中調(diào)試FPGA的方法和 一種在MCU芯片中調(diào)試FPGA的裝置。
【背景技術(shù)】
[0002] 隨著集成電路工藝的不斷提高,現(xiàn)場可編程門陣列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)用場景對功能需求不一樣的矛 盾。
[0004] 通常,在FPGA完成所需要的邏輯功能之前,需要將相應(yīng)的數(shù)據(jù)信息燒錄至FPGA 中,以完成所需要的邏輯功能。
[0005] 然而,燒錄好相應(yīng)功能的FPGA集成在MCU芯片上時(shí),F(xiàn)PGA有可能不能發(fā)揮其相應(yīng) 的功能,并且,數(shù)據(jù)信息有可能出現(xiàn)錯(cuò)誤,當(dāng)數(shù)據(jù)信息有誤時(shí),F(xiàn)PGA將不能正常工作,所需要 的邏輯功能也即不能正常發(fā)揮,集成了 FPGA的MCU芯片也將失效,造成FPGA無法使用,以 及使FPGA的穩(wěn)定性差。
[0006] 因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是:提供一種在MCU 芯片中調(diào)試FPGA的方法和裝置,用以保證FPGA在MCU芯片中的使用無誤,并且,當(dāng)數(shù)據(jù)信 息存在錯(cuò)誤時(shí),可以及時(shí)發(fā)現(xiàn)并解決,使得FPGA可以正常使用,提高FPGA的穩(wěn)定性。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種在MCU芯片中調(diào)試FPGA的方法,用 以保證FPGA在MCU芯片中的使用無誤,并且,當(dāng)數(shù)據(jù)信息存在錯(cuò)誤時(shí),可以及時(shí)發(fā)現(xiàn)并解 決,使得FPGA可以正常使用,提高FPGA的穩(wěn)定性。
[0008] 相應(yīng)的,本發(fā)明實(shí)施例還提供了一種在MCU芯片中調(diào)試FPGA的裝置,用以保證上 述方法的實(shí)現(xiàn)及應(yīng)用。
[0009] 為了解決上述問題,本發(fā)明公開了一種在MCU芯片中調(diào)試FPGA的方法,所述微控 制單元MCU芯片中集成有現(xiàn)場可編程門陣列FPGA模塊,所述現(xiàn)場可編程門陣列FPGA模塊 包括現(xiàn)場可編程門陣列FPGA器件,所述方法包括:
[0010] 將預(yù)置的硬件描述信息和1〇分配信息寫入現(xiàn)場可編程門陣列FPGA器件中;
[0011] 依據(jù)所述硬件描述信息生成對應(yīng)的軟件驅(qū)動(dòng)程序;
[0012] 依據(jù)所述10分配信息配置所述FPGA器件的10引腳;
[0013] 將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;
[0014] 對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序。
[0015] 優(yōu)選地,所述方法還包括:
[0016] 當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),則獲得調(diào)試正確的結(jié)果;
[0017] 當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí),
[0018] 若硬件描述信息出現(xiàn)錯(cuò)誤,則修改對應(yīng)的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件 描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場可編程門陣列FPGA器件中的步驟;
[0019] 若軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū) 動(dòng)程序載入到所述MCU芯片中的步驟。
[0020] 優(yōu)選地,所述MCU芯片還包括閃存芯片,在當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié) 果正確時(shí),則獲得調(diào)試正確的結(jié)果的步驟之后,還包括:
[0021] 將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
[0022] 優(yōu)選地,所述預(yù)置的硬件描述信息包括寄存器傳輸級(jí)RTL代碼,在所述將預(yù)置的 硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場可編程門陣列FPGA器件中的步驟之 前,還包括:
[0023] 獲取寄存器傳輸級(jí)RTL代碼;
[0024] 依據(jù)所述寄存器傳輸級(jí)RTL代碼分配所述FPGA器件的10引腳,生成10分配信 息;
[0025] 將所述寄存器傳輸級(jí)RTL代碼和10分配信息按照所述FPGA器件的寫入格式進(jìn)行 編譯,生成預(yù)設(shè)的硬件描述信息和10分配信息。
[0026] 優(yōu)選地,所述MCU芯片還包括靜態(tài)隨機(jī)存儲(chǔ)器SRAM,所述SRAM連接在所述系統(tǒng)總 線上,所述將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中的步驟包括:
[0027] 將所述軟件驅(qū)動(dòng)程序載入到所述SRAM ;
[0028] 所述對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序的步驟包括:
[0029] 對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述SRAM開始執(zhí)行所述軟件驅(qū)動(dòng)程序。
[0030] 優(yōu)選地,所述MCU芯片還包括閃存芯片,所述將所述軟件驅(qū)動(dòng)程序載入到所述MCU 芯片中的步驟包括:
[0031] 將所述軟件驅(qū)動(dòng)程序載入到所述閃存芯片中;
[0032] 所述對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序的步驟包括:
[0033] 對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述閃存芯片開始執(zhí)行所述軟件驅(qū)動(dòng)程序。
[0034] 優(yōu)選地,所述MCU芯片還包括聯(lián)合測試工作組JTAG,所述現(xiàn)場可編程門陣列FPGA 配置信息下載子模塊與聯(lián)合測試工作組JTAG互連,所述將預(yù)置的硬件描述信息和10分配 信息寫入現(xiàn)場可編程門陣列FPGA器件中的步驟包括:
[0035] 所述聯(lián)合測試工作組JTAG接收預(yù)設(shè)的聯(lián)合測試工作組JTAG下載器發(fā)送的預(yù)設(shè)的 硬件描述信息和10分配信息;所述預(yù)設(shè)的硬件描述信息和10分配信息通過所述聯(lián)合測試 工作組JTAG下載器下載獲得;
[0036] 所述聯(lián)合測試工作組JTAG將所述預(yù)設(shè)的硬件描述信息和10分配信息發(fā)送至所述 現(xiàn)場可編程門陣列FPGA配置信息下載子模塊;
[0037] 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述聯(lián)合測試工作組JTAG 發(fā)送的預(yù)設(shè)的硬件描述信息和10分配信息;
[0038] 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述預(yù)設(shè)的硬件描述信息和 10分配信息寫入所述FPGA器件。
[0039] 優(yōu)選地,所述MCU芯片還包括系統(tǒng)總線,所述現(xiàn)場可編程門陣列FPGA配置信息下 載子模塊連接到所述系統(tǒng)總線上,所述將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場可 編程門陣列FPGA器件中的步驟包括:
[0040] 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述系統(tǒng)總線上傳輸?shù)念A(yù) 設(shè)的硬件描述信息和10分配信息;
[0041] 將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù) 設(shè)的硬件描述信息和10分配信息;
[0042] 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的 硬件描述信息和10分配信息寫入所述FPGA器件。
[0043] 優(yōu)選地,所述MCU芯片還包括閃存控制器,所述現(xiàn)場可編程門陣列FPGA配置信息 下載子模塊與閃存控制器互連,所述閃存控制器與閃存芯片互連,所述將預(yù)置的硬件描述 信息和10分配信息寫入現(xiàn)場可編程門陣列FPGA器件中的步驟包括:
[0044] 現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述閃存控制器傳輸?shù)念A(yù)設(shè)的 硬件描述信息和10分配信息,所述預(yù)設(shè)的硬件描述信息和10分配信息通過所述閃存控制 器讀取所述閃存芯片獲得;
[0045] 將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù) 設(shè)的硬件描述信息和10分配信息;
[0046] 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的 硬件描述信息和10分配信息寫入所述FPGA器件。
[0047] 依據(jù)本發(fā)明的實(shí)施例,公開了一種在MCU芯片中調(diào)試FPGA的裝置,所述微控制單 元MCU芯片中集成有現(xiàn)場可編程門陣列FPGA模塊,所述現(xiàn)場可編程門陣列FPGA模塊包括 現(xiàn)場可編程門陣列FPGA器件,所述裝置包括:
[0048] 信息寫入單元,用于將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場可編程門陣 列FPGA器件中;
[0049] 軟件驅(qū)動(dòng)程序生成單元,用于依據(jù)所述硬件描述信息生成對應(yīng)的軟件驅(qū)動(dòng)程序;
[0050] 10引腳配置單元,用于依據(jù)所述10分配信息配置所述FPGA器件的10引腳;
[0051] 軟件驅(qū)動(dòng)程序載入單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;
[0052] 軟件驅(qū)動(dòng)程序執(zhí)行單元,用于對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng) 程序。
[0053] 優(yōu)選地,所述裝置還包括:
[0054] 調(diào)試正確結(jié)果獲得單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),獲 得調(diào)試正確的結(jié)果;
[0055] 硬件描述信息出錯(cuò)單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí), 若硬件描述信息出現(xiàn)錯(cuò)誤,則修改對應(yīng)的硬件描述信息后,跳轉(zhuǎn)至信息寫入單元;
[0056] 軟件驅(qū)動(dòng)程序出錯(cuò)單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí), 若軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至軟件驅(qū)動(dòng)程序載入單元。
[0057] 優(yōu)選地,所述MCU芯片還包括閃存芯片,所述裝置還包括:
[0058] 信息保存單元,用于將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片 中。
[0059] 在本發(fā)明的一種優(yōu)選示例中,所述裝置還包括:
[0060] 代碼獲取單元,用于獲取寄存器傳輸級(jí)RTL代碼;
[0061] 10分配信息生成單元,用于依據(jù)所述寄存器傳輸級(jí)RTL代碼分配所述FPGA器件的 10引腳,生成10分配信息;
[0062] 編譯單元,用于將所述寄存器傳輸級(jí)RTL代碼和10分配信息按照所述FPGA器件 的寫入格式進(jìn)行編譯,生成預(yù)設(shè)的硬件描述信息和10分配信息。
[0063] 優(yōu)選地,所述MCU芯片還包括靜態(tài)隨機(jī)存儲(chǔ)器SRAM,所述SRAM連接在所述系統(tǒng)總 線上,所述軟件驅(qū)動(dòng)程序載入單元包括:
[0064] 第一軟件驅(qū)動(dòng)程序載入子單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述SRAM ;
[0065] 所述軟件驅(qū)動(dòng)程序執(zhí)行單元包括:
[0066] 第一軟件驅(qū)動(dòng)程序執(zhí)行子單元,用于對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述SRAM 開始執(zhí)行所述軟件驅(qū)動(dòng)程序。
[0067] 優(yōu)選地,所述MCU芯片還包括閃存芯片,所述軟件驅(qū)動(dòng)程序載入單元包括:
[0068] 第二軟件驅(qū)動(dòng)程序載入子單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述閃存芯片 中;
[0069] 所述軟件驅(qū)動(dòng)程序執(zhí)行單元包括:
[0070] 第二軟件驅(qū)動(dòng)程序執(zhí)行子單元,用于對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述閃存 芯片開始執(zhí)行所述軟件驅(qū)動(dòng)程序。
[0071] 優(yōu)選地,所述MCU芯片還包括聯(lián)合測試工作組JTAG,所述現(xiàn)場可編程門陣列FPGA 配置信息下載子模塊與聯(lián)合測試工作組JTAG互連,所述信息寫入單元包括:
[0072] 位于聯(lián)合測試工作組JTAG側(cè)的第一信息接收子單元,用于所述聯(lián)合測試工作組 JTAG接收預(yù)設(shè)的聯(lián)合測試工作組JTAG下載器發(fā)送的預(yù)設(shè)的硬件描述信息和10分配信息; 所述預(yù)設(shè)的硬件描述信息和10分配信息通過所述聯(lián)合測試工作組JTAG下載器下載獲得;
[0073] 位于聯(lián)合測試工作組JTAG側(cè)的第一信息發(fā)送子單元,用于將所述預(yù)設(shè)的硬件描 述信息和10分配信息發(fā)送至所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊;
[0074] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊側(cè)的第一信息接收子單元,用 于接收所述聯(lián)合測試工作組JTAG發(fā)送的預(yù)設(shè)的硬件描述信息和10分配信息;
[0075] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊側(cè)的第一信息寫入子單元,用 于將所述預(yù)設(shè)的硬件描述信息和10分配信息寫入所述FPGA器件。
[0076] 優(yōu)選地,所述MCU芯片還包括系統(tǒng)總線,所述現(xiàn)場可編程門陣列FPGA配置信息下 載子模塊連接到所述系統(tǒng)總線上,所述信息寫入單元包括:
[0077] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第二信息接收子單元,用于 接收所述系統(tǒng)總線上傳輸?shù)念A(yù)設(shè)的硬件描述信息和10分配信息;
[0078] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第一信息格式化子單元,用 于將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬 件描述信息和10分配信息;
[0079] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第二信息寫入子單元,用于 將所述標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬件描述信息和10分配信息寫入所述FPGA器件。
[0080] 優(yōu)選地,所述MCU芯片還包括閃存控制器,所述現(xiàn)場可編程門陣列FPGA配置信 息下載子模塊與閃存控制器互連,所述閃存控制器與閃存芯片互連,所述信息寫入單元包 括:
[0081] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第三信息接收子單元,用于 接收所述閃存控制器傳輸?shù)念A(yù)設(shè)的硬件描述信息和10分配信息,所述預(yù)設(shè)的硬件描述信 息和10分配信息通過所述閃存控制器讀取所述閃存芯片獲得;
[0082] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第二信息格式化子單元,用 于將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬 件描述信息和10分配信息;
[0083] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第三信息寫入子單元,用于 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬件描述 信息和10分配信息寫入所述FPGA器件。
[0084] 與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
[0085] 本發(fā)明通過將預(yù)設(shè)的硬件描述信息和10分配信息寫入現(xiàn)場可編程門陣列FPGA 器件后,根據(jù)執(zhí)行該硬件描述信息對應(yīng)的軟件驅(qū)動(dòng)程序后的輸出結(jié)果進(jìn)行調(diào)試,可以保證 預(yù)設(shè)的硬件描述信息及對應(yīng)的軟件驅(qū)動(dòng)程序的準(zhǔn)確性,使得FPGA器件得以正常工作,在 MCU芯片中發(fā)揮燒錄在FPGA器件中的功能,并且,通過調(diào)試可以及時(shí)發(fā)現(xiàn)并解決錯(cuò)誤,減少 FPGA器件在運(yùn)行中出錯(cuò)的概率,提高M(jìn)CU芯片的穩(wěn)定性和準(zhǔn)確性。
[0086] 進(jìn)一步的,本發(fā)明通過采用聯(lián)合測試工作組JTAG的方式將數(shù)據(jù)信息燒錄至FPGA 器件中,聯(lián)合測試工作組JTAG具有配套使用的設(shè)備以保證數(shù)據(jù)信息格式的要求,同時(shí),操 作還很簡單,方便用戶使用,配套使用的設(shè)備不占用MCU芯片的面積,從而可以降低成本。 [0087] 進(jìn)一步的,本發(fā)明通過采用系統(tǒng)總線的方式將數(shù)據(jù)信息燒錄至FPGA器件中,使得 系統(tǒng)總線上任意地址空間上的數(shù)據(jù)信息均可以燒錄到FPGA器件中,采用系統(tǒng)總線的方式 不需要增加額外的器件,從而可以降低成本。
[0088] 更進(jìn)一步的,本發(fā)明通過采用閃存控制器的方式將數(shù)據(jù)信息燒錄至FPGA器件中, 燒錄的過程為MCU芯片自動(dòng)執(zhí)行,不需要用戶做任何操作,由于閃存芯片具有斷電數(shù)據(jù)信 息不丟失的特點(diǎn),因此,可以在斷電的情況下保存數(shù)據(jù)信息。
【專利附圖】
【附圖說明】
[0089] 圖1示出了本發(fā)明一種集成現(xiàn)場可編程門陣列FPGA模塊的微控制單元MCU芯片 的結(jié)構(gòu)圖;
[0090] 圖2示出了本發(fā)明一種微控制單元MCU芯片中現(xiàn)場可編程門陣列FPGA模塊的結(jié) 構(gòu)圖;
[0091] 圖3示出了本發(fā)明一種在MCU芯片中調(diào)試FPGA的方法實(shí)施例的步驟流程圖;
[0092] 圖4示出了本發(fā)明一種在MCU芯片中調(diào)試FPGA的裝置實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0093] 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0094] 參照圖1,示出了本發(fā)明一種集成現(xiàn)場可編程門陣列FPGA模塊的微控制單元MCU 芯片的結(jié)構(gòu)圖。
[0095] 如圖1所示,所述MCU芯片集成有現(xiàn)場可編程門陣列FPGA模塊,所述MCU芯片還 包括:
[0096] CPU、系統(tǒng)總線、芯片10控制模塊以及時(shí)鐘復(fù)位模塊,其中,
[0097] 所述CPU和所述FPGA模塊分別連接在所述系統(tǒng)總線上;所述時(shí)鐘復(fù)位與所述 FPGA模塊互連;
[0098] 在實(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)行的目的。
[0099] 芯片10控制可以是用于控制MCU芯片10用途的模塊,在本發(fā)明實(shí)施例中,芯片10 控制的主要作用可以是將MCU芯片10配置成FPGA的10或者普通的GPIO (General Purpose Input Output) 〇
[0100] 時(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)場可編程 門陣列)所需要的時(shí)鐘和復(fù)位。
[0101] 需要說明的是,在時(shí)鐘復(fù)位中可以預(yù)留一些時(shí)鐘,例如:高頻時(shí)鐘,低頻時(shí)鐘,與 系統(tǒng)同頻時(shí)鐘等,還可以預(yù)留一些可配置的復(fù)位信號(hào)等,連接到FPGA 10配置子模塊中,為 FPGA器件中的邏輯提供時(shí)鐘復(fù)位信號(hào)。
[0102] 此外,系統(tǒng)總線同樣可以預(yù)設(shè)一些保留地址空間,這些地址空間與MCU其他部分 不沖突,這樣CPU可以通過系統(tǒng)總線中的預(yù)設(shè)的保留地址空間訪問FPGA器件中的邏輯。
[0103] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括直接存儲(chǔ)器訪問DMA,所述 DMA連接在所述系統(tǒng)總線上。
[0104] 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芯片中 的重要組成部分。
[0105] 需要說明的是,DMA中預(yù)設(shè)了一些DMA通道,通過將信號(hào)連接到FPGA 10配置模塊, 可以預(yù)留給FPGA模塊使用。
[0106] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括靜態(tài)隨機(jī)存儲(chǔ)器SRAM,所述 SRAM連接在所述系統(tǒng)總線上;所述SRAM與所述閃存控制器互連。
[0107] 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é)約資源。
[0108] 需要說明的是,SRAM在通用的MCU中,通常當(dāng)成內(nèi)存使用,在本發(fā)明實(shí)施例中, SRAM可以復(fù)用成FPGA模塊的SRAM使用。假設(shè)SRAM的總大小為TOP_SIZE ;用戶在FPGA模 塊中需要使用SRAM,則用戶需要分配好FPGA模塊中需要使用SRAM的大小,以及內(nèi)存需要 使用的SRAM大小,總大小不能超過TOP_SIZE。假設(shè)用戶配置FPGA中需要使用SRAM的大小 為 FPGA_SIZE (FPGA_SIZE 小于 TOP_SIZE),則內(nèi)存可使用的 SRAM 大小為 TOP_SIZE 減 FPGA_ SIZE。在MCU芯片的SRAM設(shè)計(jì)實(shí)現(xiàn)時(shí),需要設(shè)計(jì)兩套訪問SRAM的器件,一套用于MCU芯片 訪問內(nèi)存使用,在本發(fā)明實(shí)施例中,用于MCU芯片訪問內(nèi)存時(shí)訪問的地址空間為0?TOP_ SIZE減FPGA_SIZE減1 ;另外一套用于FPGA模塊使用的SRAM,訪問的地址空間為TOP_SIZE 減FPGA_SIZE?TOP_SIZE減1,此套訪問SRAM的信號(hào)連接到FPGA 10配置模塊。通過配置 SRAM與FPGA器件相連接,可以實(shí)現(xiàn)FPGA器件中的邏輯訪問SRAM的功能。如果將FPGA_ SIZE設(shè)置成0,則所有的SRAM都用于內(nèi)存。
[0109] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述MCU芯片還包括聯(lián)合測試工作組JTAG, 所述聯(lián)合測試工作組JTAG與所述FPGA互連。
[0110] JTAG(Joint Test Action Group,聯(lián)合測試工作組),是一種國際標(biāo)準(zhǔn)測試協(xié)議 (IEEE1149. 1兼容),主要用于芯片內(nèi)部測試。在本發(fā)明實(shí)施例中JTAG可以用于配置FPGA 器件。
[0111] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括閃存控制器,所述閃存控制 器與所述FPGA互連。
[0112] 閃存控制器,為閃存芯片與MCU芯片的接口,可以將閃存芯片中的程序數(shù)據(jù)讀取 到MCU芯片中,用于CPU執(zhí)行程序,也可以將FPGA的配置信息讀取到FPGA模塊中,用于配 置FPGA器件。同時(shí),閃存控制器還可以用于擦寫閃存芯片中的數(shù)據(jù)。
[0113] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括閃存芯片,所述閃存芯片與 所述閃存控制器互連。
[0114] 閃存芯片,具有可讀,可擦寫,斷電數(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)。
[0115] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述芯片還包括設(shè)備集,所述設(shè)備集連接在 所述系統(tǒng)總線上。
[0116] 設(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è)的集合。
[0117] 參照圖2,示出了本發(fā)明一種微控制單元MCU芯片中現(xiàn)場可編程門陣列FPGA模塊 的結(jié)構(gòu)圖。
[0118] 如圖2所示,所述FPGA模塊設(shè)置有現(xiàn)場可編程門陣列FPGA器件和現(xiàn)場可編程門 陣列FPGA 10配置子模塊,所述FPGA器件和所述FPGA 10配置子模塊各自包括內(nèi)部10引腳, 所述FPGA器件的內(nèi)部10引腳與所述FPGA 10配置子模塊的內(nèi)部10引腳互連,所述FPGA器 件和所述FPGA 10配置子模塊之間通過互連的內(nèi)部10引腳對進(jìn)行內(nèi)部相互通信;
[0119] 所述FPGA 10配置子模塊與所述芯片10控制對應(yīng)的10引腳相連,所述芯片10控 制連接到預(yù)設(shè)的外接設(shè)備上;
[0120] 所述FPGA器件中的外接信號(hào)通過互連的內(nèi)部10引腳傳輸?shù)剿鯢PGAIO配置子 模塊中,再通過相連的對應(yīng)的10引腳傳輸?shù)剿鲂酒?0控制中,之后傳輸?shù)剿鐾饨釉O(shè)備 中。
[0121] 所述現(xiàn)場可編程門陣列FPGA還包括現(xiàn)場可編程門陣列FPGA配置信息下載子模 塊、配置寄存器,其中,
[0122] 所述FPGA配置信息下載子模塊中10引腳的輸出端與所述FPGA器件中10引腳的 輸入端相連,所述FPGA器件中10引腳的輸出端與所述FPGAIO配置子模塊中10引腳的輸 入端相連,所述配置寄存器中10引腳的輸出端與所述FPGA 10配置子模塊中10引腳的輸入 端相連,所述配置寄存器中10引腳的輸入端連接在所述系統(tǒng)總線上。
[0123] 在具體應(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)該專用邏輯對應(yīng)的專用功能的目的。
[0124] 配置寄存器:主要包括一系列寄存器,由系統(tǒng)總線配置,這些寄存器通過從配置寄 存器到FPGA 10配置子模塊的數(shù)據(jù)通路,對FPGA的10進(jìn)行配置,將FPGA模塊的10與MCU 芯片連接。
[0125] FPGA 10配置模塊與MCU芯片中其他元件的信號(hào)連接可以用于共用MCU芯片中的 部分電路,以減少M(fèi)CU芯片的面積。
[0126] 本發(fā)明實(shí)施例的核心構(gòu)思之一在于,在集成有現(xiàn)場可編程門陣列FPGA的微控制 單元MCU芯片中建立一種調(diào)試機(jī)制,即將預(yù)設(shè)的硬件描述信息和10分配信息寫入現(xiàn)場可編 程門陣列FPGA器件后,根據(jù)執(zhí)行該硬件描述信息對應(yīng)的軟件驅(qū)動(dòng)程序后的輸出結(jié)果進(jìn)行 調(diào)試。因此,可以保證預(yù)設(shè)的硬件描述信息及對應(yīng)的軟件驅(qū)動(dòng)程序的準(zhǔn)確性,使得FPGA器 件得以正常工作,在MCU芯片中發(fā)揮燒錄在FPGA器件中的功能,并且,通過調(diào)試可以及時(shí)發(fā) 現(xiàn)并解決錯(cuò)誤,減少FPGA器件在運(yùn)行中出錯(cuò)的概率,提高M(jìn)CU芯片的穩(wěn)定性和準(zhǔn)確性。
[0127] 參照圖3,示出了本發(fā)明一種在MCU芯片中調(diào)試FPGA的方法實(shí)施例的步驟流程圖, 所述微控制單元MCU芯片中集成有現(xiàn)場可編程門陣列FPGA模塊,所述現(xiàn)場可編程門陣列 FPGA模塊包括現(xiàn)場可編程門陣列FPGA器件,具體可以包括如下步驟:
[0128] 步驟301,將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場可編程門陣列FPGA器件 中;
[0129] 在具體應(yīng)用中,硬件描述信息可以是通過硬件描述語言對FPGA編寫的 RTL(Register-Transfer-Level,寄存器傳輸級(jí))代碼,與普通的通過硬件描述語言設(shè)計(jì)電 路一致。
[0130] 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)。
[0131] 現(xiàn)場可編程門陣列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 (輸 入輸出緩沖器)。
[0132] 將硬件描述信息和10分配信息寫入FPGA器件中,F(xiàn)PGA器件可以組成具有所需功 能的邏輯電路。
[0133] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述預(yù)置的硬件描述信息包括寄存器傳輸級(jí) RTL代碼,在所述將預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場可編程門陣 列FPGA器件中的步驟之前,還包括以下步驟:
[0134] 獲取寄存器傳輸級(jí)RTL代碼;
[0135] 依據(jù)所述寄存器傳輸級(jí)RTL代碼分配所述FPGA器件的10引腳,生成10分配信 息;
[0136] 在FPGA 10分配時(shí),可以是將RTL代碼的頂層端口分配到FPGA的10上。
[0137] 需要注意的是,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模塊中的電路。
[0138] 將所述寄存器傳輸級(jí)RTL代碼和10分配信息按照所述FPGA器件的寫入格式進(jìn)行 編譯,生成預(yù)設(shè)的硬件描述信息和10分配信息。
[0139] 作為本發(fā)明具體實(shí)現(xiàn)的一種示例,設(shè)計(jì)好的RTL代碼和10分配信息可以通過FPGA 的編譯工具編譯成用于配置FPGA器件的數(shù)據(jù)信息。
[0140] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述MCU芯片還包括聯(lián)合測試工作組JTAG, 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊與聯(lián)合測試工作組JTAG互連,所述步驟 301具體可以包括以下子步驟:
[0141] 子步驟S11,所述聯(lián)合測試工作組JTAG接收預(yù)設(shè)的聯(lián)合測試工作組JTAG下載器發(fā) 送的預(yù)設(shè)的硬件描述信息和10分配信息;所述預(yù)設(shè)的硬件描述信息和10分配信息通過所 述聯(lián)合測試工作組JTAG下載器下載獲得;
[0142] 作為本發(fā)明具體應(yīng)用的一種示例,JTAG是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE1149. 1兼 容),可以用于芯片內(nèi)部測試。在本發(fā)明實(shí)施例中可以采用JTAG配置下載FPGA器件。
[0143] 聯(lián)合測試工作組JTAG下載器可以按照國際標(biāo)準(zhǔn)測試協(xié)議的要求下載數(shù)據(jù)信息, 這種下載方式為FPGA器件提供的標(biāo)準(zhǔn)下載方式,可以稱為JTAG下載。
[0144] 聯(lián)合測試工作組JTAG下載器下載預(yù)設(shè)的硬件描述信息和10分配信息后,通過將 MCU芯片外預(yù)設(shè)的JTAG下載器,連接到MCU芯片中的聯(lián)合測試工作組JTAG,可以將該預(yù)設(shè) 的硬件描述信息和10分配信息發(fā)送給JTAG。
[0145] 子步驟S12,所述聯(lián)合測試工作組JTAG將所述預(yù)設(shè)的硬件描述信息和10分配信息 發(fā)送至所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊;
[0146] 聯(lián)合測試工作組JTAG通過數(shù)據(jù)通路2,即JTAG與FPGA配置信息下載子模塊的數(shù) 據(jù)通路,連接到FPGA配置信息下載子模塊,可以將預(yù)設(shè)的硬件描述信息和10分配信息發(fā)送 至所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊。
[0147] 子步驟S13,所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述聯(lián)合測試 工作組JTAG發(fā)送的預(yù)設(shè)的硬件描述信息和10分配信息。
[0148] 通過數(shù)據(jù)通路2,即JTAG與FPGA配置信息下載子模塊的數(shù)據(jù)通路,現(xiàn)場可編程門 陣列FPGA配置信息下載子模塊即可以接收到聯(lián)合測試工作組JTAG發(fā)送的數(shù)據(jù)信息。
[0149] 需要說明的是,在實(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。
[0150] 子步驟S14,所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述預(yù)設(shè)的硬件 描述信息和10分配信息寫入所述FPGA器件。
[0151] 在具體實(shí)現(xiàn)中,現(xiàn)場可編程門陣列FPGA配置信息下載子模塊通過數(shù)據(jù)通路1,即 FPGA配置信息下載子模塊燒錄FPAG器件的數(shù)據(jù)通路,將所述預(yù)設(shè)的硬件描述信息和10分 配信息寫入所述FPGA器件中,即可以配置FPGA器件。
[0152] 本發(fā)明通過采用聯(lián)合測試工作組JTAG的方式將數(shù)據(jù)信息燒錄至FPGA器件中,聯(lián) 合測試工作組JTAG具有配套使用的設(shè)備以保證數(shù)據(jù)信息格式的要求,同時(shí),操作還很簡 單,方便用戶使用,配套使用的設(shè)備不占用MCU芯片的面積,從而可以降低成本。
[0153] 在本發(fā)明實(shí)施例的另一種優(yōu)選示例中,所述MCU芯片還包括系統(tǒng)總線,所述現(xiàn)場 可編程門陣列FPGA配置信息下載子模塊連接到所述系統(tǒng)總線上,所述步驟301具體可以包 括以下子步驟:
[0154] 子步驟S21,所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述系統(tǒng)總線 上傳輸?shù)念A(yù)設(shè)的硬件描述信息和10分配信息;
[0155] 在具體實(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配置信息下載子模塊。
[0156] 子步驟S22,將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù) 據(jù)格式的預(yù)設(shè)的硬件描述信息和10分配信息。
[0157] 在FPGA配置信息下載子模塊中,需要將數(shù)據(jù)轉(zhuǎn)化成FPGA器件可配置下載的標(biāo)準(zhǔn) 數(shù)據(jù)格式,即一種符合JTAG協(xié)議的數(shù)據(jù)格式,再通過數(shù)據(jù)通路1,即FPGA配置信息下載子模 塊燒錄FPAG器件的數(shù)據(jù)通路,配置下載FPGA器件。
[0158] 需要說明的是,任意總線地址空間上數(shù)據(jù),均可以配置下載FPGA器件。如果MCU 芯片中設(shè)備集裝置包括SPI,則可實(shí)現(xiàn)SPI下載FPGA,如果設(shè)備集中包括串口,則可實(shí)現(xiàn)串 口下載FPGA,以此類推。
[0159] 子步驟S23,所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格 式的預(yù)設(shè)的硬件描述信息和10分配信息寫入所述FPGA器件。
[0160] 在具體實(shí)現(xiàn)中,現(xiàn)場可編程門陣列FPGA配置信息下載子模塊通過數(shù)據(jù)通路1,即 FPGA配置信息下載子模塊燒錄FPAG器件的數(shù)據(jù)通路,將所述預(yù)設(shè)的硬件描述信息和10分 配信息寫入所述FPGA器件中,即可以配置FPGA器件。
[0161] 本發(fā)明通過采用系統(tǒng)總線的方式將數(shù)據(jù)信息燒錄至FPGA器件中,使得系統(tǒng)總線 上任意地址空間上的數(shù)據(jù)信息均可以燒錄到FPGA器件中,采用系統(tǒng)總線的方式不需要增 加額外的器件,從而可以降低成本。
[0162] 在本發(fā)明實(shí)施例的另一種優(yōu)選示例中,所述MCU芯片還包括閃存控制器,所述現(xiàn) 場可編程門陣列FPGA配置信息下載子模塊與閃存控制器互連,所述閃存控制器與閃存芯 片互連,所述步驟301具體可以包括以下子步驟:
[0163] 子步驟S31,現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述閃存控制器傳 輸?shù)念A(yù)設(shè)的硬件描述信息和10分配信息,所述預(yù)設(shè)的硬件描述信息和10分配信息通過所 述閃存控制器讀取所述閃存芯片獲得;
[0164] 在實(shí)際應(yīng)用中,閃存控制器可以連接閃存芯片,閃存芯片具有掉電數(shù)據(jù)信息不丟 失的特點(diǎn),F(xiàn)PGA器件為現(xiàn)場可編程器件,掉電后數(shù)據(jù)信息將丟失,因此,將FPGA的數(shù)據(jù)信息 保存到閃存芯片中,可以達(dá)到數(shù)據(jù)信息掉電不丟失的效果。這種配置FPGA器件的方式可以 稱為閃存下載。
[0165] MCU芯片上電后,閃存控制器自動(dòng)讀取閃存芯片中保存的數(shù)據(jù)信息,通過數(shù)據(jù)通路 4,即閃存控制器與FPGA配置信息下載子模塊的數(shù)據(jù)通路,將數(shù)據(jù)信息載入FPGA配置信息 下載子模塊。
[0166] 需要說明的是,閃存下載需要將預(yù)設(shè)的硬件描述信息和10分配信息通過閃存控 制器擦寫到閃存芯片中,然后MCU芯片重新上電自動(dòng)讀取預(yù)設(shè)的硬件描述信息和10分配信 肩、。
[0167] 子步驟S32,將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù) 據(jù)格式的預(yù)設(shè)的硬件描述信息和10分配信息。
[0168] 子步驟S33,所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格 式的預(yù)設(shè)的硬件描述信息和10分配信息寫入所述FPGA器件。
[0169] 在具體實(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器件。
[0170] 本發(fā)明通過采用閃存控制器的方式將數(shù)據(jù)信息燒錄至FPGA器件中,燒錄的過程 為MCU芯片自動(dòng)執(zhí)行,不需要用戶做任何操作,由于閃存芯片具有斷電數(shù)據(jù)信息不丟失的 特點(diǎn),因此,可以在斷電的情況下保存數(shù)據(jù)信息。
[0171] 步驟302,依據(jù)所述硬件描述信息生成對應(yīng)的軟件驅(qū)動(dòng)程序;
[0172] 在實(shí)際應(yīng)用中,硬件電路需要與軟件驅(qū)動(dòng)程序配合才能正常工作。
[0173] 步驟303,依據(jù)所述10分配信息配置所述FPGA器件的10引腳;
[0174] 在具體實(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)總線連接。
[0175] 步驟304,將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;
[0176] 軟件驅(qū)動(dòng)程序可以通過系統(tǒng)總線載入到MCU芯片中。
[0177] 步驟305,對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序;
[0178] 當(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)程序。
[0179] 需要說明的是,在實(shí)際的MCU芯片中,有一些特殊寄存器,以及記錄實(shí)際時(shí)間的 RTC (Real-Time Clock,實(shí)時(shí)時(shí)鐘)等沒有復(fù)位。
[0180] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,MCU芯片還包括靜態(tài)隨機(jī)存儲(chǔ)器SRAM,所述 SRAM連接在所述系統(tǒng)總線上,所述步驟304具體可以包括:
[0181] 子步驟S41,將所述軟件驅(qū)動(dòng)程序載入到所述SRAM ;
[0182] 當(dāng)MCU芯片中存在SRAM (Static Random Access Memory,靜態(tài)隨機(jī)存儲(chǔ)器)時(shí),可 以將軟件驅(qū)動(dòng)程序載入到所述SRAM。
[0183] 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é)約資源。
[0184] 所述步驟305具體可以包括以下子步驟:
[0185] 子步驟S51,對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述SRAM開始執(zhí)行所述軟件驅(qū)動(dòng)程 序。
[0186] 當(dāng)軟件驅(qū)動(dòng)程序載入到MCU芯片的SRAM時(shí),軟件驅(qū)動(dòng)程序從SRAM開始執(zhí)行。
[0187] 在本發(fā)明實(shí)施例的另一種優(yōu)選示例中,所述MCU芯片還包括閃存芯片,所述步驟 304具體可以包括如下子步驟:
[0188] 子步驟S61,將所述軟件驅(qū)動(dòng)程序載入到所述閃存芯片中;
[0189] 閃存芯片,具有可讀,可擦寫,斷電數(shù)據(jù)不丟失的特點(diǎn),但讀寫速度慢,并且大部分 時(shí)間是在讀取數(shù)據(jù),在MCU芯片中主要用于程序存儲(chǔ)以及一些常量數(shù)據(jù)的存儲(chǔ),在本發(fā)明 實(shí)施例中,閃存芯片還可以用于存儲(chǔ)FPGA器件的軟件驅(qū)動(dòng)程序。
[0190] 閃存芯片與閃存控制器相連,閃存控制器連接在系統(tǒng)總線上,因此,軟件驅(qū)動(dòng)程序 可以通過系統(tǒng)總線傳輸?shù)介W存控制器中,再通過閃存控制器與閃存芯片的通路載入到閃存 芯片中。
[0191] 所述步驟305具體可以包括以下子步驟:
[0192] 子步驟S71,對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述閃存芯片開始執(zhí)行所述軟件驅(qū) 動(dòng)程序。
[0193] 當(dāng)軟件驅(qū)動(dòng)程序?qū)懭氲介W存芯片時(shí),軟件驅(qū)動(dòng)程序從閃存芯片開始執(zhí)行。
[0194] 步驟306,執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確,獲得調(diào)試正確的結(jié)果;
[0195] 在具體實(shí)現(xiàn)中,可以通過一些測試手段檢查硬件與軟件的行為是否正確,執(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ù)傳輸,測試手段包括傳輸?shù)臄?shù)據(jù)是否正確來確定。
[0196] 需要說明的是,MCU芯片中FPGA模塊的調(diào)試和檢測錯(cuò)誤可以根據(jù)軟件驅(qū)動(dòng)程序 設(shè)計(jì)的內(nèi)容,自主確定調(diào)試和檢測錯(cuò)誤的方式。FPGA模塊還可以通過一些仿真軟件(如 ModelSim)等手段協(xié)助調(diào)試。
[0197] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,所述硬件描述信息出現(xiàn)錯(cuò)誤時(shí),則修改對應(yīng) 的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場 可編程門陣列FPGA器件中的步驟;
[0198] 如果硬件的行為有錯(cuò)誤,則需要對硬件描述信息進(jìn)行修改,修改完成后,返回到將 預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場可編程門陣列FPGA器件中的步 驟,重新進(jìn)行一次調(diào)試流程。
[0199] 在本發(fā)明實(shí)施例的一種優(yōu)選示例中,軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對應(yīng)的軟件 驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中的步驟。
[0200] 如果軟件的行為有錯(cuò)誤,則需要對軟件驅(qū)動(dòng)程序進(jìn)行修改,修改完成后,返回到將 所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中的步驟,重新進(jìn)行一次調(diào)試流程。
[0201] 步驟307,將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
[0202] 當(dāng)硬件和軟件所有的行為均正確之后,將硬件描述信息和軟件驅(qū)動(dòng)程序下載到閃 存芯片保存,其中,可以將信息硬件描述信息保存到閃存芯片中的FPGA配置信息下載空 間,將軟件驅(qū)動(dòng)程序保存到閃存芯片中的程序數(shù)據(jù)信息空間。由于閃存芯片斷電數(shù)據(jù)不丟 失,因此在下次上電后自動(dòng)執(zhí)行程序,自動(dòng)將硬件描述信息和軟件驅(qū)動(dòng)程序燒錄到FPGA器 件中。
[0203] 本發(fā)明通過將預(yù)設(shè)的硬件描述信息和10分配信息寫入現(xiàn)場可編程門陣列FPGA 器件后,根據(jù)執(zhí)行該硬件描述信息對應(yīng)的軟件驅(qū)動(dòng)程序后的輸出結(jié)果進(jìn)行調(diào)試,可以保證 預(yù)設(shè)的硬件描述信息及對應(yīng)的軟件驅(qū)動(dòng)程序的準(zhǔn)確性,使得FPGA器件得以正常工作,在 MCU芯片中發(fā)揮燒錄在FPGA器件中的功能,并且,通過調(diào)試可以及時(shí)發(fā)現(xiàn)并解決錯(cuò)誤,減少 FPGA器件在運(yùn)行中出錯(cuò)的概率,提高M(jìn)CU芯片的穩(wěn)定性和準(zhǔn)確性。
[0204] 需要說明的是,對于方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(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í)施 例所必須的。
[0205] 參照圖4,示出了本發(fā)明一種在MCU芯片中調(diào)試FPGA的裝置實(shí)施例的結(jié)構(gòu)框圖,所 述微控制單元MCU芯片中集成有現(xiàn)場可編程門陣列FPGA模塊,所述現(xiàn)場可編程門陣列FPGA 模塊包括現(xiàn)場可編程門陣列FPGA器件,具體可以包括如下單元:
[0206] 信息寫入單元401,用于將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場可編程門 陣列FPGA器件中;
[0207] 軟件驅(qū)動(dòng)程序生成單元402,用于依據(jù)所述硬件描述信息生成對應(yīng)的軟件驅(qū)動(dòng)程 序;
[0208] 10引腳配置單元403,用于依據(jù)所述10分配信息配置所述FPGA器件的10引腳;
[0209] 軟件驅(qū)動(dòng)程序載入單元404,用于將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中;
[0210] 軟件驅(qū)動(dòng)程序執(zhí)行單元405,用于對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū) 動(dòng)程序。
[0211] 在本發(fā)明的一種優(yōu)選示例中,所述裝置還可以包括:
[0212] 調(diào)試正確結(jié)果獲得單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),獲 得調(diào)試正確的結(jié)果;
[0213] 硬件描述信息出錯(cuò)單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí), 若硬件描述信息出現(xiàn)錯(cuò)誤,則修改對應(yīng)的硬件描述信息后,跳轉(zhuǎn)至信息寫入單元401 ;
[0214] 軟件驅(qū)動(dòng)程序出錯(cuò)單元,用于在執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí), 若軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至軟件驅(qū)動(dòng)程序載入單元 404。
[0215] 在本發(fā)明的一種優(yōu)選示例中,所述MCU芯片還包括閃存芯片,所述裝置還包括:
[0216] 信息保存單元,用于將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片 中。
[0217] 在本發(fā)明的一種優(yōu)選示例中,所述裝置還包括:
[0218] 代碼獲取單元,用于獲取寄存器傳輸級(jí)RTL代碼;
[0219] 10分配信息生成單元,用于依據(jù)所述寄存器傳輸級(jí)RTL代碼分配所述FPGA器件的 10引腳,生成10分配信息;
[0220] 編譯單元,用于將所述寄存器傳輸級(jí)RTL代碼和10分配信息按照所述FPGA器件 的寫入格式進(jìn)行編譯,生成預(yù)設(shè)的硬件描述信息和10分配信息。
[0221] 在本發(fā)明的一種優(yōu)選示例中,所述MCU芯片還包括靜態(tài)隨機(jī)存儲(chǔ)器SRAM,所述 SRAM連接在所述系統(tǒng)總線上,所述軟件驅(qū)動(dòng)程序載入單元404可以包括:
[0222] 第一軟件驅(qū)動(dòng)程序載入子單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述SRAM ;
[0223] 所述軟件驅(qū)動(dòng)程序執(zhí)行單元405可以包括:
[0224] 第一軟件驅(qū)動(dòng)程序執(zhí)行子單元,用于對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述SRAM 開始執(zhí)行所述軟件驅(qū)動(dòng)程序。
[0225] 在本發(fā)明的一種優(yōu)選示例中,所述MCU芯片還包括閃存芯片,所述軟件驅(qū)動(dòng)程序 載入單元404可以包括:
[0226] 第二軟件驅(qū)動(dòng)程序載入子單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述閃存芯片 中;
[0227] 所述軟件驅(qū)動(dòng)程序執(zhí)行單元405可以包括:
[0228] 第二軟件驅(qū)動(dòng)程序執(zhí)行子單元,用于對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述閃存 芯片開始執(zhí)行所述軟件驅(qū)動(dòng)程序。
[0229] 在本發(fā)明的一種優(yōu)選示例中,所述MCU芯片還包括聯(lián)合測試工作組JTAG,所述現(xiàn) 場可編程門陣列FPGA配置信息下載子模塊與聯(lián)合測試工作組JTAG互連,所述信息寫入單 元401包括:
[0230] 位于聯(lián)合測試工作組JTAG側(cè)的第一信息接收子單元,用于所述聯(lián)合測試工作組 JTAG接收預(yù)設(shè)的聯(lián)合測試工作組JTAG下載器發(fā)送的預(yù)設(shè)的硬件描述信息和10分配信息; 所述預(yù)設(shè)的硬件描述信息和10分配信息通過所述聯(lián)合測試工作組JTAG下載器下載獲得;
[0231] 位于聯(lián)合測試工作組JTAG側(cè)的第一信息發(fā)送子單元,用于將所述預(yù)設(shè)的硬件描 述信息和10分配信息發(fā)送至所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊;
[0232] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊側(cè)的第一信息接收子單元,用 于接收所述聯(lián)合測試工作組JTAG發(fā)送的預(yù)設(shè)的硬件描述信息和10分配信息;
[0233] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊側(cè)的第一信息寫入子單元,用 于將所述預(yù)設(shè)的硬件描述信息和10分配信息寫入所述FPGA器件。
[0234] 在本發(fā)明的一種優(yōu)選示例中,所述MCU芯片還包括系統(tǒng)總線,所述現(xiàn)場可編程門 陣列FPGA配置信息下載子模塊連接到所述系統(tǒng)總線上,所述信息寫入單元401包括:
[0235] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第二信息接收子單元,用于 接收所述系統(tǒng)總線上傳輸?shù)念A(yù)設(shè)的硬件描述信息和10分配信息;
[0236] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第一信息格式化子單元,用 于將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬 件描述信息和10分配信息;
[0237] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第二信息寫入子單元,用于 將所述標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬件描述信息和10分配信息寫入所述FPGA器件。
[0238] 在本發(fā)明的一種優(yōu)選示例中,所述MCU芯片還包括閃存控制器,所述現(xiàn)場可編程 門陣列FPGA配置信息下載子模塊與閃存控制器互連,所述閃存控制器與閃存芯片互連,所 述信息寫入單元401包括:
[0239] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第三信息接收子單元,用于 接收所述閃存控制器傳輸?shù)念A(yù)設(shè)的硬件描述信息和10分配信息,所述預(yù)設(shè)的硬件描述信 息和10分配信息通過所述閃存控制器讀取所述閃存芯片獲得;
[0240] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第二信息格式化子單元,用 于將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬 件描述信息和10分配信息;
[0241] 位于現(xiàn)場可編程門陣列FPGA配置信息下載子模塊的第三信息寫入子單元,用于 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬件描述 信息和10分配信息寫入所述FPGA器件。
[0242] 對于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān) 之處參見方法實(shí)施例的部分說明即可。
[0243] 本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與 其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0244] 本領(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)品的形式。
[0245] 本發(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è)方框中指定的功能的裝置。
[0246] 這些計(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è)方框中指定的功能。
[0247] 這些計(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è)方框中指定的功能的步驟。
[0248] 盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基 本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為 包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
[0249] 最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體意 在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包 括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品 或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句"包括一個(gè)……"限定的要 素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
[0250] 以上對本發(fā)明所提供的一種在MCU芯片中調(diào)試FPGA的方法和裝置,進(jìn)行了詳細(xì)介 紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只 是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā) 明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理 解為對本發(fā)明的限制。
【權(quán)利要求】
1. 一種在MCU芯片中調(diào)試FPGA的方法,其特征在于,所述微控制單元MCU芯片中集成 有現(xiàn)場可編程門陣列FPGA模塊,所述現(xiàn)場可編程門陣列FPGA模塊包括現(xiàn)場可編程門陣列 FPGA器件,所述方法包括: 將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場可編程門陣列FPGA器件中; 依據(jù)所述硬件描述信息生成對應(yīng)的軟件驅(qū)動(dòng)程序; 依據(jù)所述10分配信息配置所述FPGA器件的10引腳; 將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中; 對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),則獲得調(diào)試正確的結(jié)果; 當(dāng)執(zhí)行所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果不正確時(shí), 若硬件描述信息出現(xiàn)錯(cuò)誤,則修改對應(yīng)的硬件描述信息后,跳轉(zhuǎn)至將預(yù)置的硬件描述 信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場可編程門陣列FPGA器件中的步驟; 若軟件驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤,則修改對應(yīng)的軟件驅(qū)動(dòng)程序后,跳轉(zhuǎn)至將所述軟件驅(qū)動(dòng)程 序載入到所述MCU芯片中的步驟。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述MCU芯片還包括閃存芯片,在當(dāng)執(zhí)行 所述軟件驅(qū)動(dòng)程序后的輸出結(jié)果正確時(shí),則獲得調(diào)試正確的結(jié)果的步驟之后,還包括: 將所述硬件描述信息和軟件驅(qū)動(dòng)程序保存到所述閃存芯片中。
4. 根據(jù)權(quán)利要求1或2或3所述的方法,其特征在于,所述預(yù)置的硬件描述信息包括寄 存器傳輸級(jí)RTL代碼,在所述將預(yù)置的硬件描述信息和10分配信息按照預(yù)置規(guī)則寫入現(xiàn)場 可編程門陣列FPGA器件中的步驟之前,還包括: 獲取寄存器傳輸級(jí)RTL代碼; 依據(jù)所述寄存器傳輸級(jí)RTL代碼分配所述FPGA器件的10引腳,生成10分配信息; 將所述寄存器傳輸級(jí)RTL代碼和10分配信息按照所述FPGA器件的寫入格式進(jìn)行編 譯,生成預(yù)設(shè)的硬件描述信息和10分配信息。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述MCU芯片還包括靜態(tài)隨機(jī)存儲(chǔ)器 SRAM,所述SRAM連接在所述系統(tǒng)總線上,所述將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中 的步驟包括: 將所述軟件驅(qū)動(dòng)程序載入到所述SRAM ; 所述對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序的步驟包括: 對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述SRAM開始執(zhí)行所述軟件驅(qū)動(dòng)程序。
6. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述MCU芯片還包括閃存芯片,所述將所 述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中的步驟包括: 將所述軟件驅(qū)動(dòng)程序載入到所述閃存芯片中; 所述對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序的步驟包括: 對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,從所述閃存芯片開始執(zhí)行所述軟件驅(qū)動(dòng)程序。
7. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述MCU芯片還包括聯(lián)合測試工作組 JTAG,所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊與聯(lián)合測試工作組JTAG互連,所述 將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場可編程門陣列FPGA器件中的步驟包括: 所述聯(lián)合測試工作組JTAG接收預(yù)設(shè)的聯(lián)合測試工作組JTAG下載器發(fā)送的預(yù)設(shè)的硬件 描述信息和10分配信息;所述預(yù)設(shè)的硬件描述信息和10分配信息通過所述聯(lián)合測試工作 組JTAG下載器下載獲得; 所述聯(lián)合測試工作組JTAG將所述預(yù)設(shè)的硬件描述信息和10分配信息發(fā)送至所述現(xiàn)場 可編程門陣列FPGA配置信息下載子模塊; 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述聯(lián)合測試工作組JTAG發(fā)送 的預(yù)設(shè)的硬件描述信息和10分配信息; 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述預(yù)設(shè)的硬件描述信息和10分 配信息寫入所述FPGA器件。
8. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述MCU芯片還包括系統(tǒng)總線,所述現(xiàn)場 可編程門陣列FPGA配置信息下載子模塊連接到所述系統(tǒng)總線上,所述將預(yù)置的硬件描述 信息和10分配信息寫入現(xiàn)場可編程門陣列FPGA器件中的步驟包括: 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述系統(tǒng)總線上傳輸?shù)念A(yù)設(shè)的 硬件描述信息和10分配信息; 將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的 硬件描述信息和10分配信息; 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬件 描述信息和10分配信息寫入所述FPGA器件。
9. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述MCU芯片還包括閃存控制器,所述現(xiàn) 場可編程門陣列FPGA配置信息下載子模塊與閃存控制器互連,所述閃存控制器與閃存芯 片互連,所述將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場可編程門陣列FPGA器件中的 步驟包括: 現(xiàn)場可編程門陣列FPGA配置信息下載子模塊接收所述閃存控制器傳輸?shù)念A(yù)設(shè)的硬件 描述信息和10分配信息,所述預(yù)設(shè)的硬件描述信息和10分配信息通過所述閃存控制器讀 取所述閃存芯片獲得; 將所述預(yù)設(shè)的硬件描述信息和10分配信息進(jìn)行格式化,生成標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的 硬件描述信息和10分配信息; 所述現(xiàn)場可編程門陣列FPGA配置信息下載子模塊將所述標(biāo)準(zhǔn)數(shù)據(jù)格式的預(yù)設(shè)的硬件 描述信息和10分配信息寫入所述FPGA器件。
10. -種在MCU芯片中調(diào)試FPGA的裝置,其特征在于,所述微控制單元MCU芯片中集成 有現(xiàn)場可編程門陣列FPGA模塊,所述現(xiàn)場可編程門陣列FPGA模塊包括現(xiàn)場可編程門陣列 FPGA器件,所述裝置包括: 信息寫入單元,用于將預(yù)置的硬件描述信息和10分配信息寫入現(xiàn)場可編程門陣列 FPGA器件中; 軟件驅(qū)動(dòng)程序生成單元,用于依據(jù)所述硬件描述信息生成對應(yīng)的軟件驅(qū)動(dòng)程序; 10引腳配置單元,用于依據(jù)所述10分配信息配置所述FPGA器件的10引腳; 軟件驅(qū)動(dòng)程序載入單元,用于將所述軟件驅(qū)動(dòng)程序載入到所述MCU芯片中; 軟件驅(qū)動(dòng)程序執(zhí)行單元,用于對所述MCU芯片進(jìn)行系統(tǒng)復(fù)位,執(zhí)行所述軟件驅(qū)動(dòng)程序。
【文檔編號(hào)】G06F11/26GK104050068SQ201410223042
【公開日】2014年9月17日 申請日期:2014年5月23日 優(yōu)先權(quán)日:2014年5月23日
【發(fā)明者】王南飛, 李寶魁 申請人:北京兆易創(chuàng)新科技股份有限公司