完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>
標簽 > 芯片驗證
IC驗證主要工作是根據芯片規格和特點設計并實現驗證環境;根據芯片或模塊的規格,利用已實現的驗證環境進行驗證和回歸。
IC驗證主要工作是根據芯片規格和特點設計并實現驗證環境;根據芯片或模塊的規格,利用已實現的驗證環境進行驗證和回歸。
驗證工程師分類較多,例如功能仿真的驗證工程師,還有后端時序驗證工程師等。驗證內容如指紋IC驗證。
IC驗證主要工作是根據芯片規格和特點設計并實現驗證環境;根據芯片或模塊的規格,利用已實現的驗證環境進行驗證和回歸。
驗證工程師分類較多,例如功能仿真的驗證工程師,還有后端時序驗證工程師等。驗證內容如指紋IC驗證。
淺談對IC驗證的理解
在學校時就對ic有著濃烈的興趣,畢業后也如愿做了ic驗證工作。經過2年的學習和實踐,對驗證的理解零零散散也有不少,但總沒法形成一個比較完整全面的經驗談。這里把我對驗證的一些想法記錄歸納,由于理解有限,下面的篇幅也許會比較零散。
1、驗證對于ic的重要性
ic是集成電路的縮寫,也就是我們常說的芯片;ic行業的技術門檻高、投入資金大、回報周期長、失敗風險高,做一款中等規模的芯片大致需要10多人做1年半,開模的費用一般都在幾百萬,設計過程的筆誤或者設計bug至少都會有上千個,由于設計缺陷或者工藝缺陷很容易造成芯片完全變成所謂的石頭,而如果要重新頭片不但需要投入額外的費用,更會將芯片上市時間延后至少半年,這些風險對于商業公司來說都是不可接受的。
正因為芯片的高風險,才凸顯了驗證的重要性。在流片之前,通過驗證人員的驗證活動發現所有的設計bug,這就顯得特別重要。
2、驗證的一目標
做驗證首先要明確我們做ic驗證的目標是什么。上面我們已經提到,由于芯片的高風險、高代價,才更突出了驗證的重要性,尤其是芯片規模越來越大,邏輯越來越復雜。
為了保證芯片的成功,驗證唯一的目標就是發現所有的bug,做到無漏驗、零漏測。
3、驗證的兩問題
作為驗證人員,首先要搞清楚兩個問題:
1)我們要驗證什么?
2)我們該怎么驗?
這兩個問題是驗證的根本,就如同哲學里的“我是誰、我來自哪兒、我要去哪兒”一樣,“我們要驗什么?”是給我們指明目標,”我們該怎么驗?“則是告訴我們該采用什么樣的手段去達到這個目標。
如果這2個問題都沒搞清楚,那么沒人對你負責驗證的模塊有信心,畢竟你自己都不知道你的目標是什么,不知道該怎么做才能達到那個目標。這兩個問題是驗證的核心所在,如果想做好驗證,這是前提。
4、驗證的三板斧
要想做好驗證,保證無漏驗、零漏測,以下三個要素是必須要具備的:驗證工具的掌握、算法/協議的理解、驗證的意識。
1)驗證工具的掌握
驗證工具包括vmm/uvm等驗證方法學、sv/sc等驗證語言、vcs等驗證仿真工具、perl/python等腳本語言,這些東西是做驗證要掌握的基本技能,不論你做什么樣的芯片都需要這些東西來支撐你的驗證工作。
這些驗證工具可以幫助你解決“我們該怎么驗”這個問題,當你很好的掌握這些驗證工具后,你可以有很多種方法途徑去達成你的驗證目標。
說實在話,驗證工具的東西很多,要想在短時間內全部掌握也不可能,而且很多工具可能在你的驗證過程中不會用到。
個人對驗證工具的一點感悟是:不要貪求全部掌握,你可以先看書學習實踐,把這些東西都學習一遍;在學習的過程中你肯定會發現一些好東西(原來還有這種方法可以讓我的xx做的更好);對于那些暫時不知道怎么應用到實踐中的東西,你也不要認為它們是沒用的,其實只是你不知道用在哪兒而已,在你以后的驗證中也許就會發現它的應用場景,當你需要它的時候也許你已經忘記怎么用了,這個沒關系,你可以再回去查閱資料,這個相信很快就能解決的,這樣有個好處是當你碰到可以用xx的時候你至少能想起曾經看到某個東西可以來實現它,如果你從未學習過,那么你根本就不會想起有這么個方法可以解決它,這才是可怕的,我都不知道這個問題是可以被解決的。
2)算法/協議的理解
芯片要實現什么,不外乎是xx算法、某某協議,算法/協議才是芯片的魂。驗證其實也就是驗的算法/協議實現是否正確。就跟批改作文一樣,只有批改者有一定的文學功底,才能更好的評判作文水平。
因此,驗證人員對算法/協議理解越深刻越好,要理解算法的原理以及算法的實現結構,只有這樣才能找出其中的corner點。
3)驗證的意識
驗證的意識究竟是什么,其實我也說不清楚,只能按照我自己的理解寫寫一些。
對任何東西都要有質疑的態度
手要伸長,延伸到上下游
對問題要刨根問底
5、驗證的流程
做任何事情都需要按照一定的流程來走,否則很容易陷入混亂之中,尤其是對于剛入門的新手來說更是如此。我目前接觸的通用流程大致如下:
1)提取測試點,明確驗什么
分析FS/浮點平臺,提取芯片的規格及測試點;
分析AS/定點平臺,提取測試點;
分析DS,提取測試點并識別asic與算法的不一致點;
2)制定驗證方案,明確怎么驗
刷新測試點列表,明確測試點的覆蓋方式:功能覆蓋率、代碼覆蓋率、直接用例;
驗證環境的搭建策略,這個步驟是可以做成自動化工具的;
驗證的重點難點,提前識別重難點,并制定相應的對策;
刷新用例列表,明確測試用例的方法及步驟;
3)用例執行,隨機測試,發現bug
執行直接用例,發現大部分的bug;
帶隨機的大量測試,試圖撞出bug;
4)完備性分析,確保無漏驗
FA/AS完備性確認,確認FS/AS中的所有點都已納入測試點,并確保已被覆蓋,包括應用場景;
接口完備性確認,保證所有的接口時序都已覆蓋,包括正常時序及異常時序;
覆蓋率確認,分析所有的代碼覆蓋率、功能覆蓋率,保證全部覆蓋;
代碼分析,熟練掌握電路的實現邏輯,保證所有的電路corner都已覆蓋;
上述這幾個步驟是一個比較規范的流程,只要每個步驟都做好,基本就能做到無漏測、零漏驗。
6、驗證的后話
1)驗證的空間
作為驗證人員最希望的情況是:把所有的激勵空間都覆蓋到,這樣就絕對能保證無漏測、零漏驗。但實際情況是:芯片規模越來越大,其激勵空間近乎無限,同時EDA仿真的速度奇慢,根本無法實現全覆蓋,即使是FPGA、EMU等仿真加速器對此也是無能為力。
因此,合理劃分激勵等價類是相當重要的,但這也一直是驗證的難點所在,很多情況下根本就沒法分析清楚等價類。
2)CDV驗證
CDV就是覆蓋率驅動驗證的意思,就是寫一大堆覆蓋率(斷言覆蓋率、功能覆蓋率、代碼覆蓋率),只要這些覆蓋率全都達到的話則表示驗證已經完備。
這是我們的目標,其前提是分析清楚我們的測試點覆蓋空間,這個分析也是讓人頭痛的事,沒有誰敢拍著胸脯說這個測試點空間是完備的。
3)formal驗證
傳統的仿真都是動態驗證,由于其仿真效率低下無法遍歷所有空間,formal這種靜態的驗證手段則可以遍歷所有空間。不過在目前這個階段,formal還只能適用于百萬門級的模塊驗證,同時目前市面上的formal工具大多要么只對控制邏輯支持較好,要么只對算法邏輯支持較好,幾乎沒有一款formal工具能完美支持所有的電路邏輯。
4)環境自動化
在驗證過程中,搭建驗證環境是一個機械性的勞動,但有時候又比較耗費時間而且容易出錯,因此把驗證環境做成自動化工具,還是能提高不少驗證效率的。
5)全部使用直接用例
從驗證流程中可以看到,用例執行過程中大部分bug在直接用例過程中被發現,但還有一部分隱藏比較深的bug只有通過隨機激勵來發現。
這里存在一個問題,隨機測試是不可靠的,有很大的概率發現不了隱藏的bug,對此可以有兩種方法:
一是采用帶約束的隨機,這樣可以更好的達到邊界點,這同樣存在概率性問題;
二是所有的corner點全部用直接用例覆蓋,這些直接用例執行一次即可發現所有的bug,根本不需要進行長期的隨機測試,這要求我們能識別出所有的corner點;
方法二是我們追求的目標,全部用直接用例覆蓋,取代長期隨機測試,可惜愿望是美好的。
6)復用的東西都BB化
在芯片設計中經常回重用以前的模塊,這樣不僅加快進度,而且能降低出錯風險;但是對于驗證人員來說,復用并不一定是好事情,經常會出現這樣的事情:由于是復用之前的模塊,所以在驗證的時候會掉以輕心,結果埋下bug。如果把復用模塊當做全新模塊來驗證,這又要花費大量的時間,可能就會延后芯片的投片時間。
對于復用的模塊,驗證人員也可以把驗證的相關東西做成BB化,后續芯片復用該模塊時,也可以復用該驗證BB。
這是芯片在設計過程中的一個環節,主要通過EDA(電子設計自動化)工具進行仿真檢驗。它的主要目的是在芯片生產之前,驗證芯片設計是否符合預定的需求規格,是否...
不管是做設計,還是驗證,相信大家都會有一些review會議上被問一些刁鉆的問題的經歷。當然,與會者問這些不那么容易回答的問題并非有意為難,大多數時候只是...
2023-09-27 標簽:芯片驗證 643 0
隨著半導體技術的快速發展,集成電路芯片的復雜度日益增加,芯片設計中的驗證工作變得越來越重要。驗證的目的是確保芯片在各種工況下的功能正確性和性能穩定性。在...
深圳集成電路峰會演講預告:思爾芯探討國產硬件仿真如何加速芯片驗證
演講預告深圳集成電路峰會EDA創新生態發展論壇思爾芯S2C2023年9月21日-22日,以“洞見芯趨勢,共筑芯時代”為主題的2023年中國(深圳)集成電...
芯片驗證板卡設計原理圖:446-基于VU440T的多核處理器多輸入芯片驗證板卡
基于XCVU440-FLGA2892的多核處理器多輸入芯片驗證板卡為實現網絡交換芯片的驗證,包括四個FMC接口、DDR、GPIO等,板卡用于完成甲方的芯...
所以通過專門的設備在硬件上調試芯片設計, 如硬件仿真和原型驗證,是其重要的解決方案之一。硬件仿真和原型驗證的效率和速度比軟件仿真可要高很多,尤其是硬件仿...
長電科技近日宣布,推出業界領先的一站式驗證測試平臺,支持從芯片、封裝、模塊到最終產品的實驗驗證,為集成電路產業鏈上下游深入合作提供更為堅實的基礎平臺,支...
芯片設計隨著時間推移正在變得越來越復雜是業界人士的共識,但是究竟“復雜”體現在哪些方面,并且隨著復雜度提升,還有哪些沒有解決的問題,這就需要深入的考察和...
學會這些System Verilog方法,芯片驗證入門沒問題
一個掌握Verilog語言的工程師初次看SystemVerilog都會有這樣的感受,這就是Verilog啊,很容易啊,So easy啊。沒錯,確實是這樣...
自動化測試如今已不再是產測的專屬議題。隨著芯片的集成與電子產品的多功能導向發展,混合模擬、射頻與數字信號的測試增加了系統驗證與測量的復雜度。 ? 縱然產...
EDA是半導體設計中至關重要的開發工具,隨著美國的制裁在半導體產業鏈中占據重要位置的EDA逐漸進入了大眾的視野。受限于EDA管制,從最前端的設計環節開始...
2017年9月6日 - Bridgetek宣布對越南進行重大投資,進一步擴大在亞洲的研發中心,實現對持續產品創新的承諾。新的研發中心位于胡志明市郊,將與...
編輯推薦廠商產品技術軟件/工具OS/語言教程專題
電機控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機 | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機 | PID | MOSFET | 傳感器 | 人工智能 | 物聯網 | NXP | 賽靈思 |
步進電機 | SPWM | 充電樁 | IPM | 機器視覺 | 無人機 | 三菱電機 | ST |
伺服電機 | SVPWM | 光伏發電 | UPS | AR | 智能電網 | 國民技術 | Microchip |
開關電源 | 步進電機 | 無線充電 | LabVIEW | EMC | PLC | OLED | 單片機 |
5G | m2m | DSP | MCU | ASIC | CPU | ROM | DRAM |
NB-IoT | LoRa | Zigbee | NFC | 藍牙 | RFID | Wi-Fi | SIGFOX |
Type-C | USB | 以太網 | 仿真器 | RISC | RAM | 寄存器 | GPU |
語音識別 | 萬用表 | CPLD | 耦合 | 電路仿真 | 電容濾波 | 保護電路 | 看門狗 |
CAN | CSI | DSI | DVI | Ethernet | HDMI | I2C | RS-485 |
SDI | nas | DMA | HomeKit | 閾值電壓 | UART | 機器學習 | TensorFlow |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |