一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

SOC TOP的設(shè)計(jì)與仿真

冬至子 ? 來源:模擬混合信號(hào)設(shè)計(jì)驗(yàn)證 ? 作者:陳俊曉博士 ? 2023-06-28 14:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SOC芯片的基本構(gòu)成

圖片

這是SOC的簡(jiǎn)介,我們知道SOC的概念是相對(duì)于傳統(tǒng)的計(jì)算機(jī)基本架構(gòu)來說的。傳統(tǒng)計(jì)算機(jī)我們都知道有CPU核,有總線,有各種內(nèi)存,還有硬盤,各種外設(shè)。SOC實(shí)際上就把這些概念、模塊集成在一起,做在同一個(gè)芯片上面。大規(guī)模的SOC,像我們熟悉的手機(jī)上的SOC芯片,比如說華為的麒麟,高通的驍龍芯片,都是AP芯片,事實(shí)上它里邊有多個(gè)CPU的核心,包括還有GPU,基帶的處理,還有很大規(guī)模的緩存。這些芯片主要是處理數(shù)字信號(hào)為主要功能,所以通常使用Digital Top Down的設(shè)計(jì)方式。

模擬功能為主的小規(guī)模的SOC,同樣也有CPU、存儲(chǔ)器和外設(shè)這些模塊,可以說是麻雀雖小五臟俱全,以這些小規(guī)模的SOC作為一個(gè)切入點(diǎn)能夠去一窺SOC的一些設(shè)計(jì)方法,是一個(gè)很好的途徑。這些小規(guī)模的SOC往往能用于某種專用模塊的控制、協(xié)議的處理和信號(hào)的收集,由于需要內(nèi)置多種模擬模塊,數(shù)字電路實(shí)際上只占用其中的一部分,其中模擬信號(hào)與數(shù)字信號(hào)有大量的交互信號(hào)及信號(hào)處理,所以比較適合于這些Analog on Top的設(shè)計(jì)流程。

圖片

這張圖是SOC芯片的基本構(gòu)成,中間是數(shù)字的控制電路,通常有微處理器、總線、SRAM (緩存,或者叫內(nèi)存)、有NVM(非易失性存儲(chǔ)器),比如說像FLASH、EEPROM,或者OTP、MTP,還有外設(shè)的一些控制電路。

綠色的部分是模擬的模塊,通常有OSC振蕩器,有作為數(shù)字和外界的窗口ADC或者DAC,有邏輯控制的GPL作為通用的I/O接口,為了給數(shù)字電路供電有LDO,因?yàn)閿?shù)字電路需要比較穩(wěn)定的電源

右邊第一個(gè)是PHY,是協(xié)議物理層,通常它本身也是一個(gè)數(shù)?;旌系哪K,它既有數(shù)字電路也有模擬電路,把它放在這里就表示需要模擬工程師對(duì)它進(jìn)行重點(diǎn)的關(guān)注。還有作為對(duì)微弱信號(hào)處理的放大器AFE,AFE是模擬前端,將模擬信號(hào)經(jīng)過放大處理,把它輸入到ADC或者數(shù)字電路當(dāng)中。PowerManagement是經(jīng)常會(huì)用到的一個(gè)模塊,包括BUCK,BOOST或LDO這些模塊,另外就是傳感器的控制電路。前面這幾個(gè)模塊每個(gè)芯片都不一樣,有可能有,有可能沒有。但是左邊這一列,基本上每個(gè)SOC芯片都會(huì)有。

圖片

這里講講SOC的數(shù)字部分的結(jié)構(gòu),標(biāo)成綠色方塊的部分是第三方的IP,是需要向IP供應(yīng)商去購(gòu)買的,也有一些是自己設(shè)計(jì)。

處理器是最核心的部分,比如向ARM購(gòu)買的IP,有高端有低端的,低端如M0、M1這些32位的處理器,它往往需要一個(gè)DEBUG口,DEBUG口往往是JTAG或SWD。微處理器需要內(nèi)存,以及用于存放程序的NVM,跟它通訊時(shí)使用系統(tǒng)總線叫AHB,ARM的話叫AMBA總線。

AMBA總線處理比較復(fù)雜,所以處理一些比較簡(jiǎn)單的外設(shè)的時(shí)候,是通過從AHB到APB的橋接。

ADC或者DAC的這些接口是通過AHB的總線來控制的,其中包括一些跟外界的接口,像SPI接口、I2C接口或者UART、Timer、Watchdog、GPIO、PWM控制,還有這里比較關(guān)心的是模擬模塊的接口。

圖片

講了這么多,先來看幾個(gè)例子:這是一個(gè)PMIC,它是Freescale公司的給系統(tǒng)供電控制的PMIC,這個(gè)芯片是要根據(jù)外面系統(tǒng)上的主AP控制,針對(duì)主AP能夠控制電源的每路輸出,或者對(duì)輸出上電時(shí)序進(jìn)行控制。

