實驗2-優(yōu)先編碼器_第1頁
實驗2-優(yōu)先編碼器_第2頁
實驗2-優(yōu)先編碼器_第3頁
實驗2-優(yōu)先編碼器_第4頁
實驗2-優(yōu)先編碼器_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗3:優(yōu)先編碼器的VerilogHDL描述及仿真一、 實驗?zāi)康募耙螅?.掌握優(yōu)先編碼器的VerilogHDL描述方法理解邏輯綜合的概念掌握RTL電路原理圖分析的分析方法二、 實驗工具:Quartus_II9.0三、 實驗原理:優(yōu)先編碼器簡介在數(shù)字系統(tǒng)中,常常需要將某一信息變換為某一特定的代碼,把二進制代碼按一定的規(guī)律編排,時每組代碼具有一定的含義稱為編碼。具有編碼功能的邏輯電路稱之為編碼器。常常會有幾個部件同時發(fā)出服務(wù)請求的可能,而在同一時刻只能給其中一個部件發(fā)出允許操作信號。因此,必須根據(jù)輕重緩急,規(guī)定好這些控制對象允許操作的先后次序,即優(yōu)先級別。8-3優(yōu)先編碼器有8個輸入端,3個輸出端。還有一個輸入使能,輸出使能和優(yōu)先編碼器工作狀態(tài)標志。編碼器以低為有效。輸入優(yōu)先級別的次序為7,6,5,...,0。當某一輸入端有低電平輸入,且比它優(yōu)先級高的輸入沒有低電平輸入時,輸出端才輸出相應(yīng)輸入端的代碼。優(yōu)先編碼器的真值表如下表1所示。表1.輸入 輸出shaI2hh珞Vs^EX1xXXXXXXX0111101111111111l"~l010XXXXXXX0000100X、XXXXX0100]1001XXXXX01101~0~100XXXX011]01110inXXX0111110on100XX011111101100X011111]110__1_000111111111"1~102.Verilog程序設(shè)計與邏輯綜合2.18-3線編碼器示例always@(din)begincase(din)8’b0000_0001: dout=3’b000;

