專利名稱:片上系統(tǒng)及片上系統(tǒng)的硬件可編程器件的配置方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可編程器件技術(shù),尤其涉及一種片上系統(tǒng)及片上系統(tǒng)的硬件可編程器件的配置方法。
背景技術(shù):
片上系統(tǒng)(System-on-a-chip, S0C)指的是在單個芯片上集成一個完整的系統(tǒng),包括中央處理器(CPU)、存儲器、以及外圍電路等,對所有或部分必要的電子電路進行包分 組的技術(shù)。采用SOC的產(chǎn)品一般都采用一顆SOC芯片作為產(chǎn)品系統(tǒng)的主控芯片,SOC芯片通過自帶的硬件IP或者開發(fā)嵌入式軟件這兩種方式實現(xiàn)產(chǎn)品的功能。對于第一種方式,因為是在SOC芯片定制,成本比較低,但是很多功能不能改變,而且產(chǎn)品的技術(shù)保密性比較弱;第二種方式,軟IP能夠滿足個性功能的要求,但是在性能上更加依賴于所選擇的SOC芯片,而高性能的SOC芯片往往價格高昂。所以在這兩個方案的基礎(chǔ)上,又出現(xiàn)了一種新的解決方案,即一顆一般性能SOC芯片加一組FPGA。這種方案中對產(chǎn)品的低性能的功能用嵌入式軟件實現(xiàn),對于產(chǎn)品的高性能的功能用FPGA硬件實現(xiàn),這樣即滿足產(chǎn)品的低成本的要求又滿足高性能的要求,同時產(chǎn)品的保密性也比較強。其中,F(xiàn)PGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)是一種集成度很高的新型高性能可編程芯片,其內(nèi)部電路功能是可編程的(Progra_able),可以通過硬件描述語言(Hardware Description Language,簡稱HDL)和專用設(shè)計工具,在其內(nèi)部靈活地實現(xiàn)極其復雜的電路功能,適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計領(lǐng)域。但是FPGA器件由于掉電后配置數(shù)據(jù)會丟失,所以在使用之前需要對FPGA先進行配置。FPGA的配置涉及產(chǎn)品調(diào)試階段的配置和產(chǎn)品量產(chǎn)階段的配置。而采用SOC的產(chǎn)品的設(shè)計不僅涉及軟件還涉及硬件,因此,產(chǎn)品調(diào)試階段不僅要進行軟件調(diào)試還要進行硬件調(diào)試。在硬件調(diào)試過程中進行FPGA配置時,如圖I所示,PC通過USB轉(zhuǎn)JTAG方式將硬件信息配置到FPGA中,硬件設(shè)計如果需要修改,修改編譯后可以很方便的通過JTAG下載到FPGA中進行驗證,便于調(diào)試。這種方法一般FPGA廠商都會提供,USB轉(zhuǎn)JTAG的工具FPGA廠商一般也會提供。但是,每次軟件調(diào)試時,需要硬件人員先將代碼下載到FPGA中,然后才能開始軟件調(diào)試。如果在軟件調(diào)試的過程中不小心掉電,那么需要硬件人員重新對FPGA配置一次,這樣無形中增加了硬件開發(fā)人員的很多開銷,也增加了軟件開發(fā)人員的工作量,導致產(chǎn)品調(diào)試操作繁瑣,也增加了時間成本。并且,這樣的SOC由于沒有存儲FPGA的配置信息,當?shù)綦姇r,F(xiàn)PGA配置的數(shù)據(jù)會全部丟失,因此不能作為成品直接進入量產(chǎn)階段。為了解決上述問題,在SOC上額外增加了外部存儲器,用來存儲FPGA的配置信息。如圖2所示,SOC啟動時,首先從外部存儲器中將配置信息讀取出來,配置到FPGA中,然后FPGA進行操作。當產(chǎn)品掉電重新啟動時,CPLD或者FPGA可以從外部存儲器里面將需要的FPGA的配置信息讀取出來,因此該SOC可用于量產(chǎn)階段。但是,SOC多了外部存儲器,使得SOC成本增加。并且,F(xiàn)PGA的配置信息需要燒寫到外部存儲器,或者需要設(shè)計額外的模塊配置到外部存儲器中,導致硬件設(shè)計的工作量增加,進一步增加了產(chǎn)品的成本。還有一種配置方法如圖3所示,將配置信息通過JTAG直接配置到FPGA,或者將配置信息通過CPLD存儲到外部存儲器中。當SOC重新加電時,CPLD或者FPGA主動從外部存儲器中讀取配置信息,并進行配置。當有新的配置信息的時候,通過JTAG將原先的配置信息覆蓋。這樣既便于下載,又可以解決產(chǎn)品的實際產(chǎn)品應用中的FPGA配置問題,但缺點仍然是增加了外部存儲器,增加了產(chǎn)品的成本。另一種配置方法是將硬件配置信息 保存在嵌入式系統(tǒng)的外部存儲器中,并通過軟件的方式將外部存儲器中的配置信息配置到FPGA中。如圖4所示,CPU模擬FPGA的配置時序,將硬件信息配置到FPGA中。這種技術(shù)方案不需要額外增加存儲器件,減少了產(chǎn)品的成本,既可以用于產(chǎn)品開發(fā)調(diào)試,又可以用于實際產(chǎn)品。但是,由于FPGA配置信息與嵌入式系統(tǒng)共用外部存儲器,在產(chǎn)品的開發(fā)調(diào)試階段硬件設(shè)計人員必須求助軟件設(shè)計人員將硬件配置信息文件放到軟件系統(tǒng)中,重新編譯下載到SOC的板子上,然后硬件設(shè)計人員才能調(diào)試。上述片上系統(tǒng)及FPGA的配置方法中,軟件調(diào)試時需要硬件配置人員先對所有的FPGA進行配置,然后再軟件調(diào)試,當片上系統(tǒng)掉電時,還需要硬件調(diào)試人員再次介入,對所有的FPGA進行配置,不利于軟件開發(fā)調(diào)試與硬件開發(fā)調(diào)試的分工作業(yè),導致產(chǎn)品開發(fā)時間長及成本的增加。且硬件調(diào)試中對FPGA的配置通過外部存儲器件或JTAG對片上系統(tǒng)中所有的FPGA進行配置,當其中某一 FPGA的配置失敗或失效,則需要再次對所有的FPGA進行配置,進一步降低了調(diào)試效率,增加了產(chǎn)品的成本。
發(fā)明內(nèi)容
本發(fā)明提供一種片上系統(tǒng)及片上系統(tǒng)的硬件可編程器件的配置方法,用于解決現(xiàn)有片上系統(tǒng)開發(fā)調(diào)試成本較高的問題。本發(fā)明提供的一種片上系統(tǒng),包括中央處理器、軟件存儲器、軟件下載及調(diào)試接口、硬件可編程器件、硬件配置單元及硬件配置信息下載接口,所述中央處理器與所述軟件存儲器、軟件下載及調(diào)試接口、及硬件配置單元相連,所述硬件可編程器件與所述硬件配置單元及硬件配置信息下載接口相連,其中,還包括與所述中央處理器相連的硬件配置管理單元,所述硬件配置管理單元用于生成指示所述中央處理器配置對應的硬件可編程器件的控制信號,控制所述中央處理器從所述軟件存儲器中讀取所述對應的硬件可編程器件的配置信息,并對所述對應的硬件可編程器件進行配置。本發(fā)明提供的一種片上系統(tǒng)的硬件可編程器件的配置方法,包括根據(jù)軟硬件的調(diào)試需求生成指示中央處理器配置對應的硬件可編程器件的控制信號,控制所述中央處理單元從軟件存儲器中讀取所述對應的硬件可編程器件的配置信息,并對所述對應的硬件可編程器件進行配置。本發(fā)明提供的片上系統(tǒng)及片上系統(tǒng)的硬件可編程器件的配置方法,不僅保證了產(chǎn)品開發(fā)調(diào)試階段軟硬工作的清楚劃分,而且避免了不必要的FPGA的重復配置,提高了產(chǎn)品調(diào)試的效率,降低了片上系統(tǒng)的開發(fā)調(diào)試成本,也滿足了產(chǎn)品量產(chǎn)階段的FPGA的配置需求。
圖I為現(xiàn)有技術(shù)中在硬件調(diào)試過程中進行FPGA配置的示意圖;圖2為現(xiàn)有技術(shù)中通過外部存儲器進行FPGA配置的示意圖;圖3為現(xiàn)有技術(shù)中另一種硬件配置方法示意圖;圖4為現(xiàn)有技術(shù)中又一種硬件配置方法示意圖;圖5為本發(fā)明實施例提供的一種片上系統(tǒng)的結(jié)構(gòu)示意圖;圖6為本發(fā)明實施例提供的另一種片上系統(tǒng)的結(jié)構(gòu)示意圖;圖7為本發(fā)明實施例提供的片上系統(tǒng)軟件開發(fā)調(diào)試階段的FPGA配置流程圖;圖8為本發(fā)明實施例提供的片上系統(tǒng)硬件開發(fā)調(diào)試階段的FPGA配置流程圖;圖9為本發(fā)明實施例提供的片上系統(tǒng)在產(chǎn)品量產(chǎn)階段的FPGA配置流程圖。
具體實施例方式圖5為本發(fā)明實施例提供的一種片上系統(tǒng)的結(jié)構(gòu)示意圖。如圖5所示,片上系統(tǒng)包括中央處理器51、軟件存儲器52、軟件下載及調(diào)試接口 53、硬件可編程器件54、硬件配置單元55、硬件配置信息下載接口 56及硬件配置管理單元57。所述中央處理器51與所述軟件存儲器52、軟件下載及調(diào)試接口 53、硬件配置單元55及硬件配置管理單元57相連。中央處理器51可將軟件下載及調(diào)試接口 53下載的軟件數(shù)據(jù)存儲到軟件存儲器52中。中央處理器51運行后從軟件存儲器52中讀取軟件數(shù)據(jù)實現(xiàn)產(chǎn)品功能。中央處理器51還可將軟件存儲器52中的硬件配置信息通過硬件配置單元55配置到硬件可編程器件54。所述硬件可編程器件54可為現(xiàn)場可編程門陣列(FPGA),與所述硬件配置單元55及硬件配置信息下載接口 56相連,也就是說,硬件可編程器件54既可由硬件配置單元55進行配置,也可由硬件配置信息下載接口 56下載的配置信息直接進行配置。所述硬件配置管理單元57用于生成指示所述中央處理器配置對應的硬件可編程器件的控制信號,控制所述中央處理器51從所述軟件存儲器52中讀取述對應的硬件可編程器件的配置信息,并對對應的硬件可編程器件進行配置。如,所述硬件配置管理單元57可為與所述硬件可編程器件數(shù)量相同的控制器件,所述控制器件與所述中央處理器51的通用輸入輸出口(General Purpose Input/Output,GPI0)相連。該控制器件可為跳線、開關(guān)按鍵之類的功能器件。硬件配置管理單元57中跳線的數(shù)量與硬件可編程器件54的數(shù)量相同,跳線與硬件可編程器件54 —一對應,可通過跳線的“開”狀態(tài)如置I或“關(guān)”狀態(tài)如置0,控制中央處理器51是否從軟件存儲器52讀取對應的硬件可編程器件的配置信息,并對對應的硬件可編程器件進行配置。如當跳線設(shè)置為I時,控制中央處理器51從軟件存儲器52讀取對應的硬件可編程器件的配置信息,并對對應的硬件可編程器件進行配置。本發(fā)明實施例提供的片上系統(tǒng)還可包括與所述中央處理器51相連的配置指示單元,用于顯示所述硬件可編程器件的配置結(jié)果。所述配置指示單元可為發(fā)光二極管(LED)燈組,與所述中央處理器51的GPIO相
連。、
上述硬件可編程器件54為現(xiàn)場可編程門陣列(FPGA),硬件配置單元55可為CPLD,硬件配置信息下載接口 56為JTAG(Joint Test Action Group ;聯(lián)合測試行動小組)。上述軟件存儲器52可為Nflash (NAND Flash)、硬盤等,軟件下載及調(diào)試接口 53可為串口、并口等。本領(lǐng)域技術(shù)人員應理解為片上系統(tǒng)還應設(shè)置有存儲啟動軟件的閃存等片上系統(tǒng)的基本功能單元,由于不是本發(fā)明的重點,這里不再贅述。本實施例中,片上系統(tǒng)通過硬件配置管理單元控制所述中央處理器選擇是否從所述軟件存儲器讀取配置信息,并對所述硬件可編程器件進行配置,使得軟件開發(fā)調(diào)試時無需從硬件配置信息下載接口如JTAG進行配置,而完全可以通過已有的軟件存儲器如NfIash讀取配置信息對硬件可編程器件進行配置,無需另外配置存儲器專門來存儲硬件配置信息,不僅節(jié)約了存儲成本,而且避免了硬件開發(fā)調(diào)試人員的參與;并且硬件開發(fā)調(diào)試時,對于某一個或某些配置失敗的硬件可編程器件,可通過設(shè)置硬件配置管理單元,使得中 央處理器執(zhí)行應用初始化時從軟件存儲器中讀取該一個或該些配置失敗的硬件可編程器件的配置信息,并對該一個或該些配置失敗的硬件可編程器件進行配置,而無需軟件開發(fā)調(diào)試人員的參與便可從軟件存儲器對硬件可編程器件進行重新配置,不僅保證了產(chǎn)品開發(fā)調(diào)試階段軟硬工作的清楚劃分,而且避免了不必要的FPGA的重復配置,提高了產(chǎn)品調(diào)試的效率,也滿足了產(chǎn)品量產(chǎn)階段的FPGA的配置需求。圖6為本發(fā)明實施例提供的另一種片上系統(tǒng)的結(jié)構(gòu)示意圖。本實施例中,硬件可編程器件為FPGA,硬件配置單元為CPLD,硬件配置信息下載接口為JTAG,軟件下載及調(diào)試接口為串口,軟件存儲器為Nf lash。如圖6所示,片上系統(tǒng)包括CPU 61、Nflash 62、串口 63、硬件可編程器件64、CPLD65、JTAG 66、硬件配置管理單元67、硬件配置指示單元68及Norflash 69。其中,CPU 61是片上系統(tǒng)的主處理器,片上系統(tǒng)的功能都是在CPU 61的控制下實現(xiàn)的,在產(chǎn)品的開發(fā)調(diào)試階段和量產(chǎn)階段都必不可少。串口 63是軟件開發(fā)人員在PC上通過超級終端實現(xiàn)軟件下載和調(diào)試的接口,在軟件調(diào)試中不可少,在產(chǎn)品量產(chǎn)的時候可選。JTAG 66為FPGA的配置信息的下載接口。硬件設(shè)計人員通過PC的FPGA開發(fā)軟件,將FPGA的配置信息通過USB轉(zhuǎn)JTAG控制器下載到JTAG66,再通過JTAG 66下載到FPGA。JTAG 66在硬件調(diào)試時必不可少,在產(chǎn)品量產(chǎn)的時候不需要。硬件配置管理單元67是連接在CPU 61的GPIO的一組跳線跳線O、跳線I、...跳線n。通過軟件讀取跳線的數(shù)值0或I將軟件開發(fā)調(diào)試和硬件開發(fā)調(diào)試分開,在開發(fā)調(diào)試階段必不可少,在產(chǎn)品量產(chǎn)階段可選。在系統(tǒng)啟動之前首先要設(shè)置跳線,然后復位啟動,啟動的過程中,系統(tǒng)會根據(jù)讀取到的數(shù)值來判斷是否從Nflash中讀取配置數(shù)據(jù),這里以兩片F(xiàn)PGA為例進行說明,數(shù)值的含義如表I所示。表I跳線數(shù)值的含義
權(quán)利要求
1.一種片上系統(tǒng),其特征在于,包括中央處理器、軟件存儲器、軟件下載及調(diào)試接口、硬件可編程器件、硬件配置單元及硬件配置信息下載接口,所述中央處理器與所述軟件存儲器、軟件下載及調(diào)試接口、及硬件配置單元相連,所述硬件可編程器件與所述硬件配置單元及硬件配置信息下載接口相連,還包括與所述中央處理器相連的硬件配置管理單元,所述硬件配置管理單元用于生成指示所述中央處理器配置對應的硬件可編程器件的控制信號,控制所述中央處理器從所述軟件存儲器中讀取所述對應的硬件可編程器件的配置信息,并對所述對應的硬件可編程器件進行配置。
2.根據(jù)權(quán)利要求I所述的片上系統(tǒng),其特征在于,所述硬件配置管理單元為與所述硬件可編程器件數(shù)量相同的控制器件,所述控制器件與所述中央處理器的通用輸入輸出口相連。
3.根據(jù)權(quán)利要求I或2所述的片上系統(tǒng),其特征在于,還包括與所述中央處理器相連的配置指示單元,用于顯示所述硬件可編程器件的配置結(jié)果。
4.根據(jù)權(quán)利要求3所述的片上系統(tǒng),其特征在于,所述配置指示單元為發(fā)光二極管燈組,與所述中央處理器的通用輸入輸出口相連。
5.根據(jù)權(quán)利要求I或2所述的片上系統(tǒng),其特征在于,所述硬件可編程器件為現(xiàn)場可編程門陣列,所述硬件配置單元為CPLD,所述硬件配置信息下載接口為JTAG。
6.根據(jù)權(quán)利要求I或2所述的片上系統(tǒng),其特征在于,所述軟件存儲器為Nflash,所述軟件下載及調(diào)試接口為串口。
7.根據(jù)權(quán)利要求2所述的片上系統(tǒng),其特征在于,所述控制器件為跳線、開關(guān)或按鍵。
8.一種片上系統(tǒng)的硬件可編程器件的配置方法,其特征在于,包括 根據(jù)軟硬件的調(diào)試需求生成指示中央處理器配置對應的硬件可編程器件的控制信號,控制所述中央處理單元從軟件存儲器中讀取所述對應的硬件可編程器件的配置信息,并對所述對應的硬件可編程器件進行配置。
9.根據(jù)權(quán)利要求8所述的片上系統(tǒng)的硬件可編程器件的配置方法,其特征在于,還包括 顯示所述硬件可編程器件的配置結(jié)果。
全文摘要
本發(fā)明提供一種片上系統(tǒng)及片上系統(tǒng)的硬件可編程器件的配置方法,片上系統(tǒng),包括中央處理器、軟件存儲器、軟件下載及調(diào)試接口、硬件可編程器件、硬件配置單元及硬件配置信息下載接口,所述中央處理器與所述軟件存儲器、軟件下載及調(diào)試接口、及硬件配置單元相連,所述硬件可編程器件與所述硬件配置單元及硬件配置信息下載接口相連,其中,還包括與所述中央處理器相連的硬件配置管理單元,所述硬件配置管理單元用于生成指示所述中央處理器配置對應的硬件可編程器件的控制信號,控制所述中央處理器從所述軟件存儲器中讀取所述對應的硬件可編程器件的配置信息,并對所述對應的硬件可編程器件進行配置。
文檔編號G06F9/44GK102662645SQ20121005130
公開日2012年9月12日 申請日期2012年3月1日 優(yōu)先權(quán)日2012年3月1日
發(fā)明者王法翔 申請人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司