《EDA技術(shù)入門與提高》課件-第4章_第1頁
《EDA技術(shù)入門與提高》課件-第4章_第2頁
《EDA技術(shù)入門與提高》課件-第4章_第3頁
《EDA技術(shù)入門與提高》課件-第4章_第4頁
《EDA技術(shù)入門與提高》課件-第4章_第5頁
已閱讀5頁,還剩298頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章圖形輸入設(shè)計方法4.14位加法器設(shè)計實例4.2宏功能模塊及其使用4.3LPM宏模塊及其使用

4.14位加法器設(shè)計實例

本節(jié)將通過一個4位加法器的設(shè)計實例來介紹采用圖形輸入方式進(jìn)行簡單邏輯設(shè)計的步驟。

4.1.14位加法器邏輯設(shè)計

4位加法器是一種可實現(xiàn)兩個4位二進(jìn)制數(shù)的加法操作的器件,其輸入/輸出端口如圖4.1所示。輸入為兩個4位二進(jìn)制的被加數(shù)A和B,以及輸入進(jìn)位位Ci,輸出為一個4位二進(jìn)制和數(shù)D和輸出進(jìn)位位Co。圖4.14位加法器端口

4位加法器的頂層結(jié)構(gòu)如圖4.2所示,由一個半加器和三個全加器串接而成。工作時,首先是低位A1與B1兩位數(shù)相加,得出最低位的和數(shù)D1和進(jìn)位位C1,然后第二位加數(shù)A2、B2以及第一位全加運算后的進(jìn)位輸出C1進(jìn)行全加操作,得到和數(shù)的第二位D2和進(jìn)位位C2,依次類推,最終獲得4位和數(shù)D4和進(jìn)位位Co。

半加操作就是求兩個加數(shù)A、B的和,輸出本位和數(shù)S及進(jìn)位數(shù)C,其邏輯狀態(tài)如表4.1所示。圖4.24位加法器的頂層結(jié)構(gòu)表4.1半加器邏輯狀態(tài)表ABCS0000010110011110由邏輯狀態(tài)表可寫出邏輯式:⊙由邏輯式可獲得如圖4.3所示的邏輯圖。每個全加器有3位輸入,分別是加數(shù)A、B和一個進(jìn)位位Ci。將這三個數(shù)相加,得出本位和數(shù)(全加和數(shù))D和進(jìn)位數(shù)Co。這個過程稱為“全加”,全加器的邏輯狀態(tài)如表4.2所示。圖4.3半加器邏輯結(jié)構(gòu)表4.2全加器的邏輯狀態(tài)表ABCiCoD0000000101010010111010001101101101011111全加器如圖4.4所示,由兩個半加器和一個“或”門組成。圖4.4全加器邏輯結(jié)構(gòu)工作時A和B在第一個半加器中相加,得出的結(jié)果再和Ci在第二個半加器中相加,即得出全加和D。兩個半加器的進(jìn)位數(shù)通過“或”門輸出作為本位的進(jìn)位數(shù)Co。4.1.2半加器模塊設(shè)計過程

在進(jìn)行半加器模塊邏輯設(shè)計時,采用由上至下的設(shè)計方法,在進(jìn)行設(shè)計輸入時,需要由下至上分級輸入,本節(jié)將介紹使用Quartus?Ⅱ?7.2“GraphicEditor”進(jìn)行設(shè)計輸入的步驟。

(1)雙擊桌面上的Quartus?Ⅱ?7.2快捷圖標(biāo),打開如圖4.5所示的“Quartus?Ⅱ”窗口。

(2)選擇如圖4.6所示的“File”→“NewProjectWizard…”命令,打開如圖4.7所示的“NewProjectWizard:Introduction”對話框。圖4.5“Quartus?Ⅱ”窗口圖4.6選擇“File”→“NewProjectWizard…”命令圖4.7“NewProjectWizard:Introduction”對話框圖4.8“NewProjectWizard:Directory,Name,Top-LevelEntity[page1of5]”對話框

(4)在如圖4.8所示的對話框中的“Whatistheworkingdirectoryforthisproject?”編輯框內(nèi)輸入新建項目的地址路徑,本例中設(shè)置路徑為“d:\example”。在“Whatisthenameofthisproject?”編輯框內(nèi)輸入項目的名稱,本例中設(shè)置項目名稱為“hsa”。在“Whatisthenameofthetop-leveldesignentityforthisproject?Thisnameiscasesensitiveandmustexactlymatchtheentitynameinthedesignfile”編輯框內(nèi)輸入設(shè)計實體的名稱,本例中設(shè)置設(shè)計實體的名稱為“hsa”,單擊“Next”按鈕,打開如圖4.9所示的“NewProjectWizard:AddFiles[page2of5]”對話框。圖4.9“NewProjectWizard:AddFiles[page2of5]”對話框“NewProjectWizard:AddFiles[page2of5]”對話框用于向項目中添加已存在的文件,由于本例中新建的是空白項目,因此暫時沒有文件需要添加。

(5)在如圖4.9所示的對話框中單擊“Next”按鈕,打開如圖4.10所示的“NewProjectWizard:Family&DeviceSettings[page3of5]”對話框。圖4.10“NewProjectWizard:Family&DeviceSettings[page3of5]”對話框

(6)在如圖4.10所示的對話框中的“Family”下拉列表中選擇“FLEX10K”,在“Targetdevice”區(qū)域中選擇“Specificdeviceselectedin‘Availabledevices’list”單選項。然后在對話框下方的“Availabledevices”列表中選擇“EPF10K10LC84-4”,單擊“Next”按鈕,打開如圖4.11所示的“NewProjectWizard:EDAToolSettings[page4of5]”對話框。圖4.11“NewProjectWizard:EDAToolSettings[page4of5]”對話框“NewProjectWizard:EDAToolSettings[page4of5]”對話框用于設(shè)置第三方軟件。Quartus?Ⅱ軟件允許使用第三方軟件進(jìn)行綜合、仿真和分析,在新建項目時就可以指定使用其他軟件進(jìn)行這些處理。本例中使用Quartus?Ⅱ自帶的綜合、仿真和分析工具,所以不需要設(shè)置該對話框中的內(nèi)容。

(7)在如圖4.11所示的對話框中單擊“Next”按鈕,打開如圖4.12所示的“NewProjectWizard:Summary[page5of5]”對話框。圖4.12“NewProjectWizard:Summary[page5of5]”對話框

(8)在如圖4.12所示的對話框中單擊“Finish”按鈕,結(jié)束項目的新建操作。

此時Quartus?Ⅱ操作界面內(nèi)的“ProjectNavigator”面板將顯示新建的“hsa”項目,如圖4.13所示。圖4.13“ProjectNavigator”面板完成了項目的新建操作后,接下來要在項目中新建圖形設(shè)計文件。

(9)單擊“QuartusⅡ”工具欄中的新建文件工具按鈕,打開如圖4.14所示的“New”對話框。

(10)在如圖4.14所示的對話框中的“DeviceDesignFiles”選項卡中選擇“BlockDiagram/SchematicFile”項,單擊“OK”按鈕,新建一個默認(rèn)名為“Block1.bdf”的模塊原理圖文件,如圖4.15所示。

(11)在圖形輸入工作界面中單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Insert”→“Symbol”命令,打開如圖4.16所示的“Symbol”對話框。圖4.14“New”對話框圖4.15新建的“Block1.bdf”模塊原理圖文件圖4.16“Symbol”對話框

(12)單擊如圖4.16所示的對話框左上角的“Libraries”列表中的“+”符號,展開該樹形列表,選擇“Libraries”→“primitives”

→“pin”→“input”符號,如圖4.17所示。

圖4.17選擇“input”符號

