《基于FPGA的數(shù)字電路系統(tǒng)設(shè)計》課件第1章_第1頁
《基于FPGA的數(shù)字電路系統(tǒng)設(shè)計》課件第1章_第2頁
《基于FPGA的數(shù)字電路系統(tǒng)設(shè)計》課件第1章_第3頁
《基于FPGA的數(shù)字電路系統(tǒng)設(shè)計》課件第1章_第4頁
《基于FPGA的數(shù)字電路系統(tǒng)設(shè)計》課件第1章_第5頁
已閱讀5頁,還剩281頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第1章QuartusⅡ應(yīng)用入門1.1QuartusⅡ安裝1.2QuartusⅡ的項目和文件管理1.3圖形設(shè)計源文件編輯1.4設(shè)計文件綜合和仿真1.5端口分配、項目編譯適配和器件編程1.6SignalTapⅡ嵌入式邏輯分析儀應(yīng)用QuartusⅡ開發(fā)基于可編程器件的數(shù)字電路或系統(tǒng)的過程如下:

(1)新項目工程創(chuàng)建(NewProjectWizard)建立新工程并指定目標器件或器件系列。

(2)使用原理圖編輯器(BlockEditor)或文本編輯器(TextEditor)建立流程圖、原理圖設(shè)計文件或硬件描述語言設(shè)計文件。

(3)使用資源分配編輯器(AssignmentEditor)、參數(shù)設(shè)置選項(Settings)、底層編輯器(FloorplanEditor)、邏輯鎖定器(LogicLock?)功能指定初始設(shè)計的約束條件。

(4)使用片上可編程系統(tǒng)構(gòu)建平臺(SOPCBuilder)或數(shù)字信號處理器構(gòu)建平臺(DSPBuilder)建立系統(tǒng)級設(shè)計。

(5)使用軟件構(gòu)建平臺(SoftwareBuilder)為器件處理內(nèi)核(Excalibur?)或嵌入式處理內(nèi)核(Nios?)建立控制軟件編程文件。

(6)使用分析綜合工具(Analysis&Synthesis)對設(shè)計文件進行分析綜合。

(7)使用仿真工具(SimulatorTool)對設(shè)計文件進行功能仿真或時序仿真。

(8)使用編譯工具(CompilerTool)對設(shè)計文件進行分析綜合(Analysis&Synthesis)、物理層適配(Fitter)、布局布線優(yōu)化組合(Assembler),底層信號傳輸時間分析(TimingAnalyzer),產(chǎn)生下載編程文件。

(9)使用編程器Programmer下載設(shè)計文件對器件進行編程,或?qū)⒕幊涛募D(zhuǎn)換為其他文件格式供嵌入式處理器等其他系統(tǒng)使用。

(10)若有需要,使用SignalTap?ⅡLogicAnalyzer、SignalProbe?功能對設(shè)計進行硬件實時調(diào)試。

(11)若有需要,使用ChipEditor、ResourcePropertyEditor和ChangeManager進行工程更改管理。

對于一般的數(shù)字電路或系統(tǒng)設(shè)計,QuartusⅡ應(yīng)用基本流程可簡化為如圖1-0-1所示。如果FPGA或CPLD安裝在用戶系統(tǒng)或開發(fā)裝置上,在項目編譯前必須規(guī)劃引腳分配,否則可由QuartusⅡ任意分配輸入、輸出端口引腳。圖1-0-1QuartusⅡ應(yīng)用基本流程

1.1QuartusⅡ安裝

1.1.1安裝QuartusⅡ5.1軟件

QuartusⅡ5.1的安裝步驟:

(1)將QuartusⅡ5.1安裝光盤放入計算機光驅(qū),安裝程序?qū)⒆詣訂樱霈F(xiàn)如圖1-1-1所示的4個選項。

(2)選擇第一項“InstallQuartusⅡandRelatedSoftware”,進入QuartusⅡ軟件的安裝向?qū)Ы缑?。選擇“QuartusⅡ5.1”,然后按照安裝向?qū)У奶崾窘?jīng)過一系列的確認操作,即可完成QuartusⅡ5.1軟件的安裝。圖1-1-1QuartusⅡ軟件安裝初始界面1.1.2指定授權(quán)文件

QuartusⅡ軟件安裝完成后,必須指定Altera公司的授權(quán)文件(License.dat)才能正常使用。在Windows2000或WindowsXP系統(tǒng)下指定授權(quán)文件的操作步驟如下:

(1)在開始菜單中選擇“設(shè)置”?“控制面板”,用鼠標左鍵雙擊控制面板上的“系統(tǒng)”圖標;或用鼠標右鍵單擊“我的電腦”?“屬性”。在彈出的“系統(tǒng)屬性”對話框中選擇“高級”頁面,如圖1-1-2所示。圖1-1-2“系統(tǒng)屬性”對話框

(2)點擊“環(huán)境變量”按鈕,在彈出的對話框中單擊“×的用戶變量”(×為用戶PC名)欄下的“新建”按鈕,彈出“新建用戶變量”對話框,如圖1-1-3所示。在變量名欄中輸入“LM_LICENSE_FILE”;在變量值欄中輸入“c:\flexlm\license.dat”,點擊確定退出。

圖1-1-3“環(huán)境變量”對話框

(3)將從Altera公司申請得到的授權(quán)文件license.dat粘貼在c:\flexlm目錄下。

(4)啟動QuartusⅡ軟件,選擇“Tools”?“LicenseSetup”命令,彈出如圖1-1-4所示的“Options”對話框,在此頁面的“LicenseSetup”下的“Licensefile”欄中選擇“c:\flexlm\license.dat”,點擊“OK”按鈕,結(jié)束授權(quán)。圖1-1-4“Options”對話框的“LicenseSetup”頁面1.1.3安裝編程硬件驅(qū)動程序

在QuartusⅡ環(huán)境中可以通過計算機數(shù)據(jù)通信接口把系統(tǒng)編程文件下載到目標器件中。如果使用計算機并行接口下載編程文件,則需要安裝Altera公司的編程硬件驅(qū)動程序。以WindowsXP平臺為例,安裝步驟如下:

(1)打開控制面板。在控制面板中雙擊“添加硬件”圖標,彈出“添加硬件向?qū)А睂υ捒颍c擊“下一步”,彈出如圖1-1-5所示的對話框,選擇第一項“是,我已經(jīng)連接了此硬件”。圖1-1-5“添加硬件向?qū)А睂υ捒?

(2)點擊“下一步”,彈出如圖1-1-6所示的對話框,在“已安裝的硬件”欄目中選擇“添加新的硬件設(shè)備”。圖1-1-6“添加硬件向?qū)А睂υ捒?

(3)點擊“下一步”,彈出如圖1-1-7所示的對話框,選擇第二項“安裝我手動從列表選擇的硬件(高級)”。圖1-1-7“添加硬件向?qū)А睂υ捒?

(4)點擊“下一步”,彈出如圖1-1-8所示的對話框,在“常見硬件類型”欄目中選擇“聲音、視頻和游戲控制器”。圖1-1-8“添加硬件向?qū)А睂υ捒?

(5)點擊“下一步”,彈出如圖1-1-9所示的對話框;點擊“從磁盤安裝”按鈕,彈出如圖1-1-10所示的“從磁盤安裝”對話框;點擊“廠商文件復(fù)制來源”文件查找框旁的“瀏覽”按鈕,在彈出的文件集中查找QuartusⅡ系統(tǒng)安裝目錄下的驅(qū)動文件“C:\altera\quartus51\drivers\win2000”(設(shè)QuartusⅡ系統(tǒng)安裝在C盤根目錄下),點擊“確定”按鈕。圖1-1-9“添加硬件向?qū)А睂υ捒?圖1-1-10“從磁盤安裝”對話框

(6)如果出現(xiàn)相容性警告,則選擇“仍然繼續(xù)”,彈出如圖1-1-11所示的對話框,在“型號”欄中選擇“AlteraByteBlaster”;點擊“下一步”,彈出“添加硬件向?qū)А苯缑婺╉?,等待硬件?qū)動安裝完畢后點擊“完成”按鈕,計算機自動重啟后硬件驅(qū)動程序生效。圖1-1-11“添加硬件向?qū)А睂υ捒?

(7)?QuartusⅡ的硬件驅(qū)動程序生效后,若在計算機控制面板中雙擊“系統(tǒng)”圖標,選擇“硬件”標簽頁,點擊“設(shè)備管理器”按鈕,在設(shè)備管理器界面中打開“聲音、視頻和游戲控制器”選項,會看到添加的設(shè)備名稱“AlteraByteBlaster”,如圖1-1-12所示。圖1-1-12查看編程器硬件驅(qū)動安裝結(jié)果

