0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

知識點:SOC設(shè)計質(zhì)量相關(guān)的規(guī)范

ruikundianzi ? 來源:知乎 ? 2023-10-17 11:36 ? 次閱讀

你們以為我要講的是coding-style?

NO,我主要講的是其它和設(shè)計質(zhì)量相關(guān)的規(guī)范。

1、代碼篇

1.1、手撕代碼部分

module name需要包含一定的功能展現(xiàn),什么意思呢,比如要設(shè)計address remap,你就叫XXX_addr_remap或者XXX_addr_decoder。切記不要叫XXX_misc,一定是迫不得已再寫這個module,否則集成或者debug會很頭疼,誰知道這玩意是干啥用的。

當(dāng)然,內(nèi)容部分就是老生常談的:

·加注釋

·組合和時序

·縮進(jìn)

·狀態(tài)機

·阻塞賦值和非阻塞賦值

·一個module一個變量

·begin end對齊

·?語句和:的對齊等

1.2、第三方IP

我們除了仔細(xì)寫的代碼外,還會用第三方工具例如ARM和DesignWare生成很多簡單IP,例如AHB2AHB橋,I2C,DWT,UART,TIMER等,我們除了要清楚我們的功能feature外,還要注意module一定要加前綴,文件名同樣,否則我們無法與其他人的代碼區(qū)分開,這樣就會存在設(shè)計風(fēng)險。

1.3、common cell

什么是common cell,就是我們常用的lib cell,例如mux,ckmux,ckg,ckand,ckor,sync_cell,dft_dff,等。為什么要單獨拎出來呢?因為這里不做好標(biāo)準(zhǔn),后端很痛苦。

我們一般會由專人負(fù)責(zé)設(shè)計和維護(hù),以后所有人無特殊情況禁止直接手寫lib cell,比如在某個module內(nèi)用always語句寫sync cell。

為什么呢?因為這些cell和后端約束強相關(guān),和dont touch list強相關(guān),和timing強相關(guān),因此,從SYNTH開始就要用專門的DC LIB替換他們,如果我們自己隨便在一個module里寫這些邏輯,DC工具和腳本無法抓取信息,但是如果我們例化common cell的話,他們處理起來就方便多了。

當(dāng)然,有一個細(xì)節(jié)就是define分支,一般會有SIMASIC分支,但是因為FPGA沒有CKG,所有我們會在這里增加FPGA分支將CKG變?yōu)镃KBUF。

1.4、memory cell

采用多級wrapper的方式,底層wrapper例化我們的physcal memory,并且在這一級對DFT信號,和timing相關(guān)調(diào)整信號做tie值處理。

二級wrapper做分支,分為SIM分支,F(xiàn)PGA分支和ASIC分支。這樣的話,即便沒有真實的物理memory,也不影響FPGA和SIM的同事使用。

當(dāng)然也可以再加一級wrapper,將所有的memory放在一起,通過generate if不同的參數(shù)(例如寬度,深度,tag)決定例化哪一個memory,這樣做的好處就是集成方便,不好的地方就是維護(hù)起來太麻煩。

2、filelist篇

soc設(shè)計的下游分為FPGA,SIM和SYNTH。但是三者的要求不同

FPGA要求filelist內(nèi)容FPGA vivado可綜合(有相關(guān)資源)。

SIM要求可以存在SIM model,不需要可綜合。

SYNTH要求必須可綜合。

因此,我們一般需要維護(hù)三個filelist,XX_FPGA.f,XX_SIM.f和XX_SYN.f,來滿足不同同事的需求,防止他們自己處理出現(xiàn)問題。

僅僅是這樣,對于大型SOC還是不夠的,需要一個filelist去重腳本,因為每個子系統(tǒng)subsys都可能例化了common cell(因為可能會單獨仿真或者綜合呀),所以soc top拿到的filelist一定是有很多重復(fù)的文件,所以需要腳本展開并去重,重復(fù)的不是刪除,而是注釋,方便review(不知道腳本刪除的對不對,需要review)。

3、difine macro篇

設(shè)計中一定會有很多define,主要分為兩類:common define和function define

3.1、common define

例如SYNTH,FPGA,SIM這些,主要存在于memory wrapper和common cell中,我們需要整個項目組采用統(tǒng)一的格式,不能一會用SYNTH,一會用ASIC,這樣DC同事會經(jīng)常漏define,需要resynth。

3.2、function define

例如設(shè)計一個I2C,內(nèi)部多個模塊,這樣的話我們的位寬,地址寬度等會是由define參數(shù)傳遞,這些參數(shù)往往不需要給其他人展示,我們自己在define中定義,最后undefine就可以了,但是順序一定是最先編譯define,最后undefine,所以剛才的filelist去重腳本還有一點很重要的就是不能調(diào)整filelist順序喲。

4、交付質(zhì)量hand-off