(13)單擊“OK”按鈕,在圖形輸入工作區(qū)中單擊鼠標(biāo)左鍵兩次,添加兩個輸入端口符號,如圖4.18所示。圖4.18添加的兩個輸入端口

(14)按照步驟(11)~(13)中的方法,在“Block1.bdf”文件窗口中分別添加一個“AND2”、“NOT”和“XNOR”元件符號,以及兩個“OUTPUT”元件符號,如圖4.19所示。圖4.19添加元件后的“GraphicEditor”窗口當(dāng)需要重復(fù)添加元件時,可以按住“Ctrl”鍵,用鼠標(biāo)單擊并拖動需要重復(fù)添加的元件符號至另一個位置,松開鼠標(biāo),即可復(fù)制一個相同的元件。

(15)將鼠標(biāo)移動到元件的引腳端,鼠標(biāo)形狀將自動變?yōu)椤埃毙?,單擊并拖動鼠?biāo)至另一個元件符號的引腳端,生成一條連線將這兩個元件引腳連接起來。按照如圖4.20所示的半加器原理圖,將“Block1.bdf”文件窗口中的元件連接起來。

(16)雙擊圖4.20所示工作區(qū)左上角的名稱為“pin_name”的“INPUT”元件,打開如圖4.21所示的“PinProperties”對話框。圖4.20半加器原理圖圖4.21“PinProperties”對話框

(17)在“PinProperties”對話框中的“Pinname(s):”編輯框中輸入“a”,單擊“確定”按鈕,將選中“INPUT”元件端口的名稱設(shè)置為“a”。

(18)按照步驟(17)中的方法,將“INPUT”和“OUTPUT”元件的名稱改為如圖4.22所示的自定義的引腳名稱。圖4.22自定義的引腳名稱

(19)選擇主菜單中的“File”→“Save”命令,打開如圖4.23所示的“另存為”對話框。圖4.23“另存為”對話框

(20)在如圖4.23所示的“另存為”對話框中的“文件名”編輯框內(nèi)輸入“hsa”,然后單擊“保存”按鈕,將文件名稱改為“hsa.gdf”,并且將文件存盤于新建項目的文件夾中。

(21)在主菜單中選擇“Processing”→“StartCompilation”命令,系統(tǒng)對設(shè)計進(jìn)行編譯,同時打開“CompilationReport-FlowSummary”窗體,“Status”視圖中將顯示編譯的進(jìn)程,界面如圖4.24所示。圖4.24編譯過程中的“Quartus?Ⅱ”窗體

(22)編譯完成后,系統(tǒng)彈出如圖4.25所示的“Quartus?Ⅱ”消息框,提示編譯完成。圖4.25“Quartus?Ⅱ”消息框

(23)單擊“確定”按鈕,關(guān)閉該消息框。編譯完成后的“CompilationReport-FlowSummary”窗體如圖4.26所示。

圖4.26所示的“CompilationReport-FlowSummary”窗體中顯示了編譯的結(jié)果信息,通過該窗體,可知半加器單元占用2個邏輯單元,4個引腳,沒有占用存儲單元。圖4.26“CompilationReport-FlowSummary”窗體在完成設(shè)計文件的編譯后,為檢驗設(shè)計的正確性,下一步就是對設(shè)計進(jìn)行功能校驗。

(24)在主菜單中選擇“File”→“New”命令,打開“New”對話框。

(25)單擊“New”對話框中的“OtherFiles”選項卡標(biāo)簽,打開如圖4.27所示的“OtherFiles”選項卡。

(26)在如圖4.27所示的選項卡中選擇“VectorWaveformFile”選項,單擊“OK”按鈕,新建一個如圖4.28所示的默認(rèn)名稱為“Waveform1.vwf”的波形文件。圖4.27“OtherFiles”選項卡圖4.28新建的“Waveform1.vwf”波形文件

(27)在“Waveform1.vwf”的波形文件左側(cè)的節(jié)點列表中單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Insert”→“InsertNodeorBus…”命令(如圖4.29所示),打開如圖4.30所示的“InsertNodeorBus”對話框。圖4.29選擇“Insert”→“InsertNodeorBus”命令圖4.30“InsertNodeorBus”對話框

(28)在如圖4.30所示的對話框中單擊“NodeFinder…”按鈕,打開如圖4.31所示的“NodeFinder”對話框。

圖4.31“NodeFinder”對話框

(29)在如圖4.31所示的對話框中的“Filter”下拉列表中選擇“Pins:all”項,單擊“List”按鈕,在“NodesFound”列表中顯示項目中所有的引腳節(jié)點,如圖4.32所示。圖4.32顯示所有引腳節(jié)點

(30)單擊按鈕,將所有的節(jié)點都添加到“SelectedNodes”列表中,單擊“OK”按鈕,關(guān)閉“NodeFinder”對話框。

(31)單擊“InsertNodeorBus”對話框中的“OK”按鈕,將所選擇的節(jié)點添加到空白波形文件中。添加節(jié)點后的“Waveform1.vwf”文件窗口如圖4.33所示。圖4.33添加節(jié)點后的“Waveform1.vwf”文件窗口

(32)選擇主菜單中的“Edit”→“EndTime”命令,打開如圖4.34所示的“EndTime”對話框。圖4.34“EndTime”對話框

(33)在如圖4.34所示的對話框的“Time”編輯框中輸入“100”,單位為“μs”,單擊“OK”按鈕,即表示設(shè)置仿真時間

為100μs。

(34)在如圖4.33所示的左側(cè)的工具欄中單擊按鈕,或者按住“Ctrl”鍵,同時向下滾動鼠標(biāo)滾輪,將“Waveform1.vwf”窗口中的顯示比例縮小,拖動選擇節(jié)點“a”的一段波形,使其被選中,然后單擊左側(cè)工具欄的按鈕,使選中的一段波形狀態(tài)變?yōu)椤?”。采用同樣的方法,將輸入節(jié)點波形設(shè)置為如圖4.35所示的狀態(tài)。圖4.35調(diào)整節(jié)點波形

(35)選擇“File”→“Save”命令,或者單擊保存按鈕,或按“Ctrl+S”快捷鍵,打開如圖4.36所示的“另存為”對話框。圖4.36“另存為”對話框

(36)接受系統(tǒng)的默認(rèn)名稱“hsa.scf”,單擊“OK”按鈕,將波形文件存盤。

為了對設(shè)計進(jìn)行仿真,創(chuàng)建的波形文件的名稱必須與設(shè)計文件的名稱相同,并且它們要被保存在同一個子目錄下。

(37)選擇“Processing”→“StartSimulation”命令,或者單擊工具欄中的仿真工具按鈕,啟動仿真。

仿真過程中的Quartus?Ⅱ界面如圖4.37所示,系統(tǒng)自動彈出“SimulationWaveform”窗口,“Status”視圖中顯示仿真進(jìn)程條,下方的消息欄中顯示仿真過程的信息。圖4.37仿真過程中的Quartus?Ⅱ界面仿真結(jié)束后,彈出如圖4.38所示的“Quartus?Ⅱ”消息框,提示仿真結(jié)束。圖4.38“Quartus?Ⅱ”消息框

(38)單擊如圖4.38所示的“Quartus?Ⅱ”消息框中的“確定”按鈕,關(guān)閉該消息框。仿真結(jié)果波形如圖4.39所示。

圖4.39仿真結(jié)果波形從校驗仿真后得到的“hsa.scf”文件的波形,可以確定半加器設(shè)計不存在邏輯錯誤。將其打包,該設(shè)計可被上層設(shè)計調(diào)用,但是在a和b同時發(fā)生變化的時候,會出現(xiàn)毛刺,這就是

競爭現(xiàn)象引起的,關(guān)于這種毛刺的去除方法,將在以后章節(jié)中介紹。

