吴忠躺衫网络科技有限公司

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

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

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

如何構(gòu)建一款先進的數(shù)字仿真器

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-08 14:51 ? 次閱讀

數(shù)字仿真器(Simulator)是一種大型EDA工業(yè)軟件,是數(shù)字驗證領(lǐng)域的基礎(chǔ)工具之一,也是為數(shù)不多的簽核(sign-off)級工具。其實歷史上第一款 EDA 軟件SPICE,就是從仿真開始的。可以說,EDA軟件從誕生之日起,就帶著強烈的仿真基因。因此,如果沒有一款獨立自主的數(shù)字仿真器,國產(chǎn)EDA實現(xiàn)對國外工具壟斷的打破就無從談起。

目前,行業(yè)主流的仿真器,諸如VCS,Xcelium, Questa等,都是國外EDA大廠花了數(shù)十年的時間開發(fā)、迭代而來的。這些軟件內(nèi)部設(shè)計極其復雜、代碼量巨大,單單維護的團隊人數(shù)就可達數(shù)百人甚至上千人。由此可見,數(shù)字仿真器技術(shù)開發(fā)難度之大。

合抱之木,生于毫末;九層之臺,起于累土。2021年11月,國內(nèi)系統(tǒng)級驗證EDA解決方案提供商芯華章發(fā)布了首款數(shù)字仿真器產(chǎn)品穹鼎GalaxSim,并得到中科院半導體、芯來科技等用戶一線項目部署。GalaxSim在開發(fā)過程中,結(jié)合國產(chǎn)EDA的迫切需求,選擇了合適的技術(shù)路線、開發(fā)模式,依托研發(fā)團隊的豐富EDA經(jīng)驗及高效的工作,站在更高的技術(shù)起點上,用幾年的時間正在追趕國外幾十年的路。

現(xiàn)在我們梳理實踐所得和淺見,希望與行業(yè)同仁進行分享交流,幫助志在推動國內(nèi)EDA數(shù)字仿真器進步的有志之士,提供一些可能的啟發(fā)和參考,共同建立良好的EDA發(fā)展生態(tài)。

本篇我們將以穹鼎GalaxSim為例,展示一款商用級別的數(shù)字仿真器從0到1的開發(fā)過程,包括商用仿真器的技術(shù)指標、開發(fā)模式、技術(shù)路線等方面。

一、數(shù)字仿真器的技術(shù)要求

數(shù)字仿真器在驗證中發(fā)揮著舉足輕重的作用。判斷一款國產(chǎn)仿真器是否能真的商用,甚至可以與國際主流選擇的仿真器并駕齊驅(qū), 一般要看它是否滿足以下四點硬性要求:

1)全面的SystemVerilog語法覆蓋

SystemVerilog可以說是最復雜的語言之一,而數(shù)字仿真器又是EDA工具中對SystemVerilog支持最全面的工具。

2)高精度

仿真器相對其他驗證工具,是sign-off級別的,因此要求仿真器必須嚴格按照事件驅(qū)動型的算法進行仿真調(diào)度,符合IEEE1800等標準。

3)高性能

仿真器的性能直接決定了用戶在驗證上的成本。假如某個優(yōu)化可以使仿真速度提高2x, 那可以使原本一個月完成的回歸測試縮短到二周,從而給客戶省掉很大的驗證支出。

4)高可靠性

作為大型工業(yè)軟件,仿真器的設(shè)計極其復雜。一款大型軟件,涉及到的模塊非常多,參與的開發(fā)者也非常多。如何確保軟件質(zhì)量可控,在客戶的超大設(shè)計上能跑幾十小時,甚至幾周不出現(xiàn)故障,是考驗一個仿真器能否真正商用的重要指標之一。因此,作為用戶sign-off 的工具,仿真器的故障率必須極低。即使出現(xiàn)故障,也能在很短的時間內(nèi)排查并修復。

二、開發(fā)模式的選擇:瀑布式開發(fā)VS敏捷開發(fā)

1679388650796488.png

編譯型數(shù)字仿真器的原理如上圖所示,它從verilog source到最終機器碼生成,中間經(jīng)歷了多個環(huán)節(jié)。它既具備了Compiler的特點,同時又是一個數(shù)字電路仿真器。它集成了多種底層技術(shù),涉及編譯、算法、圖論等知識。

盡管從概念上,我們可以把這個過程分解成不同的階段,但是在實際實現(xiàn)上,我們其實很難單獨把某一塊抽出來。以parser/elaboration階段為例,這個階段需要把RTL的語法解析出來。從功能上,它和后面的階段是不同的。然而,如果把它作為一個模塊獨立開發(fā),就會面臨無法測試的困難。因為有些elaboration的結(jié)果,需要到了runtime階段才可能測出是否正確。

