使用波形配置文件
Vivado Simulator允許用戶自定義波形顯示方式,當(dāng)前的顯示狀態(tài)稱作波形配置。波形配置可以保存為WCFG文件,供以后使用。一個波形配置對應(yīng)一個Wave窗口,沒有保存的波形配置顯示為untitled。打開仿真后,F(xiàn)ile菜單中有與波形配置相關(guān)的指令:
這些控制功能依次是:
- New Waveform Configuration:創(chuàng)建一個新的波形配置,Vivado會打開一個新波形窗口,但是不包含任何HDL對象,設(shè)計者從Scope或Object窗口中人工添加;
- Open Waveform Configuration:打開配置文件同時打開一個波形窗口,會顯示存儲在WCFG文件中對象的波形數(shù)據(jù);
- Saving a Wave Configuration:保存當(dāng)前波形配置到WCFG文件中。
如果關(guān)閉了仿真,下次需要使用是只是想查看上次仿真的結(jié)果,而不是重新運行仿真,點擊Flow菜單下的Open Static Simulation,選擇WDB文件即可(在project.sim/sim_1/behav路徑下)。靜態(tài)仿真模式下,Vivado Simulator會從WDB文件中讀取數(shù)據(jù)并顯示。
運行仿真過程中,會將顯示的HDL對象的波形活動、Sope窗口中的對象、Objects窗口中的對象存儲到WDB文件中。但注意,Vivado不能打開2014.3版本之前創(chuàng)建的WDB文件。
窗口對象(wave object)
向波形配置中添加一個HDL對象,其實并不是直接添加該對象,Vivado會創(chuàng)建一個窗口對象,該對象與HDL對象有聯(lián)系也有區(qū)別。借助此特性,一個HDL對象可以創(chuàng)建多個與其相關(guān)的窗口對象,且每個窗口對象的顯示設(shè)置可以不同。比如一個用16進制顯示,另一個用10進制顯示。
由HDL對象而來的窗口對象稱作設(shè)計窗口對象,除此之外,還有其它的對象類型:隔離帶(divider)、群組(group)、虛擬總線(virtual buses)。這些對象都是為了提高觀察波形的便捷性,前兩者示例如下圖。虛擬總線是將多個信號組合為一個總線顯示。
波形窗口中包含Name、Value和波形三部分。
- Name默認(rèn)顯示為short形式,右鍵菜單中Rename指令可以創(chuàng)建custom名稱,Name指令選擇顯示方式為short、long(顯示對象所處層次路徑)或custom。
- Value根據(jù)格式和基數(shù)設(shè)置顯示方式不同,注意波形窗口中的radix和Objects窗口中的radix設(shè)置只作用于各自的窗口。
默認(rèn)Value顯示的基數(shù)為16進制,想要改變默認(rèn)設(shè)置,在波形窗口中點擊Settings,選擇一個Radix:
順便再介紹下其它設(shè)置選項實現(xiàn)的功能效果:
- Elide Setting:如果信號名字太長無法完整顯示,該選項設(shè)置從哪邊開始省略字符顯示,包括left、middle和right。
- Draw Waveform Shadow:選中,波形顯示會帶有陰影效果。
- Show signal indices:選中,波形對象的Name左側(cè)會顯示對應(yīng)的行數(shù),并且可以拖動行數(shù)之間的橫線來改變波形對象的高度。
- Show grid lines:選中,波形窗口中會顯示網(wǎng)格線。
- Snap to Transition/Floating Ruler:與測量有關(guān),具體在下文介紹。
在選中對象的右鍵菜單->Radix中可以設(shè)置單個信號的基數(shù)(應(yīng)與該信號的本質(zhì)相符),常見的基數(shù)已經(jīng)非常熟悉。Radix還可以選擇為Real,設(shè)計者可以在Real Setting中設(shè)置Value按指定的定點數(shù)或浮點數(shù)格式顯示,提供了極大的便利性。
該功能非常實用,比如CORDIC IP核在計算arctan函數(shù)時,輸出數(shù)據(jù)為帶符號、小數(shù)點從MSB三位后的格式,只需要在這里設(shè)置相應(yīng)格式,就可以直接顯示為-pi~pi的范圍,而不需要人工計算。
設(shè)置模擬波形顯示方式
有時總線數(shù)據(jù)用模擬波形的方式觀察更直觀,但注意信號的Radix設(shè)置必須符合其本質(zhì),才能顯示正確的波形。比如一個總線數(shù)據(jù)按帶符號二進制補碼編碼,Radix必須設(shè)置為一種帶符號格式;如果一個數(shù)據(jù)為浮點數(shù)格式,必須選擇real并做正確的設(shè)置。
在對象右鍵->Waveform Style,可選擇模擬(Analog)或數(shù)字(Digital)顯示方式,Anolog Settings中可以設(shè)置模擬波形的顯示方式。注意:模擬顯示僅支持位寬不超過64Bits的總線。
下面介紹一下各選項的設(shè)置方法和效果:
- Row Height:規(guī)定選中對象的顯示高度,單位為像素點數(shù)目,相當(dāng)于收縮或拉伸波形的高度(digital顯示方式高度為20,analog顯示高度默認(rèn)為100)。
- Y Range:規(guī)定波形區(qū)域的數(shù)值顯示范圍。Auto模式下根據(jù)當(dāng)前的仿真時間內(nèi)的值自動選擇范圍,且會隨時間更新;Fixed設(shè)置固定的顯示范圍。
- Interpolation Style:設(shè)置將數(shù)據(jù)點連成線的插值方式,Liner表示線性插值,Hold表示保持插值,兩個點之間的數(shù)據(jù)會保持前一個點的數(shù)據(jù)值。
- Off Scale:設(shè)置超出顯示范圍的波形該如何處理,Hide會隱藏超出范圍的部分,Clip會超出范圍為的部分限制在最大值/最小值(即削頂),overlap在超出范圍時仍然會顯示波形,但是波形會疊在其它波形對象上。
- Horizontal Line:選中會在指定值處畫一條水平線。
此外,某些總線信號的有效順序可能與定義的Bit順序相反,可以在右鍵菜單中選擇“Reverse bit order”交換總線Bit順序,如bus[7:0]交換后為bit[0:7],信號的值和波形也會跟著改變。
在時間刻度上右鍵,可以設(shè)置顯示時間的方式,包括fs、ps、ns、us、ms、s,Auto會自動選擇最適合的單位,Default表示HDL設(shè)計中規(guī)定的仿真精度。此外還有Samples以離散采樣數(shù)值的方式顯示,User為用戶自定義的時間單位,但這兩個設(shè)置對HDL無效。
觀察波形輔助工具
上文提到窗口對象中還包括如下三類,來幫助設(shè)計觀察仿真結(jié)果:
- Group:一個Group相當(dāng)于一個容器,將相關(guān)的波形對象組合在一個文件夾中。選中想要添加的對象,右鍵->New Group即可建立一個新組。注意選中g(shù)roup后delete會刪除掉該組和內(nèi)部所有的對象,如果只是想解散組,使用右鍵菜單中的Ungroup。
- Divider:divider用來隔離不同的HDL對象,點擊信號的右鍵菜單中->New Divider,會在其下方創(chuàng)建一條隔離帶,delete即可刪除。
- Virtual Bus:可以將多個標(biāo)量或向量組合在一起作為虛擬總線顯示,按順序選中要添加的對象,右鍵->New Virtual Bus。同樣delete會刪除掉虛擬總線所有對象,僅刪除虛擬總線應(yīng)使用Ungroup。
除此之外,Vivado還提供了一些其它特性幫助設(shè)計者分析波形中的數(shù)據(jù):
1.光標(biāo)
在波形上單擊,會出現(xiàn)黃色的光標(biāo),稱之為主光標(biāo);按住Shift鍵,再在另一個地方點擊,會出現(xiàn)第二個光標(biāo),稱之為輔助光標(biāo)(虛線,會替換原主光標(biāo)所在位置)。頂部會顯示每個光標(biāo)所處的時間點,底部有刻度尺且顯示兩者之間的時間差(顯示刻度尺需要在設(shè)置中選中Floating Ruler)。單擊波形窗口的任意地方,即可隱藏輔助光標(biāo)。
如果設(shè)置中選中了Snap to Transition,拖動光標(biāo)過程中會有一個根據(jù)數(shù)據(jù)轉(zhuǎn)換狀態(tài)變換的圈(不選中該功能始終為空心圈,不會變化)??招娜Α鸨硎竟鈽?biāo)處在信號的兩個過度點之間(過度點即為值發(fā)生改變的點);實心圈●表示光標(biāo)位于過度點處或標(biāo)記(marker)上。如下圖所示:
通過此功能,設(shè)計者即可準(zhǔn)確地將光標(biāo)置于信號的邊緣處。波形窗口工具欄中還有Previous Transition和Next Transition兩個功能,可以改變光標(biāo)位置到選定對象的前一個或后一個過度點??梢酝瑫r選中多個對象。
2.標(biāo)記
標(biāo)記(Marker)用來指示波形中設(shè)計者關(guān)心的重大事件,可以對與標(biāo)記事件相關(guān)的時間進行測量。在窗口工具欄中點擊Add Marker(如下圖紅框)添加標(biāo)記,自動測量并顯示標(biāo)記與光標(biāo)之間的時間差。
標(biāo)記同樣支持Snap to Transition功能,讓設(shè)計者可以準(zhǔn)確地標(biāo)記信號邊緣。在標(biāo)記上右鍵,選中Delete Marke**r或**Delete All Markers即可刪除標(biāo)記。底部也會顯示時間刻度尺輔助時間測量,0時刻從輔助光標(biāo)開始,如果沒有輔助光標(biāo)會從選中的Marker處開始。
3.查找功能
右鍵菜單中Find/Find Value可分別用于查找某一對象或者選中對象中的特定值??瞻卓蛑休斎霂Р檎易址?,必須與設(shè)置的Radix相符,否則編輯框會變?yōu)榧t色提示錯誤(如十六進制就只能輸入0-F)。
句號的點‘.’相當(dāng)于通配符,如查找“1.2”,便會找到102、112等等。Match用于設(shè)置匹配模式,Beginning、End(以查找內(nèi)容為開頭或結(jié)尾)或Exact(精確值)。Previous和Next在結(jié)果之間切換,如果沒有找到工具條會顯示“Value not found”。
編輯:hfy
-
波形
+關(guān)注
關(guān)注
3文章
379瀏覽量
31608 -
Vivado
+關(guān)注
關(guān)注
19文章
815瀏覽量
66711 -
Waveform
+關(guān)注
關(guān)注
0文章
3瀏覽量
1932
發(fā)布評論請先 登錄
相關(guān)推薦
評論