(39)選擇“File”→“Create/Update”→“CreateSymbolFilesforcurrentfile”命令,打開如圖4.40所示的“CreateSymbolFile”對話框。圖4.40“CreateSymbolFile”對話框

(40)接受如圖4.40所示的對話框內(nèi)默認(rèn)的名稱“hsa.bsf”,單擊“保存”按鈕,彈出如圖4.41所示的“Quartus?Ⅱ”消息框。圖4.41“Quartus?Ⅱ”消息框

(41)單擊“Quartus?Ⅱ”消息框中的“確定”按鈕,系統(tǒng)將生成元件,并保存在上一步設(shè)置的“hsa.bsf”文件中。4.1.3全加器模塊設(shè)計過程

(1)按照4.1.2節(jié)介紹的方法,新建一個名稱為csa的圖形項目。新建并打開一個名稱為“csa.bdf”的空白圖形輸入文件。

(2)在“csa.bdf”文件的空白處,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Insert”→“Symbol”命令,打開如圖4.42所示的“Symbol”對話框。

(3)單擊“Symbol”對話框中“Name”編輯框右側(cè)的“…”按鈕,打開“打開”對話框。圖4.42“Symbol”對話框

(4)在“打開”對話框中選擇4.1.2節(jié)中創(chuàng)建的半加器元件文件“hsa.bsf”,單擊“打開”按鈕,將其打開到“Symbol”對話框中,如圖4.43所示。圖4.43打開半加器元件的“Symbol”對話框

(5)單擊如圖4.43所示的對話框中的“OK”按鈕,在文件的空白處布置兩個“hsa”元件,如圖4.44所示。圖4.44布置的“hsa”元件

(6)按照全加器的設(shè)計原理,添加其他元件符號,連接電路,并更改端口名稱,完成如圖4.45所示的全加器原理圖。

(7)選擇“File”→“Save”命令,保存全加器原理圖。

(8)選擇“File”→“Create/Update”→“CreateSymbolFilesforcurrentfile”命令,接受“CreateSymbolFile”對話框內(nèi)默認(rèn)的名稱“csa.bsf”,生成名稱為“csa.bsf”的元件文件。圖4.45全加器原理圖4.1.44位加法器的設(shè)計過程

(1)創(chuàng)建一個名稱為“adder4”的項目,在該項目中新建一個空白圖形文件。

(2)在文件的空白處,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Insert”→“Symbol”命令,打開“Symbol”對話框。

(3)單擊“Symbol”對話框中的“…”按鈕,選擇4.1.3節(jié)創(chuàng)

建的“csa.bsf”文件,將其添加到“Symbol”對話框中,如圖4.46所示。圖4.46添加了全加器元件的“Symbol”對話框

(4)單擊“Symbol”對話框中的“OK”按鈕,在文件空白處添加3個“csa”元件,如圖4.47所示。圖4.47添加的“csa”元件符號

(5)按照4位加法器的原理,在文件窗口添加其他元件符號,并用導(dǎo)線連接起來,繪制如圖4.48所示的原理圖。圖4.484位全加器原理圖

(6)選擇“File”→“SaveAs”命令,打開“SaveAs”對話框,在“SaveAs”對話框的“FileName”編輯框中輸入“adder4.gdf”,單擊“OK”按鈕,保存4位加法器原理圖。

(7)選擇“Processing”→“StartCompilation”命令,開始對adder4項目進(jìn)行綜合、編譯,過程如圖4.49所示。

編譯完成后,彈出如圖4.50所示的“Quartus?Ⅱ”消息框,提示編譯成功結(jié)束。

(8)在“adder4”項目中新建一個空白波形文件。

(9)選擇“Edit”→“EndTime”命令,打開“EndTime”對話框。圖4.49adder4項目編譯過程圖4.50“Quartus?Ⅱ”消息框圖4.51adder4的引腳列表的“NodeFinder”對話框圖4.52添加引腳節(jié)點后的波形圖

(16)使用鼠標(biāo)單擊并拖動波形文件窗口中“Name”列下的“B1”~“B4”項,將其選中,單擊鼠標(biāo)右鍵打開下拉菜單,選中“Grouping”→“Group…”命令(如圖4.53所示),打開如圖4.54所示的“Group”對話框。圖4.53選擇“Grouping”→“Group…”命令圖4.54“Group”對話框

(17)在如圖4.54所示的對話框的“Radix”下拉列表中選擇“UnsignedDecimal”項,在“Groupname”編輯欄內(nèi)輸入組名“B”,單擊“OK”按鈕,將節(jié)點“B1”~“B4”合成一個名為“B”的組,并且用十進(jìn)制數(shù)值表示。

(18)按照同樣的方法,將節(jié)點“A1”~“A4”合成一個名為“A”的組,并且用十進(jìn)制數(shù)值表示。將節(jié)點“Co”移動至節(jié)點“D4”上方,將“Co”、“D4”、“D3”、“D2”和“D1”依次序合成一個名為“Dout”的組,并用十進(jìn)制表示,此時波形文件窗口如圖4.55所示。圖4.55信號組合后的波形文件

(19)選擇“Edit”→“GridSize”命令,打開如圖4.56所示的“GridSize”對話框。圖4.56“GridSize”對話框

(20)在如圖4.56所示的對話框的“Period”編輯框內(nèi)輸入“1μs”,單擊“OK”按鈕,將仿真的最小時間段設(shè)置為1μs。

(21)使用鼠標(biāo)雙擊選中A組的所有波形,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇如圖4.57所示的“Value”→“RandomValues…”命令,打開如圖4.58所示的“RandomValues”對話框。

(22)在如圖4.58所示的“RandomValues”對話框中選擇

“Atfixedintervals”單選項,在“Intervalperiod”編輯框內(nèi)輸入

“8μs”,即設(shè)置數(shù)據(jù)變化的周期為8μs,單擊“OK”按鈕。

(23)按照步驟(16)和(17)的方法,設(shè)置B輸入信號的周期為10μs的隨機數(shù)據(jù),得到的波形文件如圖4.59所示。圖4.57選擇“Value”→“RandomValues…”命令圖4.58“RandomValues”對話框

(22)在如圖4.58所示的“RandomValues”對話框中選擇“Atfixedintervals”單選項,在“Intervalperiod”編輯框內(nèi)輸入“8μs”,即設(shè)置數(shù)據(jù)變化的周期為8μs,單擊“OK”按鈕。

(23)按照步驟(16)和(17)的方法,設(shè)置B輸入信號的周期為10μs的隨機數(shù)據(jù),得到的波形文件如圖4.59所示。圖4.59波形文件

(24)單擊保存文件按鈕,打開“SaveAs”對話框,接受系統(tǒng)默認(rèn)的名稱“adder4.vwf”,單擊“OK”按鈕,保存波形文件。

(25)選擇“Processing”→“StartSimulation”命令,系統(tǒng)開始仿真。

(26)仿真結(jié)束后,在彈出的“Quartus?Ⅱ”消息框內(nèi)單擊“確定”按鈕,打開如圖4.60所示的“SimulationWaveform”窗口,顯示仿真結(jié)果。圖4.60“SimulationWaveform”窗口根據(jù)仿真結(jié)果波形,可知4位加法器實現(xiàn)了加法功能,所有加法運算結(jié)果正確,功能符合設(shè)計要求。

接下來要進(jìn)行時序分析,確定各引腳之間的延時參數(shù)。

(27)選擇“Processing”→“Start”→“StartClassicTiminganalyzer”命令,進(jìn)行時序分析。

(28)時序分析結(jié)束后,單擊“CompilationReport”窗口左側(cè)的樹形列表中的“TimingAnalyzer”項,選擇“Summary”報告,顯示如圖4.61所示的“TimingAnalyzerSummary”列表。圖4.61“TimingAnalyzerSummary”列表“TimingAnalyzerSummary”列表中顯示了信號的最長延遲時間為20.9ns,該信號的路徑是從B2引腳到Co引腳,說明加法模塊一次運算所需時間至少為20.9ns。