1.2QuartusⅡ的項目和文件管理

1.2.1QuartusⅡ的開發(fā)環(huán)境

QuartusⅡ的開發(fā)環(huán)境如圖1-2-1所示,項目路徑和項目名一般顯示在窗口上方。QuartusⅡ的主菜單與一般視窗軟件的主菜單相似,有文件管理(File)、編輯(Edit)、視圖(View)、項目管理(Project)、資源分配(Assignements)、設(shè)計處理(Processing)、工具(Tools)、視窗(Window)、幫助(Help)等9個選項。圖1-2-1QuartusⅡ設(shè)計環(huán)境

ProjectNavigator、Status和Message窗口可以進行顯示和隱藏操作。具體方法是點擊主菜單“View”項,在下拉選項框中選擇第一項實用視窗“UtilityWindows”,右方彈出如圖1-2-2的選項框,點擊相應(yīng)的窗口名可以切換顯示/隱藏功能。圖1-2-2QuartusⅡ常用窗顯示選擇

QuartusⅡ設(shè)計環(huán)境中各平臺的界面參數(shù)可以根據(jù)用戶愛好設(shè)置,比如文字信息的字體、顏色,處理平臺的參數(shù)默認值,工具條是否顯示等。具體方法是點擊主菜單“Tools”項,在下拉選項框中選擇倒數(shù)第二項“Options…”,彈出如圖1-2-3的選項框。圖1-2-3QuartusⅡ的環(huán)境參數(shù)設(shè)置1.2.2新項目的創(chuàng)建

新項目創(chuàng)建步驟:

(1)啟動QuartusⅡ5.1后,打開“File”菜單,選擇“NewProjectWizard…”(新建項目向?qū)?,如圖1-2-4所示。彈出如圖1-2-5所示的對話框。圖1-2-4新建項目向?qū)顖D1-2-5指定項目路徑、創(chuàng)建項目目錄

(2)在對話框第一欄內(nèi)鍵入盤符、子目錄和項目目錄。一般子目錄存放在除C盤外其他盤的根目錄下,子目錄命名具有個人的特征,每個項目分別建立一個具有實義的項目目錄。比如,D:/學(xué)號/項目目錄名。也可點擊欄右邊的瀏覽按鈕選擇已經(jīng)存在的路徑。建議為每個項目單獨建立一個項目目錄。

(3)在對話框第二欄內(nèi)鍵入項目名稱,第三欄內(nèi)會自動出現(xiàn)與項目名同名的頂層設(shè)計文件名。項目名不能與QuartusⅡ自帶的元件名同名,最好采用不多于8個字符的數(shù)字和英文字母,不要使用中文字符,也不要有空格。

(4)點擊“Next>”,如果項目目錄原來不存在,則彈出提示框,提醒是否要創(chuàng)建這個目錄。點擊“是”按鈕,QuartusⅡ會自動創(chuàng)建新目錄,并彈出圖1-2-6所示的添加文件選項框。如果需要導(dǎo)入其他路徑下已存在的源文件或用戶庫,可點擊“Filename”欄旁的瀏覽按鈕進行查找選擇。圖1-2-6添加設(shè)計文件、用戶庫

(5)點擊“Next>”,彈出如圖1-2-7所示的選項框,其右方適配參數(shù)“Filters”下3個約束選項框(封裝形式Package、引腳數(shù)目Pincount和速度Speedgrade)均可選默認項“Any”。如果3個選項中有約束參數(shù),則器件型號的供選項被限制。比如,選項“Pin”設(shè)置了“144”,則其左方供選器件(Availabledevices)滾動框中只包含144個引腳的器件型號供選擇。圖1-2-7選擇目標器件系列和型號

(6)根據(jù)用戶設(shè)計載體選擇目標器件的系列和型號。比如,DE2開發(fā)板上的FPGA器件為CycloneⅡ系列的EP2C35F672C6,而LP—2900開發(fā)裝置的FPGA器件有兩種:FLEX10K系列的EPF10K10TC144—4和Cyclone系列的EP1C3T144C8。根據(jù)所用的目標器件,在系列(Family)下拉欄中選擇器件系列,在“Availabledevices”滾動框中選擇器件型號。需要注意的是,若項目設(shè)置的器件系列和型號與用戶系統(tǒng)中的可編程器件系列、型號不同,則設(shè)計編程文件不能下載到器件中。

(7)點擊“Next>”,出現(xiàn)添加第三方EDA工具的選項框。一般情況下不需選擇直接進入下一步。項目參數(shù)設(shè)置完畢后顯示所建項目的信息匯總,比如項目路徑、項目目錄、項目名、頂層設(shè)計文件名、加入的文件和用戶庫數(shù)量、目標器件的系列和型號、支持的EDA工具等。檢查設(shè)置無誤后點擊“Finish”,項目創(chuàng)建完成,在QuartusⅡ窗口的左上方顯示本項目的目錄和項目名。

(8)新項目創(chuàng)建也可以在如圖1-2-5所示的項目目錄和頂層文件名后點擊“Finish”完成。其他項目設(shè)置可隨時在如圖

1-2-8所示的Settings選項框進行。在QuartusⅡ環(huán)境中彈出“Settings”(項目設(shè)置)框的方法有以下幾種:

①直接點擊主工具條中的按鈕。

②選擇主菜單命令“Assignments”,點擊其中的“Settings…”選項。

③選擇“ProjectNavigator”(項目導(dǎo)航)欄中“Entity”框內(nèi)的頂層文件圖標或頂層文件名,點擊鼠標右鍵,在彈出的選項框中點擊“Settings…”項。圖1-2-8QuartusⅡ設(shè)置選項框“Settings”選項框中包含了所有有關(guān)QuartusⅡ的設(shè)置,其中與項目設(shè)置相關(guān)的類型及功能如表1-2-1所示。

(9)如果在未建項目或未打開項目時建立新的設(shè)計文件,保存文件時會出現(xiàn)“是否需要創(chuàng)建新項目”的提示,點擊“是”按鈕,彈出如圖1-2-4所示的項目創(chuàng)建向?qū)?,引?dǎo)設(shè)計者在保存文件之前先創(chuàng)建新項目。1.2.3項目管理

1.打開一個已經(jīng)創(chuàng)建的項目

啟動QuartusⅡ后,點擊“File”?“OpenProject…”,出現(xiàn)圖1-2-9所示的選項框。文件類型一般默認為項目文件。下拉“查找范圍”欄,查找項目所在路徑和目錄,選擇項目目錄下顯示的項目文件(*.qpf),點擊“打開”按鈕或雙擊圖標,打開項目。也可在項目目錄中直接雙擊項目文件圖標打開項目工程。特別需要注意的是,個別初學(xué)者會因習(xí)慣于計算機視窗平臺的操作,在進入Quartus后直接采用命令“File”?“Open…”,打開設(shè)計文件。由于項目工程尚未打開,QuartusⅡ的所有處理功能,包括綜合分析、仿真、編譯、下載等操作全部被禁止,相應(yīng)的命令和快捷鍵都呈灰色,不能激活。圖1-2-9打開已經(jīng)存在的項目文件

2.項目導(dǎo)航管理

1)項目導(dǎo)航器(ProjectNavigator)

圖1-2-10是QuartusⅡ的項目導(dǎo)航器界面。導(dǎo)航窗口下方有3個可以互相切換的標簽,分別表示層次(Hierarchy)、文件(Files)和設(shè)計單元(DesignUnits)。圖1-2-10項目導(dǎo)航窗中的文件層次頁面點擊“Hierarchy”圖標,出現(xiàn)實體窗口Entity,顯示當前項目設(shè)計實體所選的目標器件型號和頂層文件名。點擊頂層文件名,可以拉出其下的各層文件。項目中的文件排列呈樹形結(jié)構(gòu),反映了項目中的文件層次關(guān)系。每個設(shè)計文件中使用的邏輯單元(LogicCells)和存儲元數(shù)(LCRegisters)也在窗口中列出。

Files窗口中顯示3個文件夾。當前項目下的所有設(shè)計源文件按類型歸在器件設(shè)計文件夾(DeviceDesignFiles)、軟件程序文件夾(SoftwareFiles)和其他文件夾(OtherFiles)中。當文件夾中有文件時,文件夾名前出現(xiàn)“+”號,點擊“+”號可以展開文件夾,列表顯示其中的所有文件名,如圖1-2-11所示。DesignUnits窗口中顯示當前項目下的所有設(shè)計單元。圖1-2-11文件列表頁面

