喻賢坤 姜 爽 王 莉 彭 斌
(北京微電子技術(shù)研究所,北京,100076)
宇航專用集成電路(ASIC)設(shè)計(jì)流程的標(biāo)準(zhǔn)化※
喻賢坤 姜 爽 王 莉 彭 斌
(北京微電子技術(shù)研究所,北京,100076)
文摘:結(jié)合宇航ASIC的產(chǎn)品特點(diǎn),將宇航ASIC設(shè)計(jì)流程劃分為4個(gè)主要步驟(功能模塊劃分、邏輯設(shè)計(jì)、邏輯驗(yàn)證和物理實(shí)現(xiàn)),為每個(gè)步驟制定出總體設(shè)計(jì)方法與規(guī)則,在每個(gè)ASIC設(shè)計(jì)流程的細(xì)分環(huán)節(jié)中提煉出共性設(shè)計(jì)指標(biāo)和方法,在宇航ASIC設(shè)計(jì)流程個(gè)環(huán)節(jié)建立相應(yīng)的標(biāo)準(zhǔn)。
宇航元器件;專用集成電路(ASIC);設(shè)計(jì)流程;標(biāo)準(zhǔn)化。
隨著超大規(guī)模集成電路的飛速發(fā)展,集成電路產(chǎn)品更新?lián)Q代的周期越來(lái)越短,與此同時(shí),航天發(fā)射任務(wù)密度大幅度提高,也在很大程度上考驗(yàn)著集成電路產(chǎn)品的研制質(zhì)量和周期。宇航專用集成電路(Application Specific Intergrated Circuit,ASIC)屬于定制或半定制的大規(guī)模集成數(shù)字電路,從功能模塊劃分、邏輯設(shè)計(jì)、邏輯驗(yàn)證到物理實(shí)現(xiàn)是一個(gè)逐層推進(jìn)、循環(huán)迭代的過(guò)程,在保證功能完全符合要求的前提下,需要在面積、速度和功耗之間進(jìn)行平衡,從而達(dá)到電路的最佳整體性能。
目前,在工業(yè)界的商用ASIC設(shè)計(jì)流程中,每一步都離不開(kāi)電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation,EDA)工具的支持。同時(shí)EDA工具的自動(dòng)化和標(biāo)準(zhǔn)化程度也越來(lái)越高,商用ASIC設(shè)計(jì)具有明確的標(biāo)準(zhǔn)化流程。但是由于對(duì)可靠性的要求極高,宇航ASIC不可能完全照搬商用ASIC的設(shè)計(jì)流程標(biāo)準(zhǔn),必須制定針對(duì)宇航ASIC的特定規(guī)范和標(biāo)準(zhǔn)。
通過(guò)借鑒目前工業(yè)界主流的ASIC設(shè)計(jì)流程以及過(guò)去多年的多款宇航ASIC設(shè)計(jì)成功經(jīng)驗(yàn),我們對(duì)每個(gè)設(shè)計(jì)流程制定相應(yīng)的嚴(yán)格標(biāo)準(zhǔn),并將每個(gè)設(shè)計(jì)流程的標(biāo)準(zhǔn)做到精細(xì)化,從而建立一整套的宇航ASIC設(shè)計(jì)標(biāo)準(zhǔn)化流程,確保宇航ASIC研制的一次投片成功,并有效降低設(shè)計(jì)過(guò)程中的反復(fù)迭代,提高設(shè)計(jì)效率,保證產(chǎn)品質(zhì)量和性能。
在確立系統(tǒng)需求和完成功能定義后,宇航ASIC的設(shè)計(jì)流程可以分為4個(gè)主要步驟:功能模塊劃分、邏輯設(shè)計(jì)、邏輯驗(yàn)證和物理實(shí)現(xiàn),如圖1所示。
在明確功能需求并形成宇航ASIC的功能定義規(guī)格書(shū)后,應(yīng)做好以下工作。首先,需要對(duì)宇航ASIC進(jìn)行內(nèi)部功能模塊的劃分,使每個(gè)功能模塊實(shí)現(xiàn)相應(yīng)的功能,各個(gè)功能模塊連接到一起形成整個(gè)ASIC電路。第二,根據(jù)功能模塊的劃分,按照功能和接口要求,采用硬件描述語(yǔ)言(HDL)進(jìn)行模塊的邏輯設(shè)計(jì),形成寄存器傳輸級(jí)(RTL)代碼。第三,針對(duì)宇航ASIC規(guī)格書(shū)的功能和時(shí)序要求,采用現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA)原型或者軟件仿真的方式,編寫(xiě)測(cè)試代碼或者測(cè)試激勵(lì),進(jìn)行邏輯驗(yàn)證,并確保邏輯設(shè)計(jì)完全符合設(shè)計(jì)要求。第四,將RTL代碼通過(guò)邏輯綜合工具映射到相應(yīng)的工藝庫(kù)上,進(jìn)行布局布線等版圖設(shè)計(jì),完成時(shí)序驗(yàn)證和收斂,形成用于投片生產(chǎn)的版圖數(shù)據(jù)。
1.1 功能模塊劃分
功能模塊劃分定義了ASIC設(shè)計(jì)的初始架構(gòu),有效的功能劃分,既能夠提高代碼的可讀性,更為關(guān)鍵的是能夠提升邏輯綜合的效果,降低邏輯綜合所用的時(shí)間,簡(jiǎn)化邏輯綜合所需的約束和腳本[1]。
首先,根據(jù)宇航ASIC的外部功能要求和內(nèi)在模塊的功能特點(diǎn),將整體ASIC劃分為不同的功能模塊,比如時(shí)鐘產(chǎn)生模塊、復(fù)位模塊、分頻模塊、數(shù)據(jù)接收模塊、處理模塊以及輸出控制模塊等。第二,所劃分模塊的大小也會(huì)對(duì)后續(xù)的物理實(shí)現(xiàn)有很大的影響,過(guò)小的模塊實(shí)際上是人為地在模塊之間插入邊界,不利于邏輯綜合的優(yōu)化,而過(guò)大的模塊會(huì)使邏輯綜合時(shí)間變得很長(zhǎng)。第三,功能模塊劃分是否合理,直接關(guān)系到宇航ASIC的自底向上的層次化設(shè)計(jì)效率,并影響研制進(jìn)度和產(chǎn)品性能。
1.2 邏輯設(shè)計(jì)
邏輯設(shè)計(jì)是指采用HDL語(yǔ)言將電路的功能描述成RTL代碼的形式。目前,HDL語(yǔ)言主要分為Verilog HDL和VHDL,兩種設(shè)計(jì)語(yǔ)言在語(yǔ)法上很接近,大同小異。邏輯設(shè)計(jì)在編寫(xiě)RTL代碼的過(guò)程中,應(yīng)當(dāng)遵循可綜合的編碼風(fēng)格,否則會(huì)導(dǎo)致代碼不可綜合,或者綜合出的門級(jí)網(wǎng)表不正確,或者門級(jí)網(wǎng)表中存在潛在不可靠性和風(fēng)險(xiǎn)[2]。此外,RTL代碼的質(zhì)量高低和是否規(guī)范,直接影響到ASIC芯片質(zhì)量和設(shè)計(jì)進(jìn)度。一個(gè)好的RTL代碼邏輯設(shè)計(jì),能夠?qū)崿F(xiàn)一個(gè)面積相對(duì)較小、速度相對(duì)較快的電路設(shè)計(jì)。
1.3 邏輯驗(yàn)證
在完成邏輯設(shè)計(jì)后,需要通過(guò)FPGA原型或者軟件仿真這兩種形式驗(yàn)證邏輯設(shè)計(jì)是否符合設(shè)計(jì)要求,即為邏輯驗(yàn)證。邏輯驗(yàn)證是整個(gè)宇航ASIC設(shè)計(jì)流程的最為關(guān)鍵的一個(gè)步驟,占用設(shè)計(jì)時(shí)間的比例也最大,約為60%~70%左右。FPGA原型驗(yàn)證是將RTL代碼燒錄到FPGA中,根據(jù)宇航ASIC的功能和時(shí)序定義開(kāi)發(fā)測(cè)試程序,完成RTL代碼的驗(yàn)證。軟件仿真是采用仿真工具(如Modelsim、VCS、NC-Verilog等),根據(jù)ASIC的功能和時(shí)序定義開(kāi)發(fā)測(cè)試向量(TestBench,TB)進(jìn)行模擬仿真,完成RTL代碼的驗(yàn)證。兩種驗(yàn)證方式各有優(yōu)勢(shì),“FPGA原型驗(yàn)證”能夠驗(yàn)證實(shí)際的時(shí)序延遲,電路的實(shí)際運(yùn)行時(shí)間即為驗(yàn)證時(shí)間,驗(yàn)證速度快;“軟件仿真”的優(yōu)勢(shì)在于能夠觀測(cè)到每個(gè)內(nèi)部模塊、每個(gè)節(jié)點(diǎn)的變化,調(diào)試方便,易于發(fā)現(xiàn)和定位RTL設(shè)計(jì)中的問(wèn)題。邏輯驗(yàn)證的核心在于功能驗(yàn)證的完備性和時(shí)序驗(yàn)證的充分性[3,4]。
1.4 物理實(shí)現(xiàn)
在完成全部設(shè)計(jì)功能的邏輯驗(yàn)證后,需要將與工藝無(wú)關(guān)的RTL代碼映射到特定的工藝庫(kù)上,形成可供投片生產(chǎn)的版圖數(shù)據(jù)。該過(guò)程為宇航ASIC的物理實(shí)現(xiàn),包括多個(gè)環(huán)節(jié),如圖2所示。
如果是電路內(nèi)部集成存儲(chǔ)器(Memory)單元,需要采用設(shè)計(jì)工具插入存儲(chǔ)器內(nèi)建自測(cè)試(MBIST)邏輯。插入MBIST邏輯,并經(jīng)過(guò)MBISTRTL仿真確認(rèn)正確后,采用DFT Compiler工具將邏輯設(shè)計(jì)RTL代碼和MBIST邏輯映射到特定的工藝單元庫(kù)上,并在此過(guò)程中插入掃描測(cè)試邏輯、門控時(shí)鐘等結(jié)構(gòu),形成門級(jí)網(wǎng)表。
·將邏輯綜合產(chǎn)生的門級(jí)網(wǎng)表與最初始的RTL代碼,用Formality工具進(jìn)行形式驗(yàn)證,確保門級(jí)網(wǎng)表與RTL的功能一致,然后采用PT(Prime Time)工具進(jìn)行靜態(tài)時(shí)序分析,保證時(shí)序滿足設(shè)計(jì)要求。
·將邏輯綜合后的門級(jí)網(wǎng)表與PT工具產(chǎn)生的電路約束文件同時(shí)輸入到數(shù)字電路版圖設(shè)計(jì)工具Encounter中,進(jìn)行版圖布局、供電網(wǎng)絡(luò)設(shè)計(jì)、時(shí)鐘樹(shù)設(shè)計(jì)、布線及時(shí)序分析優(yōu)化和物理驗(yàn)證,并提取電路的實(shí)際寄生參數(shù),即標(biāo)準(zhǔn)參數(shù)交換格式(Standard Parasitic Exchange Format,spef)文件。
·將布局布線后的網(wǎng)表和邏輯綜合后的網(wǎng)表進(jìn)行形式驗(yàn)證,保證二者功能的一致性,然后將布局布線后的網(wǎng)表和spef輸入到PT工具,采用依據(jù)電路設(shè)計(jì)要求制定的約束進(jìn)行靜態(tài)時(shí)序分析,完成時(shí)序驗(yàn)證,并產(chǎn)生標(biāo)準(zhǔn)延遲參數(shù)(Standard Delay Format,sdf)。
·采用軟件仿真工具,反標(biāo)sdf,進(jìn)行掃描測(cè)試后仿真、MBIST后仿真和功能后仿真,確認(rèn)功能和時(shí)序符合要求后,即可形成用于投片生產(chǎn)的版圖數(shù)據(jù)。
宇航ASIC的每一步的設(shè)計(jì)性能都會(huì)直接關(guān)系到后續(xù)設(shè)計(jì)步驟的結(jié)果,環(huán)環(huán)相扣,逐層推進(jìn),進(jìn)而實(shí)現(xiàn)設(shè)計(jì)目標(biāo)。然而,宇航ASIC作為超大規(guī)模集成電路,其性能與可靠性的提升,需要每一個(gè)步驟的高效可靠設(shè)計(jì)以及與后續(xù)步驟的密切配合。因此,設(shè)計(jì)流程的標(biāo)準(zhǔn)化對(duì)于宇航ASIC性能與可靠性的提升是必要方法。此外,宇航ASIC設(shè)計(jì)流程的自身特點(diǎn)決定了在設(shè)計(jì)過(guò)程中難免會(huì)出現(xiàn)多次設(shè)計(jì)修改和反復(fù)迭代,并且越到設(shè)計(jì)后期,設(shè)計(jì)更改對(duì)進(jìn)度的影響越大,付出的代價(jià)也更大。而設(shè)計(jì)流程的規(guī)范化和標(biāo)準(zhǔn)化,可以有效減少設(shè)計(jì)迭代或反復(fù)的次數(shù),從而縮短研制周期。
基于以上對(duì)宇航ASIC設(shè)計(jì)流程和特點(diǎn)的分析,制定了規(guī)范化的“宇航ASIC設(shè)計(jì)流程標(biāo)準(zhǔn)”,包括4項(xiàng)標(biāo)準(zhǔn):《宇航ASIC功能模塊劃分規(guī)范》、《宇航ASIC RTL邏輯設(shè)計(jì)規(guī)范》、《宇航ASIC邏輯驗(yàn)證規(guī)范》和《宇航ASIC物理實(shí)現(xiàn)設(shè)計(jì)規(guī)范》。
2.1 功能模塊劃分的標(biāo)準(zhǔn)化
在大多數(shù)的應(yīng)用系統(tǒng)中,宇航ASIC是作為協(xié)處理器,完成速度要求低的非核心運(yùn)算和數(shù)據(jù)處理;或者作為溫度采集、圖像采集、陀螺、馬達(dá)等功能組件與主處理器之間的接口電路,完成數(shù)據(jù)采集、數(shù)據(jù)轉(zhuǎn)換、時(shí)序驅(qū)動(dòng)和邏輯控制等功能。
我們根據(jù)過(guò)去多款宇航ASIC的應(yīng)用場(chǎng)合和特點(diǎn),結(jié)合模塊化驗(yàn)證和邏輯綜合等設(shè)計(jì)要求,制定了《宇航ASIC功能模塊劃分規(guī)范》,該規(guī)范包括3項(xiàng)功能模塊劃分標(biāo)準(zhǔn):①基于邏輯功能的模塊劃分標(biāo)準(zhǔn);②基于設(shè)計(jì)目標(biāo)的模塊劃分標(biāo)準(zhǔn);③基于模塊可復(fù)用原則的模塊劃分標(biāo)準(zhǔn)。上述標(biāo)準(zhǔn)分別從不同的出發(fā)點(diǎn)規(guī)范了功能模塊的劃分方式,內(nèi)容包括該標(biāo)準(zhǔn)的目的、原理分析、劃分方式以及實(shí)施方法。
《基于邏輯功能的模塊劃分標(biāo)準(zhǔn)》規(guī)定:根據(jù)接口功能的不同,模塊可以劃分為處理器接口、數(shù)據(jù)采集、通用異步收發(fā)器(Universal Asynchronous Receiver/Transmitter,UART)、串行外設(shè)接口(Serial Peripheral Interface,SPI)、輸出驅(qū)動(dòng)以及數(shù)據(jù)交互等模塊;根據(jù)內(nèi)部模塊功能的不同,可以劃分為時(shí)鐘產(chǎn)生、復(fù)位、分頻、數(shù)據(jù)處理、總線等模塊。
《基于設(shè)計(jì)目標(biāo)的模塊劃分標(biāo)準(zhǔn)》規(guī)定:根據(jù)時(shí)鐘域和電壓域要求的不同,模塊可以劃分為高頻邏輯、低頻邏輯、高電壓域、低電壓域等模塊。
《基于模塊可復(fù)用原則的模塊劃分標(biāo)準(zhǔn)》規(guī)定:哪些模塊適合劃分為可復(fù)用模塊以及可復(fù)用模塊的接口的定義規(guī)則等內(nèi)容。
如,某星用ASIC需要完成的功能是采集衛(wèi)星姿態(tài)的數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)后供處理器讀取,同時(shí)接收處理器發(fā)送來(lái)的指令和數(shù)據(jù),對(duì)衛(wèi)星進(jìn)行姿態(tài)控制。其功能模塊劃分如圖3所示。
該星用ASIC的功能模塊劃分,由于沒(méi)有特殊的時(shí)鐘域、電壓域等要求,采用的是《基于邏輯功能的模塊劃分標(biāo)準(zhǔn)》。根據(jù)與外部接口功能的不同,劃分為處理器接口、數(shù)據(jù)采集、控制信號(hào)生成和數(shù)據(jù)發(fā)送;根據(jù)內(nèi)部功能模塊的不同,劃分為時(shí)鐘產(chǎn)生、復(fù)位產(chǎn)生、分頻等模塊。采用這種標(biāo)準(zhǔn)進(jìn)行的功能模塊劃分,會(huì)使RTL代碼具有較強(qiáng)的可讀性,便于維護(hù),并且使得邏輯結(jié)構(gòu)清晰,有利于模塊化的設(shè)計(jì)和驗(yàn)證。同時(shí),對(duì)于自底向上的層次化設(shè)計(jì)來(lái)說(shuō),模塊劃分清晰,接口明確,對(duì)于層次化設(shè)計(jì)的時(shí)序匹配和性能提升有積極的促進(jìn)作用。
2.2 邏輯設(shè)計(jì)的標(biāo)準(zhǔn)化
我們結(jié)合宇航ASIC應(yīng)用場(chǎng)合的特點(diǎn),針對(duì)宇航ASIC邏輯設(shè)計(jì)的RTL代碼編寫(xiě),借鑒商用數(shù)字電路產(chǎn)品代碼設(shè)計(jì)規(guī)則檢查工具Leda的規(guī)則集,歸納出現(xiàn)問(wèn)題的ASIC電路在代碼設(shè)計(jì)過(guò)程中的不足之處,制定了《宇航ASIC RTL邏輯設(shè)計(jì)規(guī)范》。該規(guī)范主要包括3項(xiàng)RTL代碼設(shè)計(jì)標(biāo)準(zhǔn):①可綜合風(fēng)格的RTL代碼設(shè)計(jì)標(biāo)準(zhǔn);②高可靠性的RTL代碼設(shè)計(jì)標(biāo)準(zhǔn);③增強(qiáng)代碼可讀性的RTL代碼設(shè)計(jì)標(biāo)準(zhǔn)。上述標(biāo)準(zhǔn)是為了實(shí)現(xiàn)不同的RTL代碼設(shè)計(jì)目標(biāo),各有側(cè)重。
《可綜合風(fēng)格的RTL代碼設(shè)計(jì)標(biāo)準(zhǔn)》包括150條RTL代碼設(shè)計(jì)規(guī)則,涉及到不可綜合語(yǔ)句的禁用列表,賦值語(yǔ)句、if語(yǔ)句、case語(yǔ)句等編寫(xiě),敏感列表的編寫(xiě)等規(guī)則標(biāo)準(zhǔn)。如,在禁用列表中包括initial、wait、#delay等不可綜合的語(yǔ)句,時(shí)序邏輯采用非阻塞賦值,組合邏輯采用阻塞賦值。
《高可靠性的RTL代碼代碼設(shè)計(jì)標(biāo)準(zhǔn)》包含4條設(shè)計(jì)規(guī)則:①?gòu)?fù)位結(jié)構(gòu)應(yīng)當(dāng)采用異步復(fù)位、同步釋放的結(jié)構(gòu);②影響電路工作模式或狀態(tài)的全局性的關(guān)鍵配置寄存器,采用三位二進(jìn)制碼來(lái)表示一位配置寄存器的值,并進(jìn)行糾檢錯(cuò)刷新操作;③狀態(tài)機(jī)的所有編碼狀態(tài)應(yīng)當(dāng)是明確的,不能讓狀態(tài)機(jī)進(jìn)入無(wú)法轉(zhuǎn)移的狀態(tài);④存儲(chǔ)器應(yīng)當(dāng)配合糾檢錯(cuò)碼(Error Eetection and Correction Code,EDAC)使用。
《增強(qiáng)代碼可讀性的RTL代碼設(shè)計(jì)標(biāo)準(zhǔn)》包含2條規(guī)則:①模塊、端口、信號(hào)和變量的命名,應(yīng)當(dāng)清晰地反映功能描述;②每個(gè)模塊的開(kāi)頭都應(yīng)當(dāng)具有詳細(xì)直觀的聲明注釋,包括模塊名、功能描述、設(shè)計(jì)者、設(shè)計(jì)日期、版本和更新內(nèi)容等。
編制《宇航ASIC RTL邏輯設(shè)計(jì)規(guī)范》應(yīng)當(dāng)遵循的原則是:①可綜合,由于邏輯設(shè)計(jì)是邏輯綜合等物理實(shí)現(xiàn)的基礎(chǔ),直接關(guān)系到邏輯綜合出的門級(jí)網(wǎng)表的綜合性能,因此在編寫(xiě)HDL代碼過(guò)程中,應(yīng)當(dāng)充分考慮代碼的物理實(shí)現(xiàn);優(yōu)秀的代碼設(shè)計(jì)風(fēng)格,包括適當(dāng)?shù)膶哟位O(shè)計(jì),將會(huì)使邏輯綜合工具花費(fèi)更少的時(shí)間來(lái)實(shí)現(xiàn)設(shè)計(jì)目標(biāo);②高可靠,宇航ASIC的應(yīng)用場(chǎng)合為地球外空間,會(huì)受到大量高能粒子的干擾,在邏輯設(shè)計(jì)中應(yīng)當(dāng)通過(guò)增加冗余等方式保證其可靠性;③可讀性,RTL代碼還應(yīng)當(dāng)考慮到其可讀性,便于代碼的驗(yàn)證和維護(hù)。
2.3 邏輯驗(yàn)證的標(biāo)準(zhǔn)化
邏輯驗(yàn)證的目的是確保邏輯設(shè)計(jì)能夠完成設(shè)計(jì)規(guī)范的任務(wù)。驗(yàn)證工程師通過(guò)閱讀設(shè)計(jì)規(guī)格書(shū)并擬定驗(yàn)證計(jì)劃,編寫(xiě)測(cè)試程序或創(chuàng)建測(cè)試激勵(lì)檢查RTL代碼是否準(zhǔn)確地實(shí)現(xiàn)了所有設(shè)計(jì)功能要求。
借鑒工業(yè)界的數(shù)字集成電路驗(yàn)證流程,結(jié)合FPGA原型驗(yàn)證和軟件仿真驗(yàn)證兩種驗(yàn)證方式,將常用的測(cè)試程序或驗(yàn)證模型固化下來(lái),形成固化的驗(yàn)證知識(shí)產(chǎn)權(quán)(Intellectual Property,IP)或方法,融入到相應(yīng)的驗(yàn)證標(biāo)準(zhǔn)中,制定了《宇航ASIC邏輯驗(yàn)證規(guī)范》,包括五項(xiàng)標(biāo)準(zhǔn):①宇航ASIC邏輯驗(yàn)證計(jì)劃制定標(biāo)準(zhǔn);②宇航ASIC的FPGA原型驗(yàn)證及考核標(biāo)準(zhǔn);③宇航ASIC的FPGA原型驗(yàn)證報(bào)告編寫(xiě)規(guī)范;④宇航ASIC的軟件仿真驗(yàn)證及考核標(biāo)準(zhǔn);⑤宇航ASIC的軟件仿真驗(yàn)證報(bào)告編寫(xiě)規(guī)范。
以上5項(xiàng)標(biāo)準(zhǔn)是按照ASIC的驗(yàn)證流程分別來(lái)制定的,包括3個(gè)技術(shù)文檔的編寫(xiě)和2種驗(yàn)證方式及其考核標(biāo)準(zhǔn),可以作為宇航ASIC驗(yàn)證過(guò)程中的指導(dǎo)規(guī)范,讓驗(yàn)證工程師有章可循,同時(shí)有利于設(shè)計(jì)文檔的規(guī)范化管理。技術(shù)文檔標(biāo)準(zhǔn)規(guī)定了技術(shù)文檔應(yīng)當(dāng)包含哪些內(nèi)容,采用什么樣的編寫(xiě)格式。
《宇航ASIC邏輯驗(yàn)證計(jì)劃制定標(biāo)準(zhǔn)》規(guī)定:驗(yàn)證計(jì)劃的技術(shù)文檔中應(yīng)當(dāng)包括引用文件、驗(yàn)證策略、驗(yàn)證環(huán)境、設(shè)計(jì)要點(diǎn)檢查計(jì)劃、驗(yàn)證程序或測(cè)試向量的說(shuō)明、外圍驗(yàn)證模塊的說(shuō)明、功能驗(yàn)證和時(shí)序驗(yàn)證通過(guò)的標(biāo)準(zhǔn)等內(nèi)容,而每項(xiàng)內(nèi)容都規(guī)定了應(yīng)當(dāng)做到什么程度才符合要求。如,設(shè)計(jì)要點(diǎn)檢查計(jì)劃規(guī)定:驗(yàn)證計(jì)劃中的功能驗(yàn)證點(diǎn)必須涵蓋設(shè)計(jì)規(guī)格書(shū)中的所有功能模塊和所有功能點(diǎn),并做到一一對(duì)應(yīng)。
《宇航ASIC的FPGA原型驗(yàn)證及考核標(biāo)準(zhǔn)》規(guī)定:FPGA型號(hào)及原型板的選取、測(cè)試PCB板的原理圖設(shè)計(jì)、單片機(jī)固化應(yīng)用程序基本設(shè)置的移植及復(fù)用的說(shuō)明、FPGA原型結(jié)果的判斷標(biāo)準(zhǔn)和驗(yàn)證質(zhì)量的考核等內(nèi)容。如,F(xiàn)PGA原型驗(yàn)證質(zhì)量,要求通過(guò)功能點(diǎn)與設(shè)計(jì)規(guī)格書(shū)定義的功能點(diǎn)逐條比對(duì)來(lái)考核是否進(jìn)行了完備的FPGA原型驗(yàn)證。
《宇航ASIC的軟件仿真驗(yàn)證及考核標(biāo)準(zhǔn)》規(guī)定:固化的驗(yàn)證IP模型、故障注入、時(shí)序反標(biāo)和驗(yàn)證、驗(yàn)證質(zhì)量的考核?!膀?yàn)證IP模型”包括6種:UART、SPI、I2C、CAN接口模型以及APS模型、CPU模型。以上仿真模型經(jīng)常作為宇航ASIC的外圍器件,將這些反復(fù)使用并且正確的仿真模型固化下來(lái)形成驗(yàn)證IP,能夠很輕易地移植到采用此類外圍器件的宇航ASIC的軟件仿真驗(yàn)證中。“故障注入”包括故障注入的點(diǎn)應(yīng)當(dāng)選取關(guān)鍵寄存器、狀態(tài)機(jī)或者存儲(chǔ)器,而不能是組合邏輯中的某個(gè)節(jié)點(diǎn),因?yàn)榻M合邏輯上的某個(gè)節(jié)點(diǎn)的故障并不一定會(huì)導(dǎo)致后級(jí)觸發(fā)器發(fā)生錯(cuò)誤,可能是一次無(wú)效的故障注入?!皶r(shí)序反標(biāo)和驗(yàn)證”規(guī)定反標(biāo)的sdf文件應(yīng)當(dāng)與電路工作模式一致,時(shí)序驗(yàn)證應(yīng)當(dāng)包括最好和最差的兩個(gè)工藝角,包括所有的工作模式,如功能模式、MBIST、掃描模式等?!膀?yàn)證質(zhì)量的考核”,通過(guò)代碼覆蓋率、功能覆蓋率等量化指標(biāo)來(lái)考核軟件仿真驗(yàn)證的完備性,代碼和功能覆蓋率均需要達(dá)到100%,才能開(kāi)展后續(xù)設(shè)計(jì)工作。通過(guò)編制以上標(biāo)準(zhǔn)和規(guī)范,在FPGA原型驗(yàn)證和軟件仿真驗(yàn)證方面,建立了指導(dǎo)性的驗(yàn)證方法和策略。
2.4 物理實(shí)現(xiàn)的標(biāo)準(zhǔn)化
由于宇航ASIC的空間應(yīng)用的抗輻照要求,因此在宇航ASIC的物理實(shí)現(xiàn)過(guò)程中,需要將RTL代碼映射到特定的抗輻照單元工藝庫(kù)上。每個(gè)工藝庫(kù)都具有自身的特征參數(shù),需要在準(zhǔn)確把握單元庫(kù)特征的情況下,采用設(shè)計(jì)工具進(jìn)行合理完善的約束設(shè)置,才能夠?qū)崿F(xiàn)理想的物理設(shè)計(jì)。此外,在宇航ASIC的物理實(shí)現(xiàn)過(guò)程中,流程繁多,需要關(guān)注的細(xì)節(jié)也很繁雜,每位設(shè)計(jì)師對(duì)于設(shè)計(jì)工具的理解和認(rèn)識(shí)也有所不同,這就會(huì)給宇航ASIC的物理實(shí)現(xiàn)帶來(lái)不確定的設(shè)計(jì)風(fēng)險(xiǎn)。
根據(jù)常用宇航ASIC的特點(diǎn)、現(xiàn)有抗輻照單元工藝庫(kù)的特征以及設(shè)計(jì)工具的必要設(shè)置,制定了《宇航ASIC物理實(shí)現(xiàn)設(shè)計(jì)規(guī)范》[1,5-8],包括6項(xiàng)標(biāo)準(zhǔn):①M(fèi)BIST設(shè)計(jì)規(guī)范;②邏輯綜合設(shè)計(jì)規(guī)范;③可測(cè)性設(shè)計(jì)規(guī)范;④靜態(tài)時(shí)序分析規(guī)范;⑤后端布局布線規(guī)范;⑥后仿真規(guī)范。這些標(biāo)準(zhǔn)都是基于目前主流的設(shè)計(jì)工具,歸納提煉以往多款A(yù)SIC的設(shè)計(jì)約束腳本,將具有共性的設(shè)置形成宇航ASIC的物理實(shí)現(xiàn)標(biāo)準(zhǔn)。
《MBIST設(shè)計(jì)規(guī)范》,基于Mentor Graphics公司的MBIST設(shè)計(jì)工具M(jìn)BISTArchitect,內(nèi)容包括:MBIST早期規(guī)劃、測(cè)試算法選取、仿真等。在MBIST早期規(guī)劃中,對(duì)設(shè)計(jì)中存在不同類型、數(shù)量和工作頻率的Memory的情況下,如何進(jìn)行MBIST的測(cè)試結(jié)構(gòu)的規(guī)劃,是采用并行測(cè)試還是串行測(cè)試結(jié)構(gòu),如何平衡測(cè)試邏輯的規(guī)模、復(fù)雜度、測(cè)試質(zhì)量與測(cè)試時(shí)間的關(guān)系,根據(jù)以往設(shè)計(jì)經(jīng)驗(yàn),都形成了最優(yōu)化的方案,可以作為后續(xù)電路的指導(dǎo)方案和標(biāo)準(zhǔn)。如,電路中存在兩種不同工作頻率的Memory,應(yīng)當(dāng)為這兩類Memory分別插入MBIST測(cè)試邏輯結(jié)構(gòu),如果高頻Memory采用低頻的測(cè)試邏輯會(huì)造成時(shí)序測(cè)試達(dá)不到要求,而低頻Memory采用高頻的測(cè)試邏輯會(huì)造成時(shí)序的過(guò)約,都不是最佳的測(cè)試方案。
《邏輯綜合設(shè)計(jì)規(guī)范》,基于Synopsys公司的邏輯綜合工具Design Compiler(DC),根據(jù)多款A(yù)SIC的設(shè)計(jì)、實(shí)測(cè)和應(yīng)用以及工藝庫(kù)特征參數(shù),在邏輯綜合的約束設(shè)置和參數(shù)選取方面制定了具有宇航ASIC設(shè)計(jì)特點(diǎn)的標(biāo)準(zhǔn)。內(nèi)容包括:庫(kù)的設(shè)置、時(shí)序約束、邏輯綜合的結(jié)果報(bào)告等。庫(kù)的設(shè)置必須包含目標(biāo)工藝庫(kù)、綜合庫(kù)、符號(hào)庫(kù)、鏈接庫(kù)的設(shè)置,時(shí)序約束必須包含所有時(shí)鐘的定義、時(shí)鐘偏差裕量設(shè)置為20%、端口延時(shí)嚴(yán)格執(zhí)行板級(jí)實(shí)際需求等內(nèi)容。
其余幾項(xiàng)設(shè)計(jì)規(guī)范,都是采用同樣的思路,在不同的設(shè)計(jì)流程階段,完成相應(yīng)標(biāo)準(zhǔn)的制定。
規(guī)范化后的《宇航ASIC設(shè)計(jì)流程標(biāo)準(zhǔn)》,覆蓋了宇航ASIC設(shè)計(jì)的4個(gè)設(shè)計(jì)步驟,包含17個(gè)子規(guī)范,既具有總體的設(shè)計(jì)指導(dǎo)方法和原則,又具備量化的設(shè)計(jì)考核標(biāo)準(zhǔn)和設(shè)計(jì)約束參數(shù)的設(shè)置規(guī)范。這些子規(guī)范都是按照設(shè)計(jì)流程來(lái)分類、整理和制定的,在每個(gè)設(shè)計(jì)流程環(huán)節(jié)具有很強(qiáng)的實(shí)際指導(dǎo)意義,將之前略顯粗放的設(shè)計(jì)流程管理做到更加精細(xì)化?!队詈紸SIC設(shè)計(jì)流程標(biāo)準(zhǔn)》主要是針對(duì)宇航ASIC與商用ASIC產(chǎn)品的差異,對(duì)特定設(shè)計(jì)流程進(jìn)行了規(guī)范化,并且對(duì)關(guān)鍵的參數(shù)進(jìn)行了精細(xì)化的定量規(guī)定。
近期,某款A(yù)SIC的研制,就是嚴(yán)格按照該《宇航ASIC設(shè)計(jì)流程標(biāo)準(zhǔn)》進(jìn)行的。該宇航ASIC是一款典型的數(shù)據(jù)采集、處理和時(shí)序驅(qū)動(dòng)電路,除具備自身一些特殊的應(yīng)用需求外,電路的規(guī)模、設(shè)計(jì)難度類似于之前的某款電路,實(shí)現(xiàn)了一次性投片成功,在功耗等性能上滿足用戶需求,并且將設(shè)計(jì)周期縮短了25%左右。
從該宇航ASIC的研制情況來(lái)看,《宇航ASIC設(shè)計(jì)流程標(biāo)準(zhǔn)》能夠有效規(guī)范宇航ASIC的設(shè)計(jì)流程,提升產(chǎn)品可靠性和性能,縮短研制周期,可執(zhí)行性較高,效果明顯,實(shí)現(xiàn)了產(chǎn)品設(shè)計(jì)流程的精細(xì)化管理,具有很強(qiáng)的指導(dǎo)和推廣意義,發(fā)揮了標(biāo)準(zhǔn)化的作用。
通過(guò)借鑒工業(yè)界的商用ASIC設(shè)計(jì)流程標(biāo)準(zhǔn),結(jié)合宇航ASIC的應(yīng)用場(chǎng)合和特點(diǎn),在抗輻照單元庫(kù)的基礎(chǔ)上,總結(jié)以往多款宇航ASIC的成功設(shè)計(jì)經(jīng)驗(yàn),以主流的數(shù)字電路設(shè)計(jì)工具為標(biāo)準(zhǔn),形成了本文所述的宇航ASIC設(shè)計(jì)的全流程規(guī)范,適用于在確立產(chǎn)品規(guī)格書(shū)之后到形成符合設(shè)計(jì)要求的版圖數(shù)據(jù)的整個(gè)宇航ASIC設(shè)計(jì)流程。通過(guò)標(biāo)準(zhǔn)的制定、實(shí)施,能夠指導(dǎo)設(shè)計(jì)人員綜合考量ASIC電路的各個(gè)性能指標(biāo),有利于產(chǎn)品整體性能的提升,能夠很大程度上減少設(shè)計(jì)過(guò)程中的人為失誤,避免設(shè)計(jì)反復(fù),提高設(shè)計(jì)效率。通過(guò)標(biāo)準(zhǔn)的實(shí)施及效果評(píng)價(jià),有利于增強(qiáng)宇航ASIC設(shè)計(jì)工程師的標(biāo)準(zhǔn)化意識(shí),密切標(biāo)準(zhǔn)化工作與科研工程的結(jié)合,提升航天電子產(chǎn)品的研發(fā)水平。
[1]Synopsys.Design Compiler User Guide[M]. Version J-2014.09,2014-09.
[2]邸志雄.HDL代碼質(zhì)量評(píng)估方法關(guān)鍵技術(shù)研究與電路性能優(yōu)化[D].西安電子科技大學(xué),2013.
[3]夏宇聞.Verillog數(shù)字集成電路設(shè)計(jì)教程[M].第2版.北京:北京航空航天大學(xué)出版社,2008.
[4][美]克里斯·斯皮爾//張春,麥宋平,趙益新.System Verilog驗(yàn)證[M].第2版.北京:科學(xué)出版社,2009.
[5]Mentor Graphics,MBIST Architect Reference Manual[M].Software Version 2013.04,2013-12
[6]Synopsys.DFT Compiler,DFTMAX,and DFTMAX Ultra User Guide[M].Version J-2014.09-SP2,2014-12.
[7]Synopsys.Prime Time User Guide[M].Version J-2014.12,2014-12.
[8]Synopsys.Tetra MAX ATPG User Guide[M]. Version J-2014.09-SP2,2014-12.
喻賢坤(1984年—),男,工程師,目前從事ASIC和SoC系統(tǒng)架構(gòu)設(shè)計(jì)研究。
姜爽(1981年—),女,高級(jí)工程師,目前從事數(shù)字集成電路設(shè)計(jì)研究。
王莉(1982年—),女,工程師,目前從事數(shù)字集成電路設(shè)計(jì)研究。
※本文源于原總裝備部預(yù)研項(xiàng)目《導(dǎo)航衛(wèi)星信息處理專用ASIC技術(shù)》(GFZX03010201××)和“十一五”核高基:宇航標(biāo)準(zhǔn)體系建設(shè)項(xiàng)目(產(chǎn)品規(guī)范類)(HGJ1004××)。