(29)單擊“CompilationReport”窗口左側(cè)的樹形列表中的“TimingAnalyzer”項內(nèi)的“tpd”項,打開“tpd”報告,如圖4.62所示。圖4.62“tpd”報告通過分析延時陣列表可以發(fā)現(xiàn),D1、D2、D3、Co、D4的延時依次增大,這一現(xiàn)象是由設(shè)計的串行結(jié)構(gòu)所造成的。在確定引腳間的延時滿足設(shè)計要求后,最后就是將設(shè)計下載到器件中做進(jìn)一步的硬件測試。

(30)在主菜單中選擇“Assignments”→“Pin”命令,打開如圖4.63所示的“PinPlanner”窗口。圖4.63“PinPlanner”窗口

(31)單擊“PinPlanner”窗口下方的列表中“A1”所處的行對應(yīng)的“Location”列的單元格,在彈出的下拉列表中選擇“Pin16Row/IO”項,將第16號引腳設(shè)置為A1信號輸入引腳。

(32)雙擊“PinPlanner”窗口內(nèi)的“FLEX10K”器件的“17”號引腳,打開如圖4.64所示的“PinProperties”對話框。

(33)在“PinProperties”對話框中的“Nodename”下拉列表

中選擇“A2”,單擊“OK”按鈕,將Pin17引腳設(shè)置為A2信號輸入引腳。

(34)按照以上方法,為設(shè)計中的其他端口定義引腳,定義好端口引腳的“PinPlanner”窗口如圖4.65所示。圖4.64“PinProperties”對話框圖4.65定義好端口引腳的“PinPlanner”窗口

(35)選擇“Processing”→“StartCompilation”命令,對設(shè)計進(jìn)行重新編譯,將引腳設(shè)置編入配置文件中,編譯完成后,在彈出的“QuartusⅡ”消息欄內(nèi)單擊“確定”按鈕。

(36)使用下載電纜將計算機的打印口與目標(biāo)板連接好,打開電源,選擇“Tools”→“Programmer”命令,打開如圖4.66所示的“adder4.cdf”窗口。圖4.66“adder4.cdf”窗口

(37)單擊如圖4.66所示窗口中的“HardwareSetup…”按鈕,打開如圖4.67所示的“HardwareSetup”對話框。

(38)在“Currentlyselectedhardware”下拉列表中選擇“ByteBlaster(MV)”項,單擊“Close”按鈕。

ByteBlaster(MV)對應(yīng)計算機的并行通信口下載通道?!癕V”是指對于混合電壓均適用的意思。Altera公司的各類芯核電壓的FPGA/CPLD都能使用該下載電纜下載。用戶只需要在第一次編程下載時設(shè)置“HardwareType”項,設(shè)置完成后的“adder4.cdf”文件窗口如圖4.68所示。圖4.67“HardwareSetup”對話框圖4.68設(shè)置完成后的“adder4.cdf”文件窗口

(39)在“adder4.cdf”文件窗口中勾選“Program/Configure”、“Verify”、“Blank-Check”和“Examine”項,然后單擊“Start”按鈕,將配置下載到器件中。

(40)下載完成后,系統(tǒng)將彈出一個“Quartus?Ⅱ”消息框,提示下載完成。取下下載電纜即可使用。

至此,4位加法器的設(shè)計基本完成。

4.2宏功能模塊及其使用

除了基本的門電路,Quartus?Ⅱ還提供了大量的宏模塊供用戶調(diào)用,其中有從Altera公司上一代EDA軟件MAXPLUS?Ⅱ繼承的大量宏模塊,按照其功能,可分為時序電路宏模塊和運算電路宏模塊。本節(jié)將簡要介紹這些系統(tǒng)提供的宏模塊,然后通過一個設(shè)計實例,介紹宏模塊的使用。4.2.1時序電路宏模塊

1.觸發(fā)器

觸發(fā)器是數(shù)字電路中的常用器件。規(guī)模比較大的數(shù)字電路中,都使用了觸發(fā)器。常用的觸發(fā)器類型主要有D觸發(fā)器、T觸發(fā)器、JK觸發(fā)器以及帶有各種使能端口和控制端口的擴展型觸發(fā)器等。

D觸發(fā)器輸出和輸入的狀態(tài)變化之間存在一個時鐘周期的延時,其輸出為時鐘脈沖到來之前的輸入端D的狀態(tài),所以又被稱為延時觸發(fā)器。D觸發(fā)器的符號如圖4.69所示。表4.3所示為D觸發(fā)器的邏輯參數(shù)表。圖4.69D觸發(fā)器的符號

T觸發(fā)器與D觸發(fā)器類似,只有一個數(shù)據(jù)輸入端和一個時鐘輸入端。如圖4.70所示即為T觸發(fā)器的符號。表4.4所示即為T觸發(fā)器的邏輯參數(shù)表。圖4.70T觸發(fā)器的符號比較表4.3和表4.4可知,T觸發(fā)器與D觸發(fā)器之間最基本的區(qū)別在于D觸發(fā)器的輸出狀態(tài)與D輸入端的狀態(tài)有關(guān),而T觸發(fā)器的輸出狀態(tài)與T輸入端的狀態(tài)并沒有直接的關(guān)系,只有T輸入是高電平時,在時鐘的激勵下,輸出狀態(tài)才改變一次。

通常D觸發(fā)器用于組成寄存器,而T觸發(fā)器常用來實現(xiàn)二分頻功能。

JK觸發(fā)器是多功能觸發(fā)器,其符號如圖4.71所示。表4.5所示即為JK觸發(fā)器的邏輯參數(shù)表。圖4.71JK觸發(fā)器的符號在普通JK型、D型和T型觸發(fā)器的基礎(chǔ)上,Quartus?Ⅱ?7.2還提供了大量具有擴展功能的觸發(fā)器宏模塊,如具有預(yù)置、清零端和三態(tài)輸出端的觸發(fā)器,如果在電路設(shè)計中靈活加以運用,則可以大大提高電路設(shè)計的效率和性能。表4.6所示即為Quartus?Ⅱ?7.2提供的觸發(fā)器宏模塊的目錄,具體模塊參數(shù)的設(shè)置可以參考該軟件提供的幫助信息。

2.鎖存器

鎖存器的功能是將某一特定時刻的輸入信號的狀態(tài)保存起來。常用的鎖存器有RS鎖存器、門控RS鎖存器和D鎖存器。

觸發(fā)器可認(rèn)為是一種帶有時鐘控制的鎖存器。鎖存器和觸發(fā)器的狀態(tài)均跟隨輸入信號的電平值變化,二者的不同之處在于鎖存器的狀態(tài)隨輸入信號實時變化,而觸發(fā)器的狀態(tài)要等到時鐘信號邊沿到來時才改變。表4.7所示為Quartus?Ⅱ?7.2提供的鎖存器宏模塊的目錄。

3.計數(shù)器

