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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

使用PlantUml繪制邏輯時序圖/波形圖

sanyue7758 ? 來源:驗證芯發(fā)現(xiàn) ? 2023-05-14 09:28 ? 次閱讀

AgileWave已支持PlantUml在線畫圖,Git源碼參見:

https://github.com/cc-hook/agileWave

AgileWave介紹:

1. AgileWave!一款時序圖繪制神器

2.好消息 | 源碼和驗證工具已開源至Github,歡迎圍觀

使用PlantUml繪制時序圖,波形圖的簡單說明如下。

時鐘

時鐘信號使用clock關鍵詞聲明,使用offset設置相位,使用pulse設置脈寬。默認相位為0,占空比為50%。

8c152764-f19c-11ed-90ce-dac502259ad0.png

@startumlx
clock"clk0"asclk0withperiod100
clock"clk1"asclk1withperiod100offset20
clock"clk2"asclk2withperiod100offset100
clock"clk3"asclk3withperiod100pulse30
clock"clk4"asclk4withperiod100pulse30offset20

@0
@1000
@enduml

Tips:

plantuml時鐘信號上升沿和下降沿都是垂直的,無法設置上升和下降時間,可以使用offset,使時鐘和信號邊沿錯開,來表達采樣邏輯時序,如圖中clk1和clk4。

plantuml的時鐘信號默認都是高電平開始,如果需要低電平開始,可以把offset設置為period,即延后一個周期開始,如圖中的clk2。

邏輯信號

plantuml中使用binary,concise和robust聲明邏輯變量,
concise:簡明的圖形化數(shù)據(jù)表示,可表示數(shù)據(jù)的移動(非常適合表示信息)。
robust:用信號線表示的狀態(tài),便于呈現(xiàn)狀態(tài)間的轉(zhuǎn)化(可設置多種狀態(tài))。
binary:二進制信號,只有兩個狀態(tài)。(binary)。

邏輯信號值使用“is”表達。

8c2f44be-f19c-11ed-90ce-dac502259ad0.png

@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:

初始值設置
在聲明變量后,@標注時間前,使用"A is B"的格式,將A的初始值設置為B。不能對時鐘信號設置初始值。

不定態(tài)設置
使用"A is {X,Y}"的方式,將信號A的值設置在X和Y之間,表示一種不定范圍。特殊的"A is {-}"表示A是不定態(tài)或高阻。

添加消息

有時某兩個變化點代表了一種狀態(tài)或者場景時序,即一種消息。類似wavedrom中的edge。在兩個信號變量之間使用->即可添加消息。
如果需要在不同時刻節(jié)點之間添加消息,使用@+時間表示延后的時刻點。
en->fsm@+50:stop now.
表示消息的起點是當前時刻的en信號,終點是50單位以后的fsm信號。

8c4b6270-f19c-11ed-90ce-dac502259ad0.png

@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

基于時間click描述信號時序

plantuml中可以使用時間click方式描述信號的時序關系,即在每個時刻點,描述各個信號的取值。click方式包括絕對時間和相對時間兩種。
絕對時間方式在每個需要描述信號變化的時刻使用"@時刻"聲明。
相對時間方式表示在相對前一節(jié)點延后一段時間后的時刻節(jié)點,使用"@+時間"表示。

8c65bd28-f19c-11ed-90ce-dac502259ad0.png

@startumlx

clockclkwithperiod20offset1
binary"en"asen
concise"addr"asaddr

enishigh

@0
enislow
addris{-}

@20
enishigh
addris"0xFF"

@+10/'絕對時刻=20+10=30'/
addris"0xA5A5"
en->addr:@30
@+30/'絕對時刻=30+30=60'/
enis1
addris"0xDEAD"
en->addr:@60

@+20/'絕對時刻=60+20=80'/
en->addr:@80
@enduml

基于信號的時序描述

plantuml中可以使用基于信號的描述,即描述單個信號在所有時刻點的變化。
此種方式下,絕對時間的信號取值使用"時刻 is X"的格式描述,相對時間的信號取值使用"@+時間 is X"的格式描述。
在任何一個信號時序描述集合里,可以在任意時間節(jié)點添加消息。

8c86ae16-f19c-11ed-90ce-dac502259ad0.png

@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

其他

基于時間click和信號的時序描述可以混合使用

雙向約束'<->'在plantuml中表示約束關系,只能在基于信號的時序描述中,并且是同一個信號的不同時刻間使用。

隱藏時間軸。使用:hide-axis聲明即可。

高亮區(qū)域。使用:'highlight T0 to T1 #Gold;line:DimGrey : Label'方式聲明。

改變線條顏色。在信號值描述語句后使用'#顏色'方式設置。

8ca1b418-f19c-11ed-90ce-dac502259ad0.png

@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

審核編輯:湯梓紅

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

    關注

    1

    文章

    34

    瀏覽量

    14939
  • 開源
    +關注

    關注

    3

    文章

    3349

    瀏覽量

    42501
  • 源碼
    +關注

    關注

    8

    文章

    641

    瀏覽量

    29216
  • 時序圖
    +關注

    關注

    2

    文章

    58

    瀏覽量

    22446
  • GitHub
    +關注

    關注

    3

    文章

    471

    瀏覽量

    16448

