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

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

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

簡單介紹一下-Verilog-AMS的基礎(chǔ)知識(shí)

OpenFPGA ? 來源:OpenFPGA ? 作者:碎碎思 ? 2021-10-21 14:50 ? 次閱讀

混合信號(hào)建模語言Verilog-AMS很多人做模擬電路的朋友,都希望有一款“模擬FPGA”,希望有一個(gè)“模擬的Verilog”,但現(xiàn)實(shí)是沒有“模擬的Verilog”只有混合信號(hào)建模語言-Verilog-AMS,今天就簡單介紹一下-Verilog-AMS。

為了便于物理系統(tǒng)的建模,人們在Verilog-2005的基礎(chǔ)上,添加了一些新的關(guān)鍵字和語法結(jié)構(gòu),由此誕生了Verilog-AMS標(biāo)準(zhǔn)。所以Verilog-AMS是Verilog-2005的一個(gè)超集。換言之,Verilog-2005又是Verilog-AMS的子集。這里還有一個(gè)Verilog-A,具體三者關(guān)系如下:

該標(biāo)準(zhǔn)定義了標(biāo)準(zhǔn)的Verilog仿真器和模擬解算器之間的互動(dòng)。而且,Verilog-AMS語言從誕生開始,就是為常用的物理系統(tǒng)的建模,而不僅是為電路網(wǎng)絡(luò)的建模而創(chuàng)造的。

Verilog-AMS基礎(chǔ)Verilog-AMS引入了一些重要的新概念。其中最重要的新概念可以總結(jié)為兩個(gè)關(guān)鍵字:discipline和nature。在“標(biāo)準(zhǔn)”的Verilog中net(線網(wǎng))類型表示的只是具體的物理連接線路。在顯示仿真的結(jié)果時(shí),可以觀察到在一段時(shí)間里這條線路的狀態(tài)變化。因此,net有兩個(gè)含義:具體的物理連接和時(shí)間歷史。電路節(jié)點(diǎn)表示兩個(gè)或更多個(gè)元件連接在一起的那個(gè)點(diǎn)。然而,不能討論該節(jié)點(diǎn)本身的行為,除非指定討論的對(duì)象是該節(jié)點(diǎn)的電壓或流過該節(jié)點(diǎn)的電流,以及其他方面。

為了對(duì)具體的物理連接和行為進(jìn)行區(qū)別,Verilog-AMS引入了新的關(guān)鍵字。在模型中,節(jié)點(diǎn)上的電壓或者電流用關(guān)鍵字nature聲明。在舉例說明之前,必須先解釋一下nature和節(jié)點(diǎn)之間是怎樣相互關(guān)聯(lián)的。

節(jié)點(diǎn)和網(wǎng)絡(luò)類型有著密切的關(guān)聯(lián)。例如,電路節(jié)點(diǎn)歸屬于電路網(wǎng)絡(luò),磁節(jié)點(diǎn)歸屬于磁網(wǎng)絡(luò)。各種網(wǎng)絡(luò)的行為都可以用關(guān)鍵字nature(性質(zhì))來描述。例如,電路網(wǎng)絡(luò)的行為可以用電壓和電流來描述;

而磁網(wǎng)絡(luò)的行為可以用磁動(dòng)勢和磁通量來描述。每一類型的網(wǎng)絡(luò)都有自身的一對(duì)性質(zhì)。這一對(duì)性質(zhì)可以描述為flow(流性質(zhì))和potential(勢性質(zhì))。例如,在電路網(wǎng)絡(luò)中,電流通過元件從網(wǎng)絡(luò)的一個(gè)節(jié)點(diǎn)流到另一個(gè)節(jié)點(diǎn);