計數(shù)器是數(shù)字系統(tǒng)中使用最廣泛的時序電路,幾乎每一個數(shù)字系統(tǒng)都離不開計數(shù)器。計數(shù)器可以對時鐘或脈沖信號計數(shù),還可以完成定時、分頻、控制和數(shù)學(xué)運算等功能。根據(jù)輸入脈沖的引入方式不同,計數(shù)器可分為同步計數(shù)器和異步計數(shù)器;根據(jù)計數(shù)過程中數(shù)字的增減趨勢不同,計數(shù)器可分為加法計數(shù)器、減法計數(shù)器和可逆計數(shù)器;根據(jù)計數(shù)器計數(shù)進(jìn)制的不同,計數(shù)器還可分為二進(jìn)制計數(shù)器和非二進(jìn)制計數(shù)器。Quartus?Ⅱ?7.2提供了幾十種計數(shù)器宏模塊,在設(shè)計中可以任意調(diào)用。表4.8所示即為Quartus?Ⅱ?7.2提供的計數(shù)器宏模塊的目錄。宏模塊名稱功能描述74168同步4位十進(jìn)制加/減計數(shù)器74159同步4位二進(jìn)制加/減計數(shù)器74176可預(yù)置十進(jìn)制計數(shù)器74177可預(yù)置二進(jìn)制計數(shù)器741904位十進(jìn)制加/減計數(shù)器,異步讀取741914位二進(jìn)制加/減計數(shù)據(jù),異步讀取741924位十進(jìn)制加/減計數(shù)器,異步清零741934位二進(jìn)制加/減計數(shù)器,異步清零74196可預(yù)置十進(jìn)制計數(shù)器74197可預(yù)置二進(jìn)制計數(shù)器74290十進(jìn)制計數(shù)器74292可編程分頻器/數(shù)字定時器74293二進(jìn)制計數(shù)器74294可編程分頻器/數(shù)字定時器74390二單元十進(jìn)制計數(shù)器74393二單元4位加法計數(shù)器,異步清零74490二單元4位十進(jìn)制計數(shù)器74568十進(jìn)制加/減計數(shù)器,同步讀取,同步和異步清零74569二進(jìn)制加/減計數(shù)器,同步讀取,同步和異步清零745908位二進(jìn)制計數(shù)器,帶有三態(tài)輸出寄存器745928位二進(jìn)制計數(shù)器,帶有輸入寄存器74668同步十進(jìn)制加/減計數(shù)器74669同步4位二進(jìn)制加/減計數(shù)器74690同步十進(jìn)制計數(shù)器,帶有輸出寄存器,多重三態(tài)輸出,異步清零74691同步二進(jìn)制計數(shù)器,帶有輸出寄存器,多重三態(tài)輸出,異步清零74693同步二進(jìn)制計數(shù)器,帶有輸出寄存器,多重三態(tài)輸出,同步清零74696同步十進(jìn)制加/減計數(shù)器,帶有輸出寄存器,多重三態(tài)輸出,異步清零74697同步二進(jìn)制加/減計數(shù)器,帶有輸出寄存器,多重三態(tài)輸出,異步清零74698同步十進(jìn)制加/減計數(shù)器,帶有輸出寄存器,多重三態(tài)輸出,同步清零74699同步二進(jìn)制加/減計數(shù)器,帶有輸出寄存器,多重三態(tài)輸出,同步清零

4.分頻器

常見的時序電路系統(tǒng)中常常需要不同頻率的時鐘信號,為保證信號的同步,系統(tǒng)通常只使用一個時鐘源輸入,而各個子系統(tǒng)所需的時鐘則由該時鐘源經(jīng)過分頻電路或倍頻電路得到。實現(xiàn)分頻功能的電路稱為分頻器。Quartus?Ⅱ?7.2提供了3種分頻器宏模塊,見表4.9。

5.多路復(fù)用器

多路復(fù)用器類似于一個多路選擇開關(guān),在多路數(shù)據(jù)傳送過程中,將多路數(shù)據(jù)中的任意一路信號挑選輸出,完成這種功能的邏輯電路稱為多路復(fù)用器。多路復(fù)用器是一個多輸入、單輸出的邏輯電路,它在地址碼(或選擇控制信號)的控制下,從幾路輸入數(shù)據(jù)中選擇一個,并將其送到輸出端,所以有時也被稱為多路數(shù)據(jù)選擇器、多路開關(guān)或多路轉(zhuǎn)換器。多路選擇器常用于計算機、DSP中的數(shù)據(jù)和地址之間的切換,以及數(shù)字通信中的并/串變換、通道選擇等。表4.10所示為Quartus?Ⅱ?7.2提供的多路復(fù)用器宏模塊的目錄。宏模塊名稱功能描述21mux2選1線多路復(fù)用器161mux16選1線多路復(fù)用器2×8mux8位總線的2選l多路復(fù)用器81mux8選1線多路復(fù)用器741518選1線多路復(fù)用器74151b8選1線多路復(fù)用器74153二單元4選1線多路復(fù)用器74157四單元2選1線多路復(fù)用器74158帶反相輸出的四單元2選1線多路復(fù)用器表4.10Quartus?Ⅱ?7.2提供的多路復(fù)用器宏模塊的目錄74251帶三態(tài)輸出的8選l線數(shù)據(jù)選擇器74253帶三態(tài)輸出的二單元4選1線數(shù)據(jù)選擇器74257帶三態(tài)輸出的四單元2選1線多路復(fù)用器74258帶三態(tài)反相輸出的四單元2選1線多路復(fù)用器74298帶存儲功能的四單元2輸入多路復(fù)用器74352帶反相輸出的雙4選1線數(shù)據(jù)選擇器/多路復(fù)用器74353帶三態(tài)反相輸出的雙4選1線數(shù)據(jù)選擇器/多路復(fù)用器74354帶三態(tài)輸出的8選1線數(shù)據(jù)選擇器/多路復(fù)用器74356帶三態(tài)輸出的8選1線數(shù)據(jù)選擇器/多路復(fù)用器74398帶存儲功能的四單元2輸入多路復(fù)用器74399帶存儲功能的四單元2輸入多路復(fù)用器

6.移位寄存器

移位寄存器是具有移位功能的寄存器,常用于數(shù)據(jù)的串/并變換、并/串變換以及乘法移位操作、周期序列產(chǎn)生等。移位寄存器可分為左移移位寄存器、右移移位寄存器、雙向移位寄存器、可預(yù)置移位寄存器以及環(huán)形移位寄存器等。其中雙向移位寄存器同時具有左移和右移的功能,它是在一般移位寄存器的基礎(chǔ)上,加上左、右移位控制信號構(gòu)成的。表4.11所示為Quartus?Ⅱ?7.2提供的移位寄存器宏模塊的目錄。表4.11Quartus?Ⅱ?7.2提供的移位寄存器宏模塊的目錄宏模塊名稱功能描述barrelst8位桶形移位寄存器barrlstb8位桶形移位寄存器7491串入串出移位寄存器7494帶異步預(yù)置和異步清零端的4位移位寄存器74954位并行移位寄存器74965位移位寄存器7499帶JK串行輸入和并行輸出端的4位移位寄存器74164串行輸入并行輸出移位寄存器74164b串行輸入并行輸出移位寄存器74165并行讀入8位移位寄存器74165b并行讀入8位移位寄存器74166帶時鐘禁止端的8位移位寄存器741784位移位寄存器74179帶清零端的4位移位寄存器74194帶并行讀入端的4位雙向移位寄存器741954位并行移位寄存器741988位雙向移位寄存器741998位并行移位寄存器74295帶三態(tài)輸出端的4位右移/左移移位寄存器742998位通用移位/存儲寄存器74350帶三態(tài)輸出端的4位移位寄存器74395帶三態(tài)輸出端的4位可級聯(lián)移位寄存器74589帶輸入鎖存和三態(tài)輸出的8位移位寄存器74594帶輸出鎖存的8位移位寄存器74595帶輸出鎖存和三態(tài)輸出的8位移位寄存器74597帶輸入寄存器的8位移位寄存器74671帶強制清零和三態(tài)輸出的4位通用移位寄存器/鎖存器4.2.2運算電路宏模塊

1.加法器和減法器