這個(gè)芯片可能是一個(gè)State Machine,也就是說相當(dāng)于把內(nèi)部的Firmware給固化了。但是我們也同樣可以看到它有相當(dāng)多的數(shù)字控制邏輯,包括我們剛才講的模擬部分的OSC、Reference、LDO,還有左下角的鋰電池的充放電管理,上面幾個(gè)大的是LDO、BUCK、BOOST 這些Power Management模塊。

圖片

我們?cè)賮砜纯戳硗庖粋€(gè)芯片,這個(gè)是Precision Microcontroller,這是ADI推出的一個(gè)對(duì)于微弱信號(hào)進(jìn)行放大采集的一個(gè)SOC,可以看到右邊內(nèi)部有一個(gè)ARM的M3的處理器,為了給這個(gè)處理器提供時(shí)鐘,有一個(gè)片上Oscillator,GPIO,UART,SPI、I2C接口都存在,還有很多個(gè)Timer、Watchdog、DEBUG接口,包括有一個(gè)128K的FLASH和8KB的SRAM。電源的供電是通過片上的1.8V LDO,左邊的模擬部分有12位的DAC,有24位的ADC, ADC的前面有放大器,Buffer跟PGA。

通過前面這兩個(gè)例子,我們能夠看到一個(gè)小規(guī)模SOC的基本構(gòu)成,加入了一個(gè)內(nèi)核以后對(duì)于芯片的可重構(gòu)特性會(huì)大大的凸顯出來,能夠適用于多種場(chǎng)合的不同應(yīng)用。

SOC TOP的設(shè)計(jì)

圖片

現(xiàn)在講講SOC TOP的設(shè)計(jì),后面的講解以問答的形式。這里提出三個(gè)問題,第一個(gè)是SOC的Analog on Top的設(shè)計(jì)環(huán)境是什么,第二個(gè)是SOC TOP的設(shè)計(jì)與ASIC設(shè)計(jì)有什么不同,第三個(gè)是SOC TOP設(shè)計(jì)與模擬設(shè)計(jì)有什么不同的地方。

圖片

作為一個(gè)SOC設(shè)計(jì),它的主要難點(diǎn)是需要同時(shí)去整合這兩套設(shè)計(jì)流程,而且要在頂層將這兩套設(shè)計(jì)出來的東西放在一起。

SOC的TOP設(shè)計(jì)環(huán)境是什么呢?我們知道數(shù)?;旌显O(shè)計(jì)環(huán)境是需要綜合使用兩套設(shè)計(jì)流程,模擬工程師比較熟悉的一個(gè)設(shè)計(jì)流程是Schematic Based,數(shù)字設(shè)計(jì)使用的是RTL module的形式。

對(duì)于一個(gè)模擬設(shè)計(jì)者來講,熟悉的工具就是Virtuoso schematic + Spectre。數(shù)字設(shè)計(jì)工具Synopsys用的是VCS+Verdi,Cadence用的是Irun+Simvison。除了這兩套工具之外,還需要搭建Firmware的設(shè)計(jì)環(huán)境,因?yàn)槲覀円?yàn)證SOC,沒有程序是跑不動(dòng)的,那要寫程序或者要編譯這個(gè)程序需要用到ARM CC或者像GCC之類的編譯工具,環(huán)境需要搭建。

后端的設(shè)計(jì)環(huán)境也是有相當(dāng)?shù)牟煌荒M設(shè)計(jì)往往用Virtuoso Layout,再加上Calibre,做LVS和DRC;數(shù)字設(shè)計(jì)環(huán)境的話,首先需要去DC綜合,時(shí)序分析PT,自動(dòng)布局布線往往使用ICC或者Encounter,后面FM是形式驗(yàn)證,還有包括測(cè)試Patten的自動(dòng)生成這這類工具。

圖片

這個(gè)圖是從網(wǎng)上下載下來的一個(gè)ASIC設(shè)計(jì)的一個(gè)流程圖,我們可以看到一開始是用文檔編輯工具去設(shè)計(jì)數(shù)字電路(硬件描述代碼),把它制作成Testbench和Hierarchical的Modules,這些Modules首先用仿真工具去仿真,沒有問題以后對(duì)他進(jìn)行DC綜合,綜合完了以后生成Verilog的Netlists,再對(duì)Netlists進(jìn)行PR。

PR完成以后會(huì)有三個(gè)文件:一個(gè)是GDS,第二個(gè)是Verilog的Netlists,還有一個(gè)是PR以后的Timing信息叫做SDF文件,這三個(gè)文件在后面的設(shè)計(jì)當(dāng)中都會(huì)用到,但是在對(duì)于ASIC來講,到這里可能就已經(jīng)結(jié)束了。

有不一樣的地方標(biāo)出來了,就是在左邊,在Testbench的設(shè)計(jì)階段就需要一些Analog的Model,給到Testbench,對(duì)這個(gè)數(shù)字控制模擬或者模擬返回到數(shù)字的這些信號(hào)進(jìn)行模擬。還有是Firmware的Binary file,就是固件的二進(jìn)制碼,也要給到這個(gè)Testbench,才能夠?qū)OC進(jìn)行仿真。

