Standard cell涯贞,標(biāo)準(zhǔn)單元枪狂,或者簡稱cell,可以說是數(shù)字芯片后端最基本的概念之一了宋渔,甚至可能沒有接觸過后端的同學(xué)也有所耳聞州疾?那么,它到底是什么呢皇拣?我們?yōu)楹我O(shè)定標(biāo)準(zhǔn)單元呢严蓖,以及這些cell是怎么應(yīng)用到我們的后端設(shè)計中的呢?我就來以我個人的理解闡述一下這幾個問題氧急。
首先颗胡,在芯片設(shè)計最早期,門電路不多吩坝,晶體管都靠手畫在圖紙上毒姨,所有芯片都是一些邏輯簡單的全定制芯片的時代,是不存在什么標(biāo)準(zhǔn)單元的概念的钾恢。那時的工程師們只需要把一個一個的晶體管擺好手素,電路就可以正常工作了。但是隨著集成化越來越高瘩蚪,所有的門電路都靠一個個手畫變得非常不現(xiàn)實(shí),一個非常樸素的想法就是把一些用過很多次的電路打包稿黍,就比如最基本的與或非門疹瘦,我們要用的時候直接調(diào)用這個包就行了,就像復(fù)制粘貼一樣巡球,這就非常方便了言沐。比如一個二輸入與門邓嘹,我只要設(shè)計好它的電路,畫出它的版圖险胰,提取出來它的各項參數(shù)汹押,就可以無限次的在整個芯片上復(fù)制了。而后起便,更進(jìn)一步棚贾,我們可以把整個芯片所有可重用的部分都打包起來,為了方便我們擺放和連線榆综,我們會制定一些規(guī)范化的rule妙痹,比如我們規(guī)定每個包要有固定的高度,稱為row鼻疮,寬度可以以一個CPP(柵極間距)的距離變化怯伊,稱為site。這樣就成為了一個std cell判沟。
Std cell可以大大簡化我們的設(shè)計復(fù)雜度耿芹,它的意義,就像蓋樓房的磚頭挪哄,構(gòu)成生物的細(xì)胞吧秕,畫畫的顏料一樣。如果對于任何一個邏輯門都要求后端從頭晶體管開始設(shè)計中燥,那是真的無法想象的寇甸。目前所有的芯片已經(jīng)全部采用了這種設(shè)計方式。但是疗涉,不可避免地拿霉,它會有一些資源的浪費(fèi),因?yàn)槊恳粋€cell都是有統(tǒng)一的設(shè)計規(guī)則咱扣,必然不能針對性的在一些小的方面進(jìn)行優(yōu)化绽淘。舉個例子,在芯片的某個地方可以把pin出在cell左側(cè)比較好route闹伪,但是這種cell設(shè)計的都是在右側(cè)沪铭。當(dāng)然,類似這樣的影響在大型design中可以忽略了偏瓤。
設(shè)計std cell是一件非常復(fù)雜的事杀怠,我感覺不亞于設(shè)計一款芯片的復(fù)雜程度。首先是電路的設(shè)計厅克,schematic design赔退。有一些具有相對復(fù)雜邏輯功能的cell,它的邏輯電路如何設(shè)計,如何兼顧PPA地進(jìn)行設(shè)計硕旗,其實(shí)是很難的窗骑,設(shè)計結(jié)束后還要進(jìn)行許多的驗(yàn)證之類。而后layout工程師要設(shè)計畫出cell的版圖漆枚。我們后端設(shè)計一般繞線層十幾層頂天了创译,版圖工程師要面對的是數(shù)不清的各種各樣的層,有metal墙基,有oxide软族,有poly,有n區(qū)有p區(qū)碘橘,應(yīng)有盡有互订,還要考慮盡可能出pin M1或者M(jìn)2出,低一點(diǎn)痘拆,給我們APR預(yù)留更多的繞線資源仰禽。而后還要有專門的工程師來進(jìn)行cell 參數(shù)的提取,一般就是指power和timing的提取纺蛆。Power應(yīng)該主要就是leakage吐葵,timing就很麻煩了,需要在各個corner下桥氏,每個corner出一套它的各項參數(shù)温峭。舉個例子,一個cell的delay信息字支,基本需要在各個PVT條件下凤藏,測出各個引腳在各種邏輯狀態(tài)下,input transition和output load各種情形下堕伪,cell的delay值揖庄。更別提一些OCV的信息,還有POCV的lvf信息了欠雌。最終所有這一切做好后蹄梢,就可以生成cell的LIB文件了。結(jié)合cell的LEF文件(物理信息)富俄,我們后端就可以愉快的用這些cell搭積木啦禁炒。
我們后端在用的時候,這些cell就是一個一個的黑匣子霍比,看不見內(nèi)部幕袱,只能看到它的大小和出pin的信息。讀入網(wǎng)表文件后悠瞬,相應(yīng)的cell就出現(xiàn)在我們的GUI界面了凹蜂。對了,前端在綜合的時候也需要讀cell的lib阁危。他們拿到的RTL代碼不會指定一個與門要用哪種cell玛痊,比如我們目前有兩種不同的與門cell,邏輯功能一樣狂打,但是有一些別的差異擂煞,綜合工具就會全面考慮這一塊電路,選用相應(yīng)的cell作為那一段verilog代碼里表示的與門趴乡。先寫這么多吧对省,文中提到的各種名詞之后我可能都會寫一寫,希望對大家有所幫助晾捏。
微信公眾號:偉醬的芯片后端之路蒿涎。