2)修改文件層次

由于QuartusⅡ的邏輯分析綜合、編譯、仿真等處理功能都是面向頂層文件,當需要對某個底層文件進行處理時,需要將該文件暫時設(shè)置為頂層文件。設(shè)置頂層文件的方法是:

選擇項目導(dǎo)航器下方欄中的文件(Files)標簽,列出所有文件的層次關(guān)系。選中需要處理的文件名,點擊鼠標右鍵,在彈出框中選“SetasTop-LevelEntity”。 1.2.4快捷鍵工具欄

QuartusⅡ的各處理平臺或編輯器都有相應(yīng)的快捷按鈕,可以根據(jù)需要切換顯示或隱藏快捷工具欄。點擊QuartusⅡ主菜單中的“Tools”項,在下拉框中選擇倒數(shù)第三項“Customize…”,彈出如圖1-2-12所示的對話框。選擇標簽“Toolbars”,出現(xiàn)工具條選項框??蛑忻恳贿x項對應(yīng)QuartusⅡ一類處理功能的快捷工具欄。在打開相應(yīng)的編輯器時,若選項前打鉤,工具欄顯示,否則工具欄隱藏。當編輯器或處理平臺關(guān)閉時,工具欄自動隱藏,選項前的鉤消失。圖1-2-12快捷工具條選擇

工具條選項框的第一項為QuartusⅡ的通用工具欄。通用工具欄中間的下拉框中顯示的是項目名,框左各快捷鍵主要針對文件編輯,其圖標和功能都與視窗中的文件編輯快捷鍵相同。項目名框右方各快捷鍵的圖標和功能如圖

1-2-13所示。圖1-2-13常用工具條部分圖標說明1.2.5QuartusⅡ的文件管理

1.新建文件

點擊新建文件快捷圖標或主菜單“File”

“New…”命令,出現(xiàn)如圖1-2-14所示的新文件類型選項框,點擊選項框上方的類型標簽可切換新建文件的類型,選擇不同的文件格式。雙擊文件格式或選擇文件名后按確認按鈕可在文件編輯區(qū)打開新文件。圖1-2-14文件類型選項框

2.文件格式說明

器件設(shè)計文件(DeviceDesignFiles)是針對可編程器件的邏輯設(shè)計源,包含了6種文件格式,如圖1-2-14所示。其中面向圖形設(shè)計和文本設(shè)計兩種輸入方式的4種源文件格式和擴展名如表1-2-2所示。其他文件(OtherFiles)主要為項目設(shè)計提供輔助性的或處理過程需要的文件格式,共有10個選項,如圖1-2-15中所示。其中比較常用的有仿真處理需要的矢量波形圖文件(VectorWaveformFile),用于建立片上邏輯分析儀的(SignalTapⅡFile)以及數(shù)個針對不同應(yīng)用的文件格式。存儲器數(shù)據(jù)初始化文件(MemoryInitializationFile)和Intel格式的十六進制數(shù)據(jù)文件(Hexadecimsal[Intel-Format]File)都可以建立數(shù)據(jù)表文件。圖1-2-15其他文件類型選項

3.文件打開與關(guān)閉

點擊快捷圖標或項目導(dǎo)航器Files窗口中的文件名或執(zhí)行主菜單“File”

“Open…”命令,可以打開文件。被打開的文件同時在QuartusⅡ的主窗口顯示。需要注意的是,器件設(shè)計源文件必須在項目工程下打開。如果在項目未建或未打開時直接打開設(shè)計文件,則除了編輯功能外,QuartusⅡ的其他處理功能都無效。

點擊文件右上方“×”符或主菜單“File”

“Close”命令,可以關(guān)閉文件。

4.在項目中添加其他路徑下的文件或移出本項目的文件

若當前項目的設(shè)計文件需要使用其他項目自建的元件符號,則必須將創(chuàng)建該元件的設(shè)計文件(圖形文件*.bdf或文本文件*.tdf、*.v、*.vhd)添加到當前項目中;如果當前項目不需要某個設(shè)計文件,則必須把它移出項目。添加文件和移出文件的操作方法是:執(zhí)行“Project”

“Add/RemoveFilesinProject…”命令,彈出“Settings”頁面,頁面右方是類似圖1-2-6的項目文件添加或移出對話框(Files)。若需添加文件,則點擊“Filename:”欄旁的瀏覽按鈕進行搜索,找到文件后雙擊文件名,點擊“Add”按鈕,文件被加入項目。若需移出文件,則在對話框下方的Filename區(qū)域中選擇文件名,點擊“Remove”,文件被移出項目。例1

在D盤“2007”目錄下創(chuàng)建“test”項目,并在項目中建立一個數(shù)據(jù)文件,以BCD碼表示一個等差級數(shù),數(shù)據(jù)范圍為0~500,級數(shù)為64。

解(1)按1.2.2節(jié)的步驟創(chuàng)建新項目,設(shè)下載設(shè)計文件的可編程器件系列選擇FLEX10K,器件型號選擇EPF10K10TC144-4。

(2)點擊快捷圖標或執(zhí)行主菜單“File”

“New…”命令,打開如圖1-2-14的新建文件窗口,點擊“OtherFiles”標簽,在如圖1-2-15的選項框中選擇“MemoryInitializationFile”或“Hexadecimal(Intel-Format)File”。

(3)點擊“OK”確認,彈出如圖1-2-16所示的字數(shù)(Numberofwords)、字長(Wordsize)對話框。

其中字數(shù)表示存儲信息個數(shù)或數(shù)據(jù)個數(shù),字長表示二進制存儲信息或數(shù)據(jù)的位數(shù)。根據(jù)本例的等差級數(shù)確定字數(shù)為64。因為數(shù)據(jù)需要3組BCD碼表示,所以字長為12。圖1-2-16存儲數(shù)據(jù)文件的參數(shù)設(shè)定

(4)填入字數(shù)和字長后按“OK”確認,彈出數(shù)據(jù)文件編輯頁面,如圖1-2-17所示,默認數(shù)據(jù)內(nèi)容為全0。頁面的左上角顯示文件名,新建文件默認名為擴展名后加數(shù)序。MemoryInitializationFile格式的文件擴展名為?.mif,Hexadecimal(Intel-Format)File格式的文件擴展名為?.hex。圖1-2-17數(shù)據(jù)文件頁面

(5)數(shù)據(jù)文件的顯示格式可以通過菜單“View”選擇,各有關(guān)選項說明如圖1-2-18所示。圖1-2-17的文件顯示形式為每行8個單元,地址為十六進制碼,數(shù)據(jù)格式為二進制。圖1-2-18數(shù)據(jù)文件的顯示方式選擇

(6)如果數(shù)據(jù)文件中的數(shù)據(jù)關(guān)系沒有規(guī)律,則每個單元的內(nèi)容一般通過按鍵設(shè)置。如果數(shù)據(jù)具有函數(shù)關(guān)系,則可以通過Excel、Matlab等輔助計算工具產(chǎn)生函數(shù)數(shù)據(jù)文件。數(shù)據(jù)按地址順序排列,兩個數(shù)據(jù)間至少間隔一個空格。比如,本例等差級數(shù)的64個數(shù)據(jù)計算式為采用Matlab計算64個y值的方法是:啟動Matlab,在命令窗中輸入與運算關(guān)系相應(yīng)的函數(shù)命令行:

y=round(linspace(0,63,64)*500/63);

reshape(y,8,8)’

值域設(shè)置函數(shù)linspace確定了x的取值范圍(0~63)和取值個數(shù)(64),round函數(shù)對運算結(jié)果取整數(shù)。reshape(y,a,b)’命令行是指定函數(shù)值y的顯示方式:每行a個數(shù)據(jù),共b行,a×b必須等于y數(shù)據(jù)的個數(shù)。若命令行有后綴符號“’”,則表示y數(shù)據(jù)按行依序排列;否則,按列依序排列。命令執(zhí)行后Matlab命令窗中顯示函數(shù)y的64個整數(shù)值,8行8列,每個數(shù)據(jù)之間以空格間隔,如表1-2-3所示。拷貝所有數(shù)據(jù),切回QuartusⅡ的數(shù)據(jù)文件編輯窗。將鼠標定位在第一個單元,點擊“粘貼”命令,所有數(shù)據(jù)就被依序粘貼到數(shù)據(jù)文件的各單元中。由于計算結(jié)果是3位十進制數(shù),而設(shè)計要求的數(shù)據(jù)是用3組BCD碼表示。每組BCD碼是4位二進制數(shù),可用一位十六進制數(shù)代替。所以在粘貼數(shù)據(jù)之前,必須將文件的數(shù)據(jù)格式設(shè)定為十六進制(Hexadecimal),粘貼后的數(shù)據(jù)文件如圖1-2-19所示,若轉(zhuǎn)換成二進制后則呈現(xiàn)的是BCD碼格式。圖1-2-19舉例數(shù)據(jù)文件