加法器是數(shù)字系統(tǒng)中最基本的運算電路。Quartus?Ⅱ?7.2提供了大量的加法器和減法器宏模塊供用戶調(diào)用。表4.12所示為Quartus?Ⅱ?7.2提供的加法器和減法器宏模塊的目錄。表4.12Quartus?Ⅱ?7.2提供的加法器和減法器宏模塊的目錄宏模塊名稱功能描述8ladd8位全加器8faddb8位全加器7480門控全加器74822位二進(jìn)制全加器7483帶快速進(jìn)位的4位二進(jìn)制全加器74183雙進(jìn)位存儲全加器74283帶快速進(jìn)位的4位全加器74385帶清零端的4位加法器/減法器

2.乘法器

在數(shù)字通信系統(tǒng)和數(shù)字信號處理中,乘法器是必不可少的。利用加法器雖然可以構(gòu)造出乘法器,但使用模塊化的通用乘法器可以大大減小系統(tǒng)資源的消耗,提高效率。表4.13所示為Quartus?Ⅱ?7.2提供的乘法器宏模塊的目錄。表4.13Quartus?Ⅱ?7.2提供的乘法器宏模塊的目錄宏模塊名稱功能描述mult22位帶符號數(shù)值乘法器mult242?×?4位并行二進(jìn)制乘法器muh44位并行二進(jìn)制乘法器mult4b4位并行二進(jìn)制乘法器tmuh44?×?4位并行二進(jìn)制乘法器7497同步6位速率乘法器742612位并行二進(jìn)制乘法器742844?×?4位并行二進(jìn)制乘法器(輸出結(jié)果的最高4位)742854?×?4位并行二進(jìn)制乘法器(輸出結(jié)果的最低4位)

3.?dāng)?shù)值比較器

數(shù)值比較器用于對輸入的兩個二進(jìn)制數(shù)A和B的大小關(guān)系進(jìn)行判斷,其結(jié)果總共有6種,分別是A=B、A≠B、A≥B、A≤B、A>B和A<B。數(shù)值比較器常用于信號檢測和門限判決電路中。表4.14所示為Quartus?Ⅱ?7.2提供的數(shù)值比較器宏模塊的目錄。表4.14Quartus?Ⅱ?7.2提供的數(shù)值比較器宏模塊的目錄宏模塊名稱功能描述8mcomp8位數(shù)值比較器8mcompb8位數(shù)值比較器74854位數(shù)值比較器745188位恒等比較器74518b8位恒等比較器746848位數(shù)值/恒等比較器746868位數(shù)值/恒等比較器746888位恒等比較器

4.編碼器和譯碼器

“編碼”即將若干二進(jìn)制數(shù)碼按照一定規(guī)律編排,編成不同代碼,并用特定的代碼去表示特定的信號,以減少數(shù)據(jù)總線數(shù)量。完成這種邏輯的電路稱為編碼器。它是多輸入、多輸出的組合電路。編碼器可分為二進(jìn)制編碼器、二-十進(jìn)制編碼器和優(yōu)先編碼器。二進(jìn)制編碼器將一般信號編成二進(jìn)制代碼。二-十進(jìn)制編碼器又稱BCD編碼器,是用BCD碼對十個數(shù)碼進(jìn)行編碼的電路。二進(jìn)制編碼器和二-十進(jìn)制編碼器同時只允許一個輸入端有信號輸入。優(yōu)先編碼器則允許幾個輸入端同時有信號到來,但各個輸入端的優(yōu)先權(quán)不同,輸出自動對優(yōu)先權(quán)較高的輸入進(jìn)行編碼,優(yōu)先編碼器常用于控制系統(tǒng)中。表4.15所示為Quartus?Ⅱ7.2提供的編碼器宏模塊的目錄。表4.15Quartus?Ⅱ7.2提供的編碼器宏模塊的目錄宏模塊名稱功能描述7414710線-4線BCD編碼器741488線-3線八進(jìn)制編碼器74348帶三態(tài)輸出的8線-3線優(yōu)先編碼器“譯碼”過程是“編碼”過程的逆過程。所謂譯碼,就是“翻譯”給定的碼組,使輸出通道中對應(yīng)的一路有信號輸出。能實現(xiàn)譯碼功能的電路稱為譯碼器。譯碼器也是多輸入、多輸出的組合邏輯電路,在數(shù)字裝置中用途比較廣泛。譯碼器除了把二進(jìn)制代碼譯成十進(jìn)制代碼外,還經(jīng)常用于各種數(shù)字顯示的譯碼、組合控制信號等。表4.16所示為Quartus?Ⅱ?7.2提供的譯碼器宏模塊的目錄。表4.16Quartus?Ⅱ?7.2提供的譯碼器宏模塊的目錄宏模塊名稱功能描述16dmux4位二進(jìn)制-16線譯碼器16ndmux4位二進(jìn)制-16線譯碼器74424線-10線BCD-十進(jìn)制譯碼器7443余3碼-十進(jìn)制譯碼器7444余3格雷碼-十進(jìn)制譯碼器7445BCD碼-十進(jìn)制譯碼器7446BCD碼-7段譯碼器7447BCD碼-7段譯碼器7448BCD碼-7段譯碼器7449BCD碼-7段譯碼器74137帶地址鎖存的3線-8線譯碼器741383選8線譯碼器74139雙2選4線譯碼器74145BCD碼-十進(jìn)制譯碼器741544線-16線譯碼器74155雙2線-4線譯碼器/多路輸出選擇器74156雙2線-4線譯碼器/多路輸出選擇器74246BCD碼-7段譯碼器74247BCD碼-7段譯碼器74248BCD碼-7段譯碼器74445BCD碼-十進(jìn)制譯碼器

5.奇偶校驗器

在數(shù)據(jù)通信過程中,信號常受到信道或傳輸線中各種干擾的影響,接收到的數(shù)據(jù)有時會發(fā)生一些差錯。在設(shè)計中常采用奇偶校驗的方法檢測數(shù)據(jù)傳輸中是否出現(xiàn)差錯。常用的奇偶校驗法有兩種,即“奇校驗”和“偶校驗”。

奇偶校驗方法的原理如下:

數(shù)據(jù)發(fā)送端給每字節(jié)數(shù)據(jù)添加一個奇偶監(jiān)督位,在信道中傳輸?shù)臄?shù)據(jù)包括兩部分,一部分是所要傳送的信息碼,另一部分是奇偶監(jiān)督位。若采用“奇校驗”方法,則保證數(shù)據(jù)和奇偶監(jiān)督位中“1”的總個數(shù)為“奇數(shù)”。若采用“偶校驗”方法,則保證信息碼和奇偶監(jiān)督位中“1”的總個數(shù)為“偶數(shù)”。

接收端收到數(shù)據(jù)信號后,根據(jù)事先約定的奇偶校驗方法,對接收的數(shù)據(jù)進(jìn)行檢驗,若不滿足要求,則說明數(shù)據(jù)在傳輸過程中發(fā)生了改變,傳送失敗,即可要求重新傳送數(shù)據(jù)。在數(shù)字通信系統(tǒng)中,通常采用奇數(shù)校驗,因為它避免了全“0”情況的出現(xiàn)。如果在傳送過程中有兩位數(shù)據(jù)同時發(fā)生錯誤,采用奇偶校驗的方法就不可能發(fā)現(xiàn)了。表4.17所示為Quartus?Ⅱ?7.2提供的奇偶校驗器宏模塊的目錄。表4.17Quartus?Ⅱ?7.2提供的奇偶校驗器宏模塊的目錄宏模塊名稱功能描述741809位奇偶產(chǎn)生器/校驗器74180b9位奇偶產(chǎn)生器/校驗器742809位奇偶產(chǎn)生器/校驗器74280b9位奇偶產(chǎn)生器/校驗器4.2.32位十進(jìn)制數(shù)字位移測量儀設(shè)計實例

