知乎上看到RS官方賬號的點(diǎn)贊和評論,備受鼓舞,又有了寫東西的動(dòng)力。平時(shí)一直在使用RS家的信號源、頻譜儀等,確實(shí)功能很強(qiáng)大。
進(jìn)入正題:
某年某月某日...
數(shù)據(jù)記錄的必要性
在程序基本功能已經(jīng)實(shí)現(xiàn)的情況下,項(xiàng)目轉(zhuǎn)入集中測試與排故階段時(shí),這個(gè)時(shí)候一般來說就會測試出各種各樣的問題。作為一個(gè)完整的通信系統(tǒng)或通信設(shè)備,往往集成了多個(gè)模塊軟件,遇到問題的時(shí)候,如果僅從現(xiàn)象出發(fā),往往比較難定位。
然后呢,各個(gè)軟件開始抓包,抓取問題數(shù)據(jù)進(jìn)行分析,如果是FPGA的話可能需要重新抓取數(shù)據(jù),而編譯時(shí)間又較慢,一次抓取分析不出來,可能又要再抓取新的數(shù)據(jù),再去編譯,如此下來,一天時(shí)間可能就過去了,如果問題又是偶發(fā)出現(xiàn)的,則復(fù)現(xiàn)問題又要耗費(fèi)大量的時(shí)間。
這個(gè)時(shí)候,數(shù)據(jù)記錄就很有必要性了,在各個(gè)軟件中,考慮各自軟件想要記錄的信息,加入數(shù)據(jù)記錄邏輯,并加入數(shù)據(jù)記錄相應(yīng)的接口,通過相應(yīng)的線路傳輸至數(shù)據(jù)記錄硬件模塊,存入存儲器。
在設(shè)備運(yùn)行過程中,記錄下各個(gè)時(shí)間的狀態(tài)信息,最終通過解析數(shù)據(jù)記錄,回溯出問題時(shí)候的狀態(tài),以此分析問題原因,省去了抓取數(shù)據(jù)、編譯程序、掛仿真器等步驟,更方便高效。
基于RAM的數(shù)據(jù)記錄
從上述方式可以看出,完備的數(shù)據(jù)記錄系統(tǒng),需要多個(gè)軟件協(xié)同,設(shè)計(jì)好數(shù)據(jù)記錄的內(nèi)容和格式,設(shè)計(jì)好數(shù)據(jù)傳輸路徑,有數(shù)據(jù)記錄硬件模塊,有數(shù)據(jù)記錄解析軟件。
這里我想說的一種情況,也是我之前實(shí)際遇到的,也就是在項(xiàng)目比較著急的情況下,來不及規(guī)劃數(shù)據(jù)記錄系統(tǒng)時(shí),該怎么辦呢?
當(dāng)時(shí)想到一種基于RAM的數(shù)據(jù)記錄方式,具體操作就是,例化一個(gè)深度較大的RAM,將想要記錄的信息作為RAM的數(shù)據(jù)輸入,可以拼接不同的信息變量輸入,也可以單獨(dú)輸入。
RAM的寫使能用事件觸發(fā),或者周期觸發(fā),比如每次發(fā)送的時(shí)候記錄一次即寫一次,或者每隔100ms記錄一次即寫一次。
那么怎么把數(shù)據(jù)記錄內(nèi)容取出來呢?可以同時(shí)加一個(gè)VIO和ILA,ILA同時(shí)抓取VIO的輸出和RAM的輸出,通過VIO輸出信號的上升沿觸發(fā),并在VIO輸出信號變高時(shí)從RAM中讀出數(shù)據(jù),觸發(fā)后導(dǎo)出數(shù)據(jù)分析即可。
舉一反三
其實(shí)不僅數(shù)據(jù)記錄,在某些難以一次性抓取數(shù)據(jù)的場景下,都可以用這個(gè)方法,將想要抓取的數(shù)據(jù),在特定條件下寫入RAM,不寫其他無用的數(shù)據(jù),最終觸發(fā)后讀出即可。
Tips
-
FPGA
+關(guān)注
關(guān)注
1629文章
21748瀏覽量
603865 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7067瀏覽量
89108 -
RAM
+關(guān)注
關(guān)注
8文章
1368瀏覽量
114752
原文標(biāo)題:一種數(shù)據(jù)記錄方式
文章出處:【微信號:FPGA通信小白成長之路,微信公眾號:FPGA通信小白成長之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論