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

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

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

SaberRD狀態(tài)機(jī)建模工具介紹(一)什么是狀態(tài)機(jī)建模

冬至子 ? 來(lái)源:Saber仿真 ? 作者:Greatalent ? 2023-12-05 09:51 ? 次閱讀

1、什么是狀態(tài)機(jī)建模

狀態(tài)機(jī)建模是使用狀態(tài)圖和方程式的手段,創(chuàng)建基于混合信號(hào)的有限狀態(tài)機(jī)模型的一種建模工具。

狀態(tài)圖具有強(qiáng)大的視覺特征,在設(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-AMSVerilog-A語(yǔ)言的仿真模型。使用狀態(tài)機(jī)建模工具不需要系統(tǒng)的訓(xùn)練,不需要懂專業(yè)的建模語(yǔ)言語(yǔ)法,上手非常容易。

狀態(tài)機(jī)建模工具主要應(yīng)用于:電源控制管理或電路控制、離散時(shí)間控制、事件控制等場(chǎng)合。

2、狀態(tài)機(jī)建模工具介紹

圖片

打開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ù)浜?,下一步就是定義模型中需要用到的變量。包括靜態(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)。

圖片

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

    關(guān)注

    1

    文章

    113

    瀏覽量

    17929
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    489

    瀏覽量

    27391
  • 邏輯控制
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    12328
  • 靜態(tài)變量
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    6635
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SaberRD狀態(tài)機(jī)建模工具介紹(二)狀態(tài)機(jī)建模工具使用示例

    假設(shè)電阻阻值為r_normal,首先打開狀態(tài)機(jī)建模工具,添加電阻端口,電阻端口包含貫通變量電流和跨接變量電壓,使用分支型端口。
    的頭像 發(fā)表于 12-05 09:53 ?753次閱讀
    <b class='flag-5'>SaberRD</b><b class='flag-5'>狀態(tài)機(jī)</b><b class='flag-5'>建模</b><b class='flag-5'>工具</b><b class='flag-5'>介紹</b>(二)<b class='flag-5'>狀態(tài)機(jī)</b><b class='flag-5'>建模</b><b class='flag-5'>工具</b>使用示例

    Verilog狀態(tài)機(jī)+設(shè)計(jì)實(shí)例

    在verilog中狀態(tài)機(jī)種很常用的邏輯結(jié)構(gòu),學(xué)習(xí)和理解狀態(tài)機(jī)的運(yùn)行規(guī)律能夠幫助我們更好地書寫代碼,同時(shí)作為種思想方法,在別的代碼設(shè)計(jì)中也會(huì)有所幫助。
    的頭像 發(fā)表于 02-12 19:07 ?3160次閱讀
    Verilog<b class='flag-5'>狀態(tài)機(jī)</b>+設(shè)計(jì)實(shí)例

    玩轉(zhuǎn)Spring狀態(tài)機(jī)

    說(shuō)起Spring狀態(tài)機(jī),大家很容易聯(lián)想到這個(gè)狀態(tài)機(jī)和設(shè)計(jì)模式中狀態(tài)模式的區(qū)別是啥呢?沒錯(cuò),Spring狀態(tài)機(jī)就是狀態(tài)模式的
    的頭像 發(fā)表于 06-25 14:21 ?745次閱讀
    玩轉(zhuǎn)Spring<b class='flag-5'>狀態(tài)機(jī)</b>

    狀態(tài)機(jī)舉例

    狀態(tài)機(jī)舉例 你可以指定狀態(tài)寄存器和狀態(tài)機(jī)狀態(tài)。以下是個(gè)有四種狀態(tài)的普通
    發(fā)表于 03-28 15:18 ?943次閱讀

    狀態(tài)機(jī)代碼生成工具

    狀態(tài)機(jī)代碼生成工具狀態(tài)機(jī)代碼生成工具狀態(tài)機(jī)代碼生成工具狀態(tài)機(jī)
    發(fā)表于 11-19 15:12 ?9次下載

    狀態(tài)機(jī)原理及用法

    狀態(tài)機(jī)原理及用法狀態(tài)機(jī)原理及用法狀態(tài)機(jī)原理及用法
    發(fā)表于 03-15 15:25 ?0次下載

    有限狀態(tài)機(jī)建模與優(yōu)化設(shè)計(jì)

    本文提出種優(yōu)秀 、高效的 Verilog HDL 描述方式來(lái)進(jìn)行有限狀態(tài)機(jī)設(shè)計(jì) 介紹了 有限狀態(tài)機(jī)建模原則 并通過(guò)
    發(fā)表于 03-22 15:19 ?1次下載

    簡(jiǎn)述使用QII狀態(tài)機(jī)向?qū)绾蝿?chuàng)建個(gè)狀態(tài)機(jī)

    如何使用QII狀態(tài)機(jī)向?qū)?chuàng)建個(gè)狀態(tài)機(jī)
    的頭像 發(fā)表于 06-20 00:11 ?4117次閱讀
    簡(jiǎn)述使用QII<b class='flag-5'>狀態(tài)機(jī)</b>向?qū)绾蝿?chuàng)建<b class='flag-5'>一</b>個(gè)<b class='flag-5'>狀態(tài)機(jī)</b>

    狀態(tài)機(jī)概述 如何理解狀態(tài)機(jī)

    本篇文章包括狀態(tài)機(jī)的基本概述以及通過(guò)簡(jiǎn)單的實(shí)例理解狀態(tài)機(jī)
    的頭像 發(fā)表于 01-02 18:03 ?1w次閱讀
    <b class='flag-5'>狀態(tài)機(jī)</b>概述  如何理解<b class='flag-5'>狀態(tài)機(jī)</b>

    FPGA:狀態(tài)機(jī)簡(jiǎn)述

    本文目錄 前言 狀態(tài)機(jī)簡(jiǎn)介 狀態(tài)機(jī)分類 Mealy 型狀態(tài)機(jī) Moore 型狀態(tài)機(jī) 狀態(tài)機(jī)描述
    的頭像 發(fā)表于 11-05 17:58 ?7094次閱讀
    FPGA:<b class='flag-5'>狀態(tài)機(jī)</b>簡(jiǎn)述

    什么是狀態(tài)機(jī)?狀態(tài)機(jī)5要素

    玩單片機(jī)還可以,各個(gè)外設(shè)也都會(huì)驅(qū)動(dòng),但是如果讓你完整的寫套代碼時(shí),卻無(wú)邏輯與框架可言。這說(shuō)明編程還處于比較低的水平,你需要學(xué)會(huì)種好的編程框架或者種編程思想!比如模塊化編程、
    的頭像 發(fā)表于 07-27 11:23 ?2w次閱讀
    什么是<b class='flag-5'>狀態(tài)機(jī)</b>?<b class='flag-5'>狀態(tài)機(jī)</b>5要素

    狀態(tài)模式(狀態(tài)機(jī))

    以前寫狀態(tài)機(jī),比較常用的方式是用 if-else 或 switch-case,高級(jí)的點(diǎn)是函數(shù)指針列表。最近,看了文章《c語(yǔ)言設(shè)計(jì)模式–狀態(tài)模式(
    發(fā)表于 12-16 16:53 ?8次下載
    <b class='flag-5'>狀態(tài)</b>模式(<b class='flag-5'>狀態(tài)機(jī)</b>)

    自動(dòng)生成程序狀態(tài)機(jī)代碼狀態(tài)機(jī)建模方法

    首先運(yùn)行fsme命令來(lái)啟動(dòng)狀態(tài)機(jī)編輯器,然后單擊工具欄上的“New”按鈕來(lái)創(chuàng)建個(gè)新的狀態(tài)機(jī)。FSME中用于構(gòu)建狀態(tài)機(jī)的基本元素
    的頭像 發(fā)表于 09-13 16:50 ?962次閱讀
    自動(dòng)生成程序<b class='flag-5'>狀態(tài)機(jī)</b>代碼<b class='flag-5'>狀態(tài)機(jī)</b><b class='flag-5'>建模</b>方法

    如何生成狀態(tài)機(jī)框架

    生成狀態(tài)機(jī)框架 使用FSME不僅能夠進(jìn)行可視化的狀態(tài)機(jī)建模,更重要的是它還可以根據(jù)得到的模型自動(dòng)生成用C++或者Python實(shí)現(xiàn)的狀態(tài)機(jī)框架。首先在FSME界面左邊的樹形列表中選擇"R
    的頭像 發(fā)表于 09-13 16:54 ?837次閱讀
    如何生成<b class='flag-5'>狀態(tài)機(jī)</b>框架

    什么是狀態(tài)機(jī)?狀態(tài)機(jī)的種類與實(shí)現(xiàn)

    狀態(tài)機(jī),又稱有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)或米利狀態(tài)機(jī)(Mealy Machine),是種描述系統(tǒng)狀態(tài)變化
    的頭像 發(fā)表于 10-19 10:27 ?8040次閱讀