1 緒論
這是芯片設計的第二個步驟。規(guī)格(spec)與計劃(plan)確定。我們在立項一文中講過,當時要解決的問題是我們要不要做。如果我們確定了要做,接下來就是要解決怎么做的問題。
在這個階段我們主要做兩件事,規(guī)格的確定與計劃的敲定。俗話說,凡事預則立,不預則廢。由于芯片從立項到上市其實流程非常長,如果在真正動手設計芯片之前沒有一個完善的spec和plan,最后做出來的東西必然走形嚴重。
主要內(nèi)容如下。
其實看名字就知道這個步驟是干啥的。主要分為兩個步驟,確定規(guī)格,以及確定計劃。
確定規(guī)格:立項只是確認了芯片的商業(yè)需求,這個步驟就是把商業(yè)需求轉(zhuǎn)換為設計需求。
計劃確認:確認各種時間計劃,以及后續(xù)的各種操作。詳細內(nèi)容見后文。
2 確定規(guī)格
我們先來講第一個內(nèi)容,規(guī)格的確認。規(guī)格決定了芯片未來的樣子。
我們立項的時候的輸出應該是商業(yè)上的需求。比如我們做個震動檢測的AI芯片,支持CNN網(wǎng)絡,要跑到多少幀。此處我們需要把這些商業(yè)上的東西分解成真正可以設計實現(xiàn)的規(guī)格。主要是四個方面內(nèi)容。
這個部分我理解應該是第一個要完成的,否則后續(xù)的功能點沒辦法確認下來。一般的芯片大致有以下組成方式。一種是SOC類型的,另一種是外掛外設型(套片)的。我們以RISC-V核和AI核組成的AI系統(tǒng)來舉例子。
無論是哪種辦法,都涉及到軟硬件接口劃分的問題。為什么要做軟硬件劃分以及寄存器定義呢?主要還是靈活性、工作量以及能效方面的權衡。任務用C語言寫,在CPU上做性能和能效都比較低,但靈活性非常高,只要CPU本身不出錯,軟件出錯了流片后依舊能改。相應的,用HDL(Verilog)實現(xiàn)的硬核能效是比較高的,但是一旦流片沒有辦法改,所以驗證設計工作量都很大。
軟硬件如何劃分沒有統(tǒng)一的章法,主要就是根據(jù)實際情況,選定芯片的靈活度。不過大致都是遵循以下幾個規(guī)則:
·控制類的可以軟件做,較為靈活。數(shù)據(jù)計算類的硬件做,能效較高。
·以后可能升級的組件軟件做,靈活度大。以后大概率不動的功能硬件做。
·只能串行的功能可以軟件做,可以很好并行化的任務硬件做
一般軟件(CPU核)和硬件(我們的芯片)之間的交互是通過寄存器交互的。有了軟硬件功能劃分以后,下一個重要的步驟就是確定一個配置寄存器列表,也就是開放給軟件的接口。這個東西后續(xù)是芯片datasheet最重要的組成部分。寄存器也分為幾種。大致上以下五個類別。
·只寫寄存器。只允許從CPU側(cè)寫。一般用于配置芯片。
·只讀寄存器。只用于從芯片側(cè)寫,一般用于上報一些信息給CPU。
·讀寫寄存器。CPU和我們的芯片兩側(cè)都能寫,用戶CPU和芯片交互,用于CPU和芯片共同維護一個信息。
·自復位寄存器。配置一個值,然后生效后自動清零。這個主要用在軟復位上,也可以叫脈沖或者W1寄存器。
·ROM寄存器。一個固定的值,一般用來標識一些版本信息什么的。
有了寄存器,再確定有幾個中斷即可。
設計好這幾類寄存器,形成一個表,這一步驟就完成了。同時軟硬件接口就定下來了。
2.2 芯片物理接口
上面說的軟硬件接口其實是一個比較抽象的概念,把寄存器當做軟硬件交流信息的媒介。這個地方介紹的接口屬于物理接口,和外界的物理接口顯然要好用。有了軟硬件接口,設計需求以后芯片與外部的PAD基本就可以確定下來了,頂多后期可能會做一些小修小補。次出先把接口確定下來,方便后續(xù)PCB,測試方案等可以提前做起來。
2.3 硬件功能描述
有了芯片的軟硬家劃分和接口,芯片內(nèi)部具體要實現(xiàn)什么功能在這個地方就能定下來。分門別類的將商業(yè)需求逐條翻譯為硬件可實現(xiàn)的設計需求。這個地方可能就面臨著第一次需求的變更。有可能某個需求硬件實在是不好實現(xiàn),或者實現(xiàn)起來代價非常大。這個時候需要和產(chǎn)品的人拉扯一下,看看能不能簡化需求,或者不做需求??傊?,這一步以后會輸出經(jīng)過產(chǎn)品與設計認可的詳細的芯片實現(xiàn)的功能表,后續(xù)設計人員直接按照這個表實現(xiàn)芯片。
這個步驟和2.2其實有點類似,屬于對應的東西。特別是對于時延有較高要求的系統(tǒng),比如通信系統(tǒng)等等,硬件性能要逐條列出來。舉個簡單的例子,處理224x224分辨率,使用3x3核心的Alexnet卷積網(wǎng)絡需要1ms??偸蔷褪前研阅軐懬宄?,避免設計人員出現(xiàn)誤解。當然也有可能硬件功能描述和硬件性能描述的人員都是同一批設計人員,這樣子的情況下仍然建議把這個描述寫清楚,方便產(chǎn)品的小伙伴check一下是不是有問題。
至此,spec的確定大體上就結束了,寫起來感覺幾千字就寫完了,但是實際上花的時間不少,相互拉扯也不少。此處spec的輸入是市場提供的原始需求,我們把它拆解成設計需求。有時候這個地方spec確認也有營銷人員的參與。比如某個特性,可能實際沒什么用,但是就是能刷某個指標,對后期宣傳或者拿到投資非常重要,營銷人員希望把這個特性加入進去,這時候產(chǎn)品或者技術人員可能不愿意做,總覺得有點浪費時間和生命,又是無數(shù)個加班的夜,就為了整這些虛頭巴腦的東西,有點想不通。但是其實有時候想想,從大局觀上來講,如果能做進去還是做進去吧,做市場的或者拉融資的也有自己的難處,也許短期目標不一致,但長期目標是一致的,芯片有噱頭,能PK掉競爭對手,能賣出去或者能拉到投資,做技術的一幫人才能有資金一稿一稿實現(xiàn)心中的美好。
扯遠了,接下來就開始確定計劃了。
3 確定計劃
我們首先來回答一個問題,為什么要確定計劃?我們用下面這個圖來解釋一下。這個圖是當時寫文章的時候最喜歡的一張圖,生動形象又深以為戒。
即使有嚴密的deadline, 仍然在流片前不免趕工,不用說計劃做不好實際會出現(xiàn)什么情況。
計劃確認大約有這么些個流程,實際上應該更復雜,如果有什么缺的歡迎大家交流。主要目的就是確認當前芯片及后續(xù)系列芯片的計劃。主要內(nèi)容包含技術的計劃與市場的計劃兩個方向。
3.1 技術計劃
開發(fā)時間節(jié)點計劃這個是最傳統(tǒng)意義上的計劃。芯片這種東西開發(fā)時間都很長,市場不可能無限的等,所以明確的時間節(jié)點計劃是比較重要的。這個計劃要標明各個節(jié)點的時間。RTL代碼完成50%, 完成90%,完成100%(這個不同公司叫法不一樣,比如有些公司多10%這個結點,還有公司叫85%,95%什么的,都指的一個意思,不要在意細節(jié)),DC完成, 驗證完成,后端完成,TO時間。每個時間點都要明確,而且盡量不要讓前端拖時間,因為TO的時間是確定的,意味著后端時間無法再拖,前端拖太久時間會導致后端時間不大夠。這個時間節(jié)點不同公司應該要求的不一樣,比如NVNIDA的卡,大約兩年出一代新的,各個時間節(jié)點就要按照這個節(jié)奏來。比如高通或者蘋果,一年出一代,也同樣按照節(jié)奏來。
驗證時間節(jié)點計劃 驗證計劃要稍微比測試計劃晚一點。但是還是有各種時間和策略需要在計劃階段就確定。EDA驗證的時候設計幾個UT, 幾個IT。測試時間點是什么,UTITST各個時間節(jié)點是什么,要不要用FPGA驗證,要不要用emulator驗證等等。做驗證的同事們應該非常專業(yè),歡迎大家補充一下這塊內(nèi)容。
版本升級路徑規(guī)劃 這個也是一個比較重要內(nèi)容。由于硬件設計的成本是巨大的,所以在設計開始前就要大致想好往后的道路,便于在一套架構上裁剪。比如intel就采用一種叫tick-tock的戰(zhàn)略,一年演化架構,一年演化工藝。但是intel每年都會出新的芯片,這個時候做架構的時候考慮版本升級就非常重要。一般來講,無非兩種辦法,可以做一個性能很強的平臺架構,第一年裁剪一下,第二年放全量。第二種辦法是做一個稍弱的版本,第二年擴充一下規(guī)格。intel采用哪個不得而知,但是無論采用哪個方式,在版本規(guī)劃的時候就要明確以下一到N個版本的擴展計劃。否則設計人員不清楚的話將RTL設計成不可擴展的結構往后版本升級就很被動。
IP供應商計劃確認 這個部分主要是涉及到一些購買的IP,需要提前和各廠商確定好價格,功能是否都可以接受。一般包括數(shù)字IP和模擬IP。數(shù)字IP一般集成比較簡單,例如AMBA總線, RISC-V Core等等,廠商會提供網(wǎng)表甚至源代碼,直接繼承就行。模擬IP就比較復雜,包括AD, DA ,PLL, DDR PHY, USB PHY等等一堆IP,一般是提供版圖,有些甚至版圖都不提供,由它們自己人merge版圖的。所以每一個都要仔細評估,成熟度如何,好不好集成,會不會出問題。
設計服務商計劃確認 這個最主要是要確認兩撥人的時間有沒有空。如果后端外包了的話要確認后端設計公司是否有足夠的人力接單,提前約時間,避免前端最后了等著后端的尷尬。另一批人是代工廠。除非你是蘋果這樣的甲方爸爸,TSMC可以就著你的時間來,其他人的流片計劃都要看看TSMC的計劃。特別是投MPW的樣片,要時刻注意代工廠的計劃。他們自己形象的把這種計劃叫做班車。。。你的項目能不能趕上班車是非常重要的事兒。否則輕則兩周,重則上月的delay。
3.2 市場計劃
市場計劃原則上應該是和技術計劃并行的。實際上可能會比技術計劃要晚上不少。此處就列在這個地方統(tǒng)一說了。市場計劃大致上有三方面內(nèi)容。這個做市場的同學玩的溜,讓做技術的來寫確實有點勉為其難了,只能拋個磚頭。
營銷計劃 這個主要是對芯片怎么賣出去做一定的計劃。目標市場是什么樣的,細分市場是哪個,細分市場以及市場的客戶有什么痛點,愿意付多少錢,有沒有市場機會,到時候市場占有率是什么情況。這個芯片的基礎客戶基本盤是誰,還能賣給誰。還要關注一下競爭對手,競品分析,競爭對手什么特點,如何和競爭對手搶市場。等等這些與把芯片賣出去的問題。
商業(yè)模式計劃 芯片做出來怎么賺到錢。這個主要涉及兩方面內(nèi)容,一個是定價銷售策略。是貼牌賣了,還是自己賣,還是打包送了,或者送一部分,等客戶賺到錢后再提成,或者芯片低價賣,交個朋友,主要賣配件,有不同的操作方式。只要財務和市場能算明白帳,有錢賺即可。第二個是市場準入策略。比如wifi芯片等等,這些芯片要拿到市場上賣是要符合一定的標準的,怎么拿到許可證,許可好不好拿,也要提前想清楚。
生命周期計劃 除非非常經(jīng)典的基礎芯片,比如TI的一堆ADC,其他芯片總要有個生命周期。這個生命周期的計劃會影響架構設計時的可擴展性,影響下一代芯片的演進等等。實際上,芯片大致有三個階段,和其他東西一樣。停止銷售,停止生產(chǎn),以及停止售后。和蘋果IPAD其實類似,前不久還宣布幾個IPAD是過時產(chǎn)品。。所以生命支持周期要把握好度。停止銷售和停止生產(chǎn)好理解,芯片已經(jīng)在市場上沒有競爭力了。停止售后決策比較麻煩,太長了費錢不劃算,太短了用戶那兒沒有口碑。不能客戶的產(chǎn)品剛用一兩年你就不支持了,總歸不大好。
4 總結
至此,規(guī)格和計劃階段的事情基本上就搞清楚了。這個階段我們的輸入是立項時的商業(yè)需求,輸出是由設計人員分解的設計需求,以及各類計劃。
審核編輯 :李倩
-
寄存器
+關注
關注
31文章
5304瀏覽量
119876 -
芯片設計
+關注
關注
15文章
997瀏覽量
54778
原文標題:一顆芯片的前世今生:概念計劃
文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論