輸出的文件處理,會(huì)把GDS導(dǎo)入到Analog設(shè)計(jì)Layout中,使用Virtuoso的Stream in導(dǎo)入;對(duì)于Netlist,會(huì)把它用Verilog in的方式生成Schematic;SDF文件也是必不可少的,在仿真的時(shí)候要用于TOP SIM的timing的仿真,如果沒有這個(gè)文件的話,有可能Verilog Netlist in的文件由于時(shí)序不對(duì)沒辦法做正確的仿真。

圖片

SOC設(shè)計(jì)與模擬設(shè)計(jì)有什么不同呢?

在上面我們會(huì)先去設(shè)計(jì)Block level,然后把它組成一個(gè)Analog TOP的Schematic,這個(gè)是沒有Digital模塊的,但是它會(huì)有一個(gè)Digital的空的block。

TOP仿真的時(shí)候是使用Digital的RTL、IP的Model和Firmware組合在一起進(jìn)行Analog Top的仿真,這時(shí)因?yàn)闆]有數(shù)字的Schematic,所以只能用AMS的方式進(jìn)行仿真。

這步仿真通過以后,我們會(huì)對(duì)Digital進(jìn)行PR,PR完了以后會(huì)由SchematicVerilog-in進(jìn)來,組成最終的TOP的Schematic。對(duì)這個(gè)Top的Schematic進(jìn)行PR后的仿真,這個(gè)仿真比較簡(jiǎn)單,不會(huì)像前面那個(gè)Analog TOP的仿真這么詳細(xì),后面只是簡(jiǎn)單的驗(yàn)證一下最后的電源軌和模塊連接是不是準(zhǔn)確。

從后端上來看,在Analog Block Level或TOP做完以后馬上進(jìn)行Analog layout,這時(shí)會(huì)等Digital PR完成,完成以后會(huì)Stream-in進(jìn)來,兩個(gè)組成在一起形成TOP的Layout,當(dāng)然還有一些購(gòu)買的IP,有些IP可能不會(huì)給底層的GDS,只會(huì)給Phantom View,Phantom View拿進(jìn)來以后形成TOP的Layout,再對(duì)它進(jìn)行LVS。

SOC TOP的驗(yàn)證

圖片

后面我們講一下SOC TOP的驗(yàn)證,這里也采用問答形式,主要回答四個(gè)問題:第一個(gè)是怎么去仿真SOC TOP;第二個(gè)是我們重點(diǎn)要驗(yàn)證哪些項(xiàng)目;第三個(gè)是我們經(jīng)常會(huì)遇到的仿真速度很慢,我們?cè)趺崔k;最后一個(gè)是要不要做FPGA驗(yàn)證,這也是經(jīng)常會(huì)遇到的一個(gè)問題。

圖片

怎么去仿真SOC 的TOP?一個(gè)最基本的驗(yàn)證方法是使用Virtuoso AMS仿真工具,我們先列一個(gè)TOP的Verification list,對(duì)它進(jìn)行一個(gè)個(gè)的人工檢查,這是一個(gè)最基本的驗(yàn)證方法。群主她們有一個(gè)更加高級(jí)的自動(dòng)化的驗(yàn)證工具,我們沒有這個(gè)條件,只能是比較原始的方式去人工檢查。

對(duì)于很多初學(xué)者或者對(duì)于一些小規(guī)模的SOC來說,這種驗(yàn)證方法是足夠的。首先需要一個(gè)Config的文件,這個(gè)文件是Analog用于定義Schematic Hierarchy的View的方式,可以指定尋找View的順序,比如說優(yōu)先尋找Schematic,再允許去尋找某一些模型。

這個(gè)時(shí)候針對(duì)Digital的Block,我們只需要指定頂層,指定頂層以后,因?yàn)镈igital是需要有很多的Module組合在一起的,那么怎么去設(shè)置這個(gè)Module的尋找路徑呢?需要在Virtuoso AMS的設(shè)置里面去設(shè)置一個(gè)Digital的文件列表;第三個(gè),在TestBench上面加一個(gè)模塊去設(shè)置仿真的初始條件。

圖片

先看看仿真器的設(shè)置,仿真器設(shè)置主要是Config file怎么去設(shè)置。在RTL仿真時(shí),我們只需要去指定Digital Top的Cell View。舉個(gè)簡(jiǎn)單例子,我們可以把Digital的Top,設(shè)置成functional,或者說是Schematic,都可以,那對(duì)functional只需要digitla 的top,它里邊會(huì)引用到很多的其它的Module,這個(gè)時(shí)候Config是指定不了的,需要在Virtuoso的AMS Option里邊去設(shè)定一個(gè).f文件,這個(gè).f文件里面設(shè)定了它的Module的全路徑。

另外一種方法也可以只在Digital TOP上做一個(gè)空的Schematic,再加一個(gè)Stop Point,加了這個(gè)Stop Point以后不會(huì)再往下去生成網(wǎng)表,只是在Schematic這一層生成一個(gè)空的,這時(shí)候,它會(huì)去在.f文件當(dāng)中找相應(yīng)的Module。

圖片