(7)數(shù)據(jù)信息輸入完成后保存文件。與視窗文件操作相同,可選擇主菜單“File”?“Save”或“SaveAs…”命令,或者直接點擊快捷工具,彈出保存文件對話框,如圖1-2-20所示。一般默認文件保存在當前項目目錄下,默認文件名與項目名相同,并默認文件添加到當前項目中(Addfiletocurrentprojec)。若文件保存路徑不同或文件名與項目名不同或不需要添加在項目中,則可修改選項,然后單擊保存按鈕即可。當“Addfiletocurrentproject”項被選擇時,文件保存后項目導(dǎo)航器中出現(xiàn)所建文件名。圖1-2-20保存新文件或另存文件對話框

1.3圖形設(shè)計源文件編輯

1.3.1圖形設(shè)計輸入窗口

根據(jù)1.2.5節(jié)的文件新建方法,可以選擇“File”?“New…”命令或者點擊工具欄中新建文件圖標,在彈出的新文件類型選擇窗口“New”中選擇“DeviceDesignFiles”頁下的結(jié)構(gòu)圖/原理圖文件(BlockDiagram/SchematicFile),確認后出現(xiàn)可以帶有柵格的圖形設(shè)計輸入編輯區(qū)和圖形編輯快捷工具欄,如圖1-3-1所示。默認文件名為“Blockx.bdf”(x為數(shù)序),在編輯區(qū)上方顯示。如果圖形編輯工具欄被隱藏,按1.2.4節(jié)的方法在如圖1-2-12所示窗口的“Block&SymbolEditors”選項前打鉤。圖1-3-1圖形設(shè)計文件編輯窗口

1.圖形編輯器的環(huán)境參數(shù)設(shè)置

圖形設(shè)計窗口可以按1.2.1節(jié)的方法通過如圖1-2-3所示的Options窗口中Block/SymbolEditor選項進行背景和符號顏色(Colors)、文字字體和大小(Fonts)修改,也可切換編輯區(qū)柵格顯示/隱藏(Showguidelines)、設(shè)置柵格間距(GuidelineSpacing)、引腳分配顯示/隱藏(Showpinandlocationassignments)等。

2.快捷工具說明

使用圖形編輯快捷工具可以方便地輸入設(shè)計內(nèi)容,常用快捷鍵功能如圖1-3-1所示。

(1)選擇文字輸入功能后可直接在編輯區(qū)輸入文字注釋。

(2)選擇符號輸入功能可打開元件庫選擇需要的邏輯符號放入編輯區(qū)。

(3)選擇模塊輸入功能可在編輯區(qū)置放一個邏輯模塊,模塊內(nèi)容另行定義。

(4)選擇連接導(dǎo)線、總線或?qū)Ч芄δ芸稍诓煌倪壿嫹柣蚰K間連接信號傳輸路徑。

(5)若橡筋功能被激活,文件中被選擇的對象移動,則對象與電路其他部分的連線同時移動,類似橡筋拉伸的效果。

(6)選擇斷線功能(橡筋功能被禁止),被選擇對象與電路其他部分斷開獨立移動。

(7)選擇放大縮小功能后,在編輯區(qū)中單擊鼠標左鍵,可以使顯示內(nèi)容放大;單擊鼠標右鍵,可縮小顯示內(nèi)容。單擊選擇箭頭,才能退出放大、縮小操作。

(8)選擇編輯對象后點擊翻轉(zhuǎn)或旋轉(zhuǎn)功能,可使對象翻轉(zhuǎn)或逆時針旋轉(zhuǎn)90°。

(9)工具條的最后4項是繪圖功能,可以畫矩形框、橢圓圈、直線和弧線,線段不參與設(shè)計處理,只起輔助說明的作用。1.3.2元件輸入和電路連線

元件輸入和電路連接是圖形設(shè)計編輯的主要工作。元件符號導(dǎo)入的方法有3種:①在圖形輸入編輯區(qū)的空白位置中雙擊鼠標左鍵;②點擊工具欄中的圖標;③順序點擊主菜單“Edit?InsertSymbol…”命令。執(zhí)行上述任何一種操作,都彈出如圖1-3-2所示的“Symbol”對話框。“Symbol”框的左上方“Libraries”是“Altera”的元件庫列表,庫目錄中包含了宏功能模塊庫(megafunctions)、其他元件庫(others)和基本元件庫(primitives)。圖1-3-2“Symbol”對話框

1.元件符號導(dǎo)入

需要導(dǎo)入的元件名稱可以在Symbol框左方的Name欄輸入,被搜索元件名稱直接出現(xiàn)在元件列表中。如果不了解元件名稱,則可以根據(jù)元件屬性選擇相應(yīng)的子庫,用鼠標左鍵點擊庫前的加號(+),使庫中的元件以列表的方式顯示,搜索所需要的元件。若需要使用其他項目中的自建元件符號,可以點擊Name欄右側(cè)的瀏覽按鈕,在相應(yīng)的項目目錄下搜索元件符號文件?*.bsf。當鍵入符號名稱或在列表中或在其他項目中選擇了導(dǎo)入對象時,被選符號的圖標就顯示在Symbol框的右方,點擊“OK”按鈕或在符號列表中雙擊符號名稱,所選元件的符號出現(xiàn)在圖形編輯區(qū)并粘在光標上,可根據(jù)放置方向按快捷鍵翻轉(zhuǎn)或旋轉(zhuǎn),拖放到合適的位置后點擊鼠標左鍵,元件即被放置在編輯區(qū)中。每個放置在編輯區(qū)中的元件都有一個實例名稱(如inst1),可以理解為元件在設(shè)計文件中的編號。當Symbol框左下方的Insertsymbolasblock選項有效時,others庫或megafunctions庫中的元件符號在圖中以模塊形式顯示;否則,與primitives庫中的元件符號一樣,以圖形方式顯示;兩者的區(qū)別如圖1-3-3所示。圖1-3-3選擇以塊形式插入復(fù)選框

2.重復(fù)放置或復(fù)制相同的元件符號。

當Symbol框左下方重復(fù)輸入(Repeat-insertmode)項有效時,元件符號放置后,鼠標上會自動出現(xiàn)新的符號,可以反復(fù)放置直到按下“Esc”鍵或點擊快捷圖標或點擊鼠標右鍵,執(zhí)行“Cancel”命令,取消重復(fù)放置符號操作。

在圖形編輯區(qū)復(fù)制元件符號的另一種方法是:將鼠標放在所選元件符號上,同時按住“Ctrl”鍵和鼠標左鍵,使光標右下角出現(xiàn)一個“+”號。拖曳鼠標到合適位置,松開鼠標左鍵,元件符號就被復(fù)制在鼠標所在位置。

3.電路連線

元件符號之間的信號通過單導(dǎo)線或數(shù)據(jù)總線傳遞,圖形設(shè)計文件中的連線有多種方式。

(1)點擊圖標或或,將鼠標放在需要連線的邏輯符號端口處,當光標呈“十”字形時,按住鼠標左鍵拖動到連線終點釋放鼠標左鍵即可。

(2)當橡筋功能有效時,把兩個需要相連的元件符號端口碰在一起后再拉開,兩個端口之間就自動連上了導(dǎo)線。

(3)同大多數(shù)EDA工具相同,QuartusⅡ也支持引線或端口命名設(shè)置網(wǎng)標的功能,即命名相同的引線和端口在電路中相連。