此刻,也可以測量元件兩端的電動(dòng)勢。每一類型的網(wǎng)絡(luò)都具有一對(duì)這樣的流性質(zhì)和勢性質(zhì)。(請注意,也可以按照與傳統(tǒng)思路完全相反的概念來定義這個(gè)電網(wǎng)絡(luò),即在該電網(wǎng)絡(luò)中,定義電流具有勢性質(zhì),電壓具有流性質(zhì)。

從數(shù)學(xué)角度來定義性質(zhì),無論傳統(tǒng)的或相反的定義都是可接受的。然而,在電網(wǎng)絡(luò)中,接受符合傳統(tǒng)約定的性質(zhì)定義比較容易。而在其他類型的網(wǎng)絡(luò)中,確定究竟哪個(gè)物理量為勢性質(zhì),哪個(gè)物理量為流性質(zhì)可能不那么清楚。)

在某特定網(wǎng)絡(luò)節(jié)點(diǎn)性質(zhì)的定義中,事實(shí)上定義了該網(wǎng)絡(luò)的流性質(zhì)和勢性質(zhì)。因此,只聲明某個(gè)線網(wǎng)是一個(gè)特定的Verilog類型的線網(wǎng)是不夠的,所以必須添加一種新結(jié)構(gòu),即discipline(規(guī)則)來描述該線網(wǎng)。規(guī)則由兩個(gè)部分組成:勢性質(zhì)和流性質(zhì)。此外,domain(域)可以聲明為連續(xù)的continuous)或者離散的discrete)。在默認(rèn)情況下,規(guī)則是連續(xù)的。

電路規(guī)則可以用如下語句聲明:

disciplineelectrical
potentialVoltage;
flowCurrent;
enddiscipline

與別處-樣,代碼段中的關(guān)鍵字用粗字體表示。代碼段中的Voltage(電壓)和Current(電流)是什么?我們知道potential(勢)和flow(流)這兩部分都是natures(性質(zhì)),所以Voltage和Current一定是natures。

natureVoltage
units="V";
access=V;
idt_nature=Flux;
abstol=le-6;
endnature

natureCurrent
units="A";

accessI
idt_nature=Charge;
abstol=le-12;

endnature

這兩個(gè)性質(zhì)聲明塊的內(nèi)容都由四條語句組成,但并非每條語句都是必需的。第1條語句units列出了用于表示該性質(zhì)的符號(hào)。Verilog-AMS語言不執(zhí)行維度分析,所以這條語句只是提供可讀性而已。第2條語句中的access給出了訪問功能。由于第2條語句中存在access,所以在代碼段中,V(nodel)表示引用節(jié)點(diǎn)1的電壓。第3條語句中的idt_nature表示等號(hào)后的物理量具有時(shí)間積分的性質(zhì)。也可以用ddt_nature來表示等號(hào)后的物理量具有時(shí)間導(dǎo)數(shù)的性質(zhì)。但在這種場合,F(xiàn)lux(通量)和Charge(電荷)應(yīng)該在別處聲明。最后一條語句中的關(guān)鍵字abstol表示允許的絕對(duì)誤差,這條語句定義了性質(zhì)塊聲明的變量在計(jì)算過程中的精確度。

在下面的例子中,假設(shè)在文件disciplines.vams中包含一些電規(guī)則的定義。每個(gè)模塊的開頭都包括該規(guī)則定義文件?,F(xiàn)在就可以用該文件中定義的電規(guī)則來定義一個(gè)或者多個(gè)節(jié)點(diǎn)。

electrical nodel,node2;

我們可以用與定義線網(wǎng)或端口完全相同的方法在模塊中定義節(jié)點(diǎn)。在端口聲明時(shí),必須聲明端口的方向?yàn)閕nout(輸入/輸岀雙向端口)類型。例如,下面的代碼段聲明了一個(gè)電阻模塊:

'include"disciplines.vams";
moduleresistor(nodel,node2);
inoutnodel,node2;
electricalnodel,node2;
parameterrealR=1;

寫到這里,只是創(chuàng)建了物理節(jié)點(diǎn)??梢杂肐(nodel,node2)表示在這兩個(gè)節(jié)點(diǎn)之間流動(dòng)的電流;也可以聲明一個(gè)或多個(gè)支路。兩個(gè)節(jié)點(diǎn)之間的支路可以用下面的語句聲明:

branch (nodel,node2) res;

所以,現(xiàn)在還可以用I(res)來表示流經(jīng)電阻的電流。