8’b0000_0010:8’b0000_0100:8’b0000_0010:8’b0000_0100:8’b00001000:dout=3’b001;dout=3’b010;dout=3’b011;8’b10000000:default:8’b10000000:default:dout=3’bx;endcaseend2.2優(yōu)先編碼器設(shè)計優(yōu)先編碼器與上面描述的普通8-3線編碼器不同,每次只需判斷優(yōu)先級高的輸入端是否有效always@(din)begincasex(din)8’b1xxxxxxx:8’b01xxxxxx:always@(din)begincasex(din)8’b1xxxxxxx:8’b01xxxxxx:8’b001xxxxx:8’b0001xxxx:dout=3’b111;dout=3’b110;dout=3’b101;dout=3’b100;8’b00000001:default:8’b00000001:default:dout=3’b000;dout=3’bx;if(s)outif(s)out=d1;elseout=d0;endmoduleendcaseend2.3.邏輯綜合邏輯綜合是在標準單元庫和特定的設(shè)計約束的基礎(chǔ)上,把設(shè)計的高層次描述轉(zhuǎn)換成優(yōu)化的門級網(wǎng)表的過程。注意:程序設(shè)計方法不同,則邏輯綜合得到的RTL原理圖不同。單條的if---else語句綜合為一個二選1數(shù)據(jù)選擇器,如程序:modulecompif(out,d0,d1,s);inputd0,d1,s;outputout;regout;always@(sord0ord1)邏輯綜合后的RTL原理圖如圖2所示。AND2OR2AND2OR2圖2.單條if---else語句的RTL圖定義了所有可能的選項的if-then嵌套語句,綜合結(jié)果是受條件控制的純組合邏輯電路。不給出所有if分支值,則綜合出的結(jié)果會帶有鎖存器,變?yōu)闀r序邏輯電路。case語句綜合為數(shù)據(jù)選擇器,一般用于設(shè)計龐大的數(shù)據(jù)選擇器。四、實驗步驟:1.新建項目工程先建一個文件夾。就在電腦本地硬盤找個地方建一個用于保存下一步工作中要產(chǎn)生的工程項目的文件夾,注意:文件夾的命名及其保存的路徑中不能有中文字符。再開始建立新項目工程,方法如右圖點擊:【File】菜單,選擇下拉列表中的【NewProjectWizard...】命令,打開建立新項目工程的向?qū)υ捒?。選擇項目工程保存位置、定義項目工程名稱以及設(shè)計文件頂層實體名稱。第二欄(項目工程名稱)和第三欄(設(shè)計實體名稱)軟件會默認為與之前建立的文件夾名稱一致。沒有特別需要,我們一般選擇軟件的默認,不必特意去修改。需要注意的是:以上名稱的命名中不能出現(xiàn)中文字符,否則軟件的后續(xù)工作會出錯。完成以上命名工作后,點擊Next,進入下一步。第2步的工作是讓你將之前已經(jīng)設(shè)計好的工程文件添加到本項目工程里來,若沒有之前設(shè)計好的文件,直接點Next,再進入下一步。第3步的工作是讓你選擇好設(shè)計文件下載所需要的可編程芯片的型號,本實驗中可任選一種,比如CycloneIIIEP3C40Q240C8。QuartusProjectNavigatorPlFilesShowinAvdiLabledevicelistFileEditViewFrojectAssignmentE-Targetdevice—CAutodeviceselectedbytheFitterC*Specificdeviceselectedin'Availabledevices'listDevicefamilyFamily:Package:Pincount:Speedgrade:|CycloneIII|aiiDevices:pShowadvanceddevices|—HardCop^JcompatibleonlyHierarchy[=|Filesfrf?DesignUnits]:??????■ArL:ilysis&Elabor8+…APartitionMerge-?…NetlistViewersQuartusProjectNavigatorPlFilesShowinAvdiLabledevicelistFileEditViewFrojectAssignmentE-Targetdevice—CAutodeviceselectedbytheFitterC*Specificdeviceselectedin'Availabledevices'listDevicefamilyFamily:Package:Pincount:Speedgrade:|CycloneIII|aiiDevices:pShowadvanceddevices|—HardCop^JcompatibleonlyHierarchy[=|Filesfrf?DesignUnits]:??????■ArL:ilysis&Elabor8+…APartitionMerge-?…NetlistViewers| ]■……RRTLViewerAvailabledevices:Name Corev...LEsEP3C40F484C8EP3C40F484I7EP3C4OF70OC6EP3C40F780C7EP3C40F780C8EP3C40F780I7EFl3C4UU240CElFP^rdmIdRAi?<i-Companiondevice2V|User39600 33239600 33239600 53639600 53639600 53639600 53639600 129jmHardCopy: |LimitDSP&RAMtoHardCopydeviceresources\System/■,Processing\EwtraInfo*Inf|Message:~ ■|專|[Location:.|Memw.二|Embed二F'LL116121611612161161216116121611612161161216116121611R1DownloadNewSoftwareReleaseForHelp,pressFl | |也,■?燃| Idle第4步是讓你選擇第三方開發(fā)工具,我不需要,直接點擊Next,進入下一步。新建設(shè)計文件建立好一個新的項目工程后,接下來可以開始建立設(shè)計文件了。QuartusII軟件可以用兩種方法來建立設(shè)計文件,一種是利用軟件自帶的元器件庫,以編輯電路原理圖的方式來設(shè)計一個數(shù)字邏輯電路,另一種方法是應(yīng)用硬件描述語言(如VHDL或Verilog)以編寫源程序的方法來設(shè)計一個數(shù)字電路。本實驗采用VerilogHDL編寫源程序。(1)創(chuàng)建VerilogHDL文件從File菜單中選擇【New…】命令,打開新建設(shè)計文件對話框,如下圖。

編寫VerilogHDL程序保存VerilogHDL文件選擇File—〉Save,要求文件與模塊名稱一致。項目工程編譯設(shè)計好的程序若要讓軟件能認識并檢查設(shè)計的電路是否有錯誤,需要進行項目工程編譯,QuartusII軟件能自動程序進行編譯和檢查設(shè)計的正確性。方法如下:在【Processing】菜單下,點擊【StartCompilation】命令,或直接點擊常用工具欄上的□按鈕,開始項目。編譯成功后,點擊確定按鈕。功能仿真仿真是指利用QuartusII軟件對所設(shè)計電路的邏輯功能進行驗證,在進行仿真之前,需要先建立一個輸入信號波形文件。方法和步驟如下:(1)在【File】菜單下,點擊【New】命令。在隨后彈出的對話框中,切換到【OtherFiles!頁。選中【VectorWaveformFile】選項,點擊OK按鈕。

(2)在【Edit】菜單下,點擊【InsertNodeorBus...】命令,或在下圖Name列表欄下方的空白處雙擊鼠標左鍵,打開編輯輸入、輸出引腳對話框。(3)在上圖新打開的對話框中點擊【NodeFinder...】按鈕,打開【NodeFinder】對話框。點擊【List】按鈕,列出電路所有的端子。點擊>>按鈕,全部加入。點擊OK按鈕,確認。

tjt]FileEditViewProjectAssignmentsProcessingToolsWindowHelpcode0_3 J套#尊@蜂稱A畛賺0&藏ProjectNavigator =▲xCompilationReport-FlowSummary|卷code83.v誠WaveformFilesL...tjt]FileEditViewProjectAssignmentsProcessingToolsWindowHelpcode0_3 J套#尊@蜂稱A畛賺0&藏ProjectNavigator =▲xCompilationReport-FlowSummary|卷code83.v誠WaveformFilesL...職code8_3.vMasterTimeBar:| 13.8ns Pointer:| 750psInterval:N:=jTieV:dlueat13.8ns10.0ns13.8ns