本節(jié)將通過一個2位十進(jìn)制數(shù)字位移測量儀的設(shè)計實例來介紹使用宏模塊設(shè)計較復(fù)雜系統(tǒng)的具體方法。

2位十進(jìn)制數(shù)字位移測量儀可以測量滾輪的直線位移,原理如圖4.72所示。當(dāng)滾輪滾動時,光電傳感器會產(chǎn)生脈沖信號“distancepulse”。當(dāng)滾輪朝正方向滾動時,軸上的轉(zhuǎn)向傳感器輸出“direction”信號為“0”;當(dāng)滾輪逆向滾動時,“direction”信號為“1”。當(dāng)“direction”信號為“0”時,對“distancepulse”進(jìn)行加法計數(shù);當(dāng)“direction”信號為“1”時,對“distancepulse”信號進(jìn)行減法計數(shù),得到的計數(shù)值即為滾輪滾過的位移。圖4.72位移測量儀原理

2位十進(jìn)制數(shù)字位移測量儀需要實現(xiàn)以下功能:

(1)在“direction”信號的控制下,對“distancepulse”脈沖進(jìn)行加法計數(shù)或減法計數(shù);

(2)可實時顯示2位十進(jìn)制計數(shù)值;

(3)可對計數(shù)值手動清零;

(4)可鎖定計數(shù)值。

本實例采用自頂向下的方法進(jìn)行設(shè)計,先完成頂層模塊的劃分,然后再實現(xiàn)底層模塊功能。

1.頂層設(shè)計

分析系統(tǒng)所要實現(xiàn)的功能,系統(tǒng)共有4個輸入引腳,兩路7段數(shù)碼顯示管驅(qū)動信號輸出,如表4.18所示。表4.18系統(tǒng)輸入/輸出引腳定義名稱類型功能Reset輸入系統(tǒng)復(fù)位信號Inpulse輸入位移脈沖信號Direction輸入移動方向信號Lock輸入鎖定顯示值Lower_disp[0..6]輸出個位數(shù)碼管驅(qū)動信號High_disp[0..6]輸出十位數(shù)碼管驅(qū)動信號可將系統(tǒng)分為計數(shù)部分和顯示部分。計數(shù)部分用于對“distancepulse”信號進(jìn)行BCD碼計數(shù),輸出個位和十位BCD碼計數(shù)值。計數(shù)部分的輸入/輸出引腳如表4.19所示。表4.19計數(shù)部分的輸入/輸出引腳名稱類型功能Reset輸入系統(tǒng)復(fù)位信號Inpulse輸入位移脈沖信號Direction輸入移動方向信號Lock輸入鎖定顯示值Lower_BCD[1..4]4位輸出個位計數(shù)BCD值High_BCD[1..4]4位輸出十位計數(shù)BCD值顯示部分用于將個位和十位的BCD計數(shù)值編碼為7段數(shù)碼管顯示信號。顯示部分的輸入/輸出引腳如表4.20所示。表4.20顯示部分的輸入/輸出引腳名稱類型功能Lower_BCD[1..4]4位輸入個位計數(shù)BCD值High_BCD[1..4]4位輸入十位計數(shù)BCD值Lower_disp[1..7]7位輸出個位數(shù)的數(shù)碼管顯示驅(qū)動信號High_disp[1..7]7位輸出十位數(shù)的數(shù)碼管顯示驅(qū)動信號使用Quartus?Ⅱ?7.2的頂層設(shè)計步驟如下:

(1)啟動Quartus?Ⅱ?7.2軟件,選擇“File”→“NewProjectWizard”命令,打開“NewProjectWizard”對話框。

(2)設(shè)置項目名稱為“Displace_Mea”,然后單擊“Finish”按鈕,新建一個項目。

(3)單擊新建文件工具按鈕,在打開的“New”對話框中選擇“BlockDiagram、SchematicFile”項,單擊“OK”按鈕,新建一個原理圖文件。

(4)在工作區(qū)原理圖文件編輯工具條上單擊Block工具按鈕,在空白地方畫一個合適的Block,如圖4.73所示。圖4.73繪制的Block

(5)單擊工作區(qū)原理圖文件編輯工具條上的指針工具按鈕,將光標(biāo)改為指針形式,在工作區(qū)繪制的Block上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“BlockProperties”命令,打開如圖4.74所示的“BlockProperties”對話框。

(6)在“Name”編輯欄內(nèi)輸入“dis_counter”,設(shè)置block的名稱為“dis_counter”,單擊“I/Os”選項卡標(biāo)簽,在“BlockProperties”對話框內(nèi)顯示如圖4.75所示的“I/Os”選項卡。

圖4.74“BlockProperties”對話框圖4.75“I/Os”選項卡

(7)在“Name”編輯欄內(nèi)輸入“Reset”,在“Type”下拉列表中選擇“INPUT”,單擊“Add”按鈕,為“dis_counter”模塊添加一個名稱為“Reset”的輸入引腳。

(8)按照表4.19的要求,添加其他引腳,引腳添加完成之后,單擊“確定”按鈕,此時“dis_counter”模塊如圖4.76所示。圖4.76添加完引腳的“dis_counter”模塊把引腳名稱設(shè)置為High_BCD[1..4],即表示一個4位的總線,傳輸4位信號,分別是High_BCD1、High_BCD2、High_BCD3、High_BCD4。采用這種將多位引腳通過一條總線描述的表示方法可以大大降低工作量,在有多位總線的設(shè)計中很方便。

(9)在“dis_counter”模塊上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Autofit”命令,系統(tǒng)自動調(diào)整“dis_counter”模塊的大小,去除多余的空白位置。

(10)按照同樣的方法,根據(jù)表4.20的設(shè)置,新建一個名稱為“dis_coder”的模塊,完成的兩個模塊如圖4.77所示。圖4.77完成的兩個模塊

Quartus?Ⅱ可以根據(jù)Block中引腳的名稱,自動將具有相同名稱的引腳連接起來,而“dis_counter”和“dis_coder”模塊之間需要連接的“High_BCD[1..4]”和“Low_BCD[1..4]”引腳的名稱都相同,所以不需要另行連接。

(11)在圖形編輯區(qū)域的空白處單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Insert”→“Symbol”命令,打開“Symbol”對話框。

(12)在“Symbol”對話框中的“Libraries”樹形列表中選擇“primitives”→“pin”→“input”,單擊“OK”按鈕。

(13)在工作區(qū)布置4個“INPUT”引腳,原理圖如圖4.78所示。圖4.78布置“INPUT”引腳后的原理圖

(14)按照步驟(12)和(13)的方法,在工作區(qū)再布置2個“OUTPUT”引腳,此時原理圖如圖4.79所示。圖4.79布置完“OUTPUT”引腳后的原理圖

(15)在名稱為“pin_name”的輸入引腳上雙擊鼠標(biāo)左鍵,打開“PinProperties”對話框,在對話框的“Name”編輯框內(nèi)輸入“Reset”,單擊“確定”按鈕,將該引腳名稱改為“Reset”。

(16)采用同樣的辦法,更改其他輸入/輸出引腳的名稱,其中4個輸入引腳名稱分別為“Reset”、“Inpulse”、“Lock”、“Direction”,2個輸出引腳名稱分別為“Low_div[1..7]”和“High_div[1..7]”,修改后的原理圖如圖4.80所示。圖4.80修改引腳名稱后的原理圖

(17)將光標(biāo)移至“dis_counter”模塊的藍(lán)色邊緣,此時光標(biāo)形狀變?yōu)?,按下鼠?biāo)左鍵拖動鼠標(biāo),將“dis_counter”模塊和4個輸入引腳按照如圖4.81所示的連接方式串聯(lián)起來,連接好之后,松開鼠標(biāo)。圖4.81連接的“dis_counter”模塊和4個輸入引腳