每個(gè)流經(jīng)物理量的計(jì)算基準(zhǔn)點(diǎn)就是所謂的參考節(jié)點(diǎn)。在電路網(wǎng)絡(luò)中,該參考節(jié)點(diǎn)通常稱為地線或者接地點(diǎn)。在Verilog-AMS模型中,通常用下面的語句來表示接地點(diǎn):公眾號(hào)OpenFPGA

ground gnd;

作用語句

作用語句(contrihution statement)用于定義模擬模型的線路方程。在作用語句中,使用符號(hào)“<+”來表示表達(dá)式如何作用于某線路方程組。請注意,“<+”不是傳統(tǒng)意義上的賦值操作符,而是對(duì)同一個(gè)流或者勢的多個(gè)作用的總和。

因此,作用語句是由模擬仿真器求解的聯(lián)立方程。作用語句必須放在模擬過程塊之中。為了說明作用語句,我們編寫了一個(gè)電阻器的完整模型:

'include"disciplines.vams"
moduleresistor(nodel,node2);
inoutnodel,node2;

electricalnodel,node2;
parameterrealR=1;
branch(nodel,node2)res;

analogbegin
I(res)<+?V(res)/R?;
end

endmodule

可以用類似的方法為其他元件建模。例如,下面的代碼段是一個(gè)電容器的Verilog-AMS模型:

'include"disciplines.vams"
modulecapacitor(nodel,node2);
inoutnodel,node2;
electricalnodel,node2;
parameterrealC=1;
branch(nodel,node2)cap;

analogbegin
I(cap)<+?C*ddt(V(cap));
end
endmodule

上面程序中的ddt是一個(gè)求導(dǎo)函數(shù)。其功能是求出電容兩端電壓的變化率,即求電壓的微分。而下面語句中的idt是一個(gè)積分函數(shù),其功能是計(jì)算其后面變量(流經(jīng)電容的電流)的積分。由于作用語句是代數(shù)表達(dá)式而不是賦值操作,所以可以用以下方程來表示電容電壓:

V(cap) < + idt ( I(cap))/C;

在結(jié)束這些基本模型的討論之前,讓我們先考慮一個(gè)產(chǎn)生正弦波形的純電壓源,以后需要把這個(gè)電壓源模型作為基礎(chǔ)元件來描述DAC。

'include"constants.vams"
'include"disciplines.vams"
modulevsin(a,b);
inouta,b;
electricala,b;
branch(a,b)vs;

parameterrealvo=1;
parameterrealva=1;
parameterrealfreq=1;

analogbegin
V(vs)<+?vo?+?va?*?sin('M_TWO_PI*freq*$abstime);
end
endmodule

在文件constants.vams中,定義了許多有用的參數(shù),其中包括M_TWO_PI(即2倍的圓周率—2π),$time,但是$abstime返回的是一個(gè)實(shí)型數(shù)。

混合信號(hào)建模

Verilog-AMS是一種混合信號(hào)建模語言,所以我們可以把模擬結(jié)構(gòu)和數(shù)字結(jié)構(gòu)寫在同一個(gè)模塊中。下面編寫一個(gè)簡單比較器的模型。該比較器可以對(duì)兩個(gè)模擬電壓信號(hào)進(jìn)行比較,把比較結(jié)果轉(zhuǎn)換為1比特的數(shù)字信號(hào)。當(dāng)?shù)?個(gè)輸人信號(hào)比第2個(gè)大時(shí),比較器輸出邏輯1,否則輸出邏輯0。該比較器的Verilog-AMS模型如下:

"include"disciplines.vams"
modulecomp(Aplus,Aminus,Dout);
inoutAplus,Aminus;
electricalAplus,Aminus;
outputDout;
regDout;
initial
begin
Dout=l'bl;
forever
begin
@(cross(V(Aplus,Aminus),-1))Dout=1'bO;
@(cross(V(Aplus,Aminus),+1))Dout=l'bl;
end
end
endmodule