在TOP上我們還需要加載一個(gè)System verilog寫的模塊,這個(gè)模塊用于加載Firmware和初始態(tài)的設(shè)置。這里是一個(gè)例子,我們把這個(gè)Module生成一個(gè)Symbol,把這個(gè)Symbol放到TOP上就可以了。我們可以看到一開始會(huì)去讀入一個(gè)16進(jìn)制HEX的Firmware文件,把它放到緩存當(dāng)中,然后在初始化的時(shí)候把這個(gè)緩存一個(gè)個(gè)的寫入到NVM當(dāng)中。

第三是用兩個(gè)語句去保存dig.top的數(shù)字波形,把它存放到Datebase當(dāng)中。最后一個(gè)是在PR后的仿真中有用,在這里設(shè)置它的Timing信息sdf文件,因?yàn)橹挥性O(shè)置文件后跑出來的數(shù)字時(shí)序才是正確的。

圖片

SOC TOP重點(diǎn)要驗(yàn)證哪些項(xiàng)目呢?這里以我自己的經(jīng)驗(yàn)寫了幾項(xiàng):第一個(gè)是上電使能的順序是重點(diǎn)需要驗(yàn)證的,因?yàn)樵跀?shù)字模塊當(dāng)中事實(shí)上沒辦法去驗(yàn)證上電的時(shí)序,所以在這塊需要重點(diǎn)驗(yàn)證;第二個(gè)是在多電源軌的設(shè)計(jì)當(dāng)中電平轉(zhuǎn)換是不是正確,初始態(tài)也就是在Level Shift掉電的時(shí)候,是不是能夠輸入正確的初始態(tài),這需要去做驗(yàn)證,因?yàn)槲覀冊(cè)跀?shù)字仿真當(dāng)中是沒辦法去做多電源軌的驗(yàn)證,所以需要重點(diǎn)確保沒問題。

另外還有數(shù)字模塊輸出的初始態(tài)是不是正確,這點(diǎn)很多人可能往往會(huì)忽略掉,因?yàn)樵谀M設(shè)計(jì)當(dāng)中我們事實(shí)上不太清楚數(shù)字輸出,或者說我們經(jīng)常會(huì)默認(rèn)為數(shù)字模塊輸出是一個(gè)零狀態(tài),事實(shí)上有可能不是,這個(gè)是需要去確認(rèn)的。標(biāo)紅色的幾項(xiàng)需要花大量精力去做,第一個(gè)是模擬模塊與數(shù)字模塊之間的連接是不是正確,這個(gè)是Mixed signal主要需要驗(yàn)證的地方,第二個(gè)是需要與數(shù)字模塊交互的模擬模塊,這個(gè)非常費(fèi)時(shí),因?yàn)槿绻坏┏霈F(xiàn)這種交互的話要等到數(shù)字內(nèi)部初始化完成才能夠仿真到需要的狀態(tài)。

第三點(diǎn)也是比較麻煩的,是測(cè)試模式的仿真。這里主要是一些測(cè)試模式接口,像測(cè)試模式入口、在線仿真入口,還有測(cè)試Pattern入口,這些事實(shí)上都是在不正常工作的時(shí)候的一種工作狀態(tài)。由于它不涉及到正常工作模式的狀態(tài)可能有些人會(huì)會(huì)忽略掉,但是一旦忽略的話,往往有可能這些測(cè)試模式是不成功的。

最后一個(gè)是異常的一些處理,包括下電或者電源上毛刺的處理等。

圖片

仿真速度很慢怎么辦?仿真速度慢首先我們要去檢查慢的原因,數(shù)字信號(hào)變化是不會(huì)使仿真變慢的,模擬信號(hào)變化如果觸碰到一個(gè)閾值會(huì)引發(fā)一次計(jì)算,我們知道模擬的計(jì)算是一個(gè)矩陣計(jì)算,如果是大規(guī)模的模擬模塊的話,它的仿真速度是將會(huì)非常慢,第三點(diǎn)就是模擬信號(hào)的一些不連續(xù),叫做硬轉(zhuǎn)折,它會(huì)造成收斂性的問題,一旦碰到收斂性問題,會(huì)讓速度變得很慢。

加快仿真的方法有下面的幾點(diǎn):第一點(diǎn)是我們可以用仿真器的Debug模式去檢查仿真慢到底慢在哪里,它的原因是什么;第二點(diǎn)一個(gè)基本的方式是我們把那些驗(yàn)證項(xiàng)目不涉及到的模擬模塊用模型去代替它,這樣的話會(huì)避免不必要的模擬計(jì)算量;第三點(diǎn)是減少不必要的模擬信號(hào)的變化,這點(diǎn)后面會(huì)講到;第四個(gè)是優(yōu)化涉及時(shí)鐘的模塊。

圖片

檢查仿真慢的原因,Debug模式是怎么做的呢?我們?cè)赩irtuoso里面Simulator option上添加一句diagnose=detailed,這樣的話就能夠打出很多的仿真過程當(dāng)中的一些信息。觀察log文件,去看哪個(gè)模塊的信號(hào)將仿真的step變小了,或者在哪個(gè)點(diǎn)觸發(fā)了一次新的計(jì)算,去看這次計(jì)算是不是你想要的,或者說是不是可以避免的。

