版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章QuartusⅡ集成環(huán)境4.1概述4.2QuartusⅡ的安裝4.3QuartusⅡ10.0圖形用戶界面4.4設(shè)計(jì)輸入4.5編譯設(shè)計(jì)4.6時(shí)序分析4.7仿真4.8SignalTapⅡ邏輯分析儀4.9QuartusⅡ基于模塊化的設(shè)計(jì)流程4.10QuartusⅡ軟件其它工具4.1概
述
Altera公司在20世紀(jì)90年代以后發(fā)展很快,是全球最大的可編程邏輯器件供應(yīng)商之一,在推出各種可編程邏輯器件的同時(shí),也在不斷升級(jí)其相應(yīng)的開(kāi)發(fā)工具軟件。其開(kāi)發(fā)工具從早期的A?+?PLUS、MAX?+?PLUS發(fā)展到MAX?+?PLUSⅡ、Quartus,再到QuartusⅡ,經(jīng)歷了多次版本的升級(jí),軟件性能也相應(yīng)地得到很大的提高。如從QuartusⅡ6.1開(kāi)始支持多核處理器和64位操作系統(tǒng)。目前Altera已經(jīng)停止了對(duì)MAX?+?PLUSⅡ的開(kāi)發(fā),而是主要開(kāi)發(fā)QuartusⅡ集成軟件平臺(tái)。因此,QuartusⅡ是目前Altera公司可編程邏輯器件開(kāi)發(fā)工具中的主流軟件,目前其常用正式版本為QuartusⅡ10.0sp1。
QuartusⅡ軟件的設(shè)計(jì)流程如圖4.1所示。圖4.1QuartusⅡ的設(shè)計(jì)流程
4.2QuartusⅡ的安裝
建議在以下平臺(tái)上安裝QuartusⅡ軟件:運(yùn)行速度為1.8GHz或更快的PC,并采用以下Windows操作系統(tǒng)之一:
·MicrosoftWindowsXP(32/64bit);
·MicrosoftWindows7;
·WindowsVista。速度為1.8GHz或更快的PC,并采用以下Linux操作系統(tǒng)之一:
·RedHatEnterpriseLinux4/5(32/64bit);
·CentOS4/5;
·SuseLinuxServer10/11(32/64bit)。運(yùn)行Solaris8/9版本(32/64bit)的SunUltra工作站。
QuartusⅡ分為商業(yè)版和Web版,安裝方法基本相同,這里介紹基于PC機(jī)在WindowsXP平臺(tái)上QuartusⅡ10.0sp1版本的安裝過(guò)程。
(1)在網(wǎng)上下載后,在資源管理器中雙擊10.0sp1_quartus_windows_full.exe文件,或插入QuartusⅡ安裝光盤(pán)自動(dòng)運(yùn)行后,雙擊setup.exe文件,出現(xiàn)如圖4.2所示界面。圖4.2QuartusⅡ10.0文件釋放界面
(2)釋放QuartusⅡ安裝軟件。鼠標(biāo)點(diǎn)擊“Install”按鈕,進(jìn)入安裝文件的釋放過(guò)程,文件釋放完畢后,出現(xiàn)的安裝界面如圖4.3所示。圖4.3安裝界面
(3)點(diǎn)擊“Next”按鈕,進(jìn)入license協(xié)議窗口,選中方框同意license協(xié)議,“Next”按鈕才有效,如圖4.4所示,閱讀安裝協(xié)議。圖4.4協(xié)議界面
(4)點(diǎn)擊“Next”按鈕進(jìn)入下一步,選擇安裝目錄和文件夾,如圖4.5所示,圖中選項(xiàng)為默認(rèn)目錄和文件夾。圖4.5選擇安裝目錄和文件夾
(5)點(diǎn)擊“Next”按鈕進(jìn)入下一步,選擇需要安裝的Altera器件系列,默認(rèn)為全選,如圖4.6所示。圖4.6選擇安裝器件
(6)點(diǎn)擊“Next”按鈕進(jìn)入下一步,安裝信息總界面,如圖4.7所示。圖4.7安裝信息總界面
(7)點(diǎn)擊“Next”按鈕,開(kāi)始執(zhí)行軟件安裝,如圖4.8所示。圖4.8正在安裝軟件
(8)軟件授權(quán)(License)請(qǐng)求。首次運(yùn)行QuartusⅡ10.0,會(huì)出現(xiàn)如圖4.9所示的軟件請(qǐng)求授權(quán)的選項(xiàng)。圖4.9軟件請(qǐng)求授權(quán)圖4.10設(shè)置授權(quán)文件圖4.11通過(guò)菜單進(jìn)行授權(quán)文件設(shè)置
(9)授權(quán)文件導(dǎo)入。在圖4.10中,點(diǎn)擊LicenseFile選項(xiàng)框后面的…按鈕,在本機(jī)中選擇您所獲得的授權(quán)文件,導(dǎo)入授權(quán)文件(license文件),如圖4.12所示。圖4.12導(dǎo)入授權(quán)文件圖4.13正確導(dǎo)入授權(quán)文件后的畫(huà)面 4.3QuartusⅡ10.0圖形用戶界面
QuartusⅡ軟件是一個(gè)全面的、易于使用的獨(dú)立解決方案。QuartusⅡ10.0的圖形用戶界面(GraphicalUserInterface,GUI)可以完成設(shè)計(jì)流程的所有階段,QuartusⅡ還支持每個(gè)階段分開(kāi)執(zhí)行的標(biāo)準(zhǔn)命令行方式(Tcl腳本),本章僅介紹基于其圖形用戶界面GUI的設(shè)計(jì)。圖4.14顯示了QuartusⅡ圖形用戶界面為設(shè)計(jì)流程每個(gè)階段所提供的功能。圖4.14QuartusⅡ圖形用戶界面功能顯示圖4.15QuartusⅡ10.0圖形用戶界面
1.菜單命令區(qū)
QuartusⅡ10.0集成軟件平臺(tái)的所有功能均可以用菜單命令實(shí)現(xiàn),包括File、Edit、View、Project、Assignment、Processing、Tools、Window、Help九大主菜單及其子菜單。菜單命令的功能將結(jié)合工程設(shè)計(jì)進(jìn)行介紹。
2.快捷命令工具條快捷命令工具條是由若干個(gè)按鈕組成的,用鼠標(biāo)點(diǎn)擊按鈕,可快速執(zhí)行相應(yīng)的操作。QuartusⅡ也為用戶提供了個(gè)性化的設(shè)置功能,用戶可以自定義工具條和快捷命令按鈕。將鼠標(biāo)置于工具條按鈕圖標(biāo)上方1秒鐘左右,各工具條及其按鈕的功能將會(huì)在彈出標(biāo)簽中顯示。另外,狀態(tài)窗口下方的狀態(tài)條也會(huì)顯示其功能。由于工具條中的快捷命令按鈕只是菜單選項(xiàng)的簡(jiǎn)便操作,因此各按鈕的功能與菜單命令的功能一樣。
3.工作區(qū)工作區(qū)是用戶對(duì)輸入文件進(jìn)行設(shè)計(jì)的空間區(qū)域。在工作區(qū)中,QuartusⅡ軟件將顯示設(shè)計(jì)文件和工具條以方便用戶操作。圖4.16所示為實(shí)際打開(kāi)一個(gè)工程后工作區(qū)的顯示,圖中顯示的為當(dāng)前設(shè)計(jì)電路圖文件,其它文件打開(kāi)時(shí)的內(nèi)容也顯示在此區(qū)域。在默認(rèn)情況下,QuartusⅡ軟件會(huì)根據(jù)用戶打開(kāi)的設(shè)計(jì)輸入文件的類(lèi)型以及用戶當(dāng)前的工作環(huán)境,自動(dòng)地為用戶顯示不同的工具條。當(dāng)然,用戶也可以自定義工具條和快捷命令按鈕。圖4.16工作區(qū)顯示
4.工程導(dǎo)航區(qū)工程導(dǎo)航區(qū)顯示了當(dāng)前工程的絕大部分重要信息,使用戶對(duì)當(dāng)前工程的文件層次結(jié)構(gòu)、所有相關(guān)文檔以及設(shè)計(jì)單元有一個(gè)很清晰的認(rèn)識(shí)。工程導(dǎo)航區(qū)由三個(gè)部分構(gòu)成。
Hierarchy:設(shè)計(jì)實(shí)體的層次結(jié)構(gòu),它清楚地顯示了頂層實(shí)體和各調(diào)用實(shí)體的層次關(guān)系。
Files:顯示所有與當(dāng)前工程相關(guān)聯(lián)的設(shè)計(jì)文件。當(dāng)把鼠標(biāo)放在文件夾中的文件上時(shí),軟件會(huì)自動(dòng)顯示文件所在的絕對(duì)地址。用鼠標(biāo)雙擊文件,則會(huì)在編輯窗口中打開(kāi)該文件。
DesignUnits:當(dāng)前工程中使用的所有設(shè)計(jì)單元。這些單元既包含QuartusⅡ中自帶的設(shè)計(jì)模塊(如乘法器、移位寄存器等),也包含用戶自己設(shè)計(jì)的單元模塊。
5.任務(wù)狀態(tài)區(qū)任務(wù)狀態(tài)區(qū)顯示當(dāng)前工程設(shè)計(jì)已完成的任務(wù)和未完成的任務(wù),并顯示某一任務(wù)執(zhí)行時(shí)的運(yùn)行狀態(tài)和進(jìn)度,完成的任務(wù)打鉤表示。如在執(zhí)行編譯任務(wù)中的分析和綜合時(shí)顯示完成的進(jìn)度百分比。用鼠標(biāo)雙擊某任務(wù)選項(xiàng)就可以直接運(yùn)行該任務(wù)。
6.信息區(qū)信息區(qū)用于顯示系統(tǒng)在編譯、時(shí)序分析過(guò)程中所產(chǎn)生的指示信息。例如,語(yǔ)法信息、編譯成功信息等。信息區(qū)提供五大類(lèi)操作標(biāo)記信息:ExtraInfo、Warning、Info、CriticalWarning以及Error。關(guān)于各類(lèi)信息的描述請(qǐng)見(jiàn)表4.1。用戶可以通過(guò)點(diǎn)擊信息區(qū)的標(biāo)簽來(lái)選擇顯示相應(yīng)的信息,也可以通過(guò)鼠標(biāo)右鍵的彈出菜單選擇顯示或隱藏某類(lèi)信息,從而進(jìn)行個(gè)性化定制。 4.4設(shè)計(jì)輸入
QuartusⅡ軟件支持的設(shè)計(jì)輸入方法包括:
(1)?QuartusⅡ本身具有的編輯器,如原理圖式圖形設(shè)計(jì)輸入,文本編輯輸入(如AHDL、VHDL、Verilog)和內(nèi)存編輯輸入(如hex、mif)。
(2)第三方EDA工具編輯的標(biāo)準(zhǔn)格式文件,如EDIF、HDL、VQM。
(3)采用一些別的方法優(yōu)化和提高輸入的靈活性,如混合設(shè)計(jì)格式,它利用LPM和宏功能模塊來(lái)加速設(shè)計(jì)輸入。
(4)對(duì)應(yīng)的設(shè)計(jì)輸入文件如圖4.17所示。圖4.17QuartusⅡ軟件的設(shè)計(jì)文件自上而下設(shè)計(jì)一個(gè)工程首先需要對(duì)工程的模塊進(jìn)行劃分,一般來(lái)說(shuō),層次劃分應(yīng)遵循以下原則:各模塊的結(jié)構(gòu)應(yīng)盡量簡(jiǎn)單清晰;各模塊功能獨(dú)立、層次一目了然;模塊間的數(shù)據(jù)傳輸簡(jiǎn)單;便于測(cè)試。滿足這些原則有利于提高工程的開(kāi)發(fā)速度和文件的可讀性,而且方便升級(jí)、修改和協(xié)同開(kāi)發(fā)。這里需要指出,模塊功能劃分環(huán)節(jié)對(duì)整個(gè)設(shè)計(jì)是一個(gè)至關(guān)重要的步驟。設(shè)計(jì)者進(jìn)行模塊劃分時(shí)應(yīng)盡量考慮多方面因素,劃分好的功能層次應(yīng)經(jīng)過(guò)反復(fù)論證與驗(yàn)證。一般對(duì)于一個(gè)復(fù)雜工程來(lái)說(shuō),層次劃分階段應(yīng)該分配比較多的時(shí)間,以保證以后各環(huán)節(jié)的設(shè)計(jì)能夠順利進(jìn)行。簡(jiǎn)而言之,應(yīng)該記住這樣一個(gè)非常重要的設(shè)計(jì)原則:“時(shí)序是設(shè)計(jì)出來(lái)的,不是仿出來(lái)的,更不是湊出來(lái)的”。當(dāng)然本章所舉實(shí)例比較簡(jiǎn)單,目的是方便大家掌握一個(gè)工程的詳細(xì)設(shè)計(jì)過(guò)程。本工程要實(shí)現(xiàn)的擴(kuò)頻數(shù)據(jù)操作是將一基帶2Mb/s串行數(shù)據(jù)流分別與本地產(chǎn)生的32Mb/s、16Mb/s的兩路偽隨機(jī)碼串行數(shù)據(jù)流相加,完成數(shù)據(jù)的擴(kuò)頻功能。根據(jù)以上原則和功能描述將工程劃分為時(shí)鐘產(chǎn)生模塊和數(shù)據(jù)產(chǎn)生模塊。時(shí)鐘產(chǎn)生模塊完成32MHz時(shí)鐘信號(hào)的多次分頻功能,得到同源的16MHz、8MHz、2MHz時(shí)鐘信號(hào);數(shù)據(jù)產(chǎn)生模塊從時(shí)鐘產(chǎn)生模塊獲得32MHz、16MHz時(shí)鐘信號(hào)后,分別產(chǎn)生對(duì)應(yīng)速率的兩路偽隨機(jī)碼;將兩路偽隨機(jī)碼與基帶2Mb/s串行數(shù)據(jù)相加,就完成了對(duì)應(yīng)速率的擴(kuò)頻功能。4.4.1創(chuàng)建一個(gè)新的工程
QuartusⅡ編輯器的工作對(duì)象是工程(Project),所以在進(jìn)行一個(gè)邏輯設(shè)計(jì)時(shí),首先要指定該設(shè)計(jì)的工程名稱(chēng),對(duì)于每個(gè)新的工程應(yīng)該建立一個(gè)單獨(dú)的子目錄,如果該子目錄不存在,QuartusⅡ?qū)⒆詣?dòng)創(chuàng)建,以后所有與該工程有關(guān)的文件(包括所有的設(shè)計(jì)文件、配置文件、仿真文件、系統(tǒng)設(shè)置及該設(shè)計(jì)的層次信息)都將存在這個(gè)子目錄下。初學(xué)者切記,每個(gè)設(shè)計(jì)必須有一個(gè)工程名,而且要保證工程名與設(shè)計(jì)文件名一致。啟動(dòng)QuartusⅡ10.0軟件,出現(xiàn)如圖4.18所示的軟件開(kāi)始界面,QuartusⅡ軟件開(kāi)始界面分為開(kāi)始學(xué)習(xí)和開(kāi)始設(shè)計(jì)兩大部分。點(diǎn)擊開(kāi)始學(xué)習(xí)部分的“OpenInteractiveTutorial”開(kāi)始交互式學(xué)習(xí)教程(要接入Internet)。開(kāi)始設(shè)計(jì)部分包括兩個(gè)選擇工具條:創(chuàng)建一個(gè)新工程“CreateaNewProject(NewProjectWizard)”和打開(kāi)一個(gè)已存在的工程“OpenExistingProject”,在“OpenExistingProject”工具條下面是一些最近設(shè)計(jì)的工程列舉,鼠標(biāo)雙擊就可直接打開(kāi)對(duì)應(yīng)的工程。點(diǎn)擊右上角的×可以關(guān)閉QuartusⅡ軟件開(kāi)始界面。圖4.18QuartusⅡ10.0軟件開(kāi)始界面創(chuàng)建一個(gè)新工程的方法步驟如下:
(1)啟動(dòng)QuartusⅡ10.0軟件,在圖4.18所示的軟件開(kāi)始界面中,鼠標(biāo)點(diǎn)擊“CreateaNewProject(NewProjectWizard)”開(kāi)始創(chuàng)建一個(gè)新工程向?qū)?,或者在File菜單中選擇“NewProjectWizard…”項(xiàng)開(kāi)始創(chuàng)建一個(gè)新工程向?qū)?,第一次?huì)出現(xiàn)介紹頁(yè),如圖4.19所示。圖4.19菜單中啟動(dòng)創(chuàng)建新工程向?qū)?/p>
(2)點(diǎn)擊“Next”按鈕,將出現(xiàn)NewProjectWizard對(duì)話框的第一頁(yè)。在相應(yīng)的對(duì)話框中輸入工程的目錄、名稱(chēng)以及頂層實(shí)體名稱(chēng),如目錄為D:/altera/10.0/study,工程名稱(chēng)為“SpreadSpectrum”,缺省情況下輸入的工程名同時(shí)出現(xiàn)在頂層實(shí)體名對(duì)話框中,頂層實(shí)體名也可以與工程名不同,如圖4.20所示。圖4.20工程目錄、名稱(chēng)以及頂層實(shí)體名
(3)點(diǎn)擊“Next”按鈕,如果目錄不存在,提示是否創(chuàng)建,點(diǎn)擊“Yes”按鈕,出現(xiàn)NewProjectWizard第二頁(yè):添加設(shè)計(jì)文件。本例中由于“SpreadSpectrum”為新工程,因此內(nèi)容為空,如果設(shè)計(jì)人員已經(jīng)預(yù)先輸入了設(shè)計(jì)文件和其它源文件,就可以通過(guò)文件名的瀏覽按鈕選擇文件,然后添加到工程。點(diǎn)擊“AddAll”按鈕,可增加所有的設(shè)計(jì)文件到工程,如圖4.21所示。圖4.21添加設(shè)計(jì)文件
(4)點(diǎn)擊“Next”按鈕,出現(xiàn)NewProjectWizard第三頁(yè)(如圖4.22所示),選擇本工程所使用的器件。用戶可以通過(guò)“Family”選擇器件系列,“Package”選擇器件的封裝形式,“Pincount”選擇器件的引腳數(shù),“Speedgrade”選擇器件的速度等級(jí),這些選項(xiàng)可以縮小可用器件列表的范圍,以便快速找到需要的目標(biāo)器件;或者直接點(diǎn)擊“Availabledevices”列表中的某一器件,確定用戶所需要的器件;也可在“目標(biāo)器件”選項(xiàng)中選擇由適配器自動(dòng)選擇最合適的器件。圖4.22選擇器件
(5)點(diǎn)擊“Next”按鈕,出現(xiàn)NewProjectWizard第四頁(yè)(如圖4.23所示),指定第三方EDA工具軟件。圖4.23指定第三方EDA工具軟件
(6)點(diǎn)擊“Next”按鈕,出現(xiàn)NewProjectWizard概要(如圖4.24所示),如果需要修改設(shè)置,可以點(diǎn)擊“Back”按鈕返回上一層,核實(shí)無(wú)誤后點(diǎn)擊“Finish”按鈕,則“SpreadSpectrum”出現(xiàn)在工程導(dǎo)航窗口層次欄中,新工程創(chuàng)建指導(dǎo)完成。圖4.24新工程的設(shè)置概要4.4.2頂層實(shí)體文件的建立
QuartusⅡ支持的設(shè)計(jì)輸入文件包括文本和圖形兩種形式。這兩種輸入形式有各自的優(yōu)點(diǎn),在工程設(shè)計(jì)時(shí)可以結(jié)合使用。文本設(shè)計(jì)輸入方法使用硬件描述語(yǔ)言進(jìn)行設(shè)計(jì),控制非常靈活,適合于復(fù)雜的邏輯控制和子模塊的設(shè)計(jì)。QuartusⅡ支持AHDL、VHDL和VerilogHDL等硬件描述語(yǔ)言。AHDL是AlteraHardwareDescriptionLanguage的縮寫(xiě),它是一種高級(jí)硬件描述語(yǔ)言,該語(yǔ)言可以使用布爾方程、算術(shù)關(guān)系運(yùn)算表達(dá)式、真值表、條件語(yǔ)句等方式進(jìn)行描述,適合于大型的、復(fù)雜的狀態(tài)機(jī)設(shè)計(jì)。VHDL和VerilogHDL是符合IEEE標(biāo)準(zhǔn)的高級(jí)硬件描述語(yǔ)言,也都適合于大型的、復(fù)雜的設(shè)計(jì)。這些語(yǔ)言都是用文本來(lái)進(jìn)行設(shè)計(jì)的,它們的輸入方式既有共同之處,又各有特點(diǎn),設(shè)計(jì)人員可以根據(jù)實(shí)際情況選擇使用。圖形設(shè)計(jì)輸入方法形象直觀,使用方便,適用于頂層和高層次實(shí)體的構(gòu)造以及固定器件的調(diào)用。QuartusⅡ自帶了基本邏輯塊、參數(shù)化模塊庫(kù)和IP功能模塊,而且用戶可以自定義生成圖元模塊,這樣就可以極大地縮短設(shè)計(jì)周期和簡(jiǎn)化設(shè)計(jì)復(fù)雜度。QuartusⅡ中常見(jiàn)的圖元庫(kù)有:Magefunctions庫(kù)(宏功能高級(jí)模塊)、Primitives庫(kù)、Altera基元(基本邏輯塊)庫(kù)、MaxplusⅡ庫(kù)(MaxplusⅡ的元件庫(kù))、Project庫(kù)(當(dāng)前工程中生成的圖元模塊)。
1.新建圖形設(shè)計(jì)輸入文件
QuartusⅡ10.0軟件中,在上面“SpreadSpectrum”工程打開(kāi)的情況下,在“File\New”所示窗口中選擇BlockDiagram/SchematicFile,如圖4.25所示。圖4.25新建圖形設(shè)計(jì)文件圖4.26圖形設(shè)計(jì)文件輸入界面及按鈕功能說(shuō)明
2.創(chuàng)建模塊
(1)點(diǎn)擊工具欄中的模塊按鈕,用攜帶模塊工具的鼠標(biāo)箭頭在圖形輸入文件工作內(nèi)空白區(qū),按下鼠標(biāo)左鍵,斜著拖動(dòng)鼠標(biāo),調(diào)整到適當(dāng)位置時(shí),松開(kāi)鼠標(biāo)左鍵,就在該位置插入了一個(gè)新模塊,如圖4.27所示。圖4.27新建模塊符號(hào)
(2)在該新模塊上單擊鼠標(biāo)右鍵,選擇“properties”項(xiàng),打開(kāi)模塊屬性設(shè)置對(duì)話框,首先顯示的是“General”項(xiàng),可修改模塊名稱(chēng)。這里將該模塊命名為時(shí)鐘產(chǎn)生模塊“ClockGenerate”,如圖4.28所示。圖4.28打開(kāi)模塊屬性設(shè)置對(duì)話框
(3)模塊屬性設(shè)置對(duì)話框除中“General”項(xiàng)可設(shè)置模塊名、實(shí)例名外,還包括“I/Os”、“Parameter”、“Format”三項(xiàng),可以分別設(shè)置I/O端口、參數(shù)、模塊外觀等。模塊屬性中的I/O端口設(shè)置方法為:點(diǎn)擊“I/Os”項(xiàng),出現(xiàn)如圖4.29左邊所示對(duì)話框,雙擊“Name”下面輸入框中的默認(rèn)字符“<New>”,輸入本模塊設(shè)計(jì)的輸入或輸出端口,在“Type”中選擇該端口類(lèi)型為輸入、輸出或雙向。輸入完一個(gè)端口后,用同樣的方法輸入該模塊其它所有的端口。輸入完成后的結(jié)果如圖4.29右邊所示。偽隨機(jī)數(shù)據(jù)產(chǎn)生模塊(PNdataGenerate)的創(chuàng)建設(shè)置方法完全類(lèi)似,這里就不詳細(xì)介紹了。創(chuàng)建完成的模塊如圖4.30所示。圖4.29新模塊I/O端口設(shè)置圖4.30創(chuàng)建完成的模塊
3.模塊間的連接和映射模塊間的連接有以下三種形式,設(shè)計(jì)者可以根據(jù)設(shè)計(jì)需要和自己的設(shè)計(jì)習(xí)慣決定具體選用哪種形式。
NodeLine(節(jié)點(diǎn)線):用于連接串行I/O端口;
BusLine(總線):用于連接并行I/O端口;
ConduitLine(管道線):當(dāng)模塊間傳遞的信號(hào)既有并行總線又有串行1比特信號(hào)時(shí),就可以用一個(gè)管道完成模塊間連接關(guān)系的映射描述。通常來(lái)說(shuō),管道的功能是連接線和總線功能的集合。下面以時(shí)鐘產(chǎn)生模塊“ClockGenerate”的連接和映射為例,介紹模塊的映射關(guān)系。
(1)將鼠標(biāo)移至模塊圖形邊沿時(shí)鼠標(biāo)箭頭會(huì)變?yōu)檫B接狀態(tài),拖動(dòng)鼠標(biāo)畫(huà)出一條連線,在模塊圖形上會(huì)自動(dòng)出現(xiàn)一個(gè)I/O端口,如圖4.31所示。默認(rèn)情況下,連線的形式是管道形式,I/O端口的屬性是雙向端口(BIDIR—bidirection的縮寫(xiě))。
(2)雙擊圖4.31中連接管道線的端口符號(hào)或在模塊上單擊鼠標(biāo)右鍵選擇“MapperProperties”,就可以打開(kāi)端口映射關(guān)系設(shè)置對(duì)話框,如圖4.32所示。ClockGenerate模塊輸入端口只有一個(gè)信號(hào)clk_32MHz,選擇連接端口類(lèi)型Type為INPUT。圖4.31模塊的連接線圖4.32打開(kāi)端口映射屬性設(shè)置對(duì)話框
(3)在“MapperProperties”設(shè)置對(duì)話框中,點(diǎn)擊“Mappings”項(xiàng),雙擊“I/OonBlock”下面輸入框中的默認(rèn)字符“<New>”,選擇輸入本模塊設(shè)計(jì)的輸入或輸出端口,這里選擇“clk_32MHz”輸入,在管道中的信號(hào)“SignalinConduit”輸入框中輸入信號(hào)名稱(chēng),這里也輸入clk_32MHz表示該信號(hào)名稱(chēng),如圖4.33所示。輸入完一個(gè)端口后,如果還有其它輸入端口,可用同樣的方法輸入該模塊其它所有的輸入端口。輸入完成后點(diǎn)擊“OK”按鈕,其結(jié)果如圖4.34所示。圖4.33端口映射屬性設(shè)置圖4.34輸入端口映射屬性
(4)輸出管道連接及端口映射屬性設(shè)置方法與輸入設(shè)置方法類(lèi)似,重復(fù)上面(1)~(3)步完成ClockGenerate模塊輸出管道連接及端口映射屬性設(shè)置。偽隨機(jī)數(shù)據(jù)產(chǎn)生模塊(PNdataGenerate)的輸入和輸出管道連接及端口映射屬性設(shè)置方法完全相同。模塊設(shè)置完成的結(jié)果如圖4.35所示。圖4.35模塊管道連接及端口映射屬性設(shè)置結(jié)果
4.引腳輸入模塊文件的完成,還需要輸入模塊的輸出和輸入引腳。引腳的輸入是采用插入元器件符號(hào)的方法。
(1)用鼠標(biāo)雙擊圖形輸入文件的空白處或點(diǎn)擊工具欄中的按鈕,出現(xiàn)一個(gè)Symbol對(duì)話框。在符號(hào)庫(kù)Libraries框中點(diǎn)擊“+”按鈕,展開(kāi)c:/Altera/10.0sp1/quartus/libraries/文件夾,同樣展開(kāi)primitives\pin文件夾。在pin文件夾中選擇input圖元,在Symbol對(duì)話框中就出現(xiàn)input圖元的預(yù)覽,也可直接在圖元名稱(chēng)對(duì)話框中輸入input,如圖4.36所示。點(diǎn)擊“OK”按鈕后,在所希望的地方點(diǎn)擊左鍵,即可插入input圖元。如果在Symbol對(duì)話框選中Repeat-insertmode,則可重復(fù)插入多個(gè)input引腳圖元;或者在圖形輸入文件中選中要復(fù)制的內(nèi)容(模塊或符號(hào)),按住Ctrl和鼠標(biāo)左鍵并拖動(dòng)鼠標(biāo),在新地方松開(kāi)鼠標(biāo)左鍵,完成選中內(nèi)容的復(fù)制。圖形輸入文件中的任何符號(hào)均可進(jìn)行復(fù)制。圖4.36引腳輸入
(2)輸出引腳的輸入方法也一樣,只是在Symbol對(duì)話框的Libraries\primitives\pin文件夾中選擇output圖元。
(3)修改引腳名稱(chēng)。上面插入的引腳名稱(chēng)都為默認(rèn)的,為了將引腳和模塊或符號(hào)的輸入輸出節(jié)點(diǎn)對(duì)應(yīng),也為了容易區(qū)分引腳功能,需要對(duì)引腳進(jìn)行命名。雙擊引腳名稱(chēng)可直接修改,或在引腳上點(diǎn)擊右鍵,選擇“Properties”項(xiàng),打開(kāi)引腳屬性對(duì)話框,輸入引腳名稱(chēng)。如本例中輸入引腳命名為clk_32MHz,如圖4.37所示。圖4.37引腳命名圖4.38完成設(shè)置連接和映射關(guān)系后的圖形設(shè)計(jì)輸入文件4.4.3子模塊文件的建立
1.創(chuàng)建子模塊的下層設(shè)計(jì)輸入文件將鼠標(biāo)移至需要?jiǎng)?chuàng)建下層設(shè)計(jì)輸入文件的子模塊上方,如時(shí)鐘產(chǎn)生模塊,單擊右鍵選擇“CreateDesignFileformSelectedBlock”,如圖4.39所示,對(duì)該模塊的設(shè)計(jì)輸入文件進(jìn)行創(chuàng)建。出現(xiàn)文件類(lèi)型選擇對(duì)話框。創(chuàng)建過(guò)程中,各模塊設(shè)計(jì)輸入文件的形式可以是多樣的,既可以是文本形式也可以是原理圖輸入形式,用戶可以根據(jù)設(shè)計(jì)的需要進(jìn)行選擇。本例中選擇schematic原理圖輸入形式,并選中“將新文件加入當(dāng)前工程中”,如圖4.40所示。點(diǎn)擊“OK”按鈕后,出現(xiàn)空白的原理圖設(shè)計(jì)輸入文件界面,與頂層實(shí)體文件中創(chuàng)建的圖形設(shè)計(jì)輸入文件界面一樣,各種設(shè)計(jì)輸入方法也一樣,只是本文件為本工程的子模塊下層設(shè)計(jì)輸入文件。圖4.39創(chuàng)建子模塊的下層設(shè)計(jì)輸入文件圖4.40選擇時(shí)鐘產(chǎn)生模塊的設(shè)計(jì)輸入文件類(lèi)型(原理圖)4.4.3子模塊文件的建立
1.創(chuàng)建子模塊的下層設(shè)計(jì)輸入文件將鼠標(biāo)移至需要?jiǎng)?chuàng)建下層設(shè)計(jì)輸入文件的子模塊上方,如時(shí)鐘產(chǎn)生模塊,單擊右鍵選擇“CreateDesignFileformSelectedBlock”,如圖4.39所示,對(duì)該模塊的設(shè)計(jì)輸入文件進(jìn)行創(chuàng)建。出現(xiàn)文件類(lèi)型選擇對(duì)話框。創(chuàng)建過(guò)程中,各模塊設(shè)計(jì)輸入文件的形式可以是多樣的,既可以是文本形式也可以是原理圖輸入形式,用戶可以根據(jù)設(shè)計(jì)的需要進(jìn)行選擇。本例中選擇schematic原理圖輸入形式,并選中“將新文件加入當(dāng)前工程中”,如圖4.40所示。點(diǎn)擊“OK”按鈕后,出現(xiàn)空白的原理圖設(shè)計(jì)輸入文件界面,與頂層實(shí)體文件中創(chuàng)建的圖形設(shè)計(jì)輸入文件界面一樣,各種設(shè)計(jì)輸入方法也一樣,只是本文件為本工程的子模塊下層設(shè)計(jì)輸入文件。
2.輸入元器件
QuartusⅡ軟件的元器件符號(hào)庫(kù)提供實(shí)現(xiàn)各種功能的元器件符號(hào),包括圖元(Primitive)、LPM(LibraryofParameterizedModules)函數(shù)和宏功能(Macrofunction)符號(hào)。第5章將詳細(xì)介紹QuartusⅡ軟件的元器件符號(hào)庫(kù)中各種功能模塊作用及使用方法,作為設(shè)計(jì)者使用時(shí)的參考,這里只介紹其輸入方法。在4.4.2節(jié)頂層實(shí)體文件的建立中詳細(xì)介紹了模塊符號(hào)的輸入方法,模塊符號(hào)設(shè)計(jì)輸入文件和原理圖設(shè)計(jì)輸入文件都是以?.bdf為后綴的同一種類(lèi)型的設(shè)計(jì)輸入文件,這些?.bdf文件既能包含模塊符號(hào)又能包含原理圖符號(hào)。實(shí)際4.4.1節(jié)頂層實(shí)體文件中最后引腳的輸入方法就是一種元器件符號(hào)輸入方法。元器件符號(hào)輸入方法是原理圖設(shè)計(jì)輸入方法中的重點(diǎn),這里對(duì)其輸入過(guò)程再進(jìn)行詳細(xì)介紹,并對(duì)整個(gè)原理圖設(shè)計(jì)輸入方法進(jìn)行整體介紹,方便初學(xué)者掌握。這里的時(shí)鐘產(chǎn)生電路主要需要用D觸發(fā)器和非門(mén)實(shí)現(xiàn)分頻器功能,其原理圖設(shè)計(jì)輸入過(guò)程如下:
(1)在上一步打開(kāi)的時(shí)鐘產(chǎn)生模塊的空白原理圖設(shè)計(jì)輸入文件界面中的工作區(qū)中,用鼠標(biāo)雙擊空白處或點(diǎn)擊工具欄中按鈕,出現(xiàn)一個(gè)Symbol對(duì)話框。在符號(hào)庫(kù)Libraries框中點(diǎn)擊“+”按鈕,展開(kāi)c:/Altera/10.0sp1/quartus/libraries/文件夾,同樣展開(kāi)primitives\storage文件夾。在storage文件夾中選擇D觸發(fā)器的圖元符號(hào)dff,在Symbol對(duì)話框中就出現(xiàn)dff圖元的預(yù)覽,也可直接在圖元名稱(chēng)對(duì)話框中輸入dff,如圖4.41所示。點(diǎn)擊“OK”按鈕后,在所希望的地方單擊左鍵,即可插入dff圖元。如果在Symbol對(duì)話框選中Repeat-insertmode,則可重復(fù)插入多個(gè)dff圖元符號(hào);或者在圖形輸入文件中選中要復(fù)制的內(nèi)容(模塊或符號(hào)),按住Ctrl和鼠標(biāo)左鍵并拖動(dòng)鼠標(biāo),在新地方松開(kāi)鼠標(biāo)左鍵,即可完成選中內(nèi)容的復(fù)制,圖形輸入文件中的任何內(nèi)容均可進(jìn)行復(fù)制。這里需要4個(gè)D觸發(fā)器。圖4.41D觸發(fā)器圖元dff輸入
(2)非門(mén)及輸入、輸出引腳的輸入。其方法也與D觸發(fā)器的輸入方法一樣,只是非門(mén)在Symbol對(duì)話框的Libraries\primitives\logic文件夾中選擇not圖元,輸入、輸出引腳在Symbol對(duì)話框的Libraries\primitives\pin文件夾中選擇input、output圖元。本例中輸入4個(gè)非門(mén)、1個(gè)輸入引腳和3個(gè)輸出引腳。如果需要輸入復(fù)雜的參數(shù)化宏功能模塊符號(hào),在以上步驟中還需要進(jìn)行相應(yīng)的參數(shù)設(shè)置,其使用方法參考第5章QuartusⅡ元器件庫(kù)的介紹。
(3)修改圖元符號(hào)的名稱(chēng)。上面插入的D觸發(fā)器、非門(mén)及引腳名稱(chēng)都為默認(rèn)的,一般元器件符號(hào)就可以使用默認(rèn)名稱(chēng),可以不進(jìn)行修改。而為了將引腳和模塊或符號(hào)的輸入、輸出節(jié)點(diǎn)對(duì)應(yīng),也為了容易區(qū)分引腳功能,方便后面的分析、仿真、測(cè)試等使用,通常需要對(duì)引腳進(jìn)行自定義命名。雙擊元器件符號(hào)名稱(chēng)可直接修改,或在元器件符號(hào)上點(diǎn)擊右鍵,選擇“Properties”項(xiàng),打開(kāi)元器件符號(hào)屬性對(duì)話框,輸入所希望的元器件符號(hào)名稱(chēng),如圖4.42所示。如本例中輸入引腳也命名為clk_32MHz,和頂層實(shí)體文件中的模塊符號(hào)中的clk_32MHz輸入信號(hào)相對(duì)應(yīng),表示兩個(gè)引腳是同一個(gè)信號(hào)。三個(gè)輸出引腳分別命名為clk_16MHz、clk_8MHz、clk_2MHz。圖4.42元器件符號(hào)命名
(4)改變?cè)骷?hào)方向。為了元器件間連接時(shí)的美觀和方便,有時(shí)需要改變?cè)骷姆较颉T谠骷?hào)上單擊鼠標(biāo)左鍵,按Ctrl鍵后連續(xù)點(diǎn)擊多個(gè)元器件,可選中多個(gè)元器件,點(diǎn)擊快捷菜單欄中最后三個(gè)改變方向圖標(biāo),分別實(shí)現(xiàn)水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)和左轉(zhuǎn)90°功能,或者在選中的元器件上點(diǎn)擊右鍵,選擇方向改變菜單項(xiàng),可以根據(jù)需要改變?cè)骷?hào)方向,如圖4.43所示。圖4.43改變?cè)骷?hào)方向
3.連接元器件如圖4.26中所示,元器件連接線快捷工具圖標(biāo)中的直角連接線工具是用來(lái)連接元器件串行信號(hào)的,在線路拐彎處呈現(xiàn)直角,同理,直角總線工具是用來(lái)連接并行總線數(shù)據(jù)流的,而對(duì)角線和對(duì)角總線工具是在任意兩點(diǎn)之間進(jìn)行直線連接的。根據(jù)需要的連接方式點(diǎn)擊相應(yīng)的快捷工具圖標(biāo)進(jìn)行元器件之間的連接。在不點(diǎn)擊快捷工具圖標(biāo)的情況下,如果鼠標(biāo)移動(dòng)到元器件符號(hào)的輸入或輸出端,則系統(tǒng)默認(rèn)為直角連接線方式,并在鼠標(biāo)箭頭符號(hào)旁邊出現(xiàn)直角連接線工具圖標(biāo)。在元器件的輸入、輸出端按下鼠標(biāo)左鍵,拖動(dòng)鼠標(biāo)到目標(biāo)器件端口,松開(kāi)鼠標(biāo)左鍵,就畫(huà)出了直線連接線。其中快捷工具圖標(biāo)中的橡皮筋連接線工具比較實(shí)用,在橡皮筋連接線工具被選中的情況下,移動(dòng)任何元器件時(shí)其連接線都隨其伸縮,始終保持連接關(guān)系。時(shí)鐘模塊的原理圖設(shè)計(jì)輸入文件ClockGenerate.bdf元器件連接后的結(jié)果如圖4.44所示。圖4.44時(shí)鐘模塊的原理圖設(shè)計(jì)輸入文件
4.其它子模塊文件的輸入偽隨機(jī)數(shù)據(jù)產(chǎn)生子模塊(PNdataGenerate)的原理圖設(shè)計(jì)輸入文件的輸入與時(shí)鐘模塊(ClockGenerate)的原理圖設(shè)計(jì)輸入文件的輸入方法一樣。這里產(chǎn)生兩路偽隨機(jī)碼,上面一路的輸入時(shí)鐘速率為16MHz,利用5個(gè)D觸發(fā)器作為五級(jí)移位寄存器,根據(jù)適當(dāng)?shù)姆答佅禂?shù)實(shí)現(xiàn)31位的m序列,從輸出引腳data_16M循環(huán)輸出。下面一路數(shù)據(jù)采用八位移位寄存器74165,用戶可任意設(shè)置其8位數(shù)據(jù)值,作為另一路data_32M的數(shù)據(jù)輸出,還可以用n個(gè)74165串聯(lián)實(shí)現(xiàn)n個(gè)8位的任意數(shù)據(jù)產(chǎn)生電路。本電路的具體原理可參看第8章設(shè)計(jì)實(shí)例中的相關(guān)電路說(shuō)明。其中CLRN輸入信號(hào)為復(fù)位信號(hào),當(dāng)它為低電平時(shí),全部清零,為高電平時(shí)開(kāi)始工作。輸入完成后的偽隨機(jī)數(shù)據(jù)產(chǎn)生模塊的原理圖設(shè)計(jì)輸入文件如圖4.45所示。在為各模塊分別創(chuàng)建下層設(shè)計(jì)輸入文件時(shí),必須要注意測(cè)試端口的預(yù)留問(wèn)題。一般情況下,往往需要對(duì)關(guān)鍵信號(hào),例如時(shí)鐘信號(hào)、使能信號(hào)、控制信號(hào)、關(guān)鍵的中間信號(hào)等進(jìn)行測(cè)試,以保證系統(tǒng)能夠可靠工作。正因?yàn)檫@些信號(hào)的測(cè)試工作十分重要且必不可少,所以建議在設(shè)計(jì)輸入階段就事先設(shè)計(jì)好測(cè)試方案,并安排好測(cè)試端口,以方便以后的功能測(cè)試和硬件調(diào)試,避免重復(fù)工作。圖4.45偽隨機(jī)數(shù)據(jù)產(chǎn)生模塊的原理圖設(shè)計(jì)輸入文件圖4.46完成的頂層設(shè)計(jì)輸入文件
5.利用宏模塊向?qū)Р迦牍芾砥髟谠O(shè)計(jì)文件中經(jīng)常要用到參數(shù)化宏功能模塊,上面介紹了其輸入方法可以和一般的元器件輸入方法一樣,然后針對(duì)不同的應(yīng)用設(shè)置不同的參數(shù),不同的參數(shù)化宏功能模塊具體參數(shù)設(shè)置方法在第5章說(shuō)明。這里再詳細(xì)介紹一種參數(shù)化宏功能模塊輸入設(shè)計(jì)方法,就是利用宏模塊向?qū)Р迦牍芾砥鲃?chuàng)建用戶定制的宏功能模塊。創(chuàng)建一個(gè)參數(shù)化乘法器宏功能模塊的方法步驟如下。
(1)打開(kāi)宏模塊向?qū)Р迦牍芾砥?。在QuartusⅡ軟件的Tool菜單中,選擇MegawizardPlug–InManager子菜單項(xiàng),出現(xiàn)宏模塊向?qū)Р迦牍芾砥鲗?duì)話框的首頁(yè),選中第一項(xiàng)“創(chuàng)建一個(gè)新的宏功能模塊”,如圖4.47所示。圖4.47打開(kāi)宏模塊向?qū)Р迦牍芾砥?/p>
(2)點(diǎn)擊“Next”按鈕,出現(xiàn)宏模塊向?qū)Р迦牍芾砥鲗?duì)話框的第二頁(yè)。在最左邊一欄中選擇需要定制的宏功能模塊,擴(kuò)展Arithmetic項(xiàng),在其下面選中LPM-MULT參數(shù)化乘法器模塊,在右上角下拉選項(xiàng)中選擇需要使用的器件序列,如選擇CycloneⅡ,在輸出文件類(lèi)型中可選VHDL,在輸出文件名框中,在默認(rèn)的目錄下直接輸入mult,如圖4.48所示。
(3)點(diǎn)擊“Next”按鈕,出現(xiàn)宏模塊向?qū)Р迦牍芾砥鲗?duì)話框的第三頁(yè)—乘法器參數(shù)設(shè)置頁(yè)??梢栽O(shè)置乘法器數(shù)據(jù)a和數(shù)據(jù)b的總線寬度,這里選擇其數(shù)據(jù)寬度為8位,輸出結(jié)果的數(shù)據(jù)寬度選中自動(dòng)計(jì)算的寬度,為16位,也可以嚴(yán)格限制寬度,如圖4.49所示。圖4.48選定參數(shù)化宏功能模塊圖4.49乘法器數(shù)據(jù)寬度設(shè)置圖4.50乘法器乘法類(lèi)型設(shè)置
(5)點(diǎn)擊“Next”按鈕,出現(xiàn)宏模塊向?qū)Р迦牍芾砥鲗?duì)話框的第五頁(yè),主要是管線功能設(shè)置,這里選擇需要管線功能,時(shí)鐘等待為兩個(gè)周期,其它選項(xiàng)用默認(rèn)值,如圖4.51所示。
(6)點(diǎn)擊“Next”按鈕,出現(xiàn)宏模塊向?qū)Р迦牍芾砥鲗?duì)話框的第六頁(yè),查看仿真模型文件,點(diǎn)擊“Next”按鈕。出現(xiàn)第七頁(yè)宏模塊向?qū)Р迦牍芾砥鞯目偨Y(jié)頁(yè)面,選中第三項(xiàng)符號(hào)文件mult.bsf,第二項(xiàng)為默認(rèn)選中,如圖4.52所示。點(diǎn)擊“Finish”按鈕,完成用戶定制的宏功能模塊,返回到設(shè)計(jì)輸入文件窗口。圖4.51乘法器管線功能設(shè)置圖4.52宏模塊向?qū)Р迦牍芾砥鞯目偨Y(jié)頁(yè)面
(7)在設(shè)計(jì)輸入文件窗口時(shí),就可以像輸入其它元器件一樣輸入上面用戶定制的mult乘法器功能模塊符號(hào)了。在原理圖設(shè)計(jì)輸入文件界面中的工作區(qū)中,用鼠標(biāo)雙擊空白處,在Symbol對(duì)話框中。在符號(hào)庫(kù)libraries框中點(diǎn)擊“+”按鈕,擴(kuò)展Project文件夾,出現(xiàn)本工程中用戶生成的元器件符號(hào),選中mult,在Symbol對(duì)話框中就出現(xiàn)mult符號(hào)的預(yù)覽,如圖4.53所示。點(diǎn)擊“OK”按鈕后,在所希望的地方點(diǎn)擊左鍵,即可插入定制的乘法器mult符號(hào),連接到電路中就可以完成所設(shè)置的乘法器功能了。圖4.53插入定制的宏功能模塊符號(hào)
6.文件生成符號(hào)
QuartusⅡ軟件能夠?qū)⒃O(shè)計(jì)輸入文件生成用戶自定義的元器件符號(hào),可在其上層設(shè)計(jì)中進(jìn)行調(diào)用,其調(diào)用插入方法與QuartusⅡ軟件本身提供的元器件庫(kù)中的圖元符號(hào)使用方法一樣。這種應(yīng)用方法也可當(dāng)作“自下而上”的設(shè)計(jì)方法。但需注意,用戶自己設(shè)計(jì)的文件生成的元器件,不能在該設(shè)計(jì)文件中調(diào)用該元件符號(hào),即自己不能調(diào)用自己。如可將上面設(shè)計(jì)的偽隨機(jī)數(shù)據(jù)產(chǎn)生子模塊(PNdataGenerate)和時(shí)鐘子模塊(ClockGenerate)的原理圖設(shè)計(jì)輸入文件生成為元器件符號(hào)。圖4.54模塊設(shè)計(jì)輸入文件生成圖元符號(hào)模塊符號(hào)文件生成后,就可以在其上層文件或其它文件中進(jìn)行調(diào)用。自己生成的時(shí)鐘模塊(ClockGenerate)圖元符號(hào)的調(diào)用方法也和插入其它元器件圖元符號(hào)的方法一樣。如本例,在頂層設(shè)計(jì)輸入文件界面中的工作區(qū)中,用鼠標(biāo)雙擊空白處或點(diǎn)擊工具欄中按鈕,出現(xiàn)一個(gè)Symbol對(duì)話框。在符號(hào)庫(kù)project框中點(diǎn)擊“+”按鈕,擴(kuò)展project文件夾,出現(xiàn)本工程中用戶生成的圖元符號(hào)文件名,選中需要使用的圖元符號(hào),如ClockGenerate,如圖4.55所示。點(diǎn)擊“OK”按鈕即可插入。圖4.55時(shí)鐘模塊(ClockGenerate)生成的圖元符號(hào)另外,對(duì)于復(fù)雜的設(shè)計(jì),為了使其具有較強(qiáng)的可讀性,往往要在設(shè)計(jì)輸入中加上注釋?zhuān)驗(yàn)樨S富的注釋有助于日后對(duì)設(shè)計(jì)進(jìn)行修改維護(hù),也便于其它人的閱讀。在文本輸入法中加注釋語(yǔ)句的方法:
AHDL的注釋規(guī)則是語(yǔ)句前加百分號(hào)“%”的視為注釋語(yǔ)句,綜合時(shí)忽略該句。
VHDL的注釋規(guī)則是語(yǔ)句前含“--”符號(hào)的視為注釋。
VerilogHDL中有兩種形式的注釋規(guī)則:第一種形式將注釋語(yǔ)句放于“/**/”之間,與C語(yǔ)言相同,另一種規(guī)則是注釋語(yǔ)句以“//”符號(hào)開(kāi)頭直至本行結(jié)束。原理圖設(shè)計(jì)輸入法的注釋方法比較簡(jiǎn)單:鼠標(biāo)點(diǎn)擊希望進(jìn)行注釋的空白處,然后輸入注釋內(nèi)容,默認(rèn)情況下,輸入的文本文件為綠色。原理圖輸入法還提供了圖形注釋工具,用戶可以通過(guò)直線、弧線、圓形、矩形工具使自己的設(shè)計(jì)注釋更形象。設(shè)計(jì)輸入完成后,如果設(shè)計(jì)不存在任何問(wèn)題,QuartusⅡ軟件中的后續(xù)步驟是編譯設(shè)計(jì)(CompileDesign),編譯設(shè)計(jì)部分包括分析與綜合(Analysis&Synthesis)、適配或布局布線(FitterorPlace&Route)、編程文件生成(AssemblerorGenerateProgrammingfiles)、時(shí)序分析(TimeQuestTimingAnalysis)等過(guò)程,在默認(rèn)編譯設(shè)計(jì)約束條件下,編譯設(shè)計(jì)過(guò)程可以用計(jì)算機(jī)自動(dòng)完成。最后再進(jìn)行器件的編程(ProgramDevice)下載,將整個(gè)設(shè)計(jì)編程下載到所選的PLD器件中去,整個(gè)設(shè)計(jì)過(guò)程就完成了。 4.5編譯設(shè)計(jì)設(shè)計(jì)輸入完成后,QuartusⅡ軟件中的后續(xù)步驟是編譯設(shè)計(jì)(CompileDesign)。編譯設(shè)計(jì)部分包括分析與綜合(Analysis&Synthesis)、適配或布局布線(FitterorPlace&Route)、編程文件生成(AssemblerorGenerateProgrammingfiles)等過(guò)程。分析與綜合檢查設(shè)計(jì)并對(duì)邏輯進(jìn)行綜合,適配就是在器件中進(jìn)行布局布線,Assembler產(chǎn)生編程文件。QuartusⅡ軟件在編譯設(shè)計(jì)完成后進(jìn)行時(shí)序分析(TimeQuestTimingAnalysis)和器件編程(ProgramDevice)下載,整個(gè)設(shè)計(jì)過(guò)程就完成了。
QuartusⅡ軟件的編譯設(shè)計(jì)流程如圖4.56所示。編譯設(shè)計(jì)過(guò)程可以用一個(gè)菜單命令StartCompilation一次性進(jìn)行,也可以在Start菜單中分多步進(jìn)行。圖4.56QuartusⅡ的標(biāo)準(zhǔn)編譯設(shè)計(jì)流程4.5.1編譯設(shè)置編譯設(shè)計(jì)的條件設(shè)置使用Settings對(duì)話框,在主窗口的Assignments菜單中選中Settings項(xiàng),就打開(kāi)了Settings對(duì)話框。Settings對(duì)話框?qū)嶋H上是一個(gè)全局的配置約束工具,涵蓋了大部分的配置約束屬性,功能非常強(qiáng)大。它包括工程的基本屬性、庫(kù)設(shè)置、文件設(shè)置、Timming設(shè)置、EDA工具設(shè)置、編譯設(shè)置、分析和綜合設(shè)置、仿真器、適配器、Timming分析器、軟件開(kāi)發(fā)設(shè)置、功率分析設(shè)置等大部分內(nèi)容,如圖4.57所示。圖4.57Settings對(duì)話框
1.編譯過(guò)程設(shè)置通過(guò)CompilationProcessSettings可以對(duì)編譯過(guò)程進(jìn)行設(shè)置,包括指定智能編譯選項(xiàng),在編譯過(guò)程中保留節(jié)點(diǎn)名稱(chēng),運(yùn)行Assembler,漸進(jìn)式編譯或綜合,并且保存節(jié)點(diǎn)級(jí)的網(wǎng)表,導(dǎo)出版本兼容數(shù)據(jù)庫(kù),顯示實(shí)體名稱(chēng),使能或者禁止OpenCorePlus評(píng)估功能,還可以為生成早期時(shí)序估算提供選項(xiàng)。合理設(shè)置編譯過(guò)程選項(xiàng)可以減少編譯時(shí)間。在左邊類(lèi)型欄中點(diǎn)擊“CompilationProcessSettings”,打開(kāi)編譯過(guò)程設(shè)置對(duì)話框,點(diǎn)擊前面“+”號(hào)可以擴(kuò)展編譯過(guò)程設(shè)置選項(xiàng)。此處選中全局并進(jìn)行編譯設(shè)置和智能編譯,如圖4.58所示。圖4.58編譯過(guò)程設(shè)置對(duì)話框編譯過(guò)程設(shè)置對(duì)話框中一些選項(xiàng)功能說(shuō)明如下。
(1)智能編譯。如果用戶指定使用“智能”編譯,Compiler將建立詳細(xì)的數(shù)據(jù)庫(kù),有助于今后更快地編譯,但可能會(huì)占用額外的磁盤(pán)空間。在智能編譯之后的重新編譯期間,Compiler將評(píng)估自上次編譯以來(lái)對(duì)當(dāng)前設(shè)計(jì)所做的更改,然后只運(yùn)行處理這些更改所需的Compiler模塊。如果對(duì)設(shè)計(jì)中的邏輯未進(jìn)行任何改動(dòng),Compiler在處理期間將使用所有模塊。
(2)漸進(jìn)式編譯和漸進(jìn)式綜合技術(shù)。漸進(jìn)式編譯技術(shù)是指通過(guò)保存和重用該工程以前的編譯結(jié)果來(lái)節(jié)省重新編譯該工程所需時(shí)間的一種技術(shù)。在物理或邏輯層面上,它允許用戶將設(shè)計(jì)分為多個(gè)分區(qū)分別進(jìn)行綜合和適配,再將各分區(qū)綜合在一起。在編譯過(guò)程中,編譯器將綜合和適配結(jié)果保存在工程數(shù)據(jù)庫(kù)中。第一次編譯之后,如果對(duì)設(shè)計(jì)做進(jìn)一步的修改,則只有改動(dòng)過(guò)的分區(qū)需要重新編譯。設(shè)計(jì)修改完成后,所有分區(qū)合并,進(jìn)行完整的編譯??芍付ㄊ欠裰恍枰M(jìn)行漸進(jìn)式綜合,以節(jié)省編譯時(shí)間,還是進(jìn)行完整的漸進(jìn)式編譯,以保持性能不變,并使編譯時(shí)間縮短50%~70%。漸進(jìn)式綜合與漸進(jìn)式編譯技術(shù)過(guò)程基本相同。成功進(jìn)行工程及其所有分區(qū)的分析和綜合之后,單個(gè)分區(qū)必須合并到一起,作為完整工程的一部分再次進(jìn)行編譯。需要說(shuō)明的是,這種技術(shù)有助于分階段的分區(qū)設(shè)計(jì),同時(shí)也很適合于時(shí)序逼近。由于漸進(jìn)式編譯流程能夠防止編譯器跨分區(qū)邊界進(jìn)行優(yōu)化,因此編譯器不會(huì)象常規(guī)編譯那樣對(duì)面積和時(shí)序進(jìn)行大量?jī)?yōu)化,所以它對(duì)于需要跨越不同層次邊界進(jìn)行優(yōu)化的工程用處不大。
(3)早期時(shí)序估計(jì)。適用早期時(shí)序估計(jì)可以在完全布線之前只部分布線來(lái)實(shí)現(xiàn)時(shí)序的初步估計(jì),這時(shí)需要的布線時(shí)間約為完全布線時(shí)間的十分之一,分析時(shí)有三種環(huán)境可選:實(shí)際、理想以及最差。但是這種時(shí)序估計(jì)只是一種估計(jì),若用戶希望獲得比較準(zhǔn)確的時(shí)序分析還是要運(yùn)行傳統(tǒng)工具TimingAnalyzer或使用TimeQuest時(shí)序分析工具。
2.適配設(shè)置適配設(shè)置FitterSettings指定影響有效布局布線的選項(xiàng)。包括時(shí)序驅(qū)動(dòng)編譯選項(xiàng)、Fitter等級(jí)、工程范圍的Fitter邏輯選項(xiàng)分配,以及物理綜合網(wǎng)表優(yōu)化。選中優(yōu)化保持時(shí)間和自動(dòng)適配選項(xiàng),在時(shí)序要求滿足后可以減少適配努力以減少編譯時(shí)間,如圖4.59所示。圖4.59適配設(shè)置對(duì)話框
3.分析與綜合設(shè)置在完成上述兩項(xiàng)設(shè)置后,還可以對(duì)其它選項(xiàng)進(jìn)行設(shè)置,完成所有設(shè)置后,進(jìn)行下一步的工作。其它選項(xiàng)的設(shè)置也可以不改變,直接使用默認(rèn)值。分析與綜合設(shè)置對(duì)話框如圖4.60所示。其中可以設(shè)置優(yōu)化技術(shù),Speed選項(xiàng)代表優(yōu)化時(shí)著重考慮速度因素,此時(shí)硬件開(kāi)銷(xiāo)比較大;Area選項(xiàng)代表優(yōu)化時(shí)著重考慮硬件開(kāi)銷(xiāo)因素,這可能導(dǎo)致速度比較慢;Blanced表示以上兩者兼顧,默認(rèn)為選中Blanced。點(diǎn)擊“OK”按鈕退出設(shè)置對(duì)話框,完成編譯設(shè)計(jì)的設(shè)置過(guò)程。圖4.60分析與綜合設(shè)置對(duì)話框4.5.2執(zhí)行完整的編譯
1.分析與綜合分析與綜合是設(shè)計(jì)流程中最基本的一個(gè)步驟。它將用戶的硬件描述語(yǔ)言(HDL)生成針對(duì)目標(biāo)器件的邏輯或物理表示。綜合所作的工作就是將HDL翻譯成基本邏輯門(mén)、RAM以及觸發(fā)器等基本邏輯單元的連接關(guān)系(即網(wǎng)表netlist),并根據(jù)約束條件優(yōu)化設(shè)計(jì)的門(mén)級(jí)連接,然后輸出網(wǎng)表文件以供適配器使用。在滿足系統(tǒng)功能要求的前提下,越好的綜合工具生成的網(wǎng)表文件占用芯片的資源越少。在綜合工具方面,用戶既可以使用QuartusⅡ的Analysis&Synthesis對(duì)VerilogHDL設(shè)計(jì)文件(.v)或者VHDL設(shè)計(jì)文件(.vhd)進(jìn)行綜合,也可以根據(jù)需要使用第三方EDA綜合工具。若使用第三方的綜合工具,則需要生成QuartusⅡ軟件使用的EDIF網(wǎng)表文件(.edf)或者VerilogQuartusMapping文件(.vqm),然后供QuartusⅡ的Analysis&Synthesis使用。分析和綜合過(guò)程的數(shù)據(jù)流的輸入輸出關(guān)系如圖4.61所示。分析與綜合既可以只用QuartusⅡ軟件的Analysis&Synthesis工具,也可以利用第三方EDA工具,綜合結(jié)果還可以輸出給第三方EDA工具。圖4.61中最下面中間方框的QuartusⅡDesignAssistan功能,可以依據(jù)設(shè)計(jì)規(guī)則對(duì)設(shè)計(jì)輸入進(jìn)行檢查,而EDANetlistWriter可以產(chǎn)生網(wǎng)表文件為其它EDA工具所用。QuartusⅡ的編譯器還可以只對(duì)設(shè)計(jì)輸入文件上次編譯完成后特定的修改增加部分進(jìn)行編譯,以提高設(shè)計(jì)編譯速度。圖4.61分析與綜合流程執(zhí)行分析與綜合命令,可以點(diǎn)擊按鈕或點(diǎn)擊菜單Processing→Start→StartAnalysis&Synthesis進(jìn)行分析與綜合操作。綜合分為兩個(gè)階段:分析階段和構(gòu)建工程數(shù)據(jù)庫(kù)階段。分析階段的任務(wù)是檢查工程的邏輯完整性和一致性,并檢查語(yǔ)法錯(cuò)誤和邊界連接。在此階段系統(tǒng)會(huì)使用多種算法來(lái)減少邏輯門(mén)的使用量,刪除冗余邏輯,并盡可能地適合器件的自身結(jié)構(gòu),實(shí)現(xiàn)對(duì)設(shè)計(jì)的優(yōu)化。構(gòu)建工程數(shù)據(jù)庫(kù)階段相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,在構(gòu)建的數(shù)據(jù)中包含完全優(yōu)化后的工程,此工程將為適配、時(shí)序分析、時(shí)序仿真等操作建立一個(gè)或多個(gè)文件。
2.適配
QuartusⅡ的適配器Fitter功能是進(jìn)行布局布線操作。Fitter使用Analysis&Synthesis建立的數(shù)據(jù)庫(kù),將工程的邏輯和時(shí)序要求與器件的可用資源相匹配。它將每個(gè)邏輯功能分配給最佳邏輯單元位置,進(jìn)行布線和時(shí)序分析,并選定相應(yīng)的互連路徑和引腳分配。如果用戶在設(shè)計(jì)中已經(jīng)進(jìn)行了資源分配,那么Fitter會(huì)將這些資源分配與器件上的資源相匹配,以滿足已設(shè)置的約束條件,然后優(yōu)化設(shè)計(jì)中的其余邏輯。如果用戶還未對(duì)所做的設(shè)計(jì)設(shè)置任何約束條件,F(xiàn)itter將自動(dòng)優(yōu)化設(shè)計(jì)。如果適配不成功,F(xiàn)itter會(huì)自動(dòng)終止編譯,并且給出錯(cuò)誤信息。用戶既可以在包含F(xiàn)itter模塊的QuartusⅡ軟件中啟動(dòng)完整編譯,也可以選中Processing→Start→StartFitter單獨(dú)啟動(dòng)Fitter。但是在單獨(dú)啟動(dòng)Fitter之前,要求用戶必須已經(jīng)成功運(yùn)行了Analysis&Synthesis。完整的漸進(jìn)式編譯是自上而下漸進(jìn)式編譯流程的一部分。完整的漸進(jìn)式編譯是使用以前的編譯結(jié)果,只重新編譯修改過(guò)的設(shè)計(jì)部分,其它部分的編譯結(jié)果保持不變,因此能夠保持設(shè)計(jì)性能不變,節(jié)省編譯時(shí)間。
3.完整編譯執(zhí)行完整的編譯設(shè)計(jì)過(guò)程使用菜單命令Processing→StartCompilation或點(diǎn)擊快捷圖標(biāo),如圖4.62所示。執(zhí)行編譯設(shè)計(jì)的前提要求工程處于打開(kāi)狀態(tài)。圖4.62啟動(dòng)完整編譯
QuartusⅡ軟件完整的編譯設(shè)計(jì)執(zhí)行過(guò)程界面圖如圖4.63所示。在任務(wù)窗中顯示對(duì)當(dāng)前打開(kāi)的工程編譯總?cè)蝿?wù)和各子任務(wù)執(zhí)行的進(jìn)程百分比,如果某一子任務(wù)完成100%,就打“√”表示,如果在某一步遇到問(wèn)題就中斷編譯,給出編譯錯(cuò)誤結(jié)論,并在信息窗口中顯示信息、告警和錯(cuò)誤信息及相應(yīng)的數(shù)目。雙擊信息窗口相應(yīng)的警告或錯(cuò)誤信息條可以直接定位到設(shè)計(jì)輸入文件相對(duì)應(yīng)的地方,對(duì)不同的設(shè)計(jì)輸入文件自動(dòng)用不同的編輯器打開(kāi)(如設(shè)計(jì)輸入文件是VHDL就用文本編輯器打開(kāi),如為電原理圖文件就用符號(hào)編輯器打開(kāi))并高亮度顯示,以方便修改設(shè)計(jì)。編譯報(bào)告窗提供詳細(xì)的編譯結(jié)果報(bào)告信息,可通過(guò)內(nèi)容列表欄點(diǎn)擊相應(yīng)的條目,查看不同過(guò)程的編譯結(jié)果報(bào)告和與當(dāng)前工程有關(guān)的詳細(xì)信息,如各項(xiàng)設(shè)置約束條件信息。圖4.63完整的編譯設(shè)計(jì)執(zhí)行過(guò)程界面圖圖4.64編譯完成結(jié)果對(duì)話框4.5.3引腳分配
1.打開(kāi)引腳分配器打開(kāi)QuartusⅡ軟件的引腳分配,需要運(yùn)行Assignments菜單下的專(zhuān)用工具PinPlanner或點(diǎn)擊其快捷圖標(biāo)。PinPlanner中使用的符號(hào)與器件系列數(shù)據(jù)手冊(cè)中的符號(hào)非常相似。它包括器件的封裝視圖,并以不同的顏色和符號(hào)表示不同類(lèi)型的引腳,用其它符號(hào)表示I/O塊(Bank),如圖4.65所示。圖4.65打開(kāi)PinPlanner界面
2.查看目標(biāo)器件視圖目標(biāo)器件視圖顯示項(xiàng)目設(shè)置除了PinPlanner界面最左列中的快捷圖標(biāo)外,還可以用菜單View中子菜單Show中的選項(xiàng)進(jìn)行選擇和變換,器件視圖左上角的紅點(diǎn)表示器件封裝的左上角,當(dāng)器件視圖旋轉(zhuǎn)后就可以知道器件的位置變換情況,如是否顯示I/OBanks,左或右旋轉(zhuǎn)90°等,顯示器件是頂視圖還是底視圖等,如圖4.66所示。圖4.66視圖顯示項(xiàng)目設(shè)置
3.創(chuàng)建引腳分配
PinPlanner可以通過(guò)圖形的形式給出器件的引腳分布圖,并可以顯示所有引腳的屬性,使用戶進(jìn)行引腳分配時(shí)變得更簡(jiǎn)單。單擊鼠標(biāo)右鍵在菜單中可以控制引腳分布圖顯示指定特性的引腳,還可以顯示器件的總資源以及引腳分布圖中各符號(hào)所代表的含義。將鼠標(biāo)放于某個(gè)引腳的上方,會(huì)自動(dòng)彈出該引腳屬性的標(biāo)簽,雙擊該引腳可以對(duì)其進(jìn)行分配。如本工程實(shí)例中要對(duì)輸入時(shí)鐘clk_32MHz進(jìn)行引腳分配,鼠標(biāo)左鍵雙擊時(shí)鐘引腳Pin_E2,打開(kāi)引腳屬性對(duì)話框,在節(jié)點(diǎn)名稱(chēng)欄中下拉選擇clk_32MHz,在I/O標(biāo)準(zhǔn)欄電壓值中選擇默認(rèn)值。點(diǎn)擊Apply或Close按鈕,在引腳節(jié)點(diǎn)列表的Location下面對(duì)應(yīng)clk_32MHz欄出現(xiàn)Pin_E2名稱(chēng),器件視圖中的該引腳也呈陰影顯示,表示該引腳已被分配給某一節(jié)點(diǎn),如圖4.67所示。其它I/O口引腳分配方法類(lèi)似。在設(shè)計(jì)輸入原理圖文件中也可以看到分配好的引腳。圖4.67時(shí)鐘引腳分配
4.群組節(jié)點(diǎn)分配上述引腳分配是將單個(gè)節(jié)點(diǎn)分配給具體的單個(gè)引腳,PinPlanner可以將一組節(jié)點(diǎn)分配給器件的某個(gè)I/O模塊(Bank),本實(shí)例中原沒(méi)有群組節(jié)點(diǎn),這里在輸入設(shè)計(jì)中新加一個(gè)前面舉例說(shuō)明的用戶自己定制的8位乘法器,其輸入輸出就是多位總線數(shù)據(jù),進(jìn)行完整編譯后就出現(xiàn)在群組節(jié)點(diǎn)區(qū),其分配方法如下:群組節(jié)點(diǎn)區(qū)選中dataa[7..0],單擊鼠標(biāo)右鍵,出現(xiàn)右鍵菜單,選擇NodeProperties項(xiàng),如圖4.68所示。其分配方法步驟如圖4.69所示。分配完后器件視圖中的I/OBank1陰影顯示,表示該Bank已被分配給某一組節(jié)點(diǎn)。在設(shè)計(jì)輸入原理圖文件中也可以看到分配好的節(jié)點(diǎn)Bank。
5.I/O分配校驗(yàn)為了校驗(yàn)I/O引腳節(jié)點(diǎn)的分配結(jié)果,可以點(diǎn)擊工具條中最下邊的快捷圖標(biāo)或Processing→EnableliveI/OCheck打開(kāi)I/O節(jié)點(diǎn)校驗(yàn)工具。校驗(yàn)結(jié)果在下面的信息欄中詳細(xì)顯示,如圖4.70所示。再點(diǎn)擊快捷圖標(biāo)或Processing→EnableliveI/OCheck項(xiàng),就關(guān)閉了I/O分配校驗(yàn)。圖4.68群組節(jié)點(diǎn)右鍵彈出菜單圖4.69群組節(jié)點(diǎn)分配圖4.70使能I/O分配校驗(yàn)4.5.4查看適配結(jié)果如果用戶希望查看更詳細(xì)的適配信息,并希望可以進(jìn)行手動(dòng)調(diào)整適配結(jié)果,那么芯片分配器ChipPlanner將是一個(gè)很好的選擇。ChipPlanner適合高級(jí)用戶,可在底層改變器件資源的分配與使用,分析器件布局布線后的性能。
ChipPlanner功能強(qiáng)大,用戶可以利用它分析設(shè)計(jì)性能,布局布線的路由擁塞,邏輯區(qū)域的配置;ChipPlanner提供編輯器,可以查看和編輯器件資源使用情況,包括設(shè)計(jì)的各個(gè)部分配置情況,如查看編輯邏輯單元和I/O單元,還可以建立、刪除和改變LE之間的連接,也可以在空單元中建立邏輯,設(shè)定邏輯鎖定區(qū)域(LogicLock)。所謂LogicLock是用戶可以將某一設(shè)計(jì)模塊(如乘法器)固定分配在可編程邏輯器件的某部分區(qū)域;可以顯示扇入、扇出(Fan-inFan-out),寄存器之間的路徑,時(shí)序延遲估計(jì);應(yīng)用分配和編譯后期的改變;在不重新編譯的情況下執(zhí)行工程變化命令(EngineeringChangeOrders,ECO)等。初學(xué)用戶簡(jiǎn)單設(shè)計(jì)可以暫時(shí)不用ChipPlanner,直接跳過(guò)進(jìn)行后續(xù)步驟。這里簡(jiǎn)單說(shuō)明一下ChipPlanner的使用方法。圖4.71打開(kāi)ChipPlanner芯片分配器
ChipPlanner打開(kāi)并顯示當(dāng)前器件資源使用情況,平面布局圖中資源使用情況用不同色彩顯示,顯示的詳略依賴(lài)于放大、縮小情況和顯示的任務(wù)選擇情況。打開(kāi)ChipPlanner芯片分配器后顯示的初始界面如圖4.72所示。最左邊的豎排為ChipPlanner常用快捷圖標(biāo),最右邊欄是不同色彩表示不同資源情況。下面為信息顯示欄。由于本設(shè)計(jì)實(shí)例很小,只占芯片資源的很少一部分,即器件中間幾小塊淡藍(lán)色區(qū)域。放大后的芯片資源占用情況如圖4.73所示,其色彩差別就更明顯了。用戶可以通過(guò)點(diǎn)擊按鈕查找特定節(jié)點(diǎn)在ChipPlanner平面布局圖中位置,雙擊選中單元進(jìn)入ResourcePropertyEditor窗口,查看具體電路或進(jìn)行修改。打開(kāi)的資源屬性編輯器ResourcePropertyEditor窗口如圖4.74所示。圖4.72ChipPlanner初始界面圖4.73放大后的芯片資源占用情況圖4.74ResourcePropertyEditor窗口
4.6時(shí)序分析時(shí)序分析工具的功能是分析設(shè)計(jì)中的所有邏輯,并指導(dǎo)Fitter達(dá)到時(shí)序要求,是完整編譯的一部分。QuartusⅡ10.0版的時(shí)序分析工具包括傳統(tǒng)的ClassicTimingAnalyzer和TimeQuestTimingAnalyzer。兩個(gè)工具均能進(jìn)行時(shí)序分析,而后者功能更強(qiáng)大,因此目前推薦使用TimeQuestTimingAnalyzer進(jìn)行時(shí)序分析。圖4.75所示為時(shí)序分析流程。在進(jìn)行時(shí)序分析之前要求設(shè)計(jì)的工程已經(jīng)打開(kāi)并進(jìn)行了初步的編譯。圖4.75使用TimeQuestTimingAnalyzer進(jìn)行時(shí)序分析流程4.6.1傳統(tǒng)時(shí)序分析器時(shí)序要求允許設(shè)計(jì)者為整個(gè)工程、特定的設(shè)計(jì)實(shí)體或個(gè)別實(shí)體、節(jié)點(diǎn)和引腳指定所需的速度性能。在QuartusⅡ軟件中,默認(rèn)情況下ClassicTimingAnalyzer屬于完整編譯的一部分,并且在進(jìn)行完整編譯時(shí)會(huì)自動(dòng)運(yùn)行,向設(shè)計(jì)者報(bào)告分析的時(shí)序信息(如tSU、tCO、tPD、tH、fMAX、tSU以及其它時(shí)序特性)。當(dāng)設(shè)計(jì)者設(shè)置的時(shí)序約束或者默認(rèn)設(shè)置有效時(shí),ClassicTimingAnalyzer會(huì)報(bào)告延遲時(shí)間。設(shè)計(jì)者可以根據(jù)ClassicTimingAnalyzer得出的信息對(duì)設(shè)計(jì)的時(shí)序性能進(jìn)行分析、調(diào)試和驗(yàn)證。還可以使用快速時(shí)序模型,驗(yàn)證理想條件(最快速率等級(jí)的最小延時(shí))下的時(shí)序。除默認(rèn)設(shè)置外,用戶還可以自定義設(shè)置時(shí)序約束條件。在QuartusⅡ軟件中,用戶可以通過(guò)設(shè)置對(duì)話框選擇采用哪種時(shí)序分析工具。打開(kāi)Assignments→Settings對(duì)話框,在左邊欄中點(diǎn)擊TimingAnalysisSettings項(xiàng),在右邊對(duì)話框TimingAnalysisProcessing中選中“UseClassicTimingAnalyzerDuringCompilation”確定完整編譯中的時(shí)序分析工具。在左邊欄中點(diǎn)擊ClassicTimingAnalyzerSettings,出現(xiàn)傳統(tǒng)時(shí)序設(shè)置選項(xiàng),其各參數(shù)說(shuō)明如圖4.76所示。圖4.76傳統(tǒng)時(shí)序分析器設(shè)置4.6.2打開(kāi)TimeQuest時(shí)序分析器在QuartusⅡ軟件中,也是通過(guò)設(shè)置對(duì)話框選擇采用TimeQuestTimingAnalyzer時(shí)序分析工具。打開(kāi)Assignments→Settings對(duì)話框,在左邊欄中點(diǎn)擊TimingAnalysisSettings項(xiàng),在右邊對(duì)話框TimingAnalysisProcessing中選中“UseTimeQuestTimingAnalyzerDuringCompilation”改變完整編譯中的默認(rèn)時(shí)序分析工具,點(diǎn)擊“OK”按鈕,保存設(shè)置,然后對(duì)當(dāng)前工程用菜單命令Processing→StartCompilation或點(diǎn)擊快捷圖標(biāo)執(zhí)行完整編譯,在進(jìn)行完整編譯時(shí)TimeQuestTimingAnalyzer會(huì)自動(dòng)運(yùn)行。也可以在Processing→Start→StartTimeQuestTimingAnalyzer或點(diǎn)擊快捷圖標(biāo)單獨(dú)執(zhí)行TimeQuest時(shí)序分析。時(shí)序分析運(yùn)行完后,在編譯完成報(bào)告中有詳細(xì)的時(shí)序分析信息,可以用TimeQuest時(shí)序分析器進(jìn)行報(bào)告查看。打開(kāi)TimeQuest時(shí)序分析器的方法:在QuartusⅡ軟件主窗口用菜單命令Tools→TimeQuestTimingAnalyzer,或者點(diǎn)擊快捷圖標(biāo),如圖4.77所示。初次運(yùn)行TimeQuest時(shí)序分析后,會(huì)出現(xiàn)提示信息,找不到SDC(SynopsysDesignConstraints)文件,并問(wèn)需不需要根據(jù)QuartusⅡ軟件的設(shè)置創(chuàng)建一個(gè)新的SDC文件,可以先點(diǎn)擊“No”按鈕,留待后面保存為SDC文件,SDC文件是專(zhuān)門(mén)的時(shí)序分析設(shè)置文件。圖4.77打開(kāi)TimeQuest時(shí)序分析器出現(xiàn)的TimeQuestTimingAnalyzer主窗口如圖4.78所示。界面分為五個(gè)部分:菜單命令、報(bào)告窗口、任務(wù)窗口、控制臺(tái)以及詳細(xì)信息顯示窗口。信息窗口中四個(gè)箭頭所指內(nèi)容是對(duì)TimeQuestTimingAnalyzer主窗口的功能說(shuō)明。報(bào)告窗列舉執(zhí)行TimeQuest時(shí)序分析產(chǎn)生的報(bào)告。任務(wù)窗提供快速接入TimeQuest工作流程的常用功能任務(wù),分為網(wǎng)表建立任務(wù)、建立報(bào)告任務(wù)、產(chǎn)生SDC文件任務(wù),其中報(bào)告任務(wù)又分為個(gè)別報(bào)告、定制報(bào)告、宏觀報(bào)告:個(gè)別報(bào)告包括建立保持時(shí)間等基本時(shí)序、時(shí)鐘時(shí)序分析以及最小脈沖寬度等信息;定制報(bào)告包括用戶自定義的時(shí)鐘、路徑等延遲信息;宏觀報(bào)告包括所有摘要和時(shí)鐘柱狀圖等信息。控制窗顯示GUI或命令行中可執(zhí)行的SDC或Tcl腳本命令。詳細(xì)信息顯示窗口顯示選擇的某一項(xiàng)報(bào)告,可以同時(shí)查看多個(gè)報(bào)告。圖4.78TimeQuestTimingAnalyzer主窗口4.6.3創(chuàng)建時(shí)序網(wǎng)表在運(yùn)行TimeQuestTimingAnalyzer之前需要?jiǎng)?chuàng)建時(shí)序網(wǎng)表,時(shí)序網(wǎng)表包含用戶設(shè)計(jì)的時(shí)序和信號(hào)名稱(chēng),TimeQuest從編譯結(jié)果中獲得這個(gè)網(wǎng)表。時(shí)序網(wǎng)表由設(shè)計(jì)中所有的源和目標(biāo)時(shí)序要素組成,也包括最小和最大時(shí)序路徑延遲信息。TimeQuest使用工業(yè)標(biāo)準(zhǔn)術(shù)語(yǔ)說(shuō)明時(shí)序要素。確認(rèn)已經(jīng)對(duì)工程進(jìn)行了分析綜合和適配的情況下,在TimeQuestTimingAnalyzer主窗口中打開(kāi)菜單Netlist→CreateTimingNetlist,出現(xiàn)CreatTimingNetlist對(duì)話框,如圖4.79所示。CreatTimingNetlist對(duì)話框用于指定產(chǎn)生時(shí)序網(wǎng)表的編譯網(wǎng)表和時(shí)序模型。選中Post-map項(xiàng),其它選項(xiàng)為默認(rèn),點(diǎn)擊“OK”按鈕后,出現(xiàn)wait字樣,完成創(chuàng)建后,在任務(wù)窗中的CreateTimingNetlist左邊出現(xiàn)綠色“√”,表示時(shí)序網(wǎng)表創(chuàng)建完成。也可以在任務(wù)窗中是雙擊CreateTimingNetlist快速創(chuàng)建時(shí)序網(wǎng)表。圖4.79打開(kāi)CreatTimingNetlist對(duì)話框4.6.4建立時(shí)鐘約束及報(bào)告
1.建立時(shí)鐘建立時(shí)鐘(默認(rèn)情況下,系統(tǒng)會(huì)自動(dòng)添加工程中的源時(shí)鐘),執(zhí)行Contraints→CreateClock命令,彈出源時(shí)鐘對(duì)話框,可以輸入時(shí)鐘名稱(chēng),時(shí)鐘周期、上升延和下降延信息等,這里輸入時(shí)鐘名稱(chēng)為clk_32MHz,時(shí)鐘周期為7.5ns,上升延和下降延空的情況下默認(rèn)為50%占空比,如圖4.80所示。圖4.80建立時(shí)鐘
2.選擇目標(biāo)節(jié)點(diǎn)在Targets欄中選擇目標(biāo)位置,點(diǎn)擊(…)圖標(biāo),顯示節(jié)點(diǎn)查找對(duì)話框,可以快速查找設(shè)計(jì)中的信號(hào)名稱(chēng)。選擇Collection中的相應(yīng)節(jié)點(diǎn)類(lèi)型,這里選擇get_ports類(lèi)型,單擊“List”按鈕,對(duì)話框?qū)?huì)顯示所有符合要求的端口,由于系統(tǒng)靠Target內(nèi)容區(qū)別不同源時(shí)鐘,因此為了設(shè)置一個(gè)不同的源時(shí)鐘,這里選擇clk_32MHz引腳,點(diǎn)擊“>”按鈕,拷貝clk_32MHz到右邊欄中,如圖4.81所示。點(diǎn)擊“OK”按鈕,返回到圖4.80所示的對(duì)話框。此時(shí)Targets欄已經(jīng)選定為[get_ports{clk_32MHz}],在SDC命令對(duì)話框中也出現(xiàn)等效的設(shè)置效果命令行。圖4.81選擇目標(biāo)節(jié)點(diǎn)
3.更新時(shí)序網(wǎng)表設(shè)置結(jié)束后點(diǎn)擊“Run”按鈕運(yùn)行,完成clk_32MHz時(shí)鐘的建立。SDC等效命令也出現(xiàn)在控制臺(tái)中,上述步驟也可以直接在控制臺(tái)中輸入SDC等效命令實(shí)現(xiàn)。雙擊任務(wù)欄中的UpdateTimingNetlist可以用時(shí)鐘約束信息更新時(shí)序網(wǎng)表?,F(xiàn)在雙擊任務(wù)窗口欄中的Reports下面的Diagnostic子項(xiàng)ReportClocks任務(wù),打開(kāi)的Clock詳細(xì)時(shí)序信息表顯示在詳細(xì)信息顯示窗口中,如圖4.82所示。任務(wù)欄中出現(xiàn)綠色“√”的項(xiàng)目表示已經(jīng)執(zhí)行完成的任務(wù)。注意:若創(chuàng)建時(shí)鐘失敗,控制臺(tái)中將會(huì)顯示警告信息,用戶應(yīng)加以注意。圖4.82更新時(shí)序網(wǎng)表4.6.5I/O約束及報(bào)告
I/O約束條件及報(bào)告要介紹的內(nèi)容是指定最大、最小輸入延遲,最大、最小輸出延遲,然后更新網(wǎng)表、查看報(bào)告。設(shè)置方法與建立時(shí)鐘約束條件及報(bào)告查看類(lèi)似。在TimeQuestTimingAnalyzer主窗口中,運(yùn)行菜單命令Constraints→SetInputDelay,在彈出對(duì)話框時(shí)鐘名稱(chēng)條中輸入時(shí)鐘clk_32MHz,或在下拉項(xiàng)中選定該時(shí)鐘信號(hào),在InputDelay中選中Maximum,在DelayValue中輸入3.25作為延遲值,如圖4.83所示。圖4.83設(shè)置輸入延遲圖4.84選擇目標(biāo)節(jié)點(diǎn)設(shè)置結(jié)束后點(diǎn)擊“Run”按鈕運(yùn)行,完成最大輸入延遲的建立。SDC等效命令也出現(xiàn)在控制臺(tái)中,上述步驟也可以直接在控制臺(tái)中輸入SDC等效命令實(shí)現(xiàn),如直接在控制臺(tái)中輸入命令行set_input_delay-clock{clk_32MHz}-min3.25[get_portsdata*]完成最小輸入延遲的建立,如圖4.85所示。最大、最小輸出延遲的建立方法完全類(lèi)似。既可在GUI中設(shè)置完成,也
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025企業(yè)法律風(fēng)險(xiǎn)之合同履行過(guò)程中應(yīng)注意的事項(xiàng)
- 2025湖南潭邵高速邵陽(yáng)東互通第合同段施組
- 2025戶外廣告牌出租合同樣本
- 班主任德育工作總結(jié)
- 課題申報(bào)參考:孿生數(shù)據(jù)驅(qū)動(dòng)的退役產(chǎn)品人機(jī)協(xié)同拆解動(dòng)態(tài)優(yōu)化與自適應(yīng)評(píng)估研究
- 課題申報(bào)參考:聯(lián)合教研提升農(nóng)村中小學(xué)科學(xué)教師跨學(xué)科素養(yǎng)的機(jī)制與策略研究
- 自我驅(qū)動(dòng)學(xué)習(xí)培養(yǎng)學(xué)生自主能力的策略與實(shí)踐案例
- 科技在提升個(gè)人防護(hù)裝備舒適度中的應(yīng)用
- 2024年家畜轉(zhuǎn)基因胚胎項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 物聯(lián)網(wǎng)時(shí)代下嵌入式系統(tǒng)的多層防護(hù)策略
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 計(jì)劃合同部部長(zhǎng)述職報(bào)告范文
- 人教版高一地理必修一期末試卷
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專(zhuān)題培訓(xùn)課件
- 二手車(chē)車(chē)主寄售協(xié)議書(shū)范文范本
- 窗簾采購(gòu)?fù)稑?biāo)方案(技術(shù)方案)
- 五年級(jí)上冊(cè)小數(shù)除法豎式計(jì)算練習(xí)300題及答案
- 語(yǔ)言規(guī)劃講義
- 生活用房設(shè)施施工方案模板
- 上海市楊浦區(qū)2022屆初三中考二模英語(yǔ)試卷+答案
- GB/T 9755-2001合成樹(shù)脂乳液外墻涂料
評(píng)論
0/150
提交評(píng)論