新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > FPGA設(shè)計(jì)開(kāi)發(fā)軟件Quartus II的使用技巧之: 典型實(shí)例-SignalTap II功能演示

        FPGA設(shè)計(jì)開(kāi)發(fā)軟件Quartus II的使用技巧之: 典型實(shí)例-SignalTap II功能演示

        作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/201706/348820.htm

        5.10典型實(shí)例9:功能演示

        5.10.1實(shí)例的內(nèi)容及目標(biāo)

        1.實(shí)例的主要內(nèi)容

        本節(jié)旨在通過(guò)給定的工程實(shí)例——“正弦波發(fā)生器”來(lái)熟悉Altera高級(jí)調(diào)試功能和IntentMemoryContentEditor的使用方法。同時(shí)使用基于Altera的開(kāi)發(fā)板將該實(shí)例進(jìn)行下載驗(yàn)證,完成工程設(shè)計(jì)的硬件實(shí)現(xiàn)。在本節(jié)中,將主要講解下面知識(shí)點(diǎn)。

        ·原理圖輸入方式。

        ·約束設(shè)計(jì)。

        ·QuartusII工程編譯。

        ·QuartusII硬件下載。

        ·在線調(diào)試。

        ·IntentMemoryContentEditor在線修改片上ROM數(shù)據(jù)。

        通過(guò)這些知識(shí)點(diǎn),按照實(shí)例的流程,讀者可以迅速地掌握使用QuartusII軟件高級(jí)調(diào)試技巧。

        2.實(shí)例目標(biāo)

        通過(guò)詳細(xì)的流程講解,讀者應(yīng)達(dá)到下面的目標(biāo)。

        ·熟悉QuartusII原理圖設(shè)計(jì)方法。

        ·熟悉SignalTapII在線調(diào)試方法。

        ·熟悉IntentMemoryContentEditor在線修改片上ROM數(shù)據(jù)的方法。

        5.10.2實(shí)例詳解

        本實(shí)例將使用圖解的方式將整個(gè)流程一步一步展現(xiàn)給讀者,使讀者能夠輕松掌握開(kāi)發(fā)的流程。

        5.10.2.1工程系統(tǒng)框圖

        本實(shí)例使用QuartusII自帶的宏模塊(MegaWizardPlug-inManager)來(lái)設(shè)計(jì)邏輯功能,并使用嵌入式硬件邏輯分析儀觀察結(jié)果。

        正弦函數(shù)發(fā)生器的原理比較簡(jiǎn)單,硬件實(shí)現(xiàn)也比較簡(jiǎn)單:首先設(shè)計(jì)一個(gè)ROM用來(lái)存放正弦函數(shù)的幅度數(shù)據(jù);用一個(gè)計(jì)數(shù)器來(lái)指定ROM地址(也就是相位)的增加,輸出相應(yīng)的幅度值。這樣在連續(xù)的時(shí)間內(nèi)顯示的就是一個(gè)完整的正弦波形。

        系統(tǒng)的電路圖如圖5.40所示。

        圖5.40系統(tǒng)電路圖

        div模塊是分頻模塊,可以用前面設(shè)計(jì)過(guò)的分頻器的程序生成模塊(symbol),也可以使用Altera的計(jì)數(shù)器宏模塊來(lái)生成分頻器。

        5.10.2.2添加分頻器模塊

        1.將分頻文件添加到工程

        將分頻器模塊div.v加入到工程中,在工程中打開(kāi)分頻器模塊div.v(分頻器程序由讀者完成),如圖5.41所示。

        2.產(chǎn)生.bsf文件

        選擇“File”/“Create/Update”/“CreateSymbolFilesforCurrentFile”選項(xiàng)。軟件會(huì)自動(dòng)分析div.v程序的語(yǔ)法錯(cuò)誤,如圖5.42所示。

        圖5.41分頻器VerilogHDL文件

        圖5.42生成模塊菜單

        3.修改程序語(yǔ)法錯(cuò)誤

        如果出錯(cuò)則修改錯(cuò)誤,直到?jīng)]有錯(cuò)誤為止。此時(shí)軟件會(huì)自動(dòng)生成div.bsf文件,此文件為原理圖中的模塊圖形。

        4.在原理圖中加入分頻器模塊div.bsf

        在原理圖文件中單擊“”按鈕,就可以加入剛剛建立的模塊,如圖5.43所示。

        圖5.43在原理圖中添加分頻器模塊

        5.10.2.3添加QuartusII系統(tǒng)自帶宏模塊

        ROM和計(jì)數(shù)器都可以通過(guò)QuartusII自帶的宏模塊生成。

        1.建立ROM初始化文件

        在菜單中選擇新建文件,在“OtherFiles”中選擇“MemoryInitializationFile”選項(xiàng),如圖5.44所示。

        填入如圖5.45所示的正弦波幅度數(shù)據(jù)。當(dāng)然也可以用MATLAB、C++或Excel的函數(shù)生成數(shù)據(jù)。保存文件,命名sin.mif。

        圖5.44新建ROM初始化文件圖5.45輸入正弦波幅度數(shù)據(jù)

        2.添加自帶宏模塊

        在“Tools”菜單中選擇“MegaWizardPlug-PnManager”選項(xiàng),出現(xiàn)如圖5.46所示的對(duì)話框,選擇新建宏模塊單擊“Next”按鈕。

        圖5.46引用自帶宏對(duì)話框

        圖5.47左側(cè)是QuartusII自帶的免費(fèi)的宏模型,可以看到Quartus提供了很多免費(fèi)的IP核。

        其中ROM在storage目錄中,計(jì)數(shù)器counter在arithmetic目錄中。

        3.添加ROM

        在storage中選擇ROM,并在右側(cè)的選項(xiàng)欄中選擇Cyclone系列芯片,outputfile類(lèi)型選擇VerilogHDL,并在下方選擇ROM文件的生成地址及名稱,如圖5.48所示。

        圖5.47選擇系統(tǒng)自帶宏模塊

        圖5.48選擇ROM宏模塊

        單擊“Next”按鈕,設(shè)定ROM基本參數(shù),包括ROM的位寬q、地址位寬(存儲(chǔ)深度)和時(shí)鐘。一般ROM的時(shí)鐘選為單時(shí)鐘控制Singleclock,如圖5.49所示。

        單擊“Next”按鈕,設(shè)定ROM其他參數(shù),設(shè)定輸出寄存器、時(shí)鐘使能端和異步清零。如果選中“qoutputport”,則會(huì)在輸出端加一級(jí)寄存器,如圖5.50所示。

        單擊“Next”按鈕,接下來(lái)在對(duì)話框中填入ROM初始化文件,并選中“allowin-systemmemory”選項(xiàng),并選擇名稱為“NONE”,如圖5.51所示。

        圖5.49rom宏模塊基本參數(shù)設(shè)置

        圖5.50設(shè)置ROM宏模塊其他參數(shù)

        圖5.51設(shè)置ROM宏模塊初始化文件

        單擊“Next”按鈕,完成設(shè)置,向?qū)傻奈募鐖D5.52所示。

        圖5.52設(shè)置ROM宏模塊完成

        4.添加計(jì)數(shù)器

        引入計(jì)數(shù)器作為ROM的地址,當(dāng)計(jì)數(shù)器地址遞增時(shí),相應(yīng)的ROM的地址遞增(正弦波的相位增加)。同樣的在“MegaWizardPlug-InManager”中選擇arithmetic數(shù)學(xué)庫(kù)中的“LPMCOUNTER”宏模塊,添加計(jì)數(shù)器,如圖5.53所示。

        圖5.53新建計(jì)數(shù)器模塊參數(shù)

        本實(shí)例中用的ROM寬度為8,深度為64,也就是數(shù)據(jù)寬度是8位,可以存64個(gè)數(shù)據(jù)。ROM有64個(gè)地址,因此計(jì)數(shù)器的位寬要定義為6位,如圖5.54所示。

        圖5.54設(shè)置計(jì)數(shù)器宏模塊參數(shù)

        一直單擊“Next”按鈕,使用系統(tǒng)默認(rèn)設(shè)置,直到生成如圖5.55所示的文件輸出。

        圖5.55完成計(jì)數(shù)器宏模塊設(shè)置

        5.10.2.4添加端口

        要添加輸入輸出端口,選擇按鈕,打開(kāi)如圖5.56所示的對(duì)話框,然后選擇需要增加的端口形式。

        圖5.56加入輸入輸出端口

        添加后雙擊端口,給端口命名,總線型端口要命名name[N..0]的格式,如圖5.57所示。

        圖5.57完成工程原理圖輸入

        5.10.2.5編譯工程

        按照2.5節(jié)進(jìn)行語(yǔ)法分析,指定設(shè)備,指定管腳,整體編譯程序。在本實(shí)例中只需要對(duì)主時(shí)鐘管腳進(jìn)行分配,即pin_153。

        5.10.2.6使用SignalTapII觀察波形

        1.建立SignalTapII文件

        在菜單中選擇“Tools”/“SignalTapIILogicAnalyzer”選項(xiàng),打開(kāi)如圖5.58所示界面。

        圖5.58新建SignalTapII文件

        作如圖5.59所示的設(shè)置。

        圖5.59SignalTapII文件設(shè)置

        SignalTapII基本設(shè)置需注意以下問(wèn)題。

        (1)分頻時(shí)鐘作為采樣信號(hào),不要放到被觀察的信號(hào)中。

        (2)采樣信號(hào)不宜用作主時(shí)鐘,可以用作分頻后的時(shí)鐘,采樣條件可用Centertriggerposition。

        下載程序,就可以看仿真的波形了。

        2.設(shè)置SignalTapII高級(jí)觸發(fā)條件

        在如圖5-58所示的添加觀察信號(hào)區(qū)域窗口中,將TriggerLevels選項(xiàng)改為Advanced,將Basic改為Advanced,則會(huì)彈出高級(jí)觸發(fā)設(shè)置頁(yè)面,如圖5.60和圖5.61所示。

        圖5.60打開(kāi)SignalTapII文件高級(jí)觸發(fā)設(shè)置

        圖5.61SignalTapII文件高級(jí)觸發(fā)設(shè)置

        本例中設(shè)置為當(dāng)?shù)刂沸盘?hào)address=0時(shí)開(kāi)始觸發(fā)。從“nodelist”中拖入address信號(hào),在“ObjectLibrary”/“ComparisonOperator”中加入equality,最后加入“InputObjects”/“BusValue”。得到如圖5.62所示的觸發(fā)條件。

        圖5.62SignalTapII高級(jí)觸發(fā)設(shè)置結(jié)果

        3.運(yùn)行SignalTapII并觀察波形

        首先整體編譯工程,在菜單欄中單擊按鈕,開(kāi)始編譯。之后使用JTAG模式將程序下載到中運(yùn)行。打開(kāi)SignalTapII文件,選擇如圖5.63所示的下載電纜。

        在InstanceManager中單擊按鈕進(jìn)行一次觸發(fā),將會(huì)得到如圖5.64所示的波形。

        圖5.64觀察采樣數(shù)據(jù)數(shù)字顯示波形

        因?yàn)殚_(kāi)發(fā)板硬件沒(méi)有AD/DA功能,要想看模擬信號(hào)的輸出也可以用邏輯分析儀來(lái)完成。在信號(hào)名(比如q信號(hào))上單擊右鍵,選擇“BusDisplayFormat”/“UnsignedLineChart”選項(xiàng),如圖5.65所示。

        圖5.65觀察采樣數(shù)據(jù)模擬顯示波形 圖5.66觀察采樣數(shù)據(jù)模擬顯示波形結(jié)果圖

        此時(shí),就可以顯示如圖5.66所示的模擬波形了。

        5.10.2.7使用在線ROM編輯器

        嵌入式存儲(chǔ)數(shù)據(jù)編輯器是通過(guò)JTAG下載電纜來(lái)觀看FPGA中ROM加載的數(shù)據(jù)的,不僅能觀看,還能在線修改數(shù)據(jù),無(wú)需重新編譯與下載。

        1.打開(kāi)ROM編輯器

        選擇“Tools”/“InsystemMemoryContentEditor”選項(xiàng),打開(kāi)如圖5.67所示的rom編輯器。

        圖5.67打開(kāi)在線ROM編輯器窗口

        2.選擇下載電纜

        使用打印口LPT1下載電纜,如圖5.68所示。

        圖5.68設(shè)置下載電纜

        3.選擇ROM標(biāo)號(hào)

        點(diǎn)擊設(shè)置ROM參數(shù)時(shí)指定的none的文件,將出現(xiàn)FPGA運(yùn)行之中的ROM的數(shù)據(jù),如圖5.69所示。

        圖5.69選擇ROM標(biāo)號(hào)

        4.讀取ROM數(shù)據(jù)

        右鍵單擊“NONE”,選擇“ReadDatafromSystemMemory”選項(xiàng),就可以得到ROM中的數(shù)據(jù)了,如圖5.70所示。

        圖5.70讀取ROM數(shù)據(jù)

        5.修改ROM數(shù)據(jù)

        通過(guò)編輯器,可以修改ROM中的數(shù)據(jù)。例如可以把數(shù)據(jù)中的幾個(gè)數(shù)改成0,然后單擊“write”,再回到邏輯分析儀中觀察波形,就可以發(fā)現(xiàn)其中的變化,如圖5.71所示。

        圖5.71修改后ROM數(shù)據(jù)顯示

        5.10.3小結(jié)

        上述訓(xùn)練流程就是一個(gè)完整的QuartusII硬件調(diào)試流程。雖然此訓(xùn)練實(shí)現(xiàn)的功能比較簡(jiǎn)單,但對(duì)于初學(xué)者來(lái)說(shuō),是一個(gè)不錯(cuò)的入門(mén)訓(xùn)練。其主要目的是讓初學(xué)者對(duì)的設(shè)計(jì)有一個(gè)初步的了解。通過(guò)該訓(xùn)練來(lái)熟悉QuartusII的高級(jí)調(diào)試技巧,為今后的學(xué)習(xí)打下基礎(chǔ)。



        關(guān)鍵詞: QuartusII SignalTapII FPGA

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 施甸县| 如东县| 石屏县| 定边县| 昌宁县| 昆山市| 清远市| 波密县| 准格尔旗| 高邮市| 恩施市| 宜城市| 双桥区| 梁平县| 浏阳市| 内黄县| 旺苍县| 濮阳县| 通许县| 沙坪坝区| 开封市| 扎鲁特旗| 龙游县| 沙湾县| 贺州市| 长汀县| 丰原市| 凤山县| 临城县| 清水县| 宜春市| 格尔木市| 黎川县| 水城县| 吕梁市| 永丰县| 原阳县| 内江市| 饶平县| 蒙山县| 嵩明县|