圖片

加快仿真速度的基本方法就是把模擬模塊用模型去代替,這里我畫了一個(gè)圖,它的仿真速度綠色的最快,藍(lán)色次之,紅色仿真速度最慢。什么東西仿真速度是比較慢的?一個(gè)是Oscillator,然后用到這種高速時(shí)鐘的高速模擬模塊,比如說高速ADC。什么東西是仿真速度比較快的呢,其他的一些模擬模塊,事實(shí)上只要它不涉及到動(dòng)態(tài)波形、動(dòng)態(tài)信號(hào)的話,它的仿真速度都還是挺快的。

為了加快仿真速度我們要把高速時(shí)鐘模塊的驗(yàn)證跟其他的模擬模塊的驗(yàn)證分開來,驗(yàn)證高速時(shí)鐘模塊的時(shí)候可以配置一些初始態(tài),盡量盡快地跳過等待的時(shí)間,讓它盡快的能夠驗(yàn)證到你想驗(yàn)證的一些信號(hào)。

這個(gè)時(shí)候其它的模塊使用模型,驗(yàn)證其它模擬模塊的時(shí)候高速時(shí)鐘使用模型。這里有個(gè)問題就是,往往對(duì)模擬設(shè)計(jì)工程師來說不太熟悉Verilog-a或者Verilog-ams,就用理想的模型去搭了一個(gè),那這種方式合不合適呢?

圖片

我們這里來看一個(gè)例子,以一個(gè)4M的時(shí)鐘作為一個(gè)例子來看看Verilog-a和Verilog-ams寫的模型的方法。對(duì)于Verilog-a來講,這里寫的是一個(gè)4M的時(shí)鐘,所以每過125ns會(huì)翻轉(zhuǎn)一次,osc_4M這個(gè)信號(hào)是個(gè)整形,要把這個(gè)整形變成一個(gè)輸出,這個(gè)輸出是一個(gè)模擬信號(hào),所以要使用transition這個(gè)語句。這里需要注意,如果這個(gè)信號(hào)不用transition的話,有可能會(huì)遇到硬轉(zhuǎn)折,也就是說有收斂性的問題。

加入了transition以后會(huì)添加一個(gè)上升時(shí)間、下降時(shí)間、一個(gè)Delay時(shí)間,把它從0-1變成VDD、VSS的信號(hào)輸出去。如果用Verilog-ams就比較簡(jiǎn)單,可以直接用類似于Verilog寫的語句,把它定義成一個(gè)邏輯信號(hào),直接在125ns翻轉(zhuǎn)一次就可以了。

但是事實(shí)上我們會(huì)發(fā)現(xiàn),不管是Verilog-a還是理想模型都是一個(gè)模擬信號(hào),一旦是模擬信號(hào)的話,那么它就會(huì)頻繁的去觸發(fā)模擬計(jì)算。舉個(gè)例子,我們這里的transition語句,它每碰到125ns的時(shí)候就會(huì)去算,把它形成一個(gè)ramp波形,這個(gè)波形的計(jì)算可能有好幾個(gè)點(diǎn)。

圖片

我們來看使用Verilog-a和Verilog-ams有什么不一樣的地方,在上面這個(gè)圖我們使用Verilog-a,使用了Verilog-a以后可以看到OSC的理想模型輸出是模擬信號(hào),然后輸入到Digital的RTL是數(shù)字信號(hào),數(shù)字信號(hào)還是很快的,模擬信號(hào)比較慢,但是因?yàn)樗呀?jīng)變成了一個(gè)非0即1的或者說計(jì)算量很小的模塊,所以我們認(rèn)為它計(jì)算量很小,然后把它輸入到高速的RTL模塊,這個(gè)模塊也用Verilog-a去寫。

我們可能會(huì)認(rèn)為這樣的寫法會(huì)讓仿真速度大大加快,事實(shí)上它是可以加快點(diǎn),但是并沒有很多,為什么呢?因?yàn)樗嬖谀M到數(shù)字的轉(zhuǎn)換,它在每半個(gè)時(shí)鐘都會(huì)去打斷一次,就會(huì)做模擬的計(jì)算。雖然模塊本身的模擬計(jì)算很小,但是他這個(gè)模擬計(jì)算會(huì)觸發(fā)其他所有的模擬模塊,所有模塊加起來的計(jì)算是很慢的,因此它事實(shí)上速度不會(huì)快很多。

為了加快仿真速度,我們可以用下面這種方式去寫,Oscillator用Verilog-ams,High speed analog也用Verilog-ams去寫,這樣的話在鏈路上面沒有模擬通路,所以這個(gè)鏈路用綠色去表示,它是一個(gè)Logic的信號(hào),而不是analog,它并不會(huì)觸發(fā)模擬計(jì)算,所以會(huì)大大的加速模擬計(jì)算的速度,或者說是減少模擬計(jì)算工作量。我有一個(gè)例子,同樣的一個(gè)仿真Case用上面這種模型去寫仿真使用了大概幾天的時(shí)間,改用了下面的方法以后一個(gè)小時(shí)就可以跑完了。

圖片