引線命名的方法是:在需要命名的引線上點擊一下鼠標左鍵,引線兩端出現(xiàn)小方塊,此時引線處于被選中狀態(tài),然后輸入網(wǎng)標名稱。名稱可以是字母、字母組合或字母與數(shù)字組合的形式,如A、EN、B1等。若兩個需要相連端口為位寬不同的總線,則可采用方括號以升序或降序的形式說明各端口或總線的位寬。比如位寬為n,網(wǎng)標名為A,則命名可以是A[n-1..0]或A[0..n-1]。端口是每個設(shè)計文件的對外信號,端口符號是基本元件庫(primitives)的pin子庫中的bidir、input和output。端口命名的方法是:選中端口符號,雙擊其默認名稱“pin_name”,鍵入該端口名稱。也可雙擊輸入、輸出端口符號,彈出端口屬性(PinProperties)對話框,在Pinname[s]處輸入端口名稱。端口也分為單信號或多位寬總線端口,命名規(guī)則與引線相同。圖1-3-4是一個信號控制電路的圖形設(shè)計文件。圖中有3個元件符號:異或門XOR、輸入端口INPUT、輸出端口OUTPUT。輸入端口以降序命名x[3..0],輸出端口以升序命名y[0..2]。異或門的一個輸入引線為單線,命名“x3”,另一個輸入引線為總線,命名為“x[2..0]”。所以,電路中實際有4個輸入端口、3個輸出端口、3個異或門。輸入信號x3同時控制三個異或門的一個輸入,x0、x1、x2分別控制3個異或門的另一個輸入。電路功能是:當x3為低電平時,yi=xi,(i=0,1,2);當x3為高電平時,yi=。圖1-3-4引線、端口命名舉例1.3.3圖形編輯器的元件庫介紹

元件命名具有以下特點:

(1)當邏輯門或功能元件名稱前加“n”時,表示邏輯門反相輸出或功能元件低電平輸出有效。

(2)當邏輯門或觸發(fā)器名稱前加“b”時,表示邏輯門或觸發(fā)器的輸入反相。

(3)當邏輯門或觸發(fā)器名稱前加“d”時,表示邏輯門或觸發(fā)器有兩個互補的輸出。

(4)當邏輯門或觸發(fā)器名稱前加“t”時,表示邏輯門或觸發(fā)器為三態(tài)輸出。

(5)當功能模塊名稱后加“b”時,表示輸入、輸出信號以總線形式表示。

(6)當74系列信號后加“m”或“o”時,表示符號為芯片上的一個元件。比如,74153m是雙四選一數(shù)據(jù)選擇器74153中的一個選擇器,74112o是雙JK觸發(fā)器74112中的一個JK觸發(fā)器。

1.基本元件庫(primitives)

基本元件庫劃分為緩沖器(buffer)、邏輯門(logic)、其他符號(other)、端口(pin)、觸發(fā)器(storage)5個子庫。其中端口(pin)子庫中有3種類型的端口:數(shù)據(jù)可以輸入/輸出的雙向端口(bidir)、數(shù)據(jù)只能輸入的端口(input)和數(shù)據(jù)只能輸出的端口(output)。另外4個庫的常用元件及名稱見表1-3-2。

2.其他元件庫(others)

others庫中主要包含了與Altera的可編程器件初級開發(fā)平臺maxplus2兼容的所有邏輯器件,包括邏輯門、觸發(fā)器和一些中規(guī)模功能元件,還包括了幾乎所有74系列的數(shù)字邏輯器件,設(shè)計者可以根據(jù)需要輸入型號調(diào)出元件。比如,輸入“74138”調(diào)出3—8線譯碼器,如圖1-3-3所示。表1-3-3列出了部分元件的名稱。

3.宏功能函數(shù)庫megafunctions

宏功能函數(shù)庫中包含了很多可修改參數(shù)的宏功能模塊。模塊由Altera的技術(shù)人員開發(fā),用戶可以使用MegaWizardPlug-InManager功能自定義變量將它們實例化,創(chuàng)建符合設(shè)計需要的自定義模塊符號。

宏功能函數(shù)庫分為算術(shù)組件子庫(arithmetic)、邏輯門子庫(Gates)、端口子庫(IO)和存儲器子庫(Storage)4個子庫。庫中的元件屬性名前一般冠有庫參數(shù)模塊(LibraryofParameterizedModules)特征字“l(fā)pm-”。算術(shù)組件子庫arithmetic中主要有數(shù)據(jù)位寬可以設(shè)定的加法器(add)、加—減運算器(add-sub)、乘法器(mult)、除法器(divide)、取絕對值(abs)、數(shù)據(jù)比較器(compare)、累加器(accum)、乘—加運算(mult-add)及其他一些綜合算術(shù)功能。另外還有計數(shù)位數(shù)、模值、計數(shù)方向(加、減、可逆)、使能控制(無、時鐘使能、計數(shù)使能)、預(yù)置清零方式(無、同步、異步)都可根據(jù)需要選擇設(shè)置的計數(shù)器(counter)。邏輯門子庫(gates)中主要有信號位寬可以設(shè)定的總線選擇器(busmux)、三態(tài)總線(bustri)、譯碼器(decode)、邏輯常量(constant)、數(shù)據(jù)選擇器(mux)和邏輯門(除反相器為inv外,其他邏輯門的屬性名與表1-3-1相同)。還有位寬(wide)、移位方向(左移、右移、雙向移位)、移位范圍(distance)可以根據(jù)需要選擇的移位寄存器。其中移位方式可選擇循環(huán)移位、邏輯移位(logic)或算術(shù)移位(arithmetic)。邏輯移位時串行輸入都為“0”,算術(shù)移位左移時串行輸入為“0”、右移時串行輸入與符號位相同,端口子庫(IO)中主要有位寬可以設(shè)定的輸入、輸出端口和雙向端口。

存儲器子庫(Storage)中主要有各類字數(shù)、位數(shù)、控制方式可設(shè)定的存儲器,如隨機存儲器(ram),閃存(flash),只讀存儲器(rom),先入、先出存儲器(fifo)。還有位數(shù)和控制方式可選擇的移位寄存器(shift)、鎖存器(latch)、觸發(fā)器(ff)等。1.3.4元件圖形符號的創(chuàng)建

1.利用宏功能模塊自定參數(shù)創(chuàng)建邏輯符號

例2在例1的項目中利用宏功能模塊創(chuàng)建一個只讀存儲器元件,存儲內(nèi)容為例1所建的數(shù)據(jù)文件。

解QuartusⅡ的宏功能插入管理器MegaWizardPlug-InManager可以運行一個向?qū)?,幫助設(shè)計者輕松地為自定義模塊設(shè)置各項參數(shù),然后生成一個用AHDL、VerilogHDL或VHDL描述的文本輸出文件,并在元件庫的project子庫中產(chǎn)生一個名稱與文件名相同的模塊。

(1)在例1項目下建立新的圖形設(shè)計文件。在圖形編輯器中按1.3.2節(jié)導(dǎo)入元件符號的方法彈出Symbol對話框。在宏功能函數(shù)庫(megafunctions)中選擇合適的函數(shù)模塊屬性名稱,在“Symbol”對話框右方區(qū)域會出現(xiàn)所選函數(shù)模塊的通用圖標。在“Name”一欄將顯示所選函數(shù)的名稱。本例在storage目錄中選擇的lp_rom模塊,如圖1-3-5所示。還有一項是選擇是否啟動宏功能插入管理器。若“LaunchMegaWizardPlug-In”未選擇,點擊“OK”后模塊粘在鼠標上準備放入圖形編輯區(qū);否則彈出如圖1-3-6所示的宏功能插入管理器窗口(MegaWizardPlug-InManager),注意到窗口上方的頁序指示為2([page2c])。圖1-3-5選擇宏功能函數(shù)符號圖1-3-6選擇宏功能函數(shù)符號在該頁中主要有3個選項:選擇輸出文件(描述模塊的文本文件)的硬件描述語言(Whichtypeofoutputfiledoyouwanttocreate?)以及該文件的保存路徑和文件名(即自定義模塊名)(Whatnamedoyouwantfortheoutputfile?)。描述語言類型可以任選AHDL、VHDL或VerilogHDL,系統(tǒng)默認的文件存放路徑是當前項目所在的路徑,文件名為宏功能元件名稱后加數(shù)字序號。點擊選項欄右上方的瀏覽圖標“Browes…”可更改輸出文件的存放路徑和文件名。

點擊“Next>”,彈出如圖1-3-7所示的模塊定義向?qū)У?頁進行參數(shù)設(shè)置。圖1-3-7向?qū)ы撁?:設(shè)置ROM的字長、字數(shù)還有兩種直接啟動宏功能插入管理器的方法:

①在彈出如圖1-3-5所示的Symbol對話框中點擊左下方的“MegaWizardPlug-InManager…”命令。