Quartus?Ⅱ原理圖編輯器中,引腳之間的連接有3種形式,分別是“ConduitLine”、“BusLine”和“NodeLine”?!癗odeLine”最簡單,使用細(xì)線表示,一次只連接一路信號;“BusLine”使用粗線表示,一次可以連接一路總線,例如“A[0..7]”表示A[0]~A[7]共8路信號,組合成一路總線,使用總線方式傳輸;“ConduitLine”使用平行的兩根細(xì)線表示,可以同時連接多路不同類型的信號,該連接方式內(nèi)部有一個信號表,可以設(shè)置不同名稱的信號之間的連接關(guān)系。步驟(17)中使用的就是“ConduitLine”,由于需要連接的兩端對應(yīng)的信號名稱完全相同,因此不需要再設(shè)定信號表。為保險起見,可以查看“ConduitLine”中的信號表,確認(rèn)信號都已正確連接。

(18)在“ConduitLine”連接線上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Properties”命令,打開如圖4.82所示的“ConduitProperties”對話框。

(19)單擊“ConduitProperties”對話框中的“Signals”選項卡標(biāo)簽,打開如圖4.83所示的“Signals”選項卡,顯示信號列表。

從“Signals”選項卡的信號列表中可以發(fā)現(xiàn),引腳信號與名稱為“inst”的“dis_counter”模塊中的同名引腳已經(jīng)連接起來了。圖4.82“ConduitProperties”對話框圖4.83“Signals”選項卡

(20)單擊“確定”按鈕,關(guān)閉“ConduitProperties”對話框。

(21)采用步驟(17)所示的方法,將“dis_counter”模塊與“dis_coder”模塊中同名的信號連接起來,將“dis_coder”模塊中的輸出信號與兩路“OUTPUT”輸出引腳連接起來,原理圖如圖4.84所示。

至此,頂層設(shè)計的原理圖就已經(jīng)繪制完畢了,單擊保存文件工具按鈕,將該文件名稱設(shè)置為“Displace_Mea.bdf”,保存在項目文件夾中。

完成了頂層設(shè)計后,接下來要分別完成下一層的設(shè)計工作,下面將分別介紹計數(shù)模塊——“dis_counter”模塊和顯示譯碼模塊——“dis_coder”模塊的設(shè)計。圖4.84連接好后的原理圖

2.計數(shù)部分設(shè)計

本實例中采用2個帶進(jìn)位的雙向十進(jìn)制脈沖計數(shù)模塊串聯(lián),實現(xiàn)2位十進(jìn)制計數(shù)功能,其中的每塊計數(shù)模塊要求既可進(jìn)行加法計數(shù)也可進(jìn)行減法計數(shù),并且能輸出進(jìn)位信號。帶進(jìn)位的雙向計數(shù)模塊的輸入/輸出引腳如表4.21所示。表4.21帶進(jìn)位的雙向計數(shù)模塊的輸入/輸出引腳名稱類型功能Reset輸入系統(tǒng)復(fù)位信號Inpulse輸入位移脈沖信號Direction輸入移動方向信號Lock輸入鎖定顯示值BCD_out[1..4]4位輸出BCD計數(shù)值Carry輸出進(jìn)/退位輸出

(1)啟動Quartus?Ⅱ?7.2軟件,打開上一節(jié)創(chuàng)建的項目“Displace_Mea”,打開“Displace_Mea.bdf”文件。

(2)在“Displace_Mea.bdf”文件中的“dis_counter”模塊上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“CreateDesignFilefromSelectedBlock”命令,打開如圖4.85所示的“CreateDesignFilefromSelectedBlock”對話框。圖4.85“CreateDesignFilefromSelectedBlock”對話框

(3)在“CreateDesignFilefromSelectedBlock”對話框中的“Filetype”區(qū)域選擇“Schematic”單選項,勾選“Addthenewdesignfiletothecurrentproject”復(fù)選項,單擊“OK”按鈕,系統(tǒng)彈出如圖4.86所示的“Quartus?Ⅱ”消息框,表示文件已經(jīng)新建完成。

(4)單擊“Quartus?Ⅱ”消息框中的“確定”按鈕,關(guān)閉該消

息框。圖4.86“Quartus?Ⅱ”消息框

(5)雙擊“dis_counter”模塊,系統(tǒng)自動打開新建的原理圖文件“dis_counter.bdf”,并且自動在原理圖中插入了“dis_counter”模塊的輸入/輸出引腳,如圖4.87所示。圖4.87自動插入的輸入/輸出引腳

(6)在工作區(qū)原理圖文件編輯工具條上單擊Block工具按鈕,在空白地方畫一個合適的Block。

(7)單擊工作區(qū)原理圖文件編輯工具條上的指針工具按鈕,將光標(biāo)改為指針形式,在工作區(qū)繪制的Block上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“BlockProperties”命令,打開“BlockProperties”對話框。

(8)在“BlockProperties”對話框中的“Name”編輯欄內(nèi)輸入“BCD_counter”,設(shè)置block的類型為“BCD_counter”,在“Instancename”編輯框內(nèi)輸入“Low_counter”,設(shè)置該模塊的名稱為“Low_counter”。圖4.88“BCD_counter”模塊

(9)單擊“BlockProperties”對話框中的“I/Os”選項卡標(biāo)簽,按照表4.21的要求,添加引腳,引腳添加完成之后,單擊“確定”按鈕,此時“BCD_counter”模塊如圖4.88所示。

(10)在新建的?“BCD_counter”模塊上單擊鼠標(biāo)左鍵,同時按住“Ctrl”鍵,拖動鼠標(biāo),復(fù)制出一個新的名稱為“Low_counter1”的“BCD_counter”模塊。

(11)在名稱為“Low_counter1”的“BCD_counter”模塊上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“BlockProperties”命令,打開“BlockProperties”對話框。

(12)在“BlockProperties”對話框中的“Instancename”編輯框內(nèi)輸入“High_counter”,將新建的“BCD_counter”模塊命名為“High_counter”,單擊“確定”按鈕,關(guān)閉該對話框,此時的原理圖如圖4.89所示。圖4.89添加BCD_counter模塊后的原理圖

(13)單擊工具欄的管道工具按鈕,此時光標(biāo)形狀變?yōu)?,在“Low_counter”模塊邊緣按下鼠標(biāo)左鍵并拖動鼠標(biāo),將“Low_counter”模塊、“High_counter”模塊按照如圖4.90所示的連接方式串聯(lián)起來,連接好之后,松開鼠標(biāo)。

(14)單擊工具欄的節(jié)點連接工具按鈕,在“Low_counter”和“High_counter”模塊之間繪制一條節(jié)點連接線,如圖4.91所示。圖4.90連接“Low_counter”、“High_counter”模塊和4個輸入引腳圖4.91繪制節(jié)點連接線后的原理圖

(15)在節(jié)點連接線上單擊鼠標(biāo)右鍵,在彈出的菜單中選

擇“Properties”命令,打開如圖4.92所示的“NodeProperties”對話框。

(16)在“NodeProperties”對話框中的“Name”編輯框內(nèi)輸入“carry_count”,單擊“確定”按鈕,將該“NodeLine”名稱設(shè)置為“carry_count”。

(17)雙擊節(jié)點連線與“Low_counter”模塊接合處的綠色標(biāo)志,打開如圖4.93所示的“MapperProperties”對話框。圖4.92“NodeProperties”對話框圖4.93“MapperProperties”對話框

(18)在“MapperProperties”對話框中的“Type”下拉列表中選擇“OUTPUT”項,單擊“Mappings”選項卡標(biāo)簽,顯示如圖4.94所示的“Mappings”選項卡。

(19)在“Mappings”選項卡中的“I/Oonblock”下拉列表中選擇“carry”引腳,在“Signalsinno

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論