- 數(shù)字IC設(shè)計(jì)入門(微課視頻版)
- 白櫟旸編著
- 1731字
- 2024-12-27 23:28:52
1.7 選擇設(shè)計(jì)還是驗(yàn)證
設(shè)計(jì)和驗(yàn)證是兩個不同的崗位,各自有其特點(diǎn),以及相關(guān)的技能樹。設(shè)計(jì)的重點(diǎn)在于對電路的把握,技能樹集中在如何用最小的面積/功耗做出特定功能的電路,因而更注重設(shè)計(jì)思路,對語法的要求較少,很多有經(jīng)驗(yàn)的工程師用簡單規(guī)范的語法就能清晰地描述一個功能較為復(fù)雜的電路。驗(yàn)證的重點(diǎn)在于找錯誤,不要求會設(shè)計(jì)電路,卻需要有敏銳的洞察力,善于“順藤摸瓜”,善于從一個不起眼的異常中發(fā)現(xiàn)設(shè)計(jì)中的問題。好的驗(yàn)證對客戶的實(shí)際應(yīng)用場景有深入理解,可以在搭建驗(yàn)證平臺時把客戶的需求和注意點(diǎn)都囊括進(jìn)去。為了做到這一點(diǎn),驗(yàn)證需要使用較為復(fù)雜的語法搭建驗(yàn)證環(huán)境。
在設(shè)計(jì)語言方面,IC設(shè)計(jì)最常用的是Verilog描述語言,而驗(yàn)證常用System Verilog。Verilog是System Verilog的子集,即兩者有公共的語法部分,但Verilog語法條目少,System Verilog語法條目多,而且System Verilog中融合了一些面向?qū)ο蟮恼Z法成分,更類似于C++。驗(yàn)證為了達(dá)到驗(yàn)證目的,除了System Verilog,驗(yàn)證還可能用到C語言、擴(kuò)展的System C語言,以及C++語言等。
在應(yīng)知應(yīng)會的工具方面,IC設(shè)計(jì)需要學(xué)習(xí)掌握的工具較多,如VCS、Spyglass、DC、PT、Formality、lc_shell等,而驗(yàn)證基本上一個VCS或Incisive就能滿足其大部分的工作要求。對于腳本語言,如Perl和Python,在設(shè)計(jì)和驗(yàn)證中都有應(yīng)用。
在主要工作內(nèi)容方面,IC設(shè)計(jì)初期的一兩年內(nèi)其主要工作不是設(shè)計(jì),而是熟悉各種工具的使用,在項(xiàng)目中扮演一個語法檢查者、規(guī)范監(jiān)督者的角色,俗稱“打雜”。以后將逐漸接觸模塊設(shè)計(jì),進(jìn)而發(fā)展到整體架構(gòu)的設(shè)計(jì)。驗(yàn)證初期的主要工作是一些簡單模塊的驗(yàn)證,例如檢查設(shè)計(jì)中寄存器是否能夠讀寫正確,地址和初值是否正確等,這些工作一方面需要細(xì)心,另一方面也能加強(qiáng)新人的驗(yàn)證能力和語法技巧。有一定經(jīng)驗(yàn)的驗(yàn)證工程師可以進(jìn)行驗(yàn)證案例的編寫、設(shè)置并調(diào)整驗(yàn)收標(biāo)準(zhǔn)、搭建較復(fù)雜的驗(yàn)證環(huán)境,以及編寫較復(fù)雜的驗(yàn)證參考模型等。
在學(xué)習(xí)重點(diǎn)方面,IC設(shè)計(jì)初期的學(xué)習(xí)重點(diǎn)是設(shè)計(jì)方法論和小型功能模塊的設(shè)計(jì),例如,簡單計(jì)數(shù)器、同步/異步FIFO、各種SoC總線協(xié)議、跨時鐘異步處理等,而驗(yàn)證工程師初期的重點(diǎn)學(xué)習(xí)內(nèi)容是驗(yàn)證流程,熟悉驗(yàn)證平臺結(jié)構(gòu),記憶并熟練運(yùn)用System Verilog及UVM驗(yàn)證語法等。
讀者應(yīng)注意上文中工作內(nèi)容和學(xué)習(xí)重點(diǎn)的區(qū)別。前者指工作時被分配的任務(wù),而后者是作為學(xué)習(xí)者應(yīng)該關(guān)注的重點(diǎn)。本書之所以分開列舉,是因?yàn)楣ぷ鲀?nèi)容往往不是學(xué)習(xí)的重點(diǎn),例如,IC設(shè)計(jì)如果在前期只關(guān)注了分配給自己的任務(wù),熟悉了各種工具并能很好地支持項(xiàng)目進(jìn)度,但從未自己動手寫一些小的設(shè)計(jì),那么其進(jìn)步仍然是比較緩慢的。同樣道理,如果驗(yàn)證新手每天只專心掃描寄存器,而對驗(yàn)證平臺上的模塊分工、芯片功能沒有深入的認(rèn)識,他也將長期停留在這一階段,只能被動地接受指令并按照他人的指示尋找可能的錯誤,而不是自己設(shè)法發(fā)現(xiàn)錯誤,而好的驗(yàn)證工程師都是主動驗(yàn)證,即自己根據(jù)DUT功能制定驗(yàn)證案例,自由調(diào)整驗(yàn)證觀察項(xiàng)和預(yù)期結(jié)果,并對驗(yàn)證的最終結(jié)果負(fù)責(zé)。
在入門的難易程度方面,設(shè)計(jì)和驗(yàn)證在初期的學(xué)習(xí)階段都比較枯燥乏味。驗(yàn)證在學(xué)習(xí)知識、經(jīng)驗(yàn)成長速度方面要快于設(shè)計(jì)。設(shè)計(jì)中的一些電路理論較為抽象,要實(shí)踐這些抽象的概念也需要常年的工作和流片積累,而驗(yàn)證是一種面向計(jì)算機(jī)和服務(wù)器的編程工作,平時的工作就是主要的經(jīng)驗(yàn)來源。
驗(yàn)證的工作更為辛苦,因?yàn)槠涔ぷ靼殡S芯片從策劃到最終流片的全過程。初期要和設(shè)計(jì)一起了解需求和應(yīng)用環(huán)境,并籌劃搭建驗(yàn)證平臺。中期要了解設(shè)計(jì)接口和模塊連接,進(jìn)行模塊驗(yàn)證。后期要進(jìn)行整體驗(yàn)證、回歸測試、覆蓋率收集、后仿等工作。往往設(shè)計(jì)只花了很少時間改一個問題,而驗(yàn)證要將所有的測試案例都重新執(zhí)行一遍,以確定修改無誤,但這里的“辛苦”指的是驗(yàn)證工作量比設(shè)計(jì)工作量多,并非驗(yàn)證崗位一定比設(shè)計(jì)崗位忙。例如驗(yàn)證工作量是設(shè)計(jì)工作量的2倍,而人員招聘也是2倍,平均到每個人,設(shè)計(jì)與驗(yàn)證的工作強(qiáng)度就基本相同了。這也是驗(yàn)證人力缺口大、工作比較容易找的原因。
設(shè)計(jì)與驗(yàn)證對于數(shù)字IC的開發(fā)都十分重要,因而對于同等熟練程度的設(shè)計(jì)和驗(yàn)證,其薪資水平相差無幾。在國內(nèi),設(shè)計(jì)往往在工作中占主導(dǎo),因?yàn)樗麄儺吘故切酒脑O(shè)計(jì)者,驗(yàn)證相對弱勢,而在國外,驗(yàn)證更為強(qiáng)勢,因?yàn)轵?yàn)證相當(dāng)于設(shè)計(jì)的客戶,驗(yàn)證提出需求,設(shè)計(jì)滿足之,但這種強(qiáng)勢是建立在驗(yàn)證充分了解用戶需求和應(yīng)用環(huán)境的基礎(chǔ)之上的,其精力大部分放在這一方面,而將較為底層的功能交由UVM平臺自動處理。
- 數(shù)據(jù)要素安全流通
- PyTorch深度學(xué)習(xí)實(shí)戰(zhàn):從新手小白到數(shù)據(jù)科學(xué)家
- Modern Programming: Object Oriented Programming and Best Practices
- Learning Spring Boot
- MySQL基礎(chǔ)教程
- 大數(shù)據(jù)算法
- Ceph源碼分析
- MATLAB Graphics and Data Visualization Cookbook
- Hadoop大數(shù)據(jù)開發(fā)案例教程與項(xiàng)目實(shí)戰(zhàn)(在線實(shí)驗(yàn)+在線自測)
- Unreal Engine Virtual Reality Quick Start Guide
- Gideros Mobile Game Development
- Deep Learning with R for Beginners
- Scratch 2.0 Game Development HOTSHOT
- AI Crash Course
- 數(shù)據(jù)時代的品牌智造