②直接在圖形編輯器中下拉“Tools”菜單,選擇“MegaWizardPlug-InManager…”。執(zhí)行這兩種操作之一,彈出圖1-3-8所示的管理器首頁窗口[page1]。在窗口中選擇第一項“Createanewcustommegafuctionvariation”(創(chuàng)建新的用戶宏功能模塊變量)。圖1-3-8MegaWizardPlug-InManager向?qū)醉擖c擊“Next>”按鈕,彈出如圖1-3-9所示的管理器次頁窗口[page2a]。注意到該窗口綜合了圖1-3-5和圖1-3-6的選項:在宏功能模塊列表(與圖1-3-5中的宏功能庫列表相似)中選擇模塊名,本例在storage目錄中選擇“LPM_ROM”;任選一種輸出文件的硬件描述語言,本例選擇“VerilogHDL”;在文件路徑和文件名設(shè)置框中鍵入輸出文件的存放路徑和名稱(注意與圖1-3-6不同,只有默認路徑?jīng)]有默認名存在),點擊名稱輸入欄右上方的瀏覽圖標“Browes…”,可更改輸出文件的存放路徑。窗口右上方的使用器件系列選項(Whichdevicefamilywillyoubeusing)默認與項目設(shè)置的器件系列相同,一般不需修改。點擊“Next>”,也彈出如圖1-3-7所示的模塊定義向?qū)У?頁進行參數(shù)設(shè)置。圖1-3-9MegaWizardPlug-InManager向?qū)ы撁?

(2)參數(shù)設(shè)置的頁面數(shù)與函數(shù)模塊需要設(shè)置的參數(shù)個數(shù)有關(guān),所以不同屬性的模塊向?qū)ы撁鏀?shù)不同。除前兩頁選擇基本模塊屬性和輸出文件的描述語言、存放路徑及文件名外,從第3頁起都是參數(shù)設(shè)置向?qū)А?.3.3節(jié)的宏功能函數(shù)庫介紹中已列舉了部分模塊的參數(shù)選項。

LPM_ROM模塊的向?qū)Ч灿?頁,圖1-3-7所示的第3頁窗口[page3of6]主要設(shè)置存儲器的字長和字數(shù)。本例ROM存放的是例1的數(shù)據(jù)文件,有64個12位的數(shù)據(jù)。所以下拉“Howwideshouldthe‘q’outputbusbe?”滾動欄,選擇輸出端口位寬為12;下拉“Howmany12-bitwordsofmemory?”滾動欄,選擇存儲字單元數(shù)為64。窗口右上方顯示的元件系列應(yīng)該與項目設(shè)置一致。

對于比較簡單的設(shè)計,其他選項可接受默認值。改變參數(shù)后,窗口左方顯示的ROM地址位寬和數(shù)據(jù)端口位寬隨之改變。若有問題,點擊圖中的窗口下方的“Documentation..”項,可顯示宏模塊設(shè)計參考文件。

(3)點擊“Next>”,彈出如圖1-3-10所示的向?qū)ы撁?[page4of6],選擇ROM的地址輸入、數(shù)據(jù)輸出端口的寄存器特性。本例的ROM實現(xiàn)數(shù)據(jù)表功能,所以地址和數(shù)據(jù)端口都不需要寄存特性,可取消選項框內(nèi)的鉤,使建立的ROM符號沒有時鐘控制。但器件系列為cyclone時,必須有一個時鐘控制信號。圖1-3-10向?qū)ы撁?:設(shè)置ROM端口寄存器特性

(4)點擊“Next>”,彈出如圖1-3-11所示的向?qū)ы撁?[page5of6],提示是否要為存儲器設(shè)置初始數(shù)據(jù)內(nèi)容。由于要求設(shè)計的是只讀存儲器ROM,所以選擇“Yes,usethisfileforthememorycontentdata”。在文件名(Filename)欄中鍵入數(shù)據(jù)文件的存放路徑和文件名,文件的類型可以是intel的十六進制格式(擴展名?.hex)或存儲器初始數(shù)據(jù)文件(擴展名?.mif)。本例ROM存儲的是例1建立的數(shù)據(jù)文件,所以可點擊“Filename”欄右上方的瀏覽按鈕“Browse…”,查找例1建立的數(shù)據(jù)文件data.mif。圖1-3-11向?qū)ы撁?:設(shè)置ROM存儲內(nèi)容

(5)檢查確認ROM的存儲數(shù)據(jù)文件路徑后點擊“Next>”,彈出如圖1-3-12所示的向?qū)╉揫page6of6]。圖1-3-12MegaWizardPlug-InManager向?qū)υ捒蚰╉撛擁撟鳛槟K創(chuàng)建總結(jié)Summary,列出了由模塊參數(shù)設(shè)置生成的所有文件。其中打灰色鉤的為必要文件,而打紅色鉤的文件是否產(chǎn)生則視參數(shù)設(shè)置情況。表1-3-4列出了宏模塊設(shè)計過程中所有可能產(chǎn)生的文件及其說明。

(6)點擊“Finish”按鈕完成宏模塊設(shè)計。若是執(zhí)行“Tools”

“MegaWizardPlug-InManager…”命令啟動宏功能插入管理器的,則退出向?qū)Ш蠡氐綀D形編輯狀態(tài);否則回到Symbol對話框,框右方出現(xiàn)自建的模塊符號。點擊“OK”按鈕,模塊粘在光標上,點擊鼠標左鍵可放置在圖形編輯區(qū)域。

此時,當前項目的元件庫library中出現(xiàn)了一個項目子庫Project,創(chuàng)建的模塊rom1存放在該子庫中。模塊rom1可作為庫元件被反復(fù)置入圖形編輯區(qū)。若在設(shè)計過程中發(fā)現(xiàn)宏模塊參數(shù)需要修改,可在圖形編輯區(qū)的宏模塊上雙擊鼠標左鍵,將直接彈出宏功能插入管理器的參數(shù)設(shè)置首頁。

2.根據(jù)設(shè)計源文件創(chuàng)建元件符號

在QuartusⅡ中,可以將當前打開的圖形設(shè)計文件或文本設(shè)計文件創(chuàng)建為元件符號。具體方法是新建一個設(shè)計文件,用圖形方式或文本方式描述自建元件的內(nèi)部邏輯,輸入、輸出端設(shè)置相應(yīng)屬性的端口“pin”,并賦予端口名。保存文件并分析綜合通過后,下拉主菜單“File”,點擊“Create/Updata”命令,在彈出的選項框中選擇“CreateSymbolFilesforCurrentFile”,在彈出的符號創(chuàng)建完成提示框,點擊“確定”,即可創(chuàng)建一個代表當前文件邏輯功能的符號文件(擴展名為?.bsf),并在當前項目元件庫的子庫project中出現(xiàn)以文件名命名的自建元件。圖1-3-13展示了將圖1-3-4的信號控制電路創(chuàng)建為元件符號的操作。自建元件可以像庫元件一樣調(diào)用,元件符號的輸入、輸出端口數(shù)和名稱由設(shè)計文件中的pin決定。圖1-3-4電路創(chuàng)建的符號如圖1-3-14所示,元件名為文件名test,元件符號輸入總線位寬為4,以降序排列x[3..0],輸出總線位寬為3,以升序排列y[0..2]。圖1-3-13根據(jù)當前文件創(chuàng)建符號文件圖1-3-14當前項目子庫中出現(xiàn)自建元件

QuartusⅡ的AHDL設(shè)計輸入方法支持以真值表的方式描述組合邏輯關(guān)系,所以采用AHDL設(shè)計輸入方法可以比較容易地自建一個組合邏輯元件符號。

例3以一個七段顯示譯碼元件的創(chuàng)建過程說明ADHL設(shè)計文件建立和真值表描述形式以及將當前設(shè)計文件創(chuàng)建成元件符號的方法。例3

在例1的項目中采用AHDL硬件描述語言設(shè)計七段顯示譯碼邏輯并創(chuàng)建元件符號。元件的輸入為4位二進制碼,輸出可控制共陰七段顯示器顯示十進制數(shù)符0~9及“A”、“C”、“P”、“L”、“y”5個字母,當輸入碼為全“1”時,輸出顯示碼全部無效,被控顯示器滅顯。

解(1)新建一個AHDL文本文件。

選擇“File”?“New…”菜單,或者點擊工具欄中圖標,在彈出的新建文件類型選擇窗口New中,選擇DeviceDesignFiles頁下的“AHDLFile”,出現(xiàn)AHDL文件編輯區(qū)以及文本編輯TextEditor的工具條,各工具圖標功能說明如圖1-3-15所示。

(2)?AHDL文件編輯。