驗(yàn)證的最后的一個(gè)問題是經(jīng)常會(huì)聽到說要不要去做FPGA驗(yàn)證?對(duì)于FPGA驗(yàn)證來講去驗(yàn)證數(shù)字模塊是非常有用的,因?yàn)閯偛趴吹轿覀冑I了幾個(gè)IP是綠色的,但是藍(lán)色還是很多,這個(gè)時(shí)候FPGA驗(yàn)證的應(yīng)該是可以的,而且是比較有效的。事實(shí)上簡(jiǎn)單的數(shù)字模塊的仿真驗(yàn)證是能夠覆蓋的,復(fù)雜的數(shù)字模塊比如說有上位機(jī)的軟件的互動(dòng),有這些東西的話呢,F(xiàn)PGA驗(yàn)證可以有效的減少仿真驗(yàn)證的工作量,另外對(duì)于需要提前開發(fā)軟件,開發(fā)一些燒錄工具或者自動(dòng)測(cè)試是有幫助的。

但是坦白講對(duì)于數(shù)?;旌蟻碇vFPGA驗(yàn)證環(huán)境是很難搭建的,因?yàn)閷?duì)于模擬模塊來講,很難去找現(xiàn)成的比較接近的模塊,要去驗(yàn)證它的話,需要搭建很復(fù)雜的接口,還有一些電源軌的轉(zhuǎn)換,都非常復(fù)雜,所以我們目前AOT的TOP主要是以仿真驗(yàn)證為主。

經(jīng)驗(yàn)分享

圖片

今天的分享最后講講幾個(gè)經(jīng)驗(yàn):第一點(diǎn)是因?yàn)镾OC會(huì)使用很多的IP,所以我們必須要去熟讀IP的所有的接口定義,還有它的時(shí)序跟電源軌的信息,驗(yàn)證要覆蓋到我們用到IP的全部功能。這里其實(shí)有很多教訓(xùn),IP文檔讀的不夠仔細(xì)或者使用錯(cuò)誤出現(xiàn)的問題,雖然大部分問題是可以在仿真的時(shí)候能夠驗(yàn)證出來,但有的時(shí)候比較偏的一些功能沒有仿到,沒有覆蓋到,就會(huì)有問題或缺陷。

第二點(diǎn)是模擬到數(shù)字的接口進(jìn)入數(shù)字后必須要使用時(shí)鐘進(jìn)行同步,否則非常容易出Bug,而且很難驗(yàn)證。因?yàn)檫@種Bug,只有在模擬信號(hào)正好在數(shù)字的時(shí)鐘上升沿那一瞬間來的時(shí)候變化才會(huì)遇到問題,所以很難去驗(yàn)證到。

我們經(jīng)常講的一點(diǎn)就是功能事實(shí)上是驗(yàn)證出來的,某個(gè)功能沒有經(jīng)過驗(yàn)證,相當(dāng)于說是你可以不關(guān)心或者放棄這個(gè)功能,這個(gè)時(shí)候模擬混合驗(yàn)證的自動(dòng)化的優(yōu)勢(shì)就體現(xiàn)出來了,因?yàn)樗軌蛟谝婚_始,即設(shè)計(jì)階段就能夠去定義哪些功能需要驗(yàn)證,而不是在最后列個(gè)List一個(gè)個(gè)去檢查,因?yàn)榈搅四莻€(gè)時(shí)候是時(shí)間是非常有限的,可能來不及。

還有很重要的一點(diǎn)就是在多電源軌的設(shè)計(jì)當(dāng)中必須要檢查所有的輸入輸出電源軌是不是正確,因?yàn)殡娫窜壍膯栴}RTL Simulation經(jīng)常沒有辦法檢查出來。只有在模擬的仿真中才知道,比如輸出1.8V到了5V的電源軌,或者說5V的電源軌到了1.8V,那肯定器件就壞掉了。

圖片

第二再分享一個(gè)小工具,有些IP的供應(yīng)商對(duì)于Standard Cell經(jīng)常不提供Schematic view,這怎么辦?事實(shí)上,我們可以通過IP供應(yīng)商提供的Spice model,或者說CDL網(wǎng)表,能夠自動(dòng)的生成Schematic view。左邊是我們經(jīng)??吹降囊粋€(gè)Standard Cell的與門,可以看到里邊有網(wǎng)表,P管用PD來表示,N管用ND來表示,前面是它的連接,后面是W、L和multiple。在Spice in的時(shí)候,通過device map把這個(gè)MOS管PD對(duì)應(yīng)成PMOS 5V的管子??梢园裀管對(duì)應(yīng)成PMOS 5V,然后是他的Pin order,Property需要注意一下,因?yàn)镻roperty定義了W、L對(duì)應(yīng)的是什么參數(shù),W對(duì)應(yīng)的W,L對(duì)應(yīng)的L,但有的時(shí)候m要根據(jù)實(shí)際情況要去做修改,定義它的PDK里面的參數(shù)是什么。