原文標題:使用PlantUml繪制邏輯時序圖/波形圖

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    tlc549操作時序電路_TLC549波形圖_tlc549實驗案例

    本文有對tlc549操作應用的詳細介紹,能助工程師開發(fā)應用中給予啟發(fā),并且包含實驗電路波形圖等。
    發(fā)表于 11-22 18:39 ?5701次閱讀
    tlc549操作<b class='flag-5'>時序</b><b class='flag-5'>圖</b>電路<b class='flag-5'>圖</b>_TLC549<b class='flag-5'>波形圖</b>_tlc549實驗案例

    繪制波形圖

    有哪位大神知道如何利用LABVIEW讀取EXCEL的數(shù)據(jù)并繪制波形圖嗎?還有TDMS格式的數(shù)據(jù)也需要讀出來并繪制波形圖。非常感謝。
    發(fā)表于 08-24 15:10

    繪制波形圖的顏色怎么修改

    通過繪制繪制波形圖畫出來的柱狀,怎么修改個別幾個柱形的顏色?求大神指教
    發(fā)表于 02-19 18:30

    LabVIEW繪制帶有多個不同標尺的波形圖

    LabVIEW繪制帶有多個不同標尺的波形圖 通過在同一波形圖上使用多個軸,可以使用不同的標尺繪制數(shù)據(jù)。請按照以下步驟操作。 將波形圖或圖表控
    發(fā)表于 11-24 19:20

    調(diào)頻信號波形圖

    調(diào)頻信號波形圖
    發(fā)表于 07-31 12:06 ?7931次閱讀

    74163的邏輯符號以及波形圖

    74163的邏輯符號以及波形圖
    發(fā)表于 01-12 13:52 ?8440次閱讀
    74163的<b class='flag-5'>邏輯</b>符號以及<b class='flag-5'>波形圖</b>

    計數(shù)器級聯(lián)及波形圖

    計數(shù)器級聯(lián)及波形圖
    發(fā)表于 01-12 13:56 ?4476次閱讀
    計數(shù)器級聯(lián)及<b class='flag-5'>波形圖</b>

    LabVIEW中導出波形圖或圖表至文件

    LabVIEW中導出波形圖或圖表至文件LabVIEW中導出波形圖或圖表至文件LabVIEW中導出波形圖或圖表至文件
    發(fā)表于 02-18 11:44 ?209次下載

    PWM調(diào)速控制原理和電壓波形圖

    PWM調(diào)速控制原理和電壓波形圖及方案解析,希望給大家做參考。
    發(fā)表于 02-05 11:52 ?1.3w次閱讀
    PWM調(diào)速控制原理和電壓<b class='flag-5'>波形圖</b>

    基于multisim調(diào)頻仿真電路波形圖詳解

    本文檔的主要內(nèi)容詳細介紹的是基于multisim調(diào)頻仿真電路波形圖詳解。
    發(fā)表于 09-29 16:54 ?131次下載
    基于multisim調(diào)頻仿真電路<b class='flag-5'>圖</b>及<b class='flag-5'>波形圖</b>詳解

    LabVIEW初級教程之波形圖波形圖表的詳細資料說明

    在LabVIEW中經(jīng)常使用的數(shù)據(jù)繪圖工具是波形圖表和波形圖。 波形圖表是顯示一條或者多條曲線的特殊數(shù)值控件,一般用于顯示一恒定速率采集到的數(shù)據(jù)。波形圖表會保留來源于此前更新的歷史數(shù)據(jù)
    發(fā)表于 01-15 11:12 ?59次下載
    LabVIEW初級教程之<b class='flag-5'>波形圖</b>和<b class='flag-5'>波形圖</b>表的詳細資料說明

    LabVIEW初級教程之波形圖波形圖表的相關例程合集免費下載

    本文檔的主要內(nèi)容詳細介紹的是LabVIEW初級教程之波形圖波形圖表的相關例程合集免費下載
    發(fā)表于 01-15 11:12 ?49次下載
    LabVIEW初級教程之<b class='flag-5'>波形圖</b>和<b class='flag-5'>波形圖</b>表的相關例程合集免費下載

    波形圖波形圖表的區(qū)別和技巧

    在labview中使用最多的圖形顯示有波形圖波形圖表,在介紹波形的技巧之前我們先來弄清楚波形圖波形圖表的區(qū)別。
    的頭像 發(fā)表于 10-22 11:43 ?3.5w次閱讀
    <b class='flag-5'>波形圖</b>和<b class='flag-5'>波形圖</b>表的區(qū)別和技巧

    labview波形圖Y坐標分層思路

    labview 波形圖Y坐標分層思路分析
    發(fā)表于 08-12 16:18 ?16次下載

    VSCode中Markdown借助plantuml繪制流程

    VSCode中Markdown里通過plantuml繪制流程,簡直不要太方便。
    的頭像 發(fā)表于 10-28 11:19 ?814次閱讀