AHDL文件必須以英文輸入方式編輯,基本描述分為3個部分:實體名、實體對外端口、實體內(nèi)部的邏輯描述。語句注釋可以以兩段以上的中劃線導(dǎo)出,如圖1-3-15所示。

①?AHDL文件以關(guān)鍵字“SUBDESIGN”導(dǎo)出設(shè)計實體名,本例以“7seg”命名要設(shè)計的七段顯示譯碼器。②?AHDL文件以“(”、“)”限定設(shè)計實體的輸入、輸出端口。端口名后用“:”導(dǎo)出端口屬性關(guān)鍵字:“INPUT”定義輸入屬性、“OUTPUT”定義輸出屬性。相同屬性的不同端口用分號分隔。多個端口可以以總線形式用同一名稱命名,并在端口名稱后的方括號內(nèi)以升序或降序說明端口位寬。如圖1-3-15中4位輸入信號data以總線形式命名,7個輸出信號a、b、c、d、e、f、g以單變量命名。每條端口定義語句用分號“;”結(jié)束。圖1-3-15七段顯示譯碼邏輯的AHDL真值表描述③實體內(nèi)部邏輯描述必須以關(guān)鍵字“BEGIN”、“END”限定。描述語句有多種形式,利用快捷方式可以導(dǎo)出不同的模板。本例的七段顯示譯碼邏輯可以很方便地利用真值表模板形式設(shè)計。在文件編輯區(qū)輸入邏輯段限定語句“BEGIN”和“END”。將鼠標定位在兩語句之間,點擊快捷工具,彈出插入模板對話框(InsertTemplate)。在語言選項框(Showsyntaxof)中選擇“AHDL”,在模板形式選項框(Templatesection)中選擇真值表描述(TruthTableStatement),下方預(yù)覽框preview中出現(xiàn)真值表的模板形式,如圖1-3-16所示。點擊“OK”確認,模板被插入邏輯段限定語句中。邏輯段限定語句也可采用模板“LogicSection”輸入。④真值表以關(guān)鍵字“TABLE”、和“ENDTABLE”限定,輸入、輸出信號用“

”區(qū)別,左側(cè)為輸入,右側(cè)為輸出。在“_node_name”位置鍵入信號名,增加的輸入或輸出信號仍然以逗號分隔。若信號以總線方式命名,邏輯值以二進制數(shù)組格式b××××表示,“×”為邏輯0或1。每行邏輯語句也以“;”結(jié)束。圖1-3-16真值表模板插入⑤在“_input_value”位置鍵入輸入變量的邏輯組合,一般用自然二進制數(shù)序的規(guī)律排列。在“_output_value”位置鍵入對應(yīng)不同輸入組合的輸出邏輯值“0”或“1”。

⑥在當前項目目錄下保存文件,并把文件加入當前項目工程中。文件名任意,擴展名為?.tdf。如果對設(shè)計較有把握,可以直接創(chuàng)建元件符號,否則可以先對設(shè)計文件進行分析綜合,然后仿真查看邏輯功能是否正確。⑦在設(shè)計文件打開的情況下(編輯窗口上方的文件名呈粗黑體,如圖1-3-15所示),按圖1-3-13執(zhí)行“File”

“Create/Updata”

“CreateSymbolFilesforCurrentFile”命令,將當前文件創(chuàng)建成元件圖形符號。

⑧在當前項目下打開圖形設(shè)計文件,執(zhí)行調(diào)入元件符號命令,“Symbol”框的Project目錄中出現(xiàn)與AHDL設(shè)計實體名相同的元件“7seg”,選擇該元件,在“Symbol”框右方出現(xiàn)元件圖形符號,主要特征為元件名和輸入、輸出端口,如圖1-3-17所示。圖1-3-17七段顯示譯碼元件符號

1.4設(shè)計文件綜合和仿真

1.4.1分析與綜合

分析與綜合(Analysis&Synthesis)處理是QuartusⅡ編譯平臺(Compiler)的第一項操作。首先是檢查設(shè)計文件編輯是否規(guī)范,比如圖形設(shè)計文件中信號線有無漏接、信號有無雙重來源,元件端口屬性是否匹配;文本設(shè)計文件中有無邏輯語法或結(jié)構(gòu)錯誤等。然后對當前項目中的頂層設(shè)計文件進行邏輯分析,并綜合成邏輯方程表達式。

1.啟動分析與綜合處理

啟動QuartusⅡ進行分析與綜合處理的方法有以下幾種:

(1)直接點擊主工具條上的快捷按鈕。

(2)執(zhí)行主菜單命令“Processing”

“Start”

“StartAnalysis&Synthesis”。

(3)執(zhí)行“Tools”

“CompilerTool”命令,彈出如圖1-4-1所示的編譯窗口。窗口中列出了編譯器的5個處理模塊:分析與綜合(Analysis&Synthesis)、適配(Fitter)、布局布線(Assembles)、時延分析(TimmingAnalyzer)、網(wǎng)表編寫(EDANetlistWriter)。由于只需進行分析綜合,可點擊圖中第一個處理模塊Analysis&Synthesis中的第一個按鈕啟動分析與綜合(若點擊窗口右下方的“Start”按鈕,則順序進行所有處理,完成全編譯流程,耗時較長)。

2.處理過程顯示

在分析與綜合過程中QuartusⅡ有幾個窗口顯示處理的時間和進程:

(1)主窗口的右下角有一個旋轉(zhuǎn)的小風(fēng)車圖標,同時顯示耗時、進程;

(2)如果狀態(tài)窗口(Status)打開,顯示處理流程進度(Progress%)和耗時(Time);

(3)如果如圖1-4-1所示的編譯工具窗口打開,在窗口中間的“Idle”位置顯示當前處理功能名稱“Analysis&Synthesis”,窗口下方顯示進度和時間。圖1-4-1編譯器窗口在處理過程中若發(fā)現(xiàn)文件有編輯錯誤,則彈出如圖1-4-2所示的窗口,提示“Analysis&Synthesiswasnotsuccessful(αerrors,βwarnings)”,α和β分別為錯誤和警告的個數(shù)。若信息窗口(Messages)開啟,則在下方顯示處理信息,其中綠色文字為處理功能、頂層文件等說明,藍色文字為警告提示,紅色文字為錯誤報告。若信息窗口沒有開啟,可執(zhí)行“View”

“UtilityWindows”

“Messages”命令打開。圖1-4-2分析與綜合中的錯誤信息

3.編輯錯誤查找

當分析綜合未通過時,可以在信息窗口(Massages)用左鍵雙擊紅色的錯誤信息;或選中錯誤信息,單擊右鍵,從彈出的右鍵菜單中執(zhí)行“Locate”?“LocateinDesignFile”操作,鼠標將定位于設(shè)計文件中的錯誤所在處。若對錯誤原因不了解,可將鼠標定位于錯誤信息點擊右鍵,在彈出的選項框中選擇“Help”查看錯誤信息說明,以便修改錯誤。

處理結(jié)果若沒有錯誤(α=0),分析綜合通過,彈出如圖1-4-3的窗口,提示“Analysis&Synthesiswassuccessful(0errors,βwarnings)”,并產(chǎn)生報告文件Report。僅有警告提示(Warning)不會影響分析綜合通過。圖1-4-3分析與綜合報告

4.處理報告

分析綜合處理完畢后自動彈出編譯總結(jié)數(shù)據(jù),顯示處理時間、QuartusⅡ版本、項目名、頂層文件名、目標器件系列和型號、電路或系統(tǒng)消耗的邏輯單元數(shù)、端口數(shù)和存儲單元數(shù)。圖1-4-3是示例項目test的分析綜合處理報告,占用的邏輯元(Totallogicelements)是3個、總的端口數(shù)(Totalpins)是7個,電路中沒有觸發(fā)器或存儲器,“Totalmemorybits”為0。

要特別注意的是,計算機只能發(fā)現(xiàn)編輯錯誤,不能發(fā)現(xiàn)邏輯錯誤。所以,即使分析綜合通過,設(shè)計文件仍然可能存在邏輯問題。邏輯問題必須通過功能仿真發(fā)現(xiàn)。1.4.2建立仿真波形文件

1.創(chuàng)建新的矢量波形文件*.vwf

按1.2.5節(jié)新建文件的方法,在新建文件對話框的“OtherFiles”類型中,選擇矢量波形文件(VectorWaveformFile),打開一個空的波形仿真文件窗口,左方為節(jié)點列表區(qū),右方為波形顯示區(qū),如圖1-4-4所示。圖1-4-4QuartusⅡ波形文件編輯

