AgileWave已支持PlantUml在線畫圖,Git源碼參見:
https://github.com/cc-hook/agileWave
AgileWave介紹:
1. AgileWave!一款時(shí)序圖繪制神器
2.好消息 | 源碼和驗(yàn)證工具已開源至Github,歡迎圍觀
使用PlantUml繪制時(shí)序圖,波形圖的簡(jiǎn)單說(shuō)明如下。
時(shí)鐘信號(hào)使用clock關(guān)鍵詞聲明,使用offset設(shè)置相位,使用pulse設(shè)置脈寬。默認(rèn)相位為0,占空比為50%。
@startumlx clock"clk0"asclk0withperiod100 clock"clk1"asclk1withperiod100offset20 clock"clk2"asclk2withperiod100offset100 clock"clk3"asclk3withperiod100pulse30 clock"clk4"asclk4withperiod100pulse30offset20 @0 @1000 @enduml
Tips:
plantuml時(shí)鐘信號(hào)上升沿和下降沿都是垂直的,無(wú)法設(shè)置上升和下降時(shí)間,可以使用offset,使時(shí)鐘和信號(hào)邊沿錯(cuò)開,來(lái)表達(dá)采樣邏輯時(shí)序,如圖中clk1和clk4。
plantuml的時(shí)鐘信號(hào)默認(rèn)都是高電平開始,如果需要低電平開始,可以把offset設(shè)置為period,即延后一個(gè)周期開始,如圖中的clk2。
邏輯信號(hào)
plantuml中使用binary,concise和robust聲明邏輯變量,
concise:簡(jiǎn)明的圖形化數(shù)據(jù)表示,可表示數(shù)據(jù)的移動(dòng)(非常適合表示信息)。
robust:用信號(hào)線表示的狀態(tài),便于呈現(xiàn)狀態(tài)間的轉(zhuǎn)化(可設(shè)置多種狀態(tài))。
binary:二進(jìn)制信號(hào),只有兩個(gè)狀態(tài)。(binary)。
邏輯信號(hào)值使用“is”表達(dá)。
@startumlx clockclkwithperiod20offset1 binary"en"asen robust"fsm_state"asfsm concise"addr"asaddr fsmisidle enishigh @0 enislow fsmis"busy" addris{-} @20 enishigh fsmis"start" addris"0xFF" @30 addris"0xA5A5" fsmis{idle,start} @40 enis0 fsmis"busy" @60 enis{0,1} @70 enis1 fsmis"idle" addris"0xDEAD" @100 @enduml
Tips:
初始值設(shè)置
在聲明變量后,@標(biāo)注時(shí)間前,使用"A is B"的格式,將A的初始值設(shè)置為B。不能對(duì)時(shí)鐘信號(hào)設(shè)置初始值。
不定態(tài)設(shè)置
使用"A is {X,Y}"的方式,將信號(hào)A的值設(shè)置在X和Y之間,表示一種不定范圍。特殊的"A is {-}"表示A是不定態(tài)或高阻。
添加消息
有時(shí)某兩個(gè)變化點(diǎn)代表了一種狀態(tài)或者場(chǎng)景時(shí)序,即一種消息。類似wavedrom中的edge。在兩個(gè)信號(hào)變量之間使用->即可添加消息。
如果需要在不同時(shí)刻節(jié)點(diǎn)之間添加消息,使用@+時(shí)間表示延后的時(shí)刻點(diǎn)。
en->fsm@+50:stop now.
表示消息的起點(diǎn)是當(dāng)前時(shí)刻的en信號(hào),終點(diǎn)是50單位以后的fsm信號(hào)。
@startumlx clockclkwithperiod20offset1 binary"en"asen robust"fsm_state"asfsm concise"addr"asaddr fsmisidle enishigh @0 enislow fsmis"busy" addris{-} en->addr:startnow! @20 enishigh fsmis"start" addris"0xFF" en->fsm@+50:stopnow! @30 addris"0xA5A5" fsmis{idle,start} @40 enis0 fsmis"busy" @60 enis{0,1} @70 enis1 fsmis"idle" addris"0xDEAD" @100 @enduml
基于時(shí)間click描述信號(hào)時(shí)序
plantuml中可以使用時(shí)間click方式描述信號(hào)的時(shí)序關(guān)系,即在每個(gè)時(shí)刻點(diǎn),描述各個(gè)信號(hào)的取值。click方式包括絕對(duì)時(shí)間和相對(duì)時(shí)間兩種。
絕對(duì)時(shí)間方式在每個(gè)需要描述信號(hào)變化的時(shí)刻使用"@時(shí)刻"聲明。
相對(duì)時(shí)間方式表示在相對(duì)前一節(jié)點(diǎn)延后一段時(shí)間后的時(shí)刻節(jié)點(diǎn),使用"@+時(shí)間"表示。
@startumlx clockclkwithperiod20offset1 binary"en"asen concise"addr"asaddr enishigh @0 enislow addris{-} @20 enishigh addris"0xFF" @+10/'絕對(duì)時(shí)刻=20+10=30'/ addris"0xA5A5" en->addr:@30 @+30/'絕對(duì)時(shí)刻=30+30=60'/ enis1 addris"0xDEAD" en->addr:@60 @+20/'絕對(duì)時(shí)刻=60+20=80'/ en->addr:@80 @enduml
基于信號(hào)的時(shí)序描述
plantuml中可以使用基于信號(hào)的描述,即描述單個(gè)信號(hào)在所有時(shí)刻點(diǎn)的變化。
此種方式下,絕對(duì)時(shí)間的信號(hào)取值使用"時(shí)刻 is X"的格式描述,相對(duì)時(shí)間的信號(hào)取值使用"@+時(shí)間 is X"的格式描述。
在任何一個(gè)信號(hào)時(shí)序描述集合里,可以在任意時(shí)間節(jié)點(diǎn)添加消息。
@startumlx clockclkwithperiod20offset1 binary"en"asen concise"addr"asaddr enishigh @en 0islow 20ishigh +30is0 addr->en:Alabel +20is0 @addr 0is{-} 10is"0xFF" 20is{-} en->addr:Alabel +30is"0xA5A5" @enduml
其他
基于時(shí)間click和信號(hào)的時(shí)序描述可以混合使用
雙向約束'<->'在plantuml中表示約束關(guān)系,只能在基于信號(hào)的時(shí)序描述中,并且是同一個(gè)信號(hào)的不同時(shí)刻間使用。
隱藏時(shí)間軸。使用:hide-axis聲明即可。
高亮區(qū)域。使用:'highlight T0 to T1 #Gold;line:DimGrey : Label'方式聲明。
改變線條顏色。在信號(hào)值描述語(yǔ)句后使用'#顏色'方式設(shè)置。
@startumlx hidetime-axis clockclkwithperiod20offset1 binary"en"asen concise"addr"asaddr @en 0islow 20ishigh#black +30is0 @10<->@70:Aconstraint @addr 0is{-} 10is"0xFF" 20is{-} +20is"0xA5A5"#pink @80 enis1 addris"0xDEAD" @100 enis0 addris{-} highlight70to90#Gold:HighlightArea @enduml
審核編輯:湯梓紅
-
波形圖
+關(guān)注
關(guān)注
1文章
34瀏覽量
14981 -
開源
+關(guān)注
關(guān)注
3文章
3409瀏覽量
42725 -
源碼
+關(guān)注
關(guān)注
8文章
653瀏覽量
29477 -
時(shí)序圖
+關(guān)注
關(guān)注
2文章
58瀏覽量
22501 -
GitHub
+關(guān)注
關(guān)注
3文章
473瀏覽量
16597
原文標(biāo)題:使用PlantUml繪制邏輯時(shí)序圖/波形圖
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
繪制波形圖
波形圖數(shù)據(jù)的起始時(shí)間設(shè)置問(wèn)題
LabVIEW繪制帶有多個(gè)不同標(biāo)尺的波形圖
LabVIEW中導(dǎo)出波形圖或圖表至文件
基于multisim調(diào)頻仿真電路圖及波形圖詳解
![基于multisim調(diào)頻仿真電路<b class='flag-5'>圖</b>及<b class='flag-5'>波形圖</b>詳解](https://file.elecfans.com/web1/M00/65/C2/o4YBAFuvRCeAc3SzAABNCHaM0no257.png)
LabVIEW初級(jí)教程之波形圖和波形圖表的詳細(xì)資料說(shuō)明
![LabVIEW初級(jí)教程之<b class='flag-5'>波形圖</b>和<b class='flag-5'>波形圖</b>表的詳細(xì)資料說(shuō)明](https://file.elecfans.com/web1/M00/B3/9B/pIYBAF4ehBmAfk-DAAEhC8m0PUg563.png)
LabVIEW初級(jí)教程之波形圖和波形圖表的相關(guān)例程合集免費(fèi)下載
![LabVIEW初級(jí)教程之<b class='flag-5'>波形圖</b>和<b class='flag-5'>波形圖</b>表的相關(guān)例程合集免費(fèi)下載](https://file.elecfans.com/web1/M00/B3/43/o4YBAF4ehQSAa073AAF6FgHigVM301.png)
評(píng)論