MAST語言

MAST語言是一種硬體描述語言,它是用數學的方法來描述的,它可以描述硬體的結構,也可以描述硬體的功能。建立描述硬體結構的模型比較難,如果建立得比較好,其精度較高;建立描述功能的硬體模型相對比較簡單,但在使用這種模型的時候受到比較多的限制。

語言結構

structured和unstructured的比較 structured和unstructured的比較

MAST語言可以描述很多種類型的器件,包括模擬器件、數字器件等。MAST語言的結構主要包括兩種方式,一種是Structured方式,另一種是Unstructured方式。Structured 方式就是將程式體分成許多段,即在程式體中包括許多程式段。Unstructured的程式體中的程式沒有分段。

語法規則簡介

一、 MAST語言的分層結構:MAST語言是採用分層結構的。

二、 在MAST語言中,將涉及到檔案命名規則,模板的引用,在程式中的註解,續行符以及實數的表達式。

程式的註解符#,續行符\,實數的表達與一般程式相同,但下列符號表示一個實數

a,f,p,n,u,mkmeg,g,t

三、 MAST語言是用來建立仿真對象的模型,而這種模型又主要是供仿真器使用的,因此在MAST建模語言中的變數與其它語言相比有自己的特點,這些特點反映在該語言的許多方面,在變數類型上它有幾個比較特殊的變數類型,它們是仿真器變數,系統變數,val類型的變數;另外它還有狀態變數,參數和argument變數.

狀態變數與其它程式是相同的,它反映的是一個離散的量,但它可以是一個有單位的量,也可以是一個無單位的量.在其它很多程式中狀態量一般情況下都是數字量,但在MAST語言中狀態量也可能是模擬量.

在MAST語言中所用到的參數或argument變數都是一種數字,它們是數字形式的一種,在MAST中數字的形式將在下面作一個簡單的介紹.

四、仿真器變數(simulator variable)是系統事先定義好了的一組變數,其作用是在模板和仿真器之間傳遞信息,也是程式對仿真器進行控制的一個手段.模板通過讀取這類變數的值來獲知系統的狀態,通過對這類變數賦值來達到控制仿真器的目的,但並不是所有這類變數都能進行賦值操著.這類變數仿真器能識別,因此在使用時事先不需要申明,只需要引用事先定義好的變數名即可.以下是仿真器變數.

與直流分析有關的仿真器變數 與頻域分析有關的仿真器變數 與時域分析有關的仿真器變數 與系統控制有關的仿真器變數

dc_domain freq_domain time_domain time

dc_init freq time_init next_time

dc_start freq_mag tr_start step_size

dc_done freq_phase tr_done statistical

time_step_done

1、與系統直流分析有關的仿真器變數

dc_domain是反映直流仿真時的一個變數,仿真器在作直流分析時將該變數的值賦為1,在其它情況下該變數的值為0.

dc_init、dc_start反映的都是仿真器開始作直流分析時的變數,在開始作直流分析時該變數的值為1,在其它情況下該值為0.但這兩個量也有不同的地方,dc_init是系統在作第一次直流分析時其值為1,而在dc_start是系統在作每一次直流分析時將其值賦為1.

dc_done變數是在直流分析完成時將該變數值賦為1,在其它情況下該值為0.

2、與頻域分析有關的仿真器變數

freq_domain 系統在作頻域分析時將該變數賦值為1,在其它情況下將該值賦為0.

freq 變數描述的是在作頻域仿真時需要計算的仿真頻率,該變數是一個唯讀變數,可以讀取該變數的值來知道系統當前的狀態.在進行直流分析和時域分析時該變數的值為0.

freq_mag、freq_phase這兩個變數與系統的頻域分析有關,通常情況下在作頻域分析時這兩個變數的值為1,即在作頻域分析時既要作幅頻特性,也要作相頻特性.但這兩個變數也可以通過賦值來改變其值.例如,在系統作頻域分析時,將freq_mag變數的值賦為0,則系統在作頻域分析時就只作相頻特性而不作幅頻特性,系統作直流分析和時域分析時該變數的值為0.

3、與時域分析有關的仿真器變數

time_domain 系統在作時域分析時將該變數賦值為1,在其它情況下將該值賦為0.

time_init、tr_start反映的都是仿真器開始作時域分析時的變數,在開始作時域分析時該變數的值為1,在其它情況下該值為0.但這兩個量也有不同的地方,time_init是系統在作第一次直流分析時其值為1,而在tr_start是系統在作每一次直流分析時將其值賦為1.

tr_done變數是在時域分析完成時將該變數值賦為1,在時域分析其它時刻為 0.系統作直流分析、頻域分析時其值也為0.

Time_step_done 在作暫態分析時,每一個仿真步長完成時該變數的值將被賦為1,在其它情況下該變數的值為0.該變數是一個唯讀變數,該變數不能通過程式賦值.

4、與系統控制有關仿真器變數

time 變數是仿真器在作時域分析時的仿真過程中所確定的時間,它是由仿真步長決定的,它只有在作時域分析時有效,在作頻域和直流分析時該值為0.該變數時一個唯讀變數,程式不能對該變數賦值.

next_time 該變數的值決定了仿真器的下一個仿真時間.在通常情況下,在作時域分析時,相對與某時間點而言,仿真器要進行的下一個時間點是由仿真步長決定的,在變步長計算中,系統的仿真步長又是由計算誤差決定的,那是在next_time變數沒有賦值的情況下,如果對next_time變數賦值,則仿真器下一步計算的時間點由仿真器所在的當前時間再加上next_time變數的值.在使用該變數時需要對該變數賦值.

step_size 該變數決定了仿真器的步長,在定步長仿真中該步長作為仿真器仿真的步長,在變步長仿真中,該步長作為仿真開始時的起始步長.

statistical 該變數反映了系統是否在作統計分析,如Monte分析,參數掃描分析等.當系統在作統計分析時,該變數的值為1,系統沒有作統計分析時該變數的值為0。

相關詞條

相關搜尋

熱門詞條

聯絡我們