Diamond在(zài)線(xiàn)調試助手(shǒu)Reveal使用(yòng)(多(duō)图(tú)超詳细(xì))
本(běn)文(wén)为(wèi)明(míng)德揚原創文(wén)章(zhāng),轉(zhuǎn)载請注明(míng)出(chū)处!作者(zhě):魚丸粗(cū)面(miàn)
在(zài)之前(qián)的(de)系(xì)列文(wén)章(zhāng)中(zhōng),我(wǒ)为(wèi)大家(jiā)詳细(xì)講解(jiě)了(le)Lattice開(kāi)發(fà)工具的(de)一(yī)些基本(běn)的(de)使用(yòng)方(fāng)法,如(rú)怎樣(yàng)申請Diamond License、如(rú)何生(shēng)成(chéng)IP核、如(rú)何新建工程……今天(tiān)我(wǒ)将繼續介紹Diamond软(ruǎn)件(jiàn)的(de)使用(yòng)方(fāng)法——如(rú)何使用(yòng)在(zài)線(xiàn)調試助手(shǒu)Reveal進(jìn)行工程調試。
首先(xiān),找(zhǎo)到(dào)Reveal图(tú)标(biāo),在(zài)下(xià)图(tú)标(biāo)示區(qū)域。與(yǔ)Quartus 的(de)Signaltap不(bù)同(tóng)的(de)是(shì),Diamond在(zài)線(xiàn)調試助手(shǒu)需要(yào)在(zài)两(liǎng)个(gè)地(dì)方(fāng)分(fēn)别進(jìn)行設置,一(yī)个(gè)是(shì)“Reveal Inserter”,在(zài)下(xià)图(tú)中(zhōng)标(biāo)示框中(zhōng)左(zuǒ)邊(biān)的(de)图(tú)标(biāo),此(cǐ)窗(chuāng)口(kǒu)是(shì)用(yòng)来(lái)設置采樣(yàng)时(shí)鐘(zhōng)、采樣(yàng)深度(dù)、需要(yào)采樣(yàng)的(de)信(xìn)号(hào)以(yǐ)及(jí)觸發(fà)条(tiáo)件(jiàn)。另(lìng)一(yī)个(gè)是(shì)“Reveal Analyzer”,在(zài)标(biāo)示框中(zhōng)右(yòu)邊(biān)的(de)图(tú)标(biāo),此(cǐ)窗(chuāng)口(kǒu)是(shì)用(yòng)来(lái)顯示捕獲到(dào)的(de)波(bō)形信(xìn)号(hào)。
接下(xià)来(lái),建立調試文(wén)件(jiàn)。找(zhǎo)到(dào)工程文(wén)件(jiàn)列表(biǎo)中(zhōng)的(de)Debug Files(如(rú)图(tú)2),右(yòu)鍵“Add”—“New Files”,弹出(chū)的(de)界面(miàn)中(zhōng)找(zhǎo)到(dào)“Reveal Project Files”,在(zài)下(xià)面(miàn)会(huì)顯示对(duì)應(yìng)的(de)文(wén)件(jiàn)類(lèi)型为(wèi)“rvl”(如(rú)图(tú)3),将其保存到(dào)設定(dìng)好(hǎo)的(de)文(wén)件(jiàn)夾目录(lù)下(xià)(可(kě)以(yǐ)在(zài)工程文(wén)件(jiàn)夾目录(lù)下(xià)新建一(yī)个(gè)debug文(wén)件(jiàn)夾,用(yòng)来(lái)保存調試文(wén)件(jiàn))。
图(tú)2 新建調試文(wén)件(jiàn)
图(tú)3 選擇新建.rvl文(wén)件(jiàn)
入(rù)信(xìn)号(hào)設置界面(miàn)(如(rú)图(tú)4點(diǎn)擊“New”,進(jìn))。其中(zhōng)“Trace”下(xià)面(miàn)是(shì)想(xiǎng)要(yào)观察的(de)信(xìn)号(hào)列表(biǎo),需要(yào)從左(zuǒ)邊(biān)“Design Trace”窗(chuāng)口(kǒu)中(zhōng)在(zài)对(duì)應(yìng)的(de)模块(kuài)中(zhōng)找(zhǎo)到(dào)信(xìn)号(hào)名稱然後(hòu)拖拽到(dào)“Trace”窗(chuāng)口(kǒu)之下(xià);“Simple Clock”是(shì)采樣(yàng)时(shí)鐘(zhōng),可(kě)以(yǐ)手(shǒu)動(dòng)輸入(rù),也(yě)可(kě)以(yǐ)從“Design Trace”窗(chuāng)口(kǒu)中(zhōng)找(zhǎo)到(dào)时(shí)鐘(zhōng)信(xìn)号(hào)拖入(rù);“Buffer Depth”是(shì)采樣(yàng)深度(dù),可(kě)以(yǐ)根(gēn)據(jù)資源占用(yòng)的(de)數目来(lái)進(jìn)行選定(dìng)。“Implementation”是(shì)所(suǒ)用(yòng)的(de)資源數目,不(bù)可(kě)以(yǐ)超过(guò)100否則会(huì)報錯。
图(tú)4-1 信(xìn)号(hào)設置界面(miàn)
图(tú)4-2是(shì)信(xìn)号(hào)設置完成(chéng)的(de)界面(miàn):
图(tú)4-2 信(xìn)号(hào)設置界面(miàn)
采樣(yàng)时(shí)鐘(zhōng)、待观察信(xìn)号(hào)設置完成(chéng)後(hòu),進(jìn)行觸發(fà)条(tiáo)件(jiàn)設置,在(zài)右(yòu)下(xià)角(jiǎo)的(de)“Trigger Singnal Setup”界面(miàn)(如(rú)图(tú)5),設置觸發(fà)条(tiáo)件(jiàn)。
图(tú)5 觸發(fà)条(tiáo)件(jiàn)設置
觸發(fà)条(tiáo)件(jiàn)設置界面(miàn)需要(yào)設置两(liǎng)部(bù)分(fēn)內(nèi)容。在(zài)“Trigger Unit”窗(chuāng)口(kǒu)中(zhōng),選擇要(yào)觸發(fà)的(de)信(xìn)号(hào),點(diǎn)擊“Add”可(kě)以(yǐ)添加觸發(fà)条(tiáo)件(jiàn)設置窗(chuāng)口(kǒu)来(lái)增加觸發(fà)信(xìn)号(hào)的(de)个(gè)數。双(shuāng)擊“signals”下(xià)的(de)空白(如(rú)图(tú)6),在(zài)弹出(chū)的(de)信(xìn)号(hào)列表(biǎo)界面(miàn)中(zhōng)找(zhǎo)到(dào)待觸發(fà)的(de)信(xìn)号(hào),将其添加進(jìn)来(lái),判斷条(tiáo)件(jiàn)在(zài)“Operator”窗(chuāng)口(kǒu)下(xià)面(miàn)選擇,可(kě)以(yǐ)選擇上(shàng)升(shēng)沿、下(xià)降沿觸發(fà),或(huò)者(zhě)其他(tā)觸發(fà)判斷条(tiáo)件(jiàn)。
图(tú)6 選擇觸發(fà)信(xìn)号(hào)及(jí)判斷条(tiáo)件(jiàn)
添加完所(suǒ)有(yǒu)的(de)待觸發(fà)信(xìn)号(hào)和(hé)判斷条(tiáo)件(jiàn)之後(hòu),需要(yào)在(zài)“Trigger Expressin”窗(chuāng)口(kǒu)中(zhōng)将上(shàng)面(miàn)添加的(de)“name”名複制到(dào)“Expression”下(xià)(如(rú)图(tú)7),名稱要(yào)與(yǔ)前(qián)面(miàn)“name”一(yī)致(zhì),并且在(zài)“Trigger Unit”界面(miàn)中(zhōng)出(chū)現(xiàn)的(de)“name”名稱都要(yào)添加到(dào)“Trigger Expression”下(xià)。
图(tú)7 正(zhèng)确設置觸發(fà)条(tiáo)件(jiàn)界面(miàn)
Ctrl+S保存修改,将設置好(hǎo)的(de)“.rvl”文(wén)件(jiàn)與(yǔ)整个(gè)工程一(yī)起進(jìn)行編譯綜合,并将生(shēng)成(chéng)的(de)“.bit”流文(wén)件(jiàn)燒录(lù)到(dào)板子中(zhōng),接下(xià)来(lái)需要(yào)設置“.rva”配置文(wén)件(jiàn)。
在(zài)“Reveal analyzer”窗(chuāng)口(kǒu)(图(tú)8左(zuǒ)上(shàng)角(jiǎo))下(xià)創建JTAG口(kǒu)與(yǔ)FPGA連(lián)接的(de)文(wén)件(jiàn),在(zài)“Reveal Analyzer Setup Wizard“界面(miàn)下(xià),選擇”Create a new file“。
图(tú)8 創建.rva文(wén)件(jiàn)
命名文(wén)件(jiàn)名。在(zài)“USB port”一(yī)欄中(zhōng),點(diǎn)擊“Detect”尋找(zhǎo)與(yǔ)FPGA的(de)JTAG口(kǒu)相連(lián)的(de)USB接口(kǒu)。在(zài)“Debug device”一(yī)欄中(zhōng),點(diǎn)擊“Scan”来(lái)添加正(zhèng)在(zài)進(jìn)行通(tòng)信(xìn)的(de)FPGA設備。如(rú)果(guǒ)沒(méi)有(yǒu)先(xiān)生(shēng)成(chéng)bit流文(wén)件(jiàn)并燒录(lù)到(dào)板子中(zhōng),将会(huì)出(chū)現(xiàn)如(rú)下(xià)報錯:“Cannot debug device : please check cable connection or reveal insertion in bitstream”。
图(tú)9 報錯信(xìn)息
錯誤信(xìn)息,需要(yào)先(xiān)将bit流文(wén)件(jiàn)燒录(lù)進(jìn)板子中(zhōng)去(qù)。綜合編譯,生(shēng)成(chéng)bit流文(wén)件(jiàn)後(hòu)進(jìn)行燒录(lù),再點(diǎn)擊Scan,即可(kě)檢测到(dào)待調試的(de)設備。
燒录(lù)進(jìn)bit流文(wén)件(jiàn)後(hòu),點(diǎn)擊“Scan“,便能(néng)搜索到(dào)正(zhèng)在(zài)通(tòng)信(xìn)的(de)FPGA設備:
图(tú)10 添加Debug device
将前(qián)面(miàn)生(shēng)成(chéng)的(de)“.rvl”文(wén)件(jiàn)添加進(jìn)“RVL source”一(yī)欄中(zhōng):
图(tú)11 添加.RVL文(wén)件(jiàn)
設置完成(chéng)後(hòu),打(dǎ)開(kāi)“Reveal Analyzer”界面(miàn),點(diǎn)擊图(tú)中(zhōng)綠(lǜ)色(sè)按鈕,邏輯分(fēn)析儀便会(huì)按照設置的(de)觸發(fà)信(xìn)号(hào)以(yǐ)及(jí)觸發(fà)条(tiáo)件(jiàn)捕捉待观察的(de)信(xìn)号(hào)。
图(tú)12 開(kāi)始捕捉信(xìn)号(hào)
成(chéng)功捕獲到(dào)的(de)波(bō)形:
图(tú)13 捕獲到(dào)的(de)波(bō)形图(tú)
以(yǐ)上(shàng)就(jiù)是(shì)線(xiàn)調試助手(shǒu)Reveal的(de)使用(yòng)方(fāng)法,如(rú)有(yǒu)不(bù)明(míng)白的(de)地(dì)方(fāng)可(kě)以(yǐ)加我(wǒ)的(de)QQ:3358622769,我(wǒ)会(huì)为(wèi)有(yǒu)需要(yào)的(de)朋友提(tí)供幫助。期(qī)待與(yǔ)大家(jiā)一(yī)起探讨進(jìn)步!