這個(gè)模塊有三個(gè)端口,其中兩個(gè)是電路節(jié)點(diǎn),另一個(gè)是數(shù)字輸出端口。在模塊體中,必須能檢測到其中一個(gè)模擬電壓大于或小于另一個(gè)模擬電壓的時(shí)刻,根據(jù)比較的結(jié)果,對(duì)開關(guān)進(jìn)行相應(yīng)的操作,輸出邏輯1或者0。這個(gè)比較器當(dāng)然可以用一個(gè)簡單的比較操作符這個(gè)模塊有三個(gè)端口,其中兩個(gè)是電路節(jié)點(diǎn),另一個(gè)是數(shù)字輸出端口。在模塊體中,必須能檢測到其中一個(gè)模擬電壓大于或小于另一個(gè)模擬電壓的時(shí)刻,根據(jù)比較的結(jié)果,對(duì)開關(guān)進(jìn)行相應(yīng)的操作,輸出邏輯1或者0。這個(gè)比較器當(dāng)然可以用一個(gè)簡單的比較操作符來表示,但是在這里用cross函數(shù)來表示更好一些。當(dāng)表達(dá)式越過0時(shí),立即產(chǎn)生一個(gè)數(shù)字信號(hào)事件。在cross函數(shù)中的第2個(gè)參數(shù)是用來表示方向的,只有從一個(gè)方向越過0才能觸發(fā)事件,+1表示正方向,-1表示負(fù)方向,而0或不指定參數(shù),則表示有兩個(gè)方向。然而cross函數(shù)并不觸發(fā)初始條件事件。因此,編寫一個(gè)初始化塊,先給Dout賦一個(gè)初始值,然后檢測輸入的模擬電壓的上升或下降是否越過0,一旦越過,立即觸發(fā)事件,根據(jù)越過0的方向,切換Dout的邏輯值為1或0。公眾號(hào)OpenFPGA

Verilog-AMS仿真器

ADC、DAC和PLL的混合信號(hào)模型是否可以完全用標(biāo)準(zhǔn)的Venlog語言來建模,可能還有爭論。實(shí)際上,在這些模型中只有極少量的行為必須用模擬解算器才行。Verilog-AMS真正強(qiáng)大的功能在于允許在Verilog數(shù)字模型仿真的同時(shí),進(jìn)行模擬電路的仿真,而傳統(tǒng)的模擬電路仿真必須使用SPICE軟件才行。我們可以把SPICE的網(wǎng)表添加到Verilog-AMS的仿真庫中。

目前,有許多仿真器支持多種語言的仿真。因此,組成系統(tǒng)模型的子模塊可以用Verilog、SystemVerilog、Verilog-AMS、SPICE、VHDL、VHDL-AMS和SystemC等多種語言來編寫。

總結(jié)

數(shù)字電路必須與真實(shí)的模擬世界接口,這個(gè)接口及與模擬元件的相互作用的建??偸鞘掷щy的。Verilog-AMS擴(kuò)展了Verilog功能,允許模擬和混合信號(hào)建模。典型的轉(zhuǎn)換器包括階梯型DAC、快閃型ADC和PLL。所有這些元件都可以用Verilog-AMS建模和仿真。目前從這些無件的行為模型還不能自動(dòng)綜合出元件的物理構(gòu)造,由于rilog-AMS仿真器還是-個(gè)相對(duì)較新的事物,所以個(gè)別Venlog-AMS語法得不到Verilog-AMS仿真器的支持是很冇吋能的。這些仿真器確實(shí)提供了SPICE模型與Verilog-AMS之間進(jìn)行接口的手段,從而允許完整系統(tǒng)的建模。

目前,國內(nèi)對(duì)Verilog-A/Verilog-AMS研究很少,希望借此文章讓更多人了解Verilog-A/Verilog-AMS,在未來可能有更大的用途。

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

    關(guān)注

    43

    文章

    2258

    瀏覽量

    190752
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1343

    瀏覽量

    109924
  • AMS
    AMS
    +關(guān)注

    關(guān)注

    10

    文章

    209

    瀏覽量

    86947