軟件開發(fā)有兩種模式,一種是傳統(tǒng)的瀑布式模式,把一個軟件劃分成若干模塊。每個模塊都定義好spec,然后分配給各個團隊開發(fā);到了一定節(jié)點,再進行聯(lián)調(diào)。另一種是敏捷開發(fā),就是快速將flow打通,進行不停地迭代,就像生物界胚胎的成長一樣,逐步將軟件迭代成熟。

1679388670959211.png

上圖給出了兩種不同模式的區(qū)別。由于Simulator涉及到的環(huán)節(jié)非常多,有很多任務(wù)是有依賴關(guān)系的,只能串行開展。如果按照傳統(tǒng)的模式,不僅完成所有任務(wù)的總時間會變得很長,它還會導致最后聯(lián)調(diào)的時間非常的不確定。因為很多模塊的耦合性很強,很多問題需要等到最后所有模塊放在一起后才能發(fā)現(xiàn)。

基于此,為了降低研發(fā)風險,提高開發(fā)效率,GalaxSim的開發(fā)采用了敏捷開發(fā)模式。在敏捷開發(fā)模式下,每個任務(wù)可以不用一步到位,而是可以先做一個比較初級的版本,從v1開始進行迭代,直到vN。完成每個迭代的時間,是大大短于完成整個任務(wù)的時間的。這樣,依賴于該任務(wù)的其他任務(wù)就可以提前開展了。聯(lián)調(diào)階段的不確定也會大大降低,因為很多問題都可以在前期階段暴露出來。通過敏捷開發(fā),芯華章的GalaxSim可以更合理地調(diào)配資源,并通過大量迭代,使得產(chǎn)品能達到商用要求。

三、技術(shù)路線的選擇:守正、創(chuàng)新

從0到1,開發(fā)一款具備國產(chǎn)自主知識產(chǎn)權(quán)的仿真器,肯定不能僅僅做一個me too的產(chǎn)品,需要有創(chuàng)新、超越。我們面臨的問題是,做一個怎樣的仿真器,能在解決國產(chǎn)替代的基礎(chǔ)上,實現(xiàn)最終的超越?這里面既要守正,也要創(chuàng)新。

何謂守正?創(chuàng)新的前提首先要先解決有無的問題。上文提到,不管采用什么技術(shù),仿真器都必須滿足四個指標:SystemVerilog、精度、性能、可靠性。因此,任何研發(fā)路線與技術(shù)的選擇,都必須滿足以上4個約束條件。

與此同時,我們吸取主流數(shù)字仿真器的歷史研發(fā)教訓,針對國內(nèi)使用環(huán)境進行客制化創(chuàng)新。比如在SystemVerilog方面,很多主流仿真器的支持其實并不是一步到位完成的,而是在一系列并購后集成進來的。GalaxSim在這方面,可以發(fā)揮后發(fā)優(yōu)勢,采用全新的設(shè)計框架,更好實現(xiàn)SystemVerilog的豐富語法,讓整個compile flow無縫對接,避免不斷“打補丁”帶來的技術(shù)冗余與滯澀,提供更完整、一體化的驗證解決方案。

以性能為例,runtime是仿真器的一項重要技術(shù)指標。大多數(shù)國際主流仿真器在過去數(shù)十年都做了大量的工作。然而,compile time 也是性能的一部分。近5-10年,隨著設(shè)計規(guī)模越來越大,compile time 也日益成為性能瓶頸。而且,compile time 和 run time常常是矛盾的。GalaxSim使用創(chuàng)新底層架構(gòu),在提高runtime性能的同時,兼顧了compile time的控制。

四、“蝶變”:GalaxSim的迭代歷程

敏捷開發(fā)意味著快速的軟件迭代。GalaxSim 的迭代歷程,比較類似于一個胚胎的成長過程。胚胎每一步的變化并不大(比如細胞分裂),然而,經(jīng)過足夠的變化,最終就會由量變到質(zhì)變,就像蝶變一樣。

如何確保GalaxSim的迭代是按照我們設(shè)計的方向,而不會走偏呢?這里面,軟件的迭代又非常像生物的進化,我們需要設(shè)計好一個目標(生存條件),以及一個進化環(huán)境。根據(jù)前文所述,GalaxSim從0到1的第一階段目標,是要演變成一個至少滿足4個約束條件的仿真器。

以終為始,設(shè)計迭代目標

