明(míng)德揚設計(jì)的(de)工程經(jīng)常使用(yòng)到(dào)Quartus Ⅱ软(ruǎn)件(jiàn),其中(zhōng)常用(yòng)的(de)調試工具就(jiù)是(shì)SignalTap。當代(dài)碼經(jīng)过(guò)仿真(zhēn)沒(méi)有(yǒu)問(wèn)題(tí),但加载到(dào)FPGA電(diàn)路(lù)板後(hòu),發(fà)現(xiàn)功能(néng)不(bù)正(zhèng)确时(shí),我(wǒ)们(men)就(jiù)可(kě)以(yǐ)用(yòng)signalTap工具進(jìn)行分(fēn)析,它(tā)的(de)作用(yòng)就(jiù)類(lèi)似于(yú)一(yī)个(gè)數字(zì)邏輯分(fēn)析儀。今天(tiān)就(jiù)給(gěi)大家(jiā)分(fēn)享SignalTap的(de)使用(yòng)教程。
打(dǎ)開(kāi)Quartus後(hòu),在(zài)菜單欄中(zhōng),選擇“Tools”->”SignalTal II Logic Analyzer”,就(jiù)可(kě)以(yǐ)打(dǎ)開(kāi)SignalTap工具。如(rú)下(xià)图(tú):
二(èr),使用(yòng)SignalTap調試設置步驟
界面(miàn)示意(yì)图(tú)如(rú)下(xià)所(suǒ)示,其中(zhōng)有(yǒu)对(duì)應(yìng)的(de)标(biāo)号(hào),其解(jiě)釋如(rú)下(xià):

◆ 1—4为(wèi)基本(běn)的(de)软(ruǎn)硬(yìng)件(jiàn)配置:
1为(wèi)下(xià)载線(xiàn)選擇;
2为(wèi)硬(yìng)件(jiàn)檢测(識别相關(guān)的(de)FPGA設備);
3工程配置文(wén)件(jiàn)選擇(sof文(wén)件(jiàn));
4加载sof文(wén)件(jiàn)(1-3均完成(chéng)後(hòu)即可(kě)加载文(wén)件(jiàn))。
◆ 5为(wèi)采樣(yàng)时(shí)鐘(zhōng)設置:選擇采樣(yàng)时(shí)鐘(zhōng),采樣(yàng)时(shí)鐘(zhōng)要(yào)根(gēn)據(jù)具體(tǐ)需要(yào)進(jìn)行設置, 可(kě)以(yǐ)为(wèi)模块(kuài)的(de)工作时(shí)鐘(zhōng),也(yě)可(kě)以(yǐ)为(wèi)內(nèi)部(bù)信(xìn)号(hào);
◆ 6为(wèi)采樣(yàng)深度(dù)設置:采樣(yàng)深度(dù)并非(fēi)越大越好(hǎo),要(yào)根(gēn)據(jù)分(fēn)析需求進(jìn)行合理設置;
◆ 7为(wèi)觸發(fà)位置選擇:包(bāo)括前(qián)段(duàn)觸發(fà)、中(zhōng)間(jiān)觸發(fà)、後(hòu)端觸發(fà)三(sān)種(zhǒng)方(fāng)式,以(yǐ)觸發(fà)點(diǎn)为(wèi)參考,觸發(fà)位置不(bù)同(tóng),我(wǒ)们(men)能(néng)得到(dào)不(bù)同(tóng)时(shí)間(jiān)段(duàn)的(de)信(xìn)号(hào)值。
◆ 8—9为(wèi)信(xìn)号(hào)設置:包(bāo)括添加信(xìn)号(hào),設置信(xìn)号(hào)觸發(fà)条(tiáo)件(jiàn)等。在(zài)8中(zhōng)空白处双(shuāng)擊即可(kě)添加信(xìn)号(hào)界面(miàn),根(gēn)據(jù)需要(yào)添加工程中(zhōng)的(de)相應(yìng)信(xìn)号(hào),添加信(xìn)号(hào)後(hòu)即可(kě)設置其觸發(fà)条(tiáo)件(jiàn)。
◆ 10为(wèi)資源使用(yòng)情(qíng)況指示:如(rú)果(guǒ)資源多(duō)于(yú)FPGA本(běn)身(shēn)的(de)資源,綜合时(shí)会(huì)報錯,无法進(jìn)行分(fēn)析。
◆ 11为(wèi)運行操作按鈕:開(kāi)始運行後(hòu),待觸發(fà)条(tiáo)件(jiàn)滿足後(hòu)会(huì)顯示波(bō)形。
三(sān),選擇采樣(yàng)时(shí)鐘(zhōng)
1、SIGNALTAP的(de)采樣(yàng)时(shí)鐘(zhōng),不(bù)一(yī)定(dìng)是(shì)时(shí)鐘(zhōng)信(xìn)号(hào),可(kě)以(yǐ)是(shì)其他(tā)任意(yì)的(de)信(xìn)号(hào)。總(zǒng)之,SIGNALTAP会(huì)在(zài)采樣(yàng)时(shí)鐘(zhōng)的(de)上(shàng)升(shēng)沿去(qù)捕捉信(xìn)号(hào)的(de)值,如(rú)果(guǒ)沒(méi)有(yǒu)上(shàng)升(shēng)沿,則会(huì)一(yī)直(zhí)等待。例如(rú)下(xià)图(tú)所(suǒ)示,就(jiù)是(shì)以(yǐ)按鍵信(xìn)号(hào)key【0】为(wèi)采樣(yàng)时(shí)鐘(zhōng)。在(zài)key【0】由(yóu)0變(biàn)1时(shí),就(jiù)会(huì)采樣(yàng)一(yī)个(gè)值。