原文標(biāo)題:數(shù)?;旌闲盘?hào)建模語言Verilog-AMS

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    品質(zhì)管理基礎(chǔ)知識(shí)

    品質(zhì)管理基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 11-01 11:08 ?255次閱讀
    品質(zhì)管理<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    Verilog HDL的基礎(chǔ)知識(shí)

    本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識(shí),重點(diǎn)介紹賦值語句、阻塞與非阻塞、循環(huán)語句、同步與異步、函數(shù)與任務(wù)語法知識(shí)。
    的頭像 發(fā)表于 10-24 15:00 ?137次閱讀
    <b class='flag-5'>Verilog</b> HDL的<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    負(fù)載開關(guān)基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《負(fù)載開關(guān)基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 10-08 09:56 ?1次下載
    負(fù)載開關(guān)<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    哪有FPGA的verilog編程基礎(chǔ)知識(shí)?

    沒接觸過FPGA開發(fā),那個(gè)verilog編程有什么入門基礎(chǔ)知識(shí)學(xué)習(xí)的?
    發(fā)表于 04-29 23:09

    電子元件基礎(chǔ)知識(shí)介紹

    電子發(fā)燒友網(wǎng)站提供《電子元件基礎(chǔ)知識(shí)介紹.pptx》資料免費(fèi)下載
    發(fā)表于 03-15 16:48 ?83次下載

    FPGA基礎(chǔ)知識(shí)介紹

    電子發(fā)燒友網(wǎng)站提供《FPGA基礎(chǔ)知識(shí)介紹.pdf》資料免費(fèi)下載
    發(fā)表于 02-23 09:45 ?29次下載

    簡單介紹一下電源紋波與電容嘯叫

    簡單介紹一下電源紋波與電容嘯叫? 電源紋波與電容嘯叫是在電源系統(tǒng)中常見的兩種問題,它們會(huì)影響電子設(shè)備的性能和穩(wěn)定性。本篇文章將詳細(xì)介紹電源紋波和電容嘯叫的定義、原因、對(duì)設(shè)備的影響以及常
    的頭像 發(fā)表于 02-04 09:42 ?955次閱讀

    射頻與微波基礎(chǔ)知識(shí)

    射頻與微波基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 01-16 10:05 ?787次閱讀
    射頻與微波<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    QT串口通信的簡單使用

    QT串口通信是上位機(jī)和下位機(jī)通信常用的通信方式, 也是學(xué)習(xí)QT必須學(xué)會(huì)的基礎(chǔ)知識(shí), 這篇就簡單介紹一下QT串口通信的簡單使用.
    的頭像 發(fā)表于 01-15 09:27 ?1758次閱讀
    QT串口通信的<b class='flag-5'>簡單</b>使用

    Access數(shù)據(jù)庫基礎(chǔ)知識(shí)介紹

    電子發(fā)燒友網(wǎng)站提供《Access數(shù)據(jù)庫基礎(chǔ)知識(shí)介紹.pdf》資料免費(fèi)下載
    發(fā)表于 01-02 10:24 ?3次下載

    電氣技術(shù)基礎(chǔ)知識(shí)

    電氣技術(shù)基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 12-14 09:11 ?1465次閱讀
    電氣技術(shù)<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    介紹一下芯片的VIA pillar

    Via pillar,又可以叫Via ladder。貌似Cadence家喜歡叫pillar,synopsis喜歡叫l(wèi)adder,我也不知道它們?yōu)樯恫荒芙y(tǒng)一一下名稱。
    的頭像 發(fā)表于 12-06 14:00 ?728次閱讀

    電子元器件的基礎(chǔ)知識(shí)

    電子元器件的基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 12-04 10:42 ?4873次閱讀
    電子元器件的<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    SPI協(xié)議基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《SPI協(xié)議基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 11-16 10:32 ?1次下載
    SPI協(xié)議<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    電池的基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《電池的基礎(chǔ)知識(shí).doc》資料免費(fèi)下載
    發(fā)表于 11-15 11:29 ?1次下載
    電池的<b class='flag-5'>基礎(chǔ)知識(shí)</b>