1、什么是狀態(tài)機(jī)建模
狀態(tài)機(jī)建模是使用狀態(tài)圖和方程式的手段,創(chuàng)建基于混合信號(hào)的有限狀態(tài)機(jī)模型的一種建模工具。
狀態(tài)圖具有強(qiáng)大的視覺(jué)特征,在設(shè)計(jì)的早期階段,使用狀態(tài)圖能夠?qū)?fù)雜的系統(tǒng)行為抽象為更高層次的模型,而狀態(tài)機(jī)建模工具具有將基于行為狀態(tài)模型與系統(tǒng)關(guān)聯(lián)起來(lái)的獨(dú)特功能。
狀態(tài)機(jī)建模工具可以生成基于MAST、VHDL-AMS和Verilog-A語(yǔ)言的仿真模型。使用狀態(tài)機(jī)建模工具不需要系統(tǒng)的訓(xùn)練,不需要懂專業(yè)的建模語(yǔ)言語(yǔ)法,上手非常容易。
狀態(tài)機(jī)建模工具主要應(yīng)用于:電源控制管理或電路控制、離散時(shí)間控制、事件控制等場(chǎng)合。
2、狀態(tài)機(jī)建模工具介紹
打開(kāi)SaberRD,在Model標(biāo)簽欄下單擊狀態(tài)機(jī)建模按鈕,進(jìn)入建模界面。
如上圖所示,狀態(tài)機(jī)建模界面可分為三部分:拓?fù)渚庉媴^(qū),變量編輯區(qū)和狀態(tài)圖編輯區(qū)。
l 拓?fù)渚庉媴^(qū):定義模型接口及接口屬性;
l 變量編輯區(qū):定義與模型相關(guān)的變量
l 狀態(tài)圖編輯區(qū):定義模型內(nèi)部各個(gè)變量之間的邏輯關(guān)系及使用公式對(duì)變量進(jìn)行行為描述
2.1. 拓?fù)渚庉媴^(qū)
進(jìn)行狀態(tài)機(jī)建模首先需要定義狀態(tài)機(jī)拓?fù)洌ǘx狀態(tài)機(jī)的接口,及接口屬性。
接口有三種類型:分支型,輸入型,輸出型。當(dāng)定義的接口為輸入或輸出端口時(shí),對(duì)應(yīng)在右側(cè)變量區(qū)域會(huì)有相同名稱的變量生成;當(dāng)接口定義為分支型接口時(shí),該接口包含through和across型變量。
2.1.1. 分支型終端
分支型終端可以使得系統(tǒng)內(nèi)部各元素之間進(jìn)行能量的交換,遵循能量守恒定律。能量的端口類型包括:電,磁,機(jī)械,熱。每一種分支型端口包含一對(duì)跨接(across)和(導(dǎo)通)through型變量,如電類型端口包含電壓和電流兩種信息。電壓大小代表潛在驅(qū)動(dòng)能力,而導(dǎo)通型變量電流表示流量的大小。分支型終端可以是差分形式或者是單端形式。
下圖是幾種分支型終端的類型定義。
2.1.2. 輸入/輸出端口定義
輸入端口和輸出端口功能類似,下文表述以輸入端口為例,對(duì)于輸出端口同樣適用。
輸入端口不包含能量守恒信息,用于多算法控制或者邏輯控制,變量類型分別對(duì)應(yīng)Continuous和State,如下圖所示。Continuous變量是連續(xù)變量,用于基于時(shí)間的算法控制,State是狀態(tài)變量,用于基于事件驅(qū)動(dòng)的控制。
輸入輸出端口的單位有多種類型,如下圖所示。對(duì)于控制類的,多使用無(wú)單位的。
輸入輸出端口定義好后,對(duì)應(yīng)的在右側(cè)變量區(qū)會(huì)出現(xiàn)相同名稱的變量,如下圖所示:
2.2. 變量編輯
定義好接口拓?fù)浜螅乱徊骄褪嵌x模型中需要用到的變量。包括靜態(tài)變量,連續(xù)型continuous和狀態(tài)型state變量。同時(shí)還可以定義數(shù)組,和函數(shù)。
2.2.1. 靜態(tài)變量 Static
靜態(tài)變量是指在整個(gè)瞬態(tài)仿真過(guò)程中,變量參數(shù)不變。定義靜態(tài)變量時(shí),需要注意區(qū)分是模型參數(shù)還是內(nèi)部參數(shù)。如下圖所示。
模型參數(shù)就相當(dāng)于定義模型的外部參數(shù),變量值在模型初始化時(shí)可以參量化設(shè)置。
而內(nèi)部參數(shù)多是通過(guò)一個(gè)表達(dá)式由其他模型參數(shù)計(jì)算而來(lái)。
例如定義了一個(gè)模型變量a,再定義一個(gè)內(nèi)部參數(shù)靜態(tài)變量b,b=a*100,定義式如下圖所示:
2.2.2. 連續(xù)型變量
連續(xù)型變量用在基于連續(xù)時(shí)間狀態(tài)的仿真應(yīng)用中。一般使用等式進(jìn)行賦值。狀態(tài)機(jī)變量中包括的類型有4種:
n 分支型連續(xù)變量(包含一對(duì)跨接(across)和(導(dǎo)通)through型變量)
n 輸入型連續(xù)變量(控制型輸入變量)
n 內(nèi)部連續(xù)變量
n 輸出連續(xù)變量(控制型輸出變量)
2.2.3. 狀態(tài)型變量
狀態(tài)型變量用于基于事件驅(qū)動(dòng)的離散時(shí)間仿真應(yīng)用中。狀態(tài)型變量一般在state exit,state entry,initial actions時(shí)進(jìn)行賦值。
2.3. 狀態(tài)機(jī)狀態(tài)圖編輯
狀態(tài)機(jī)狀態(tài)圖編輯包含:States、Transitions、Blocks、Clocks
2.3.1. States
states本質(zhì)上說(shuō)是一個(gè)布爾型變量,它的狀態(tài)可以是激活和非激活狀態(tài)。
? AnalogEquation:連續(xù)型變量的賦值或state變量賦值
可以賦值基于連續(xù)變量的公式continuous variable equation如:a=b+c等價(jià)于b+c;a=b*cos(a);b+c
可以賦值state equation
? Initial/Enty/Exit :state型變量賦值,只能給內(nèi)部或輸出state variables賦值。Initial在做DC分析時(shí)使用,Entry:狀態(tài)激活時(shí)賦值;Exit:狀態(tài)退出時(shí)賦值內(nèi)容。
賦值形式variable = expression。
允許使用if-else語(yǔ)句。例子:
Processes 進(jìn)程
進(jìn)程概念允許并發(fā)激活狀態(tài)。單個(gè)進(jìn)程是一組不能同時(shí)激活的獨(dú)占狀態(tài),但是處于不同進(jìn)程的狀態(tài)可以同時(shí)激活。如下圖所示是一個(gè)2個(gè)進(jìn)程狀態(tài)機(jī)。共有狀態(tài)3*4=12個(gè)狀態(tài)。
2.3.2. Transitions
定義狀態(tài)之間切換的條件及過(guò)程。條件是一個(gè)布爾型結(jié)果或變量
l Transition condition:>, <, <=, >=, &, |, ==, =, !=, timeout, active, event_on (note that == and = are equivalent)
n timeout function定義一個(gè)關(guān)于時(shí)間的公式,超過(guò)這個(gè)時(shí)間,就會(huì)觸發(fā)狀態(tài)變化。timeout(1)&&(a>b) becomes true whenever "a" becomes greater than "b" after one second has elapsed since state entry
n active function:使用states的名稱作為參數(shù),用于進(jìn)程之間的跳變
n event_on function:state變量作為參數(shù),event_on(clk)&&(clk==’1’)
l Transition action:(after any state or block exit actions and before any state or block entry actions),規(guī)則同entry actions。
2.3.3. Blocks
允許多個(gè)states共享transition和actions
Block有Entry Action和Exit Action屬性。設(shè)計(jì)規(guī)則與state 中的Action是一樣的。如下,Block狀態(tài)切換發(fā)生在從S1的Exit Action之后,S2的Enter Action之前。
2.3.4. Clocks
Clock允許某些動(dòng)作周期性的發(fā)生,但是與state是否激活無(wú)關(guān)。
-
VHDL語(yǔ)言
+關(guān)注
關(guān)注
1文章
113瀏覽量
18006 -
狀態(tài)機(jī)
+關(guān)注
關(guān)注
2文章
492瀏覽量
27541 -
邏輯控制
+關(guān)注
關(guān)注
0文章
39瀏覽量
12353 -
靜態(tài)變量
+關(guān)注
關(guān)注
0文章
13瀏覽量
6653
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論