可編程邏輯器件重構(gòu)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及可編程邏輯器件的應(yīng)用領(lǐng)域,特別地涉及一種可編程邏輯器件重構(gòu)方 法及裝置。
【背景技術(shù)】
[0002] 對(duì)于FPGA (Field - Programmable Gate Array,現(xiàn)場(chǎng)可編程門(mén)陣列)等可編程邏 輯器件,只需要通過(guò)開(kāi)發(fā)工具將設(shè)計(jì)好的電路轉(zhuǎn)化為位流文件導(dǎo)入后便可得到期望的電路 功能,與專(zhuān)用邏輯器件相比節(jié)省了流片成本,并且更加靈活,可重復(fù)編程以實(shí)現(xiàn)不同邏輯功 能。
[0003] 可編程邏輯器件在方便用戶(hù)使用的同時(shí),也會(huì)存在一些缺點(diǎn),如使用zynq 7000 系列的SoC FPGA進(jìn)行電路設(shè)計(jì)時(shí),現(xiàn)有FPGA可重構(gòu)技術(shù)采用配置幀的方式,對(duì)基本邏輯單 元(查找表、觸發(fā)器、CLB、I0B等基本器件)實(shí)現(xiàn)細(xì)粒度的重構(gòu),這種方式需要根據(jù)重構(gòu)后 目標(biāo)電路生成全部電路的位流文件,并向這些基本器件發(fā)送重構(gòu)需要的位流數(shù)據(jù),這些基 本器更新配置完成重構(gòu),這類(lèi)FPGA芯片結(jié)構(gòu)設(shè)計(jì)實(shí)現(xiàn)難度大、芯片面積大、芯片成本高。
[0004] 因此,如何提供一種具備較低成本的可編程邏輯器件重構(gòu)技術(shù),是本領(lǐng)域技術(shù)人 員亟待解決的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供了一種可編程邏輯器件重構(gòu)方法及裝置,以降低可編程邏輯器件的重 構(gòu)成本。
[0006] 本發(fā)明提供了一種可編程邏輯器件重構(gòu)方法,在一個(gè)實(shí)施例中,該方法包括:確定 可編程邏輯器件的待重構(gòu)資源區(qū);將待重構(gòu)資源區(qū)劃分為至少一個(gè)基本單元,基本單元包 括至少一個(gè)可重構(gòu)器件;分別對(duì)各基本單元進(jìn)行重構(gòu)。
[0007] 進(jìn)一步的,上述實(shí)施例中的基本單元還包括可重構(gòu)器件與其他器件之間可重構(gòu)的 線(xiàn)路連接。
[0008] 進(jìn)一步的,上述實(shí)施例中的可重構(gòu)器件包括可配置邏輯模塊CLB。
[0009] 進(jìn)一步的,上述實(shí)施例中的將待重構(gòu)資源區(qū)劃分為至少一個(gè)基本單元包括:將待 重構(gòu)資源區(qū)按照物理區(qū)域劃分為至少一個(gè)基本單元;或者,將待重構(gòu)資源區(qū)按照物理區(qū)域 及目標(biāo)功能劃分為至少一個(gè)基本單元。
[0010] 進(jìn)一步的,上述實(shí)施例中的目標(biāo)功能包括:基本單元需要實(shí)現(xiàn)的功能,或者待重構(gòu) 資源區(qū)需要實(shí)現(xiàn)的功能。
[0011] 進(jìn)一步的,上述實(shí)施例中的分別對(duì)各基本單元進(jìn)行重構(gòu)包括:根據(jù)目標(biāo)功能分別 生成各基本單元的新的位流文件;將各基本單元的新的位流文件配置到對(duì)應(yīng)的基本單元。
[0012] 本發(fā)明提供了一種可編程邏輯器件重構(gòu)裝置,在一個(gè)實(shí)施例中,該裝置包括:確定 模塊,用于確定可編程邏輯器件的待重構(gòu)資源區(qū);劃分模塊,用于將待重構(gòu)資源區(qū)劃分為至 少一個(gè)基本單元,基本單元包括至少一個(gè)可重構(gòu)器件;重構(gòu)模塊,用于分別對(duì)各基本單元進(jìn) 行重構(gòu)。
[0013] 進(jìn)一步的,上述實(shí)施例中的基本單元還包括可重構(gòu)器件與其他器件之間可重構(gòu)的 線(xiàn)路連接。
[0014] 進(jìn)一步的,上述實(shí)施例中的可重構(gòu)器件包括可配置邏輯模塊CLB。
[0015] 進(jìn)一步的,上述實(shí)施例中的劃分模塊具體用于:將待重構(gòu)資源區(qū)按照物理區(qū)域劃 分為至少一個(gè)基本單元;或者,將待重構(gòu)資源區(qū)按照物理區(qū)域及目標(biāo)功能劃分為至少一個(gè) 基本單元。
[0016] 進(jìn)一步的,上述實(shí)施例中的目標(biāo)功能包括:基本單元需要實(shí)現(xiàn)的功能,或者待重構(gòu) 資源區(qū)需要實(shí)現(xiàn)的功能。
[0017] 進(jìn)一步的,上述實(shí)施例中的重構(gòu)模塊具體用于根據(jù)目標(biāo)功能分別生成各基本單元 的新的位流文件;將各基本單元的新的位流文件配置到對(duì)應(yīng)的基本單元。
[0018] 本發(fā)明的有益效果:
[0019] 本發(fā)明提供的方案,根據(jù)需要確定可編程邏輯器件中的待重構(gòu)資源區(qū),并且其劃 分為基本單元,基本單元包括至少一個(gè)可重構(gòu)器件,這些可重構(gòu)器件在寫(xiě)入位流數(shù)據(jù)后就 可以實(shí)現(xiàn)基本的邏輯功能,即每個(gè)基本單元都可以實(shí)現(xiàn)目標(biāo)電路的一些功能,在此基礎(chǔ)上, 分別對(duì)各基本單元進(jìn)行重構(gòu),實(shí)現(xiàn)了以基本單元為最小重構(gòu)單元的重構(gòu)技術(shù),與現(xiàn)有以基 本器件為最小重構(gòu)單元的重構(gòu)技術(shù)相比,最小重構(gòu)范圍增大,重構(gòu)時(shí)所需要的控制信號(hào)及 數(shù)據(jù)流數(shù)量都將減少,降低了可編程邏輯器件的器件繁雜度及重構(gòu)成本。
【附圖說(shuō)明】
[0020] 圖1為本發(fā)明第一實(shí)施例提供的可編程邏輯器件重構(gòu)方法的流程圖;
[0021] 圖2為本發(fā)明第二實(shí)施例提供的可編程邏輯器件重構(gòu)裝置的示意圖;
[0022] 圖3為本發(fā)明第三實(shí)施例提供的可編程邏輯器件重構(gòu)方法的流程圖;
[0023] 圖4為本發(fā)明第三實(shí)施例中FPGA器件的劃分步驟示意圖;
[0024] 圖5為本發(fā)明第三實(shí)施例中待重構(gòu)資源區(qū)的重構(gòu)示意圖;
[0025] 圖6為本發(fā)明第三實(shí)施例中單個(gè)基本單元的實(shí)現(xiàn)示意圖。
【具體實(shí)施方式】
[0026] 現(xiàn)通過(guò)【具體實(shí)施方式】結(jié)合附圖的方式對(duì)本發(fā)明做出進(jìn)一步的詮釋說(shuō)明。
[0027] 第一實(shí)施例:
[0028] 圖1為本發(fā)明第一實(shí)施例提供的可編程邏輯器件重構(gòu)方法的流程圖,由圖1可知, 在本實(shí)施例中,本發(fā)明提供的可編程邏輯器件重構(gòu)方法包括以下步驟:
[0029] S101 :確定可編程邏輯器件的待重構(gòu)資源區(qū);
[0030] 本步驟首先需要確定可編程邏輯器件中支持動(dòng)態(tài)重構(gòu)的可重構(gòu)資源區(qū),可編程邏 輯器件的種類(lèi)很多,本發(fā)明以FPGA為例進(jìn)行說(shuō)明:用戶(hù)根據(jù)目標(biāo)電路的復(fù)雜度等屬性選擇 某些型號(hào)的FPGA,將該FPGA劃分為可重構(gòu)資源區(qū)及不可重構(gòu)資源區(qū),可重構(gòu)資源區(qū)是指該 區(qū)域內(nèi)的資源具備動(dòng)態(tài)可重構(gòu),可以在電路運(yùn)行中通過(guò)時(shí)分復(fù)用寫(xiě)入不同的位流數(shù)據(jù)在不 用時(shí)間實(shí)現(xiàn)不同的功能,不可重構(gòu)資源區(qū)是指該區(qū)域的資源在電路運(yùn)行中不支持動(dòng)態(tài)寫(xiě)入 位流數(shù)據(jù)以實(shí)現(xiàn)不同的功能。
[0031] 在用戶(hù)根據(jù)需要選定FPGA之后,根據(jù)器件規(guī)格就可以得知器件上可重構(gòu)資源區(qū) 的范圍,然后用戶(hù)就可以根據(jù)想要改變的目標(biāo)電路中的重構(gòu)子電路的功能及可重構(gòu)資源區(qū) 的范圍,在器件上確定出一個(gè)或多個(gè)待重構(gòu)資源區(qū),待重構(gòu)資源區(qū)可以是可重構(gòu)資源區(qū)的 一部分(完全屬于可重構(gòu)資源區(qū)),也可以包括部分可重構(gòu)資源區(qū)及部分不可重構(gòu)資源區(qū) (用于實(shí)現(xiàn)目標(biāo)電路中不需要重構(gòu)的電路功能)。
[0032] S102 :將待重構(gòu)資源區(qū)劃分為至少一個(gè)基本單元,基本單元包括至少一個(gè)可重構(gòu) 器件;
[0033] 在確定待重構(gòu)資源區(qū)后,將待重構(gòu)資源區(qū)內(nèi)的資源(包括CLB、可編輯互連線(xiàn)等) 劃分為至少一個(gè)基本單元,每個(gè)基本單元都包括至少一個(gè)可重構(gòu)器件(如CLB),這樣就可 以在寫(xiě)入位流文件后實(shí)現(xiàn)一些基本功能。
[0034] 不同的基本單元之間的可重構(gòu)器件數(shù)量可以不同,可以根據(jù)該基本單元所需要實(shí) 現(xiàn)的目標(biāo)功能進(jìn)行劃分,如果某些基本單元需要實(shí)現(xiàn)的目標(biāo)功能簡(jiǎn)單,那么就可以?xún)H包括 一個(gè)可重構(gòu)器件,對(duì)應(yīng)的,若一些基本單元需要實(shí)現(xiàn)的目標(biāo)功能比較復(fù)雜,就可以包括較多 數(shù)量的可重構(gòu)器件。
[0035] 在一些實(shí)施例中,為了便于用戶(hù)為目標(biāo)電路所需要實(shí)現(xiàn)的目標(biāo)功能中各子功能分 配對(duì)應(yīng)的基本單元,可以設(shè)置為每個(gè)基本單元都包括相同數(shù)量的可重構(gòu)器件(這些可重構(gòu) 器件相互配合可以實(shí)現(xiàn)目標(biāo)電路的一些小功能),這樣就保證了每個(gè)基本單元在寫(xiě)入位流 數(shù)據(jù)后都可以實(shí)現(xiàn)一定的功能,并且每個(gè)基本單元所具備的可重構(gòu)資源是相同的,在此基 礎(chǔ)上,就可以將目標(biāo)電路分解為很多小功能,并為這些小功能分配對(duì)應(yīng)的基本單元,而不必 先判斷這樣小功能實(shí)現(xiàn)的復(fù)雜度,在進(jìn)行基本單元的劃分,劃分方式簡(jiǎn)單。
[0036] S103 :分別對(duì)各基本單元進(jìn)行重構(gòu),可以通過(guò)開(kāi)發(fā)工具將目標(biāo)電路的位流文件約 束到基本單元來(lái)實(shí)現(xiàn)。
[0037] 在一些實(shí)施例中,上述實(shí)施例中的基本單元還包括可重構(gòu)器件與其他器件之間可 重構(gòu)的線(xiàn)路連接。在實(shí)際應(yīng)用中,可重構(gòu)器件在工作時(shí)是需要與其他器件進(jìn)行通信的,如完 成位流文件的獲取、可重構(gòu)器件之間的工作邏輯關(guān)系等,本實(shí)施例通過(guò)將可重構(gòu)器件與其 他器件之間可重構(gòu)的線(xiàn)路連接也劃分到基本單元內(nèi),使得基本單元的功能更完整,可重構(gòu) 的線(xiàn)路連接包括可編輯互連線(xiàn)、IOB資源等。
[0038] 在一些實(shí)施例中,以FPGA器件為例,上述實(shí)施例中的可重構(gòu)器件為可配置邏輯模 塊CLB,當(dāng)然在一些特殊的應(yīng)用領(lǐng)域,所使用的FPGA器件內(nèi)的可重構(gòu)資源類(lèi)型不同,對(duì)應(yīng) 的,可重構(gòu)器件就是這類(lèi)FPGA器件內(nèi)的可重構(gòu)資源。
[0039] 在一些實(shí)施例中,上述實(shí)施例中的將待重構(gòu)資源區(qū)劃分為至少一個(gè)基本單元包 括:將待重構(gòu)資源區(qū)按照物理區(qū)域劃分為至少一個(gè)基本單元;或者,將待重構(gòu)資源區(qū)按照 物理區(qū)域及目標(biāo)功能劃分為至少一個(gè)基本單元。本實(shí)施例提供了基本單元的劃分方式,按 照物理區(qū)域劃分、或者按照物理區(qū)域及目標(biāo)功能劃分,使得基本單元內(nèi)的所有器件在物理 位置上是連續(xù)的,這樣就降低了基本單元內(nèi)各器件之間的通信繁雜度,進(jìn)而降低了根據(jù)基 本單元的目標(biāo)功能所生成的位流文件內(nèi)位流數(shù)據(jù)的長(zhǎng)度及繁雜度,降低了實(shí)現(xiàn)可重構(gòu)的成 本。
[0040] 在一些實(shí)施例中,上述實(shí)施例中的兩個(gè)基本單元之間是相鄰的,并且不重疊的;當(dāng) 然也可以是間隔一定區(qū)域的,這樣間隔區(qū)域內(nèi)就可以通過(guò)設(shè)置位流文件實(shí)現(xiàn)一些具備控 制、存儲(chǔ)等功能的固定子電路。
[0041] 在一些實(shí)施例中,上述實(shí)施例中的某基本單元包括多個(gè)(兩個(gè)及以上)可重構(gòu)器 件時(shí),這些可重構(gòu)器件的類(lèi)型在需要實(shí)現(xiàn)的目標(biāo)功能上是有聯(lián)系的,如基本單元需要實(shí)現(xiàn) 電阻及電容等功能時(shí),其內(nèi)部器件就可以包括可重構(gòu)的電阻及電容等。
[0042] 在一些實(shí)施例中,上述實(shí)施例中的目標(biāo)功能包括:基本單元需要實(shí)現(xiàn)的功能,或者 待重構(gòu)資源區(qū)需要實(shí)現(xiàn)的功能?;締卧枰獙?shí)現(xiàn)的功能是指在目標(biāo)電路中,基本單元所 寫(xiě)入的位流文件對(duì)應(yīng)的功能,如實(shí)現(xiàn)一個(gè)特定阻值的電阻功能時(shí),基本單元包括一個(gè)可重