2、若該工程使用(yòng)到(dào)幾(jǐ)个(gè)模块(kuài),并且每个(gè)模块(kuài)的(de)时(shí)鐘(zhōng)不(bù)一(yī)定(dìng)相同(tóng),則我(wǒ)们(men)選擇采樣(yàng)时(shí)鐘(zhōng)时(shí),要(yào)根(gēn)據(jù)我(wǒ)们(men)要(yào)测試的(de)信(xìn)号(hào)所(suǒ)在(zài)的(de)模块(kuài)的(de)时(shí)鐘(zhōng)是(shì)什麼(me)。
四(sì),選擇觸發(fà)条(tiáo)件(jiàn)的(de)次(cì)數
下(xià)图(tú)所(suǒ)示,通(tòng)过(guò)設置segmented,可(kě)以(yǐ)檢查滿足觸發(fà)条(tiáo)件(jiàn)的(de)次(cì)數。例如(rú),發(fà)現(xiàn)按鍵有(yǒu)时(shí)候失靈的(de)情(qíng)況,为(wèi)了(le)定(dìng)位此(cǐ)問(wèn)題(tí),我(wǒ)想(xiǎng)檢查按鍵按下(xià)的(de)次(cì)數,是(shì)否與(yǔ)捕捉到(dào)信(xìn)号(hào)次(cì)數一(yī)致(zhì)。

其主(zhǔ)要(yào)設置为(wèi):
把segmented設置为(wèi)32;
把捕捉到(dào)信(xìn)号(hào)key_vld拉到(dào)顯示窗(chuāng)口(kǒu),該信(xìn)号(hào)为(wèi)1表(biǎo)示捕捉到(dào)一(yī)个(gè)按鍵;
設置觸發(fà)条(tiáo)件(jiàn)为(wèi):key_vld的(de)上(shàng)升(shēng)沿;
按下(xià)run鍵,等待觸發(fà)条(tiáo)件(jiàn)滿足;
按下(xià)按鍵4次(cì);
按停止捕捉鍵 。
五(wǔ),信(xìn)号(hào)的(de)觸發(fà)条(tiáo)件(jiàn)
1、如(rú)下(xià)图(tú)所(suǒ)示,6種(zhǒng)觸發(fà)条(tiáo)件(jiàn)的(de)含義如(rú)下(xià):
don’t care:表(biǎo)示不(bù)關(guān)心(xīn),也(yě)即任意(yì),此(cǐ)信(xìn)号(hào)的(de)值不(bù)影響觸發(fà)条(tiáo)件(jiàn);
Low :低電(diàn)平觸發(fà);
Falling Edge:下(xià)降沿觸發(fà);
Rising Edge:上(shàng)升(shēng)沿觸發(fà);
High:高(gāo)電(diàn)平觸發(fà);
Either Edge:双(shuāng)沿觸發(fà),即有(yǒu)變(biàn)化(huà)时(shí)觸發(fà)。

此(cǐ)时(shí)的(de)觸發(fà)条(tiáo)件(jiàn)含義为(wèi):當rst_n为(wèi)上(shàng)升(shēng)沿并且key_col全(quán)为(wèi)高(gāo)时(shí)觸發(fà)。
注意(yì),这(zhè)里(lǐ)多(duō)觸發(fà)条(tiáo)件(jiàn)之間(jiān)默認的(de)是(shì)“與(yǔ)”的(de)關(guān)系(xì),很多(duō)人(rén)会(huì)誤認为(wèi)是(shì)“或(huò)”的(de)關(guān)系(xì)。