第一階段我們會以終為始,根據(jù)上文提到的四點對仿真器的硬性要求,分別制定多維度可量化的迭代目標,通過不斷的調(diào)試達成各項指標。

4.2 進化環(huán)境的搭建

如何確保軟件向著我們設(shè)置的目標進化,而不是走偏,進化環(huán)境至關(guān)重要。芯華章的研發(fā)團隊為此專門搭建了一套內(nèi)部CICD flow, 包含了回歸測試系統(tǒng),這個系統(tǒng)包含了大量的測試用例,各種測試基準(benchmark)。GalaxSim在這些用例中的表現(xiàn)結(jié)果會被實時監(jiān)控。尤其是性能方面,我們的系統(tǒng)引入了類似銀行的記賬功能。每個研發(fā)環(huán)節(jié)導致的slowdown都會被記錄備案,每一筆帳都可以追溯。這些嚴苛的環(huán)境,確保了軟件最終的性能及質(zhì)量。

值得一提的是,這套系統(tǒng)是我們在第一天就開始著手搭建的,與GalaxSim的核心代碼是同步開發(fā)的。

4.3 Galaxsim的主要迭代節(jié)點:

五、現(xiàn)狀:已獲得一線項目部署

目前GalaxSim已經(jīng)在中科院半導體所、芯來科技等若干客戶的一線項目中得到應(yīng)用,性能符合客戶預期。

六、總結(jié)

在未來,GalaxSim的進化還會繼續(xù),并擁抱更多的創(chuàng)新,最終實現(xiàn)國產(chǎn)數(shù)字仿真器的超越。

接下來,我們將結(jié)合GalaxSim的具體性能表現(xiàn)、技術(shù)指標以及對數(shù)字仿真器主流技術(shù)趨勢的分析,繼續(xù)探討一款高性能、高精度的數(shù)字仿真器應(yīng)該具備哪些技術(shù)特征。后續(xù)系列文章請大家關(guān)注、指導。

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

    關(guān)注

    71

    文章

    2787

    瀏覽量

    173859
  • 芯華章
    +關(guān)注

    關(guān)注

    0

    文章

    178

    瀏覽量

    11463