我們每個需要綜合的節(jié)點一定要保證hand-off質(zhì)量,我們通常會使用spyglass做lint檢查,這是最基本的,否則DC同事一定無法綜合。會顯得我們的設(shè)計很LOW。

不同的節(jié)點有不同的要求,如果DFT也要進(jìn)場,我們需要用spyglass跑DFT flow,例如scan-ready,bist-ready和best-practice等幾個重要的goal。

當(dāng)然還有非常重要的CDC FLOW,也是靜態(tài)時序檢查,只是STA關(guān)注的是同步邏輯,spyglass CDC關(guān)注異步處理,兩個都做好了,才能保證設(shè)計的RTL和真實芯片的時序是一致的。

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4021

    瀏覽量

    217031
  • 狀態(tài)機
    +關(guān)注

    關(guān)注

    2

    文章

    489

    瀏覽量

    27394
  • Module
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    12833

原文標(biāo)題:知識點:SOC設(shè)計-設(shè)計規(guī)范

文章出處:【微信號:IP與SoC設(shè)計,微信公眾號:IP與SoC設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    C語言鏈表知識點(2)

    C語言鏈表知識點(2)
    發(fā)表于 08-22 10:38 ?255次閱讀
    C語言鏈表<b class='flag-5'>知識點</b>(2)

    SRAM LIB庫相關(guān)知識點介紹

    SRAM LIB庫相關(guān)知識點
    發(fā)表于 12-15 06:53

    STM32相關(guān)知識點

    來源:公眾號【魚鷹談單片機】作者:魚鷹OspreyID :emOsprey本篇筆記主要介紹 STM32 相關(guān)知識點,畢竟之后的 CDC 教程是用 STM32開發(fā)的。為了寫這一篇,魚...
    發(fā)表于 08-16 08:21

    計算機組成原理考研知識點歸納

    計算機組成原理考研知識點歸納 寫在前面的話:理科知識重在于理解知識點本身,對于每一個知識點,大家都有自己理解的方式。這篇
    發(fā)表于 04-13 14:06 ?1914次閱讀

    高一數(shù)學(xué)知識點總結(jié)

    高一數(shù)學(xué)知識點總結(jié)高一數(shù)學(xué)知識點總結(jié)高一數(shù)學(xué)知識點總結(jié)
    發(fā)表于 02-23 15:27 ?0次下載

    高二數(shù)學(xué)知識點總結(jié)

    高二數(shù)學(xué)知識點總結(jié)高二數(shù)學(xué)知識點總結(jié)高二數(shù)學(xué)知識點總結(jié)
    發(fā)表于 02-23 15:27 ?0次下載

    PWM知識點詳解

    PWM知識點
    發(fā)表于 03-16 08:00 ?44次下載

    嵌入式知識點總結(jié)

    嵌入式知識點總結(jié)(arm嵌入式開發(fā)led過程)-嵌入式知識點總結(jié)? ? ? ? ? ? ? ? ? ??
    發(fā)表于 07-30 14:20 ?23次下載
    嵌入式<b class='flag-5'>知識點</b>總結(jié)

    電力基礎(chǔ)知識點合集

    電力基礎(chǔ)知識點合集
    發(fā)表于 03-14 16:35 ?0次下載

    詳解射頻微波基礎(chǔ)知識點

    詳解射頻微波基礎(chǔ)知識點
    的頭像 發(fā)表于 01-29 10:28 ?2153次閱讀

    C語言最重要的知識點

    C語言知識點總結(jié).doc
    發(fā)表于 02-16 16:37 ?8次下載

    數(shù)字電路知識點總結(jié)

    本文整理了數(shù)字電路課程中的相關(guān)基本的知識點和較為重要的知識點,用于求職的數(shù)電部分的知識準(zhǔn)備,差缺補漏。
    的頭像 發(fā)表于 05-30 15:07 ?4230次閱讀
    數(shù)字電路<b class='flag-5'>知識點</b>總結(jié)

    滾珠螺桿的基本知識點

    滾珠螺桿的基本知識點
    的頭像 發(fā)表于 07-07 17:40 ?1354次閱讀
    滾珠螺桿的基本<b class='flag-5'>知識點</b>

    STM32 RTOS知識點

    電子發(fā)燒友網(wǎng)站提供《STM32 RTOS知識點.pdf》資料免費下載
    發(fā)表于 08-01 14:28 ?3次下載
    STM32 RTOS<b class='flag-5'>知識點</b>

    電阻的相關(guān)知識點

    整理成一份文件資料,用作對一些想要提高電路設(shè)計工作技能的研發(fā)工程師學(xué)習(xí),芯片哥相信很少工程師能做到;那么電阻的相關(guān)知識點都有哪些呢?
    的頭像 發(fā)表于 09-13 10:19 ?1370次閱讀
    電阻的<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識點</b>