J-13.05nsStart:20.0nsiNamed:|xLookin:||code8_3|▼|Filter:|Pins:allTasks i▲?low:|CompilationTask[2日ACompi1pHpeigrL-/ 曰…??AAlL:dlyEiEftSj.TLtht!EiE: :?…… EditSettings ViewReporti?……AAiL:dlyEie&El:±borati國AF:ai-titioriMergeNetlistViewere:::?……安RTLViewer?……校StateMachineVi"…TectuiologjrMapV田AIIeeignAeeiEt:aiitt.Ft沁Hi田血囹File』/DesignUnits]田A1/0AeeigrunentAil:=l1j用….AEarlyTimingEstimalV*S-?Fitter(Flace&Route)Name|Assignmentsn_>dinUnassignedlr_^din[0]UnassignedIr_^din[1]Unassignedlr_^din[2]UnassignedIr_^din[3]UnassignedIr_^din[4]UnassignedIr_^din[5]UnassignedIr_^din[6]UnassignedIr_^din[7]UnassignedIr舂doutUnassignedCdout[U]UnassignedCSdout[1]Unassignedcdout[2]UnassignedcE>enUnassignedIrrrr卜NodesFound:dln。r| Customize...J一屁」OK▼|...|匠Includesubentities泗|ICancelSelectedNodes:NameIAssignmentsJT蠶|codeE!__3|dinUnassignedIrU>IcodeE!3|din[0]UnassignedIrU>IcodeE!3|din[1]UnassignedIrU>IcodeE!3|din[2]UnassignedIrU>IcodeE!3|din[3]UnassignedIrU>IcodeE!3|din[4]UnassignedIrU>IcodeE!3|din[5]UnassignedIrU>IcodeE!3|din[6]UnassignedIrU>IcodeE!3|din[7]UnassignedIr舂IcodeE!3|doutUnassignedUSIcodeE!3|dout[0]UnassignedUSIcodeE!3|dout[1]UnassignedUSIcodeE!3|dout[2]UnassignedUn>IcodeE!3|enUnassignedIr點擊OK回到InsertNodeorBus對話框,再點擊OK按鈕,確認。設(shè)置輸出參數(shù)選擇Edit—〉Endtime1ps選擇View—〉FitInWindow選擇Edit—〉Gridsize—〉50ns(5) 為輸入端口賦值。(6) 將仿真模式設(shè)置為“功能仿真”模式。(7) 選擇好"功能仿真”模式后,選擇【Processing】菜單,點擊【GenerateFunctionalSimulationNetlist]命令,生成一個"功能仿真的網(wǎng)表文件”,運行完成后,點擊確定。

(8)開始功能仿真,在【Process

溫馨提示

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

評論

0/150

提交評論