組成原理實(shí)驗(yàn)指導(dǎo)書20231112_第1頁
組成原理實(shí)驗(yàn)指導(dǎo)書20231112_第2頁
組成原理實(shí)驗(yàn)指導(dǎo)書20231112_第3頁
組成原理實(shí)驗(yàn)指導(dǎo)書20231112_第4頁
組成原理實(shí)驗(yàn)指導(dǎo)書20231112_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書鄒紅文2023.2目錄實(shí)驗(yàn)一QUARTUSII軟件入門1實(shí)驗(yàn)二組合電路8實(shí)驗(yàn)三寄存器17實(shí)驗(yàn)四控制信號(hào)發(fā)生器20實(shí)驗(yàn)五乘法器25實(shí)驗(yàn)六存儲(chǔ)電路27實(shí)驗(yàn)七運(yùn)算器31實(shí)驗(yàn)八微控制器(1)33實(shí)驗(yàn)九微控制器(2)37實(shí)驗(yàn)一QUARTUSII軟件入門一、實(shí)驗(yàn)?zāi)康谋?QUARTUSII中幾種常用門電路的名稱及其邏輯符號(hào)與門或門非門與非門或非門異或門AND2OR2NOTNAND2NOR2XORAND3OR3NAND3NOR3學(xué)習(xí)QUARTUSII的使用方法:建立原理圖文件、工程文件、波形圖文件以及仿真;掌握波形分析方法。學(xué)習(xí)QUARTUSII幾種常用門電路的符號(hào)、邏輯功能。二、實(shí)驗(yàn)內(nèi)容1.以“與門”為例,練習(xí)仿真軟件的使用步驟。2.驗(yàn)證加法器74283的邏輯功能。3.設(shè)計(jì)選擇器。三、實(shí)驗(yàn)步驟1.建立文件夾,用于存放所有的實(shí)驗(yàn)內(nèi)容。文件夾名稱為你的學(xué)號(hào),例如:B0511。2.在文件夾“B0511”中建立文件夾“實(shí)驗(yàn)一”,存放實(shí)驗(yàn)一的內(nèi)容。再建立子文件夾“與門”。請(qǐng)?zhí)貏e注意:“與門”這個(gè)文件夾在下面第6步保存波形圖文件時(shí)還要用到!圖2新建原理圖文件圖1與門邏輯電路圖圖2新建原理圖文件圖1與門邏輯電路圖3.按照?qǐng)D1建立原理圖文件ym2.bdf(不區(qū)分大小寫!)①選菜單FILE→NEW,進(jìn)入圖2,選BlockDiagram,系統(tǒng)自動(dòng)打開一個(gè)空白設(shè)計(jì)頁面。②點(diǎn)工具,打開圖3。在圖3中,選擇primitives→logic→and2,單擊OK。然后在圖4中單擊左鍵,把與門and2放置到設(shè)計(jì)頁面中。③擊右鍵,選擇Cancel,結(jié)束與門的放置,見圖4。圖3選擇2輸入與門圖3選擇2輸入與門圖4取消與門的放置圖4取消與門的放置④添加輸入輸出引腳,更改引腳名稱,連線。在圖3中選primitives\pin\input,單擊OK,然后在原理圖中放置2個(gè)input。在圖3中選primitives\pin\output,單擊OK,然后在原理圖中放置1個(gè)output。雙擊引腳,在系統(tǒng)對(duì)話框PinProperties(引腳屬性,如圖5所示)中分別輸入新引腳名A(B、Y)之后,單擊“確定”。最后的電路圖如圖1所示。圖5修改引腳的名稱圖5修改引腳的名稱⑤把原理圖文件保存到保存到第2步建立的文件夾“與門”中:選擇菜單項(xiàng)“保存”,輸入文件名ym2,系統(tǒng)加的后綴bdf不變。圖6詢問是否為原理圖文件建立工程圖6詢問是否為原理圖文件建立工程4.建立工程(Project)文件(ym2.qpf)第⑤步完成之后,系統(tǒng)彈出對(duì)話框圖6,詢問是否為原理圖文件建立工程,選“是”,系統(tǒng)接著彈出“NewProjectWizard”對(duì)話框,如圖7所示,在該對(duì)話框系統(tǒng)自動(dòng)建立工程文件名ym2和實(shí)體名ym2。選Finish,完成工程的建立。圖7系統(tǒng)自動(dòng)設(shè)置工程名ym2和實(shí)體名圖7系統(tǒng)自動(dòng)設(shè)置工程名ym2和實(shí)體名ym2圖9建立波形文件5.編譯工程圖9建立波形文件點(diǎn)擊編譯工具,編譯成功后系統(tǒng)顯示圖8。圖8系統(tǒng)給出編譯成功信息圖8系統(tǒng)給出編譯成功信息6.建立波形文件 選菜單FILE→NEW,進(jìn)入圖9,選Otherfiles→VectorWaveformFile,單擊“保存”,然后輸入文件名ym2,(后綴vwf系統(tǒng)自動(dòng)添加)。請(qǐng)?zhí)貏e注意:系統(tǒng)自動(dòng)保存到第2步建立的文件夾“與門”中,請(qǐng)不要更改路徑!圖10插入結(jié)點(diǎn)或總線7.修改系統(tǒng)默認(rèn)仿真終止時(shí)間(可以跳圖10插入結(jié)點(diǎn)或總線過本步驟)選菜單Edit\EndTime,系統(tǒng)默認(rèn)時(shí)間是1US(微秒),改為400ns。8.在波形圖中添加結(jié)點(diǎn)①選菜單Edit→InsertNodeorBus,打開圖10,單擊NodeFinder,進(jìn)入圖11。②按照?qǐng)D11,把Filter設(shè)置為Pins:all,Lockin設(shè)置為ym2(一般是默認(rèn)當(dāng)前打開的波形文件名,也可以擊瀏覽按鈕,自行選擇文件)。③點(diǎn)按鈕list,系統(tǒng)在圖11中列出結(jié)點(diǎn)名稱,把結(jié)點(diǎn)移到右邊,單擊OK。圖11選擇所需結(jié)點(diǎn)圖11選擇所需結(jié)點(diǎn)圖12設(shè)置周期性輸入信號(hào)的輸入值設(shè)置周期設(shè)置圖12設(shè)置周期性輸入信號(hào)的輸入值設(shè)置周期設(shè)置范圍①點(diǎn)擊變量名稱,選中一個(gè)變量(變?yōu)樗{(lán)色表示選中),然后點(diǎn)工具,打開圖12。圖12的功能:設(shè)置周期性輸入信號(hào)的輸入值。在圖的上部設(shè)置輸入信號(hào)的持續(xù)時(shí)間范圍(Timerange),本例范圍是0-400ns。下部設(shè)置輸入信號(hào)的周期和占空比,本例信號(hào)變化周期80ns,占空比50%。②按照?qǐng)D13設(shè)置輸入信號(hào)AB的波形在波形圖中。選A,打開圖12,輸入80ns,占空比50%。在波形圖中選B,打開圖12,輸入160ns,占空比50%。③修改波形圖的顯示比例。單擊之后,把鼠標(biāo)放到波形圖的時(shí)間標(biāo)尺上(如圖13所示),擊右鍵縮小圖形,擊左鍵放大圖形。圖13圖13設(shè)置輸入信號(hào)AB的波形bcad時(shí)間標(biāo)尺10.仿真并分析波形①選菜單Processing\SimulatorTool,打開圖14。②按圖14設(shè)置SimulationMode為Functional,即設(shè)置仿真模式為功能仿真。系統(tǒng)在SimulationInput中自動(dòng)顯示當(dāng)前打開的波形文件(ym2.vwf),也可自行定位文件的位置。③點(diǎn)擊GenerateFunctionalSimulationNetlist按鈕。④第③步成功后,先點(diǎn)擊Start按鈕,成功后再點(diǎn)擊Report按鈕,顯示仿真波形圖,請(qǐng)大家分析波形。圖1圖14設(shè)置仿真模式為功能仿真圖1圖15加法器283的邏輯電路圖11.驗(yàn)證加法器74283的邏輯功能。①在文件夾“實(shí)驗(yàn)一”中建立文件夾“加法器”。②按照?qǐng)D15建立原理圖文件jfq283.bdf??偩€的命名和連線:先在input上修改名稱,然后再和芯片連線??偩€的命名方法:例如總線A的命名:A[4..1],用方括號(hào)[],數(shù)字之間的圓點(diǎn)用西文的圓點(diǎn)!連線之后,單擊每條單線,然后輸入單線的名字,例如,A1。把所有的單線全部命名。(不區(qū)分大小寫?。郾4嬖韴D文件到文件夾“加法器”中,然后建立工程文件。④編譯。⑤按照?qǐng)D16建立波形圖文件,保存。系統(tǒng)自動(dòng)保存到第①步建立的文件夾“加法器”中,請(qǐng)不要更改路徑?、拊O(shè)置波形的輸入值。先把Endtime設(shè)置為2.56us。然后設(shè)置輸入波形??偩€的賦值:選中A,點(diǎn)擊工具“Coutvalue”,把選項(xiàng)卡“Timing”中的“Countevery”設(shè)置為160ns。選中B,點(diǎn)擊工具“Coutvalue”,把選項(xiàng)卡“Timing”中的“Countevery”設(shè)置為10ns。⑦仿真并分析結(jié)果。圖1圖16加法器283的波形12.設(shè)計(jì)選擇器①在文件夾“實(shí)驗(yàn)一”中建立文件夾“選擇器”。②按照?qǐng)D17建立原理圖文件。③保存原理圖文件到文件夾“選擇器”中,文件名為“xzq6w”(不要用其它名稱,因?yàn)樵趯?shí)驗(yàn)五要用這個(gè)名稱)。然后建立工程文件。編譯。圖17圖17選擇器邏輯電路圖④建立波形圖文件,保存。系統(tǒng)自動(dòng)保存到第①步建立的文件夾“選擇器”中,請(qǐng)不要更改路徑!該選擇器的功能:A、B是數(shù)據(jù)輸入端,S是選擇器控制端,Q是數(shù)據(jù)輸出端。S=1時(shí)Q=A;S=0時(shí)Q=B。⑤仿真并分析結(jié)果。實(shí)驗(yàn)二組合電路一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)選擇器和三態(tài)門的定制和應(yīng)用方法以及邏輯電路的封裝方法。二、實(shí)驗(yàn)內(nèi)容1.設(shè)計(jì)總線寬度為8的四選一數(shù)據(jù)選擇器。2.設(shè)計(jì)總線寬度為8的三態(tài)門。3.設(shè)計(jì)8位加法器并封裝。三、實(shí)驗(yàn)步驟1.設(shè)計(jì)總線寬度為8的四選一數(shù)據(jù)選擇器。圖1定制選擇器圖1定制選擇器①在文件夾“實(shí)驗(yàn)二”中建立文件夾“選擇器”。②新建原理圖文件,放置一個(gè)“input”后保存到文件夾“選擇器”(文件名xzq)。建立工程。③單擊工具,在“name”下輸入“l(fā)pm_mux”,單擊“OK”(見圖1)。進(jìn)入圖2。④在圖2中的操作:首先選中“VHDL”;然后單擊“Browse”按鈕,找到文件夾\b0511\實(shí)驗(yàn)二\選擇器;最后單擊“next”按鈕。進(jìn)入圖3。⑤在圖3中把制選擇器的輸入端個(gè)數(shù)定義為4,每個(gè)輸入端的寬度定義為8。⑥在圖3中單擊“next”按鈕,進(jìn)入下一頁,再單擊“next”按鈕,進(jìn)入圖4。圖2選擇VHDL圖2選擇VHDL和路徑圖3定制選擇器的輸入端個(gè)數(shù)和每個(gè)輸入端的寬度圖3定制選擇器的輸入端個(gè)數(shù)和每個(gè)輸入端的寬度圖4定制選擇器完成圖4定制選擇器完成在lpm_mux0.bsf前面打鉤圖5定制的選擇器圖5定制的選擇器⑦在圖4中先在lpm_mux0.bsf之前打鉤,然后單擊“Finish”按鈕,把完成的選擇器放到原理圖中,為此選擇器加上輸入輸出引腳,見圖5。保存到文件夾“選擇器”中。⑧建立工程文件后在工程中添加選擇器的系統(tǒng)文件選擇菜單:Project→Add/RemoveFileinproject,打開圖6,單擊圖6中“AddALL”按鈕,再單擊圖6中“ok”按鈕。然后編譯。圖6在工程中添加選擇器的系統(tǒng)文件圖6在工程中添加選擇器的系統(tǒng)文件⑨建立波形圖文件,保存到文件夾“選擇器”。⑩在圖7中選擇要設(shè)置屬性的信號(hào),然后選擇端口名稱,單擊鼠標(biāo)右鍵,先選擇“properties”,再選擇“無符號(hào)”顯示屬性。圖7設(shè)置選擇器端口的顯示屬性圖7設(shè)置選擇器端口的顯示屬性設(shè)置輸入端口信號(hào)的值:選擇端口S,然后單擊工具,打開對(duì)話框如圖8所示。在對(duì)話框如上部輸入時(shí)間段(20ns—30ns),在下部輸入數(shù)值。其它輸入端口值設(shè)置方法相同。圖9是仿真波形圖。圖8設(shè)置輸入信號(hào)在一個(gè)時(shí)間段的輸入值圖8設(shè)置輸入信號(hào)在一個(gè)時(shí)間段的輸入值圖9選擇器的仿真波形圖圖9選擇器的仿真波形圖圖10定制三態(tài)門圖10定制三態(tài)門2.設(shè)計(jì)三態(tài)門①在文件夾“實(shí)驗(yàn)二”中建立文件夾“三態(tài)門”。②新建原理圖文件,放置一個(gè)“input”后保存到文件夾“三態(tài)門”。建立工程。③按照?qǐng)D10到圖13的步驟定制三態(tài)門。圖11圖11設(shè)置路徑圖12單向三態(tài)門,寬度是8位圖12單向三態(tài)門,寬度是8位圖13結(jié)束定制步驟圖13結(jié)束定制步驟④按照?qǐng)D14連線,保存。B是控制端,高電平有效。a、f分別是數(shù)據(jù)輸入輸出端。⑤按照?qǐng)D15把系統(tǒng)文件加到工程中。⑥按照?qǐng)D16設(shè)計(jì)波形文件并仿真。圖14三態(tài)門原理圖圖14三態(tài)門原理圖圖15把系統(tǒng)文件加到工程中圖15把系統(tǒng)文件加到工程中圖16三態(tài)門仿真波形圖16三態(tài)門仿真波形3.設(shè)計(jì)8位加法器并封裝①在文件夾“實(shí)驗(yàn)二”中建立文件夾“8位加法器”。②按照?qǐng)D17新建原理圖文件,保存到文件夾“8位加法器”,文件名為“fadd8”(不要用其它名稱,因?yàn)樵趯?shí)驗(yàn)七要用這個(gè)名稱)。圖17中8位加法器功能是:s0s1s2s3s4s5s6s7=a0a1a2a3a4a5a6a7+b0b1b2b3b4b5b6b7+cin③對(duì)原理圖編譯成功后建立波形圖并仿真。④生成符號(hào)圖打開原理圖,按照?qǐng)D18選擇菜單:file→Create/Update→CreateSymbleFile,即可生成符號(hào)圖文件fadd8.bsf,并自動(dòng)保存到當(dāng)前工程中。圖178位加法器邏輯電路圖圖178位加法器邏輯電路圖①①三態(tài)門仿真波形圖18選擇生成符號(hào)菜單項(xiàng)⑤新建原理圖文件,按照?qǐng)D19找到FADDB8,單擊“ok”。圖19選擇生成的符號(hào)FADD8圖19選擇生成的符號(hào)FADD8⑥把FADD8放到原理圖中,在符號(hào)上單擊右鍵,如圖20所示,選擇“editselectsymbol”,把引腳修改為圖20右邊的符號(hào)。保存,文件名JIAFAQI。圖20修改符號(hào)圖的引腳位置圖20修改符號(hào)圖的引腳位置實(shí)驗(yàn)三寄存器一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)寄存器74171和移位寄存器74194。二、實(shí)驗(yàn)內(nèi)容1.設(shè)計(jì)8位寄存器。2.設(shè)計(jì)8位移位寄存器。三、實(shí)驗(yàn)步驟1.設(shè)計(jì)8位寄存器①在“實(shí)驗(yàn)三”中建立文件夾“寄存器”。②新建空白原理圖文件。③單擊工具,在“name”下輸入“74171”,單擊“OK”,見圖7。④放置2個(gè)74171后,按照?qǐng)D7連線,保存到文件夾“寄存器”,文件名為“reg8b”(不要用其它名稱,因?yàn)樵谄渌鼘?shí)驗(yàn)要用這個(gè)名稱)。建立工程。編譯。仿真。圖7所示是8位寄存器,Clrn是清0端,d7~d0是數(shù)據(jù)輸入端,q7~q0數(shù)據(jù)輸出端。Clk是脈沖輸入信號(hào)。引腳功能:Clrn=0輸出端q7~q0被清0。Clrn=1時(shí),在clk上升沿,輸出端q接收對(duì)應(yīng)輸入端d的值。仿真波形如圖8所示。圖88位寄存器仿真波形圖78位寄存器邏輯電路圖圖88位寄存器仿真波形圖78位寄存器邏輯電路圖2.設(shè)計(jì)8位移位寄存器①在“實(shí)驗(yàn)三”中建立文件夾“移位寄存器”。②新建空白原理圖文件。③單擊工具,在“name”下輸入“74194”,單擊“OK”。④放置2個(gè)74194后,按照?qǐng)D9連線,保存到文件夾“移位寄存器”,文件名為“shift8”(不要用其它名稱,因?yàn)樵趯?shí)驗(yàn)七要用這個(gè)名稱)。建立工程。圖9所示移位寄存器引腳功能:abcdefgh:8位數(shù)據(jù)并入端。srsi:右移外部數(shù)據(jù)輸入端。clrn:清0控制信號(hào)輸入端。低電平有效。clk:時(shí)鐘輸入端。上升沿有有效。qaqbqcqdqeqfqgqh:數(shù)據(jù)輸出端。S1:并入數(shù)據(jù)和移位控制端,S1=1并入,S1=0移位。圖98位移位寄存器邏輯電路圖圖98位移位寄存器邏輯電路圖圖10是移位寄存器仿真波形。10ns之前:Clrn=1同時(shí)s1=1時(shí),在clk上升沿,并入abcdefgh的值。輸出端q接收對(duì)應(yīng)輸入端的值。②10ns~20ns:Clrn=1同時(shí)s1=0時(shí),在clk上升沿移位。移位方向:srsi→qa→qb→qc→qd→qe→qf→qg→qh③20ns之后:Clrn=0輸出端被清0。圖圖108位移位寄存器仿真波形圖實(shí)驗(yàn)四控制信號(hào)發(fā)生器一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)信號(hào)發(fā)生器和運(yùn)算器的VHDL程序設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容1.設(shè)計(jì)“原碼一位乘法器”的信號(hào)發(fā)生器。2.設(shè)計(jì)16功能的運(yùn)算器。三、實(shí)驗(yàn)步驟1.乘法器原理圖1是“原碼一位乘法”的“移位-加”算法流程圖,其中X、Y是用原碼表示的乘數(shù)和被乘數(shù),即X=X0X1X2X3X4,Y=Y0Y1Y2Y3Y4,X0、Y0是符號(hào)位。F是部分積。“移位-加”算法流程包括四個(gè)步驟:步驟1:使部分積寄存器F清0,乘數(shù)、被乘數(shù)的小數(shù)部分的值寄存到相應(yīng)的寄存器Y和X中。乘數(shù)、被乘數(shù)的符號(hào)位X0、Y0不參加“移位-加”運(yùn)算。步驟2:根據(jù)乘數(shù)寄存器Y最低位的值,決定加數(shù)是0或X:Y4=1時(shí)執(zhí)行F+X,把結(jié)果保存到移位寄存器中;Y4=0時(shí)執(zhí)行F+0,把結(jié)果保存到移位寄存器中。步驟3:執(zhí)行移位操作:“和”與寄存器Y一起右移一位。步驟4:保存移位后的數(shù)值。第2步到第4步重復(fù)執(zhí)行4次即完成了定點(diǎn)小數(shù)X、Y的小數(shù)部分相乘。而乘積的符號(hào)位用2個(gè)數(shù)符異或運(yùn)算完成,即SF=X0⊕Y0。圖1原碼一位乘法器流程圖圖1原碼一位乘法器流程圖2.原碼一位乘法器原理框圖圖2是原碼一位乘法器原理框圖,包括通用寄存器F和X、選擇器、加法器和移位寄存器SHIFT以及移位寄存器Y。兩個(gè)通用寄存器由集成電路74171組成,分別用于保存部分積和數(shù)據(jù)A,CLRF是部分積寄存器的清0信號(hào),低電平有效。CLKFX是通用寄存器的時(shí)鐘信號(hào),上升沿時(shí)完成輸入數(shù)據(jù)的寄存操作。2選1數(shù)據(jù)選擇器完成加數(shù)的選擇,控制端S的值決定加法器的一個(gè)數(shù)據(jù)輸入端是被乘數(shù)A或者數(shù)據(jù)0。移位寄存器SHIFT和移位寄存器Y由集成電路74194構(gòu)成??刂菩盘?hào)S1SHIFT=0時(shí),移位寄存器SHIFT執(zhí)行移位操作;S1SHIFT=1時(shí),移位寄存器SHIFT執(zhí)行寫入操作;CLKSHIFT是時(shí)鐘信號(hào),上升沿完成移位或?qū)懭氩僮?;控制信?hào)S1Y=0時(shí),移位寄存器Y執(zhí)行移位操作;S1Y=1時(shí),移位寄存器Y執(zhí)行并入操作;CLKY是時(shí)鐘信號(hào),上升沿移位寄存器Y完成移位或?qū)懭氩僮?。圖2原碼一位乘法器框圖圖2原碼一位乘法器框圖圖3是由圖2分析得出的原碼一位乘法器完成一次乘法運(yùn)算所需的控制信號(hào)。⑤⑤①②③④④⑥圖3乘法器的控制信號(hào)波形圖圖3中控制信號(hào)的作用如下:①clrF=0把部分積寄存器F清0。②clkY上升沿把┃Y┃并入寄存器Y。③clrF=1、clkFX上升沿把F0_F5并入寄存器F,把clkFX上升沿┃X┃并入寄存器X。④S=1時(shí)F0_F5+X,S=0時(shí)F0_F5+000000??刂贫薙=Y4。⑤s1SHIFT=1、clkSHIFT上升沿把“和”并入shift8。⑥s1SHIFT=0、clkSHIFT上升沿,clkY上升沿把2個(gè)移位寄存器一起移位。第③步到第⑥步重復(fù)4次即可完成一次乘法運(yùn)算。3.“原碼一位乘法器”信號(hào)發(fā)生器VHDL代碼根據(jù)圖3設(shè)計(jì)的原碼一位乘法器信號(hào)發(fā)生器的VHDL代碼如下:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityconsignalisPort(Clk:instd_logic;clrF,clkFX,clkY,s1SHIFT8,clkSHIFT8:outstd_logic);end;architectureBehavioralofconsignalistypestateis(ini,add,LOADSUM,nullall,shift);signalCurrent_State:state;signalCount:std_logic_vector(4downto0);signaltemp:std_logic_vector(4downto0);signalClken,clkout:std_logic:='1';beginclock:clkout<=Clkenandclk;p1:process(Clkout)beginif(rising_edge(clkout))thenCount<=Count+1;if(Count<18)thenclrF<=temp(4); clkFX<=temp(3); clkY<=temp(2); s1SHIFT8<=temp(1); clkSHIFT8<=temp(0); else Clken<='0'; clkFX<='0'; clkY<='0'; clkSHIFT8<='0';endif;endif;endprocess;p2:process(Clk,Current_State)beginifrising_edge(Clk)then caseCurrent_Stateis whenini=> temp<="00100"; Current_State<=add; whenadd=> temp<="11010"; Current_State<=LOADSUM; whenLOADSUM=> temp<="10011"; Current_State<=nullall; whennullall=> temp<="10000"; Current_State<=shift; whenshift=> temp<="10101"; Current_State<=add; whenothers=>null; endcase; endif;endprocess;endBehavioral;4.VHDL代碼仿真步驟在“實(shí)驗(yàn)四”文件夾建立文件夾“控制信號(hào)發(fā)生器”。新建“VHDLFILE”;輸入代碼;保存到“控制信號(hào)發(fā)生器”文件夾。注意文件名必須是“ENTITY”后面的標(biāo)識(shí)符,本例代碼的文件名是consignal。編譯、仿真步驟與原理圖的步驟相同。5.設(shè)計(jì)16功能的運(yùn)算器新建VHDL文件,把下述代碼復(fù)制后保存到文件夾“實(shí)驗(yàn)四”的“運(yùn)算器”文件夾中,本例代碼的文件名是ALU。建立工程,編譯。仿真。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_unsigned.ALL;ENTITYALUISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);SEL:INSTD_LOGIC_VECTOR(3DOWNTO0);Y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDALU;ARCHITECTUREbehavOFALUISSIGNALARITH,LOGIC:STD_LOGIC_VECTOR(7DOWNTO0);BEGINARITHMETICUNITWITHSEL(2DOWNTO0)SELECT ARITH<=awhen"000", a+1when"001", a-1when"010", bwhen"011",b+1when"100", b-1when"101",ALU功能表Sel[3..0]功能0000a0001a+10010a-10011b0100b+10101b-10110a+b0111a-b1000nota1001notb1010aandb1011aorb1100anandb1101anorb1110axorb1111not(axorb) a+bwhen"110",a-bwhenothers;logicunitWITHSEL(2DOWNTO0)SELECT logic<=notawhen"000", notbwhen"001", aandbwhen"010", aorbwhen"011", anandbwhen"100", anorbwhen"101", axorbwhen"110",not(axorb)whenothers;muxWITHSEL(3)SELECT y<=logicwhen'1', arithwhenothers;ENDbehav;請(qǐng)大家對(duì)照上表和圖4說明alu的功能。圖圖4ALU仿真波形實(shí)驗(yàn)五乘法器一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)原碼1位乘法器的設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容按照?qǐng)D1設(shè)計(jì)原碼1位乘法器。設(shè)X=X0X1X2X3X4,Y=Y0Y1Y2Y3Y4,X0、Y0是符號(hào)位。圖1的功能是F=│X│*│Y│,即F=(00X1X2X3X4)*(00Y1Y2Y3Y4)。乘積的符號(hào)為兩個(gè)數(shù)符號(hào)位X0、Y0異或運(yùn)算值。三、實(shí)驗(yàn)步驟①建立文件夾“實(shí)驗(yàn)五”。把以下5個(gè)文件復(fù)制到文件夾“實(shí)驗(yàn)五”。實(shí)驗(yàn)一xzq6w.bdf、實(shí)驗(yàn)二fadd8.bdf、實(shí)驗(yàn)三reg8b.bdf和shift8.bdf、實(shí)驗(yàn)四consignal.Vhd。②新建空白原理圖文件,放置一個(gè)輸入引腳后保存到文件夾“實(shí)驗(yàn)五”,文件名為TOP.BDF。建立工程。③把所有文件加到當(dāng)前工程中:選擇菜單Project→Add/RemoveFilesInProject,點(diǎn)擊按鈕“AddAll”。圖1原碼一位乘法器邏輯電路圖圖1原碼一位乘法器邏輯電路圖④設(shè)置頂層實(shí)體:打開TOP.BDF,選擇菜單Project→SetAsTop-LevelEntity。⑤按照p14生成符號(hào)圖的步驟把第1步復(fù)制的5個(gè)文件全部生成符號(hào)圖。⑥點(diǎn)擊“project”前面的+號(hào),選擇所需符號(hào)放到原理圖TOP.BDF中。按照?qǐng)D1連線后保存,編譯、仿真。圖2原碼一位乘法器仿真波形圖2原碼一位乘法器仿真波形⑦仿真波形分析圖2是原碼一位乘法器仿真波形,其中x=0.1101,y=0.1011。F=│X│*│Y│=00.10001111。乘積符號(hào)SF=0⊕0=0,所以,X*Y=+0.10001111。用原碼一位乘計(jì)算x*y的步驟如下表所示,請(qǐng)大家對(duì)照表格和波形圖說明控制信號(hào)的作用。用原碼一位乘計(jì)算x*y的步驟部分積乘數(shù)移出的數(shù)據(jù)000000+x0011011011001101右移一位000110+x00110111011010011右移一位001001+000000011101001001右移一位000100+x00110111110010001右移一位00100011111乘積高位乘積低位思考題:設(shè)x=-0.1101,y=0.1011。請(qǐng)畫出仿真波形。實(shí)驗(yàn)六存儲(chǔ)電路一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)寄存器組設(shè)計(jì)方法和選擇器定制方法。二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)寄存器組。三、實(shí)驗(yàn)步驟①在文件夾“實(shí)驗(yàn)六”,建立文件夾“寄存器組”。把實(shí)驗(yàn)三的文件REG8B.bdf復(fù)制到本文件夾。②新建空白原理圖文件,放置一個(gè)input,保存到文件夾“寄存器組”,文件名是REG4X8.bdf。建立工程。③定制“8位四選一選擇器”?!駟螕艄ぞ撸归_圖5左上方的樹形視圖,找到lpm_mux(或直接在name后輸入lpm_mux),然后單擊按鈕“ok”。圖5定制選擇器圖5定制選擇器●在圖6中選擇VHDL,單擊NEXT。●在圖7中設(shè)置選擇器的輸入端個(gè)數(shù)為4,數(shù)據(jù)線寬度為8,單擊NEXT?!裨诮酉聛淼?個(gè)圖中單擊NEXT,單擊FINISH。然后把定制的選擇器放到文件REG4X8.bdf。圖圖6設(shè)定選擇器的文件圖圖7設(shè)計(jì)選擇器的輸入端數(shù)和數(shù)據(jù)寬度④選擇菜單:Project→Add/removeFileinproject,單擊“AddAll”按鈕,把所需文件加到工程中,單擊“ok”按鈕。⑤打開REG8B.bdf,按照14頁生成符號(hào)圖的步驟生成符號(hào)圖文件REG8B.bsf。⑥按照?qǐng)D8設(shè)計(jì)寄存器組,保存,文件名是REG4X8.bdf。⑦選擇菜單Project中的SetasTop-LevelEntity項(xiàng)目,把該原理圖文件REG4X8.bdf設(shè)為工程的頂層實(shí)體。編譯。仿真。寄存器組引腳功能:寄存器讀寫操作為:G=1時(shí)CLK上升沿寫入數(shù)據(jù);G=0讀出,與CLK無關(guān)。S[1..0]是寄存器單元地址:0、1、2、3。D[7..0]和Y[7..0]分別是數(shù)據(jù)輸入和輸出端。圖圖8寄存器組邏輯電路圖圖圖9寄存器組仿真波形圖9是寄存器組仿真波形。其中:40ns之前:G=1時(shí)在CLK上升沿往0/1/2/3單元寫入數(shù)據(jù)。50~80ns::G=0,從0/1/2/3單元讀出。讀出操作與CLK無關(guān)。圖10是設(shè)計(jì)數(shù)據(jù)顯示格式為16進(jìn)制形式。圖10圖10設(shè)置仿真波形顯示形式實(shí)驗(yàn)七運(yùn)算器一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)運(yùn)算器的設(shè)計(jì)方法和數(shù)據(jù)通路中控制信號(hào)的作用。二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)運(yùn)算器數(shù)據(jù)通路。三、實(shí)驗(yàn)步驟圖1是運(yùn)算器及數(shù)據(jù)通路圖。按照下述步驟設(shè)計(jì)該數(shù)據(jù)通路。圖1運(yùn)算器圖1運(yùn)算器及數(shù)據(jù)通路、①建立文件夾“實(shí)驗(yàn)七”。②把以下7個(gè)文件復(fù)制到文件夾“實(shí)驗(yàn)七”:實(shí)驗(yàn)二的三態(tài)門:lpm_bustrio.vhd、lpm_bustrio.bsf。實(shí)驗(yàn)四的源代碼:alu.vhd。實(shí)驗(yàn)六的寄存器:reg4x8.bdf、reg8b.bdf。實(shí)驗(yàn)六的選擇器:lpm_muxo.vhd、lpm_muxo.bsf。③新建空白原理圖文件,放置一個(gè)輸入引腳后保存到文件夾“實(shí)驗(yàn)七”。建立工程。④按照p14生成符號(hào)圖的步驟把第3步復(fù)制的alu.vhd、reg4x8.bdf生成符號(hào)圖。⑤點(diǎn)擊“project”前面的+號(hào),選擇所需符號(hào)放到第3步建立的原理圖中。⑥按照?qǐng)D1連線后保存,編譯、仿真。圖2是仿真波形圖。圖2運(yùn)算器電路仿真波形圖2運(yùn)算器電路仿真波形仿真波形圖是執(zhí)行以下三條機(jī)器指令的結(jié)果:MOVR1,#1功能:把立即數(shù)1寫入R1。MOVR2,#3功能:把立即數(shù)3寫入R2。ADDR3,R1,R2功能:(R1)+(R2)→R3。運(yùn)算器電路仿真波形分析:①輸入1到R1;②輸入3到R2;③從R1讀出,傳到TA;④從R2讀出,傳到TB;⑤做加法運(yùn)算,把結(jié)果寫入R3。作業(yè):寫出執(zhí)行上述3條機(jī)器指令所需的控制信號(hào)。解釋120ns的波形。寫出120ns執(zhí)行的指令。實(shí)驗(yàn)八微控制器(1)一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)CPU的工作原理,掌握CPU的控制信號(hào)的工作過程。二、實(shí)驗(yàn)內(nèi)容①設(shè)計(jì)以下3條機(jī)器指令的微程序。MOVR1,#1功能:把立即數(shù)1寫入R1。MOVR2,#3功能:把立即數(shù)3寫入R2。ADDR3,R1,R2功能:(R1)+(R2)→R3。②設(shè)計(jì)微控制器,自動(dòng)運(yùn)行上述3條機(jī)器指令。三、實(shí)驗(yàn)步驟①按照實(shí)驗(yàn)七的數(shù)據(jù)通路分析這3條指令工作過程,設(shè)計(jì)微程序。上述3條機(jī)器指令的28位微指令如下表:U[27..19]DDINU[18..15]GSYOUTU14U13TATB12[11..8]ALUOUT運(yùn)算U[7..0]下址16進(jìn)制微指令00000000000000000000000000010000001000000011101000000000000001001D0002000000111110010000000000001103E40030000000000011100000000000100001C0040000000000101010000000000101002A0050000000001110001011000000110007160600000000000000000000000000000000000②把文件夾“實(shí)驗(yàn)七”復(fù)制粘貼,改名為“實(shí)驗(yàn)八”后保存。③先

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論