使用了這個(gè)工具,最終導(dǎo)進(jìn)去以后會(huì)發(fā)現(xiàn)雖然把W、L、m改對(duì)了,Model可能也改對(duì)了,但是其他的一些CDF參數(shù)沒有刷新,這時(shí)候怎么辦?因?yàn)槿绻覀児饽盟鼇碜鯨VS的話是不影響的,因?yàn)樵贚VS當(dāng)中網(wǎng)表就是這個(gè)樣子,它只用到了這幾個(gè)參數(shù),但是在其它電路仿真的時(shí)候如果用到Standard Cell,它的CDF參數(shù)沒有刷新的話有問題。

說明一下,CDF是PDK里邊經(jīng)常看到的與器件相關(guān)的一些模擬參數(shù),比如說Drain或者是Source的寬度,它的寄生,因?yàn)樗鶕?jù)WL變化,所以它實(shí)際上是一個(gè)可變量,能把這個(gè)變量通過CDF傳遞到網(wǎng)表當(dāng)中去。

圖片

如果這個(gè)CDF沒有刷新怎么辦呢?這里有一個(gè)工具能夠去刷新這些CDF的一些參數(shù)。事實(shí)上這個(gè)工具不僅僅可以去刷新參數(shù),還可以自動(dòng)去替換工藝,這事實(shí)上是一個(gè)自動(dòng)換工藝的小工具,可以把A工藝的PDK器件自動(dòng)轉(zhuǎn)換到B工藝的PDK器件。

轉(zhuǎn)換以后同樣需要去刷新CDF,防止老PDK的參數(shù)影響到仿真參數(shù)。這個(gè)工具怎么用呢?可以去下載這兩個(gè)Skill文件,用搜索引擎應(yīng)該能夠搜到,它的一些討論也在下面這個(gè)reference的網(wǎng)址當(dāng)中有講到。這兩個(gè)文件里邊有說明文檔,需要去編寫這個(gè)config文件。就是A是什么工藝,把A工藝中的一個(gè)器件把它自動(dòng)地?fù)Q成B工藝當(dāng)中的一個(gè)器件,然后再運(yùn)行Callback。

