范繼聰,惠 鋒,徐彥峰,胡 凱
(1.中國(guó)電子科技集團(tuán)公司第五十八研究所,江蘇無(wú)錫 214072;2.無(wú)錫中微億芯有限公司,江蘇無(wú)錫 214072)
隨著集成電路制造工藝水平的不斷提高,器件特征尺寸不斷縮小,F(xiàn)PGA規(guī)模越來(lái)越大,集成模塊越來(lái)越多,可以實(shí)現(xiàn)更加復(fù)雜的功能。FPGA主要由可編程輸入輸出、可編程互連和可編程邏輯組成,其中可編程互連包括可編程互連線和可編程互連開關(guān)。相對(duì)于IO/CLB/DSP/BRAM/SWB等模塊來(lái)說(shuō),F(xiàn)PGA的互連線驗(yàn)證面臨很大的挑戰(zhàn)。不同于有些ASIC芯片可以采用自動(dòng)布局布線的設(shè)計(jì),F(xiàn)PGA的互連需要定制設(shè)計(jì),在設(shè)計(jì)過(guò)程中很容易出現(xiàn)互連線短路和開路的現(xiàn)象,如何檢查出這類錯(cuò)誤是非常困難的。當(dāng)前普遍采用動(dòng)態(tài)仿真的方法來(lái)驗(yàn)證互連線的正確性,這種方法不僅速度很慢,而且覆蓋率很低,所以需要一種能夠快速實(shí)現(xiàn)FPGA互連線連接正確的驗(yàn)證方法。本文提出一種基于互連網(wǎng)絡(luò)比對(duì)來(lái)驗(yàn)證FPGA互連正確性的方法,能有效檢查原理圖中互連線的開路和短路情況,具有實(shí)現(xiàn)速度快、覆蓋率高達(dá)100%的優(yōu)點(diǎn)。
互連線是FPGA中信號(hào)傳遞的橋梁,隨著FPGA的規(guī)模越來(lái)越大,互連線在整個(gè)FPGA中所占比重也越來(lái)越大。互連線根據(jù)跨度和方向進(jìn)行定義和分類,一般通過(guò)互連線的名字定義互連線類型,F(xiàn)PGA中互連線的名字一般由4部分組成,分別為:
(1)方向:FPGA中互連線的方向采用與地圖方向一樣的定義,既上北(N)下南(S),左西(W)右東(E),通?;ミB線名的第一部分字母代表方向。
(2)跨度:跨度指互連線所跨越可編程邏輯單元CLB的個(gè)數(shù),一般有2、5和6,通常叫做2倍線、5倍線和6倍線。有時(shí)還有長(zhǎng)線(跨度為18、24等),互連線名的第一部分?jǐn)?shù)字代表跨度。
(3)位置:通常一根互連線包括起點(diǎn)(BEG)和終點(diǎn)(END),起點(diǎn)為驅(qū)動(dòng)點(diǎn)。有些互連線還包括中間點(diǎn),是在起點(diǎn)和終點(diǎn)間的一個(gè)抽頭,可以更靈活,通常稱為中間點(diǎn)(M ID),這里“中間點(diǎn)”并不是嚴(yán)格意義上的中點(diǎn),對(duì)于5倍線來(lái)說(shuō),中間點(diǎn)一般是在離起點(diǎn)跨度為3的地方,通?;ミB線名的第二部分字母代表位置。
(4)編號(hào):為了提高布通率,通常FPGA中一類互連線有很多根,為了區(qū)別開來(lái)對(duì)線進(jìn)行編號(hào),通常互連線名的最后數(shù)字代表編號(hào)。
通過(guò)上述互連線名的定義,可以很清晰地通過(guò)互連線名確定互連線方向、跨度和編號(hào)等信息。圖1所示為常見互連線的示意圖,圖中顯示了5倍線和2倍線,根據(jù)互連線的名字可以很容易地得到互連規(guī)律。
圖1 互連線示意圖
FPGA中互聯(lián)線種類豐富、數(shù)量龐大,隨著FPGA規(guī)模的不斷增加,動(dòng)態(tài)仿真一個(gè)用例就需要幾天以上的時(shí)間,驗(yàn)證整個(gè)FPGA互聯(lián)線連接正確需要大量的仿真用例,采用動(dòng)態(tài)仿真方法來(lái)驗(yàn)證互連線的連接正確性逐漸變得不可行。本文基于互連網(wǎng)絡(luò)比對(duì)提出一種快速驗(yàn)證FPGA互聯(lián)線連接正確性的方法,通過(guò)驗(yàn)證FPGA的互聯(lián)資源文件正確性來(lái)實(shí)現(xiàn)互連線的驗(yàn)證。
FPGA中的互連線一般由起點(diǎn)、中間點(diǎn)和終點(diǎn)組成,互連線按照一定規(guī)律從一個(gè)SWB出發(fā),經(jīng)過(guò)一些SWB,到達(dá)一個(gè)SWB結(jié)束。FPGA中每一個(gè)SWB都有一個(gè)絕對(duì)坐標(biāo)值,可以使用XnYm代表位于第n列第m行的SWB。FPGA互聯(lián)資源中的每一類互連線都會(huì)從每一個(gè)SWB出發(fā),這樣就可以根據(jù)互聯(lián)規(guī)律得到所有互聯(lián)線的連接信息,將這些連接信息以文本的形式展現(xiàn)出來(lái),就是所謂的FPGA互聯(lián)資源文件?;ヂ?lián)資源文件包含F(xiàn)PGA內(nèi)部所有互連線的連接關(guān)系,文件內(nèi)部為多行類似X6Y6_ER2BEG0→X7Y6_ER2M ID0→X8Y6_ER2END0的信息,互聯(lián)資源文件為文本文件,便于比對(duì)處理。
圖2所示為本文所述互連線驗(yàn)證方法的整體流程圖,從圖中可以看出,本文所提出的快速驗(yàn)證FPGA互連線連接正確性的方法主要從兩個(gè)方面出發(fā),一是根據(jù)互連規(guī)律和所設(shè)計(jì)芯片的ARCH文件信息,生成互連資源文件,作為GOLDEN模型;二是對(duì)設(shè)計(jì)好的芯片網(wǎng)表進(jìn)行解析,得到實(shí)際電路對(duì)應(yīng)的互連資源文件,將得到的互連資源文件與GOLDEN模型文件進(jìn)行比對(duì),即可實(shí)現(xiàn)對(duì)實(shí)際設(shè)計(jì)電路互連正確性的驗(yàn)證。
圖2 互連線驗(yàn)證方法流程
要想得到互連資源GOLDEN文件,需要提供ARCH文件和互連規(guī)律。ARCH文件一般提供FPGA芯片中SWB的行數(shù)和列數(shù)信息,SWB在FPGA中二維分布,提供行數(shù)和列數(shù)信息,即可得到整個(gè)FPGA芯片中所有的SWB位置信息。根據(jù)上述互連線的名字可以很容易得到互連規(guī)律。有了芯片的ARCH信息和互連規(guī)律,即可通過(guò)編程語(yǔ)言編寫互連資源生成程序,得到理想的互連資源文件,即互連GOLDEN文件。本文采用perl語(yǔ)言得到互連資源生成程序,生成的互連線連接GOLDEN文件內(nèi)容如圖3所示。
SWB在整個(gè)FPGA芯片中均勻分布,如圖4所示,每一個(gè)SWB都有唯一的名字,可以標(biāo)識(shí)其所在的行和列信息。如果在設(shè)計(jì)FPGA芯片時(shí)采用展開式的設(shè)計(jì),每一個(gè)SWB的名字都可以采用絕對(duì)坐標(biāo)來(lái)進(jìn)行命名,這樣可以很容易地根據(jù)網(wǎng)表信息提取出整個(gè)芯片中的互連信息。
圖3 根據(jù)互連規(guī)律生成的互連資源文件
圖4 SWB分布
隨著FPGA芯片規(guī)模不斷增大,展開式的設(shè)計(jì)已不適用,當(dāng)前主要采用層次化的電路設(shè)計(jì),相對(duì)于展開式設(shè)計(jì),層次化設(shè)計(jì)具有可復(fù)用性,可大大縮小電路文件的大小,同時(shí)提高設(shè)計(jì)速度,縮短設(shè)計(jì)周期。采用層次化的設(shè)計(jì)需要對(duì)電路各個(gè)層次模塊采取有意義的名稱,保證能夠解析得到每個(gè)SWB的絕對(duì)坐標(biāo)。本文提出的驗(yàn)證方法采用如圖5所示的層次化命名,每個(gè)模塊的名稱中都包含坐標(biāo)信息,該坐標(biāo)信息是相對(duì)于本層次的相對(duì)坐標(biāo)信息,根據(jù)各個(gè)相對(duì)坐標(biāo)信息,代入相應(yīng)的絕對(duì)坐標(biāo)求解公式,即可得到每個(gè)SWB的絕對(duì)坐標(biāo)信息。
圖5 層次化設(shè)計(jì)命名示意圖
通過(guò)Virtuoso得到整理好的FPGA整體電路網(wǎng)表文件,編寫網(wǎng)表解析程序,網(wǎng)表解析程序可以根據(jù)整個(gè)電路網(wǎng)表的連接關(guān)系,從每個(gè)SWB的驅(qū)動(dòng)點(diǎn)開始追蹤連接關(guān)系,這樣可以得到整個(gè)FPGA芯片中的所有互連資源,將追蹤到的所有互連資源集中到一個(gè)文件,即可得到實(shí)際設(shè)計(jì)電路所對(duì)應(yīng)的互連資源文件,其內(nèi)容如圖6所示。每個(gè)SWB的名字以SWB開頭,附帶坐標(biāo)信息。對(duì)上述方式所生成的兩個(gè)互連資源文件進(jìn)行比對(duì),即可發(fā)現(xiàn)設(shè)計(jì)中存在的問(wèn)題。如果設(shè)計(jì)中存在互連線開路現(xiàn)象,則通過(guò)設(shè)計(jì)解析得到的互連資源文件中存在不完全的互連線,丟失了開路后的結(jié)點(diǎn)。如果設(shè)計(jì)中存在互連線短路現(xiàn)象,則通過(guò)設(shè)計(jì)解析得到的互連資源文件中存在加長(zhǎng)的互連線,相對(duì)于正常的互連線,多出了結(jié)點(diǎn)信息。
圖6 解析電路得到的互連資源文件
本文提出的快速驗(yàn)證FPGA互連線連接正確性的方法已經(jīng)在實(shí)際工作中應(yīng)用實(shí)現(xiàn),應(yīng)用表明該方法可以有效地檢查出電路設(shè)計(jì)過(guò)程中導(dǎo)致的互連線短路和開路現(xiàn)象。相對(duì)于傳統(tǒng)基于動(dòng)態(tài)仿真的驗(yàn)證方法存在仿真時(shí)間長(zhǎng)、覆蓋率低的缺點(diǎn),該方法采用互聯(lián)資源文件比對(duì)的方法實(shí)現(xiàn)互聯(lián)線連接驗(yàn)證,因?yàn)榛ヂ?lián)資源文件包含所有的互聯(lián)信息,所以可以實(shí)現(xiàn)100%覆蓋率,采用動(dòng)態(tài)仿真實(shí)現(xiàn)高覆蓋率需要大量仿真用例,且很難實(shí)現(xiàn)100%覆蓋。同時(shí)生成互聯(lián)資源GOLDEN文件、解析實(shí)際電路得到互聯(lián)資源文件和兩個(gè)互聯(lián)資源文件的比對(duì)都可以在很短的時(shí)間內(nèi)實(shí)現(xiàn),整個(gè)驗(yàn)證過(guò)程可以在一天時(shí)間內(nèi)完成,相對(duì)于傳統(tǒng)的動(dòng)態(tài)仿真一個(gè)用例動(dòng)輒需要幾天時(shí)間以上,大大提高了驗(yàn)證效率。該方法具有速度快、覆蓋率高的優(yōu)點(diǎn),可以快速有效地發(fā)現(xiàn)FPGA設(shè)計(jì)前期所導(dǎo)致的互連線連接錯(cuò)誤,提高FPGA產(chǎn)品開發(fā)速度,縮短整個(gè)設(shè)計(jì)周期,具有重要的參考和實(shí)用價(jià)值。