隨著敏捷方法的建立提高了生產(chǎn)力和質(zhì)量,業(yè)界對(duì)于硬件設(shè)計(jì)的興趣正在增長(zhǎng)。
盡管如此,人們普遍認(rèn)為硬件領(lǐng)域的成功依舊是有限的?,F(xiàn)實(shí)可能比想象要好一些,因?yàn)橛布械哪承┟艚菪在厔?shì)沒(méi)有明確標(biāo)記。
例如,我們看到越來(lái)越多的努力將 IP 級(jí)設(shè)計(jì)和驗(yàn)證與 SoC 級(jí)設(shè)計(jì)和驗(yàn)證分離。在這種情況下,不同的 IP 團(tuán)隊(duì)都從 SoC 項(xiàng)目的“列車(chē)模型”上以異步的方式運(yùn)行,當(dāng)完成 SoC 設(shè)計(jì)時(shí)可以選擇任何版本的 IP。
雖然這種方法沒(méi)有被貼上敏捷的標(biāo)簽,但這種方法確實(shí)符合敏捷哲學(xué)。
敏捷設(shè)計(jì)發(fā)展的最大阻力 —— 算力
芯片流片的高成本和流片后無(wú)法更改設(shè)計(jì)通常被認(rèn)為是敏捷方法不能很好地映射到到硬件設(shè)計(jì)的關(guān)鍵原因。但是,流片后無(wú)法敏捷并不一定意味著我們不能在流片前更加敏捷。
在硬件設(shè)計(jì)中采用敏捷性設(shè)計(jì)最大阻力之一是硬件驗(yàn)證的復(fù)雜性。測(cè)試軟件程序只需要執(zhí)行該程序所需的計(jì)算,當(dāng)然測(cè)試會(huì)全速運(yùn)行。
測(cè)試硬件設(shè)計(jì)需要一個(gè)模擬器程序,該程序可以在軟件中模擬芯片設(shè)計(jì)在硬件中制造時(shí)的行為。這個(gè)模擬器程序的計(jì)算非常昂貴,但其執(zhí)行速度比它正在模擬的真實(shí)芯片的速度慢數(shù)千倍。
設(shè)計(jì)硬件的公司在測(cè)試其設(shè)計(jì)時(shí)會(huì)受到計(jì)算能力的限制。幾家支持系統(tǒng)設(shè)計(jì)的公司都提供特殊的仿真加速器,它們使用專(zhuān)為仿真加速而設(shè)計(jì)的專(zhuān)用處理器或 FPGA。這些系統(tǒng)的模擬速度比通用服務(wù)器上的模擬快數(shù)百倍,它們的成本也相應(yīng)地更加昂貴。因此,設(shè)計(jì)團(tuán)隊(duì)發(fā)現(xiàn)他們?cè)谶@些平臺(tái)上的計(jì)算資源同樣有限。
敏捷設(shè)計(jì)需要持續(xù)集成和測(cè)試,不僅是單元級(jí)別,整個(gè)系統(tǒng)級(jí)別同樣如此。如果測(cè)試受限于計(jì)算能力,那么敏捷設(shè)計(jì)需要更高的計(jì)算效率,尤其是在系統(tǒng)級(jí)別。例如,一個(gè)典型的現(xiàn)代 SoC 需要在數(shù)千臺(tái)機(jī)器的服務(wù)器群上進(jìn)行長(zhǎng)達(dá)五天的連續(xù)計(jì)算來(lái)完成一組基本的完整芯片測(cè)試。
在如此極端的計(jì)算背景下,設(shè)計(jì)團(tuán)隊(duì)如何才能讓芯片設(shè)計(jì)變得更加敏捷?
解決敏捷計(jì)算挑戰(zhàn)的兩個(gè)方法
有兩個(gè)關(guān)鍵方法可以推動(dòng)解決敏捷硬件設(shè)計(jì)中的計(jì)算障礙:通過(guò)參數(shù)化減少設(shè)計(jì)規(guī)模和通過(guò)計(jì)算物流,計(jì)算物流涉及使用計(jì)算和高等數(shù)學(xué)來(lái)規(guī)劃和實(shí)施大型和復(fù)雜的任務(wù)。計(jì)算物流應(yīng)用于許多領(lǐng)域,包括貨物、服務(wù)和相關(guān)信息從原產(chǎn)地到消費(fèi)地的流動(dòng)和儲(chǔ)存。)減少測(cè)試規(guī)模。
第一,參數(shù)化。復(fù)制在 SoC 設(shè)計(jì)中越來(lái)越普遍,無(wú)論是 IP 級(jí)復(fù)制(如多核 CPU),還是架構(gòu)級(jí)復(fù)制(如 GPU 中的著色器內(nèi)核或 AI 加速器中的 MAC 節(jié)點(diǎn))。通過(guò)利用參數(shù)化,可以在某種形式的參數(shù)化下將更多相似但不同的事物融合在一起,從而顯著增強(qiáng)復(fù)制的范圍。
設(shè)計(jì)中的復(fù)制越多,自動(dòng)生成設(shè)計(jì)的縮減配置的可能性就越大,這些配置更小但對(duì)測(cè)試仍然有意義。參數(shù)化的使用越復(fù)雜,在 SoC 級(jí)別最小化用于測(cè)試特定功能的設(shè)計(jì)尺寸就越靈活。
System Verilog 等主流硬件描述語(yǔ)言 (HDL) 已經(jīng)很好地支持復(fù)制和參數(shù)化,但可以通過(guò)采用更高級(jí)的語(yǔ)言作為 HDL 生成器來(lái)進(jìn)一步啟用它們。例如,SystemC、Matlab、Python 或 Chisel。與分離 IP 和 SoC 級(jí)設(shè)計(jì)的趨勢(shì)一樣,采用高級(jí)語(yǔ)言進(jìn)行硬件設(shè)計(jì)也出現(xiàn)了類(lèi)似的趨勢(shì)。
至于計(jì)算物流,如果我們?cè)诿艚菰O(shè)計(jì)方法下持續(xù)集成和測(cè)試,那么每次集成和測(cè)試都是對(duì)之前的集成和測(cè)試的增量。對(duì)于給定的增量設(shè)計(jì)更改,計(jì)算邏輯意味著自動(dòng)確定最佳設(shè)計(jì)配置、測(cè)試集和測(cè)試配置,以便以最低的計(jì)算成本提供良好的驗(yàn)證質(zhì)量。
可以將其視為一類(lèi)新的 EDA 工具 —— 一個(gè)引擎在完整的驗(yàn)證流程中控制所有其它引擎。
我們看到了通過(guò)計(jì)算物流提高驗(yàn)證計(jì)算效率的巨大潛力,特別是如果期待異構(gòu)的、基于云的未來(lái),在廣泛的模擬和仿真平臺(tái)上可以對(duì)無(wú)限使用容量進(jìn)行計(jì)費(fèi)。正如計(jì)算物流改變了 UPS 和 FedEx 等運(yùn)輸公司的包裹吞吐量一樣,它也可以改變硬件設(shè)計(jì)中的驗(yàn)證吞吐量。
總結(jié)
硬件設(shè)計(jì)已經(jīng)變得更加敏捷,但仍有很大的改進(jìn)空間。與軟件驗(yàn)證相比,這種改進(jìn)的一個(gè)關(guān)鍵障礙是硬件驗(yàn)證的巨大計(jì)算成本。
通過(guò)利用復(fù)制、參數(shù)化和高級(jí)語(yǔ)言作為 HDL 生成器,我們可以最大限度地減少測(cè)試中的設(shè)計(jì)尺寸。
通過(guò)采用計(jì)算物流,我們可以最大限度地減少測(cè)試工作量并進(jìn)一步優(yōu)化測(cè)試中的設(shè)計(jì)尺寸,尤其是在支持云的未來(lái),以及基于使用無(wú)限制驗(yàn)證計(jì)算的可用性。
關(guān)鍵詞: 生產(chǎn)力 質(zhì)量 硬件 設(shè)計(jì)興趣