收藏 人收藏

    評論

    相關(guān)推薦

    EE-175: 仿真器與EZ-KIT Lite評估系統(tǒng)問題解決指南

    電子發(fā)燒友網(wǎng)站提供《EE-175: 仿真器與EZ-KIT Lite評估系統(tǒng)問題解決指南.pdf》資料免費下載
    發(fā)表于 01-08 14:41 ?0次下載
    EE-175: <b class='flag-5'>仿真器</b>與EZ-KIT Lite評估系統(tǒng)問題解決指南

    TMS320C8x仿真器安裝指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C8x仿真器安裝指南.pdf》資料免費下載
    發(fā)表于 12-24 17:43 ?0次下載
    TMS320C8x<b class='flag-5'>仿真器</b>安裝指南

    ISOM871x高速單通道光仿真器評估模塊

    電子發(fā)燒友網(wǎng)站提供《ISOM871x高速單通道光仿真器評估模塊.pdf》資料免費下載
    發(fā)表于 11-15 14:29 ?0次下載
    ISOM871x高速單通道光<b class='flag-5'>仿真器</b>評估模塊

    使用PSpice仿真器對TI智能高側(cè)開關(guān)中的熱行為進行建模

    電子發(fā)燒友網(wǎng)站提供《使用PSpice仿真器對TI智能高側(cè)開關(guān)中的熱行為進行建模.pdf》資料免費下載
    發(fā)表于 09-24 09:26 ?0次下載
    使用PSpice<b class='flag-5'>仿真器</b>對TI智能高側(cè)開關(guān)中的熱行為進行建模

    光耦仿真器簡介

    電子發(fā)燒友網(wǎng)站提供《光耦仿真器簡介.pdf》資料免費下載
    發(fā)表于 08-28 11:45 ?0次下載
    光耦<b class='flag-5'>仿真器</b>簡介

    TI磁感應(yīng)仿真器功能簡介

    電子發(fā)燒友網(wǎng)站提供《TI磁感應(yīng)仿真器功能簡介.pdf》資料免費下載
    發(fā)表于 08-28 09:48 ?0次下載
    TI磁感應(yīng)<b class='flag-5'>仿真器</b>功能簡介

    隔離認證標準揭秘:光耦合與光耦仿真器

    電子發(fā)燒友網(wǎng)站提供《隔離認證標準揭秘:光耦合與光耦仿真器.pdf》資料免費下載
    發(fā)表于 08-27 10:49 ?0次下載
    隔離認證標準揭秘:光耦合<b class='flag-5'>器</b>與光耦<b class='flag-5'>仿真器</b>

    仿真器的使用方法有哪些

    仿真器種用于模擬和測試電子系統(tǒng)、軟件或硬件的工具。它可以幫助工程師在實際硬件或軟件部署之前,對設(shè)計進行驗證和調(diào)試。 仿真器的基本概念 仿真器
    的頭像 發(fā)表于 08-22 09:16 ?1125次閱讀

    設(shè)計一款基于opa847的高通濾波仿真達不到效果怎么解決?

    各位好,目前打算設(shè)計一款基于opa847的高通濾波,放大倍數(shù)為40dB,截止頻率為20kHz,通過書籍資料上的公式計算出的結(jié)果進行仿真,似乎達不到效果,想請問各位該如何解決?
    發(fā)表于 08-19 07:18

    用ST-LINK仿真器IAR調(diào)試STM8板子,仿真器總是報錯如何解決?

    Thu Feb 23, 2017 13:48:17: Failed to get execution status: SWIM error [30004]: Comm timeout ,之前沒用過STM8,新買仿真器仿真器總是出現(xiàn)這個錯誤,如何解決
    發(fā)表于 05-08 07:46

    安裝哪個版本的CCS可以支持這種舊的MSP430仿真器

    下載工具由V2升級為V3。 IAR for MSP430 V7.12不能使用,而IAR for MSP430 V5.5卻提示要升級,怎敢升級? 所以想安裝個匹配的CCS版本,請大佬支招下,這款古董仿真器支持哪個版本的CCS?
    發(fā)表于 04-15 08:33

    安森美推出一款基于PLECS的具有獨特功能的領(lǐng)先在線仿真工具

    Elite Power仿真工具是安森美(onsemi)推出的一款基于PLECS的具有獨特功能的領(lǐng)先在線仿真工具,適用于軟/硬開關(guān)應(yīng)用,使工程師在開發(fā)周期的早期階段,
    的頭像 發(fā)表于 03-20 09:58 ?727次閱讀

    fpga仿真器是什么?它有哪些優(yōu)勢?

    FPGA仿真器種用于模擬FPGA(現(xiàn)場可編程門陣列)硬件行為的軟件工具。它通過模擬FPGA內(nèi)部的邏輯電路、時序和接口等,幫助工程師在FPGA設(shè)計過程中進行功能驗證和性能測試。FPGA仿真器在FPGA開發(fā)流程中扮演著至關(guān)重要的
    的頭像 發(fā)表于 03-15 15:15 ?1932次閱讀

    fpga原型驗證平臺與硬件仿真器的區(qū)別

    FPGA原型驗證平臺與硬件仿真器在芯片設(shè)計和驗證過程中各自發(fā)揮著獨特的作用,它們之間存在明顯的區(qū)別。
    的頭像 發(fā)表于 03-15 15:07 ?1238次閱讀

    fpga仿真器接口定義

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)仿真器接口的定義主要依賴于仿真器的具體設(shè)計和所支持的通信協(xié)議。在FPGA的設(shè)計和仿真過程中,接口的定義對于實現(xiàn)與
    的頭像 發(fā)表于 03-15 14:01 ?1386次閱讀
    波克棋牌官网| 乐享百家乐官网的玩法技巧和规则 | 雅加达百家乐官网的玩法技巧和规则 | 网上百家乐可靠| 新利国际开户| 如何胜百家乐官网的玩法技巧和规则 | 百家乐发牌盒子| 百家乐官网学院| 大发888充值100元| 百家乐官网真人游戏娱乐| 德州扑克发牌视频| 百家乐娱乐开户| 豪杰百家乐官网游戏| 百家乐必胜法技巧| 翼城县| 免费百家乐平预测软件| 涂山百家乐官网的玩法技巧和规则| 鹤乡棋牌乐| 百家乐注册送10彩金| 金臂百家乐官网注册送彩金| 肯博百家乐的玩法技巧和规则 | 爱拼百家乐的玩法技巧和规则 | 赌博堕天录漫画| 百家乐2号程序| 百家乐官网保证赢| 博盈国际| 香港百家乐玩| 百家乐官网庄家怎样赚钱| 六合彩报码聊天室| 百家乐的路图片| 百家乐官网老是输| 皇冠网站| 宝龙百家乐的玩法技巧和规则| 百家乐官网波音平台路单| 大发888资讯| 百家乐书包| 百家乐官网双龙出海注码法| 大赢家即时比分网| 赌博百家乐的玩法技巧和规则 | 皇冠博彩网| 赌场风云国语|