我這個(gè)Config文件只是去刷新CDF的參數(shù),所以它換成的工藝庫(kù)還是原來的工藝。有了這幾個(gè)文件,首先去Load前面兩個(gè)Skill文件,然后使用下面對(duì)整個(gè)庫(kù)進(jìn)行替換的命令就可以了。

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

    關(guān)注

    260

    文章

    8416

    瀏覽量

    176256
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7653

    瀏覽量

    167415
  • AMBA總線
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    9881
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1086

    瀏覽量

    83770
  • SoC芯片
    +關(guān)注

    關(guān)注

    1

    文章

    646

    瀏覽量

    35824
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    求助帖!top switch反激式led驅(qū)動(dòng)電源設(shè)計(jì)

    求助,基于top switch反激式LED電源的設(shè)計(jì),誰能幫我設(shè)計(jì)然后仿真,需要仿真波形及說明。酬謝?。“萃写笊駛兞?,電源小白。。可以的留下聯(lián)系方式
    發(fā)表于 01-11 19:45

    SoC驗(yàn)證平臺(tái)的FPGA綜合怎么實(shí)現(xiàn)?

    SoC芯片的規(guī)模一般遠(yuǎn)大于普通的ASIC,同時(shí)深亞微米工藝帶來的設(shè)計(jì)困難等使得SoC設(shè)計(jì)的復(fù)雜度大大提高。仿真與驗(yàn)證是SoC設(shè)計(jì)流程中最復(fù)雜、最耗時(shí)的環(huán)節(jié),約占整個(gè)芯片開發(fā)周期的50%
    發(fā)表于 10-11 07:07

    如何縮短SoC仿真時(shí)間?

    驗(yàn)證復(fù)雜的SoC設(shè)計(jì)要耗費(fèi)極大的成本和時(shí)間。據(jù)證實(shí),驗(yàn)證一個(gè)設(shè)計(jì)所需的時(shí)間會(huì)隨著設(shè)計(jì)大小的增加而成倍增加。在過去的幾年中,出現(xiàn)了很多的技術(shù)和工具,使驗(yàn)證工程師可以用它們來處理這類問題。但是,這些技術(shù)中很多基于動(dòng)態(tài)仿真,并依靠電路操作來發(fā)現(xiàn)設(shè)計(jì)問題,因此設(shè)計(jì)者仍面臨為設(shè)計(jì)創(chuàng)
    發(fā)表于 11-11 06:34

    求一種數(shù)模混合SoC設(shè)計(jì)協(xié)同仿真的驗(yàn)證方法

    固網(wǎng)短信電話專用SoC芯片介紹一種數(shù)?;旌?b class='flag-5'>SoC設(shè)計(jì)協(xié)同仿真的驗(yàn)證方法
    發(fā)表于 04-23 06:06

    如何對(duì)基于STM32 Soc的STM32-P103進(jìn)行QEMU仿真

    如何對(duì)基于STM32 Soc的STM32-P103進(jìn)行QEMU仿真?有哪些步驟?
    發(fā)表于 11-03 07:18

    SoC設(shè)計(jì)流程相關(guān)資料下載

    SoC設(shè)計(jì)流程一、SoC設(shè)計(jì)的特點(diǎn)二、軟硬件協(xié)同設(shè)計(jì)流程2.1 系統(tǒng)需求說明2.2 高級(jí)算法建模與仿真2.3 軟硬件劃分過程2.4 軟硬件同步設(shè)計(jì)三、基于標(biāo)準(zhǔn)單元的SoC芯片設(shè)計(jì)流程一
    發(fā)表于 11-11 07:48

    一種數(shù)模混合SoC 設(shè)計(jì)協(xié)同仿真的驗(yàn)證方法

    數(shù)?;旌闲盘?hào)仿真已經(jīng)成為SoC芯片驗(yàn)證的重要環(huán)節(jié)。文章以一款固網(wǎng)短信電話專用SoC芯片為例,介紹一種使用Synopsys公司的NanoSim-VCS協(xié)同仿真環(huán)境進(jìn)行
    發(fā)表于 05-15 15:41 ?19次下載

    一種數(shù)?;旌?b class='flag-5'>SoC 設(shè)計(jì)協(xié)同仿真的驗(yàn)證方法

    數(shù)模混合信號(hào)仿真已經(jīng)成為SoC芯片驗(yàn)證的重要環(huán)節(jié)。文章以一款固網(wǎng)短信電話專用SoC芯片為例,介紹一種使用Synopsys公司的NanoSim-VCS協(xié)同仿真環(huán)境進(jìn)行
    發(fā)表于 05-15 15:41 ?5次下載

    用SystemC進(jìn)行SoC的系統(tǒng)級(jí)設(shè)計(jì)與仿真

    IC 技術(shù)已發(fā)展到SoC 階段,系統(tǒng)級(jí)設(shè)計(jì)、仿真和驗(yàn)證已成為IC 設(shè)計(jì)面臨的巨大挑戰(zhàn)。SystemC 是新興的系統(tǒng)級(jí)設(shè)計(jì)語言,為復(fù)雜系統(tǒng)的設(shè)計(jì)與驗(yàn)證提供了解決方案。本文介紹SystemC 的特點(diǎn)
    發(fā)表于 05-18 13:44 ?28次下載

    用于加速ARM SOC內(nèi)IP模塊DSM仿真的啟動(dòng)代碼設(shè)計(jì)方法

    用于加速ARM SOC 內(nèi)IP 模塊DSM 仿真的啟動(dòng)代碼設(shè)計(jì)方法:本文概要描述了在ARM 片上系統(tǒng)設(shè)計(jì)中,用于USB 知識(shí)產(chǎn)權(quán)內(nèi)核設(shè)計(jì)驗(yàn)證的DSM 仿真方法,提出了一種能夠大大加快DSM 仿
    發(fā)表于 09-24 09:12 ?29次下載

    新思科技Synopsys收購(gòu)SoC驗(yàn)證仿真公司EVE

    全球領(lǐng)先供應(yīng)商新思科技公司(Synopsys, Inc., 納斯達(dá)克股票市場(chǎng)代碼:SNPS)日前宣布:該公司完成了對(duì)一家SoC驗(yàn)證仿真加速平臺(tái)領(lǐng)先供應(yīng)商EVE公司的收購(gòu)。
    發(fā)表于 10-09 14:25 ?1439次閱讀

    基于擴(kuò)展卡爾曼濾波的SOC估算仿真

    基于擴(kuò)展卡爾曼濾波SOC估算Simulink仿真,內(nèi)容完整,模型可仿真,代碼可實(shí)現(xiàn)
    發(fā)表于 08-25 15:22 ?14次下載

    介紹一種ISE聯(lián)合仿真轉(zhuǎn)換為Moldelsim單獨(dú)仿真的方法

    找到仿真頂層的tb文件,cut_through_top_tb。
    的頭像 發(fā)表于 01-29 09:45 ?2019次閱讀

    一文淺談SoC功能驗(yàn)證中的軟件仿真

    隨著SOC/ASIC設(shè)計(jì)規(guī)模不斷增大,且結(jié)構(gòu)愈加復(fù)雜,導(dǎo)致驗(yàn)證的復(fù)雜度呈指數(shù)級(jí)增長(zhǎng)。為了縮短芯片的上市周期,在不同設(shè)計(jì)階段工程師們往往選擇不同的仿真驗(yàn)證工具,提高整個(gè)芯片開發(fā)效率。在一個(gè)芯片
    的頭像 發(fā)表于 01-12 17:11 ?1225次閱讀
    一文淺談<b class='flag-5'>SoC</b>功能驗(yàn)證中的軟件<b class='flag-5'>仿真</b>

    Analog On TopSOC如何做Top設(shè)計(jì)?

    Analog On TopSOC如何做Top設(shè)計(jì)? 簡(jiǎn)介: 在片上系統(tǒng)(SOC)的世界里,模擬運(yùn)算(AOT)方法為設(shè)計(jì)過程帶來了獨(dú)特的風(fēng)味。與數(shù)字邏輯處于頂端的傳統(tǒng)方法不同,AOT顛
    的頭像 發(fā)表于 11-07 10:35 ?1151次閱讀