2.時軸柵格坐標參數(shù)(GridSize)設(shè)置

執(zhí)行主菜單命令“Edit”?“GridSize…”,彈出如圖1-4-5所示的柵格尺度設(shè)置框,在“Period”右側(cè)框內(nèi)設(shè)置柵格周期時間值和單位。一般,根據(jù)仿真周期和仿真時間選擇柵格時間,QuartusⅡ仿真器默認的柵格時間為10ns。圖1-4-5柵格尺度設(shè)置

3.仿真結(jié)束時間(EndTime)設(shè)置

仿真結(jié)束時間限定了計算機仿真的運算范圍。QuartusⅡ默認的仿真結(jié)束時間為1μs。根據(jù)仿真需要,可以修改仿真運算的結(jié)束時間。執(zhí)行主菜單命令“Edit”?“EndTime…”,彈出結(jié)束時間設(shè)置框“EndTime”,在“Time”框右側(cè)輸入仿真結(jié)束時間,時間單位可選為秒s、毫秒(ms,10-3s)、微秒(μs,10-6s)、納秒(ns,10-9s)和皮秒(ps,10-12s)。點擊“OK”按鈕完成設(shè)置。時軸即以柵格尺度為坐標顯示整個仿真范圍的時間值。

4.時軸標尺組(TimeBarOrganize)設(shè)置

在波形顯示區(qū)里可以添加能夠移動的標尺,以便于察看波形。下拉仿真平臺的主菜單“Eidt”,選擇“TimeBarOrganizer…”,彈出如圖1-4-6所示的時軸標尺組設(shè)置對話框。對話框的上部“Timebar”用以參數(shù)設(shè)置或選擇,可設(shè)置標尺定位時間(Time),選擇標尺注釋是以絕對時間來表示還是以與主標尺的相對時間來表示,設(shè)置主標尺,添加或刪除標尺等。參數(shù)設(shè)置或選擇后,點擊“OK”退出對話框。

下部“Existingtimebars”為已有標尺列表,列表中注明了波形顯示區(qū)域中主標尺的定位時間參考點、其他標尺的絕對時標及其與主標尺的相對時差。圖1-4-6時間標尺設(shè)置

1)添加新標尺

在“Timebar”下鍵入時間數(shù)值,選擇時間單位,并注明是絕對時間(Absolutetime)還是與主標尺的相對時間(Relativetomastertimebar),點擊“Add”按鈕,在波形顯示區(qū)出現(xiàn)一條新標尺,并在“Existingtimebars”下的列表區(qū)域出現(xiàn)標尺在時間軸的絕對時間以及與主標尺時間參考點的相對時差。

若原來波形顯示區(qū)域沒有標尺存在,第一條標尺設(shè)置的時間都是絕對值(即使選擇了相對時差),并自動置為主標尺:在標尺列表區(qū)域中的相對時間為0,前面冠以紅色大寫“M”字符。

2)設(shè)置主標尺

當多條標尺存在時,可以任意選擇一條為主標尺,以其時間值為參考點。在標尺列表區(qū)域單擊鼠標左鍵選中某標尺的時間數(shù)值,點擊“SetatMaster”按鈕,該標尺即被設(shè)置為主標尺,其絕對時間為時標參考點,相對時間為0,前面冠以紅色大寫“M”以示區(qū)別。其他標尺的相對時間都改變?yōu)榕c新參考點的時間差。

3)刪除標尺

在標尺列表區(qū)域單擊鼠標左鍵選中某標尺的時間數(shù)值,點擊“Delete”按鈕,該標尺即被刪除。若主標尺被刪除,絕對時間最小的標尺被自動設(shè)置為主標尺。

5.保存新的矢量波形文件

執(zhí)行“File”?“SaveAs…”命令,或直接點擊主圖標,在文件名框中輸入文件名(默認為工程文件名),文件類型為*.vwf,然后點擊“保存”按鈕將文件存盤。本例的矢量波形文件test.vwf保存在當前項目中(D盤2007目錄test子目錄下)。1.4.3輸入、輸出觀察點設(shè)置

1.節(jié)點查找

通過節(jié)點查找對話框可以搜索設(shè)計文件中所有的輸入、輸出端口,寄存器和設(shè)計實體信號。彈出節(jié)點查找窗口(NodeFinder)的方法有幾種:在波形編輯窗口左欄“Name”下的空白區(qū)域雙擊鼠標左鍵或點擊右鍵選擇“InsertNodeorBus…”命令;也可下拉主菜單編輯選項“Edit”,選擇“InsertNodeorBus…”項,彈出如圖1-4-7所示的插入節(jié)點或總線對話框(InsertNodeorBus)。在此對話框中點擊右方的“NodeFinder…”按鈕,出現(xiàn)如圖1-4-8所示的節(jié)點查找窗口(NodeFinder)。圖1-4-7InsertNodeorBus對話框圖1-4-8節(jié)點列表

2.節(jié)點列表

選擇搜索條件后點擊過濾欄右方的列表按鈕“List”,若設(shè)計文件已通過分析綜合,在節(jié)點查找窗左下方的“NodesFound”欄內(nèi)將出現(xiàn)頂層設(shè)計文件中滿足搜索條件的所有節(jié)點名。示例項目的節(jié)點列表如圖1-4-8所示。

3.節(jié)點選擇

點擊節(jié)點查找窗中部的按鈕,所有節(jié)點均顯示在右邊所選節(jié)點(SelectedNodes)欄內(nèi),節(jié)點名前冠頂層文件名。

在左欄中選中某個節(jié)點,或同時按下“Shift”鍵選擇多個連續(xù)的節(jié)點名,或同時按下“Ctrl”鍵選擇多個不連續(xù)的節(jié)點名,點擊按鈕,被選節(jié)點顯示在右邊欄內(nèi)。比如,圖1-4-8是在所搜索到的節(jié)點中選擇了4個獨立輸入端口x[0]~x[3]。如果需要刪除原來選擇的節(jié)點,可以在右邊(SelectedNodes)欄內(nèi)選中節(jié)點名,再點擊刪除,或者點擊,刪除右欄所有節(jié)點。由于仿真輸入信號需要編輯,所以影響仿真結(jié)果的輸入節(jié)點一般必須選擇,而輸出端口可由仿真工具自動添加。選擇節(jié)點后點擊“OK”,退回圖1-4-7所示的對話框,再按“OK”確認,被選節(jié)點顯示在波形編輯器窗口,輸入信號一般默認為低電平,如圖1-4-9所示。圖1-4-9節(jié)點排序

4.節(jié)點排序

如果希望重新排列波形顯示窗口中信號的上下順序,可以用鼠標左鍵點擊窗口中節(jié)點列表“Name”下要移動的信號名,被選擇信號呈淡藍色,然后按住鼠標左鍵拖動該信號名,使信號以藍線形式在節(jié)點列表區(qū)移動,移到目標位置后釋放鼠標左鍵,信號位置即被改變。圖1-4-9是要將x[0]移到x[2]下方的情況。

5.節(jié)點編組

當觀察多個關(guān)聯(lián)信號時,可以將信號編組,以便使多個二值信號的狀態(tài)綜合成比較直觀的碼值關(guān)系。信號編組的方法是:

(1)當需編組的信號在窗口中連續(xù)排列時,可按住鼠標左鍵拖動選擇信號;當需編組的信號在窗口中分散排列時,可按住“Ctrl”鍵并點擊鼠標左鍵逐個選擇各信號,被選擇信號呈淡藍色。

(2)執(zhí)行主菜單“Edit”

“Group”命令;或在信號列表中點擊鼠標右鍵,在彈出的菜單中選擇編組命令“Group”,彈出如圖1-4-10所示的信號組屬性選項框。在“Groupname”欄填入任取的組名(比如xx),在“Radix”欄選擇碼值顯示類型,可選擇Binary(二進制)、Octal(八進制)、Hexadecimal(十六進制)、SignedDesimal(有符號十進制)或UnsignedDesimal(無符號十進制)。圖1-4-10信號編組設(shè)置

(3)點擊“OK”按鈕確認,波形窗口的被選信號歸成一個組信號,如圖1-4-11所示。用鼠標左鍵點擊組信號名前的“+”框,框中的符號變?yōu)椤?”號,組中的各位信號波形同時分別顯示。圖1-4-11信號組波形

(4)信號編組時,若被選信號有位序關(guān)系,比如x[0],x[1],…等,碼組中各信號按原來的位序排列;若被選信號原來是分別獨立的信號,信號編碼位序按波形窗口從上到下的順序排列。比

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論