版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1、 實驗?zāi)康模?、掌握簡單運算器的數(shù)據(jù)傳送通路2、驗證運算器的組合功能二、實驗原理: 算術(shù)邏輯部件的主要功能是對二進制數(shù)據(jù)進行定點算術(shù)運算、邏輯運算和各種移位操作。算術(shù)運算包括定點加減乘除運算;邏輯運算主要有邏輯與、邏輯或、邏輯異或和邏輯非操作。ALU通常有兩個數(shù)據(jù)輸入端A和B,一個數(shù)據(jù)輸出端Y以及標(biāo)志位等。74181是一種典型的4位ALU器件。圖是74181的電路圖。 20世紀(jì)80年代計算機中的算是邏輯單元有許多是用現(xiàn)成的算術(shù)邏輯器件連接起來構(gòu)成的。如上面提到的74181和Am2901等就是著名的算術(shù)邏輯器件。使用這些4位的算術(shù)邏輯器件,能夠構(gòu)成8位、16位等長度的算術(shù)邏輯單元?,F(xiàn)在由于超
2、大規(guī)模器件的廣泛應(yīng)用,使用這種方法構(gòu)成算術(shù)邏輯單元已經(jīng)不多見,代之以直接用硬件描述語言設(shè)計算術(shù)邏輯單元。CPU的算術(shù)邏輯單元就是一個簡單的例子。圖 74181的電路圖三、實驗步驟:(1)打開Quartus,參照3.4節(jié),安裝ByteBlaster。(2)將子板上的JTAG端口和PC機的并行口用下載電纜連接。打開試驗臺電源。(3)執(zhí)行ToolsProgrammer命令,將adder8.sof下載到FPGA中,注意在執(zhí)行Programmer中,應(yīng)在program/configure下的方框中打鉤,然后下載。(4) 在試驗臺上通過模式開關(guān)選擇FPGA-CPU獨立的調(diào)試模式010.要求:1、實驗設(shè)計目
3、標(biāo)設(shè)計一個16位算術(shù)邏輯單元,滿足以下要求。(1)16位算術(shù)邏輯單元能夠進行下列運算:加法、減法、加1、減1、與、或、非和傳送。用3位運算操作碼OP210進行運算,控制方式如表4.1所示:運算操作碼OP210運 算對標(biāo)志位Z和C的影響000resultßA+B影響標(biāo)志位Z和C001resultßA+1影響標(biāo)志位Z和C010resultßA-B影響標(biāo)志位Z和C011resultßA-1影響標(biāo)志位Z和C100resultßA and B影響標(biāo)志位Z101resultßA or B影響標(biāo)志位Z110resultßnot B影響標(biāo)志
4、位Z111resultß B不影響標(biāo)志位Z和C(2)設(shè)立兩個標(biāo)志位寄存器Z和C。當(dāng)復(fù)位信號reset為低電平時,將這兩個標(biāo)志寄存器清零。當(dāng)預(yù)算結(jié)束后,在時鐘CLK的上升沿改變標(biāo)志寄存器Z和C的值。運算結(jié)果改變標(biāo)志寄存器C、Z的情況下:加法、減法、加1、減1、運算改變Z、C;與、或、非運算改變Z,C保持不變;傳送操作保持Z、C不變。因此在運算結(jié)束時,Z、C需要兩個D觸發(fā)器保存。(3)為了保存操作數(shù)A和B。設(shè)計兩個16位寄存器A和B。當(dāng)寄存器選擇信號sel=0時。如果允許寫信號write=1,則在時鐘clk的上升沿將數(shù)據(jù)輸入dinput送入A寄存器;當(dāng)sel=1時,如果允許寫信號writ
5、e=1,則在時鐘clk的上升沿將數(shù)據(jù)輸入dinput送入B。(4)算術(shù)邏輯單元用一個設(shè)計實體完成。2、頂層設(shè)計實體的引腳要求引腳要求對應(yīng)關(guān)系如下:clk對應(yīng)實驗臺上的時鐘(單脈沖);reset對應(yīng)實驗臺上的CPU復(fù)位信號CPU_RST;數(shù)據(jù)輸入dinput對應(yīng)實驗臺開關(guān)SD15SD0;允許寫信號write對應(yīng)實驗臺開關(guān)SA5;OP210對應(yīng)實驗臺開關(guān)SA2SA0;寄存器選擇信號sel對應(yīng)實驗臺開關(guān)SA4;16位運算結(jié)果result對應(yīng)實驗臺上的指示燈A15A0;Z、C標(biāo)志位對應(yīng)實驗臺上的Z、C指示燈。4、 實驗現(xiàn)象及分析:(1)實驗臺設(shè)置成FPGA-CPU獨立調(diào)試模塊;REGSEL=0,CLK
6、SEL=1,F(xiàn)DSEL=0.使用實驗平臺上的單脈沖,即STEP_CLK短路子短接,短路子RUN_CLK斷開;(2)將設(shè)計在Quartus II 下輸入,在編譯后下載到TEC-CA上的FPGA中;(3)輸入A這個數(shù):Sel=0(SA4),write=1(SA5),A數(shù)(SD15SD0) ,按一下單脈沖按鈕(單脈沖按鈕),使之存入A寄存器;(4)輸入B這個數(shù):Sel=1(SA4),write=1(SA5),B數(shù)(SD15SD0),按一下單脈沖按鈕(單脈沖按鈕),使之存入B寄存器;(5)輸入功能碼OP210(SA2SA0),按一下單脈沖按鈕(單脈沖按鈕);(6)觀察16位運算結(jié)果result(A15
7、A0)及Z、C指示燈;(7)重復(fù)實驗步驟(3)-(6)對以下4組數(shù)據(jù)進行表4.1的8種運算,把運算結(jié)果及標(biāo)志位填寫在表中:A、對第一組數(shù)據(jù)進行8種運算,A為0xAAAA,B為0x5555;B、對第一組數(shù)據(jù)進行8種運算,A為0xFFFF,B為0x0000;C、對第一組數(shù)據(jù)進行8種運算,A為0x0000,B為0xFFFF;D、對第一組數(shù)據(jù)進行8種運算,A為0x8950,B為0x9863;表 算術(shù)邏輯單元實驗運算數(shù)據(jù)運算類型操作碼OP運算結(jié)果result標(biāo)志位C標(biāo)志位Z運算前運算后運算前運算后第1組數(shù)據(jù)A=0xAAAAB=0x5555resultßA+B0000xFFFF0 0 0 0re
8、sultßA+10010xAAAB0 0 0 0resultßA-B0100x55550 0 0 0resultßA-10110xAAA90 0 0 0resultßA and B1000x00000 00 1resultßA or B1010xFFFF0 00 0resultßnot B1100xAAAA0 00 0resultß B1110x55550 00 0第2組數(shù)據(jù)A=0xFFFFB=0x0000resultßA+B0000xFFFF0 00 0resultßA+10010x00000 10 1
9、resultßA-B0100xFFFF1 01 0resultßA-10110xFFFE0 00 0resultßA and B1000x00001 11 1resultßA or B1010xFFFF0 00 0resultßnot B1100xFFFF0 01 0resultß B1110x00000 01 0第3組數(shù)據(jù)A=0x0000B=0xFFFFresultßA+B0000xFFFF0 01 0resultßA+10010x00010 00 0resultßA-B0100x00010 10 0r
10、esultßA-10110xFFFF0 10 0resultßA and B1000x00000 00 1resultßA or B1010xFFFF0 00 0resultßnot B1100x00000 00 1resultß B1110xFFFF1 10 0第4組數(shù)據(jù)A=0x8950B=0x9863resultßA+B0000x21B31 10 0resultßA+10010x89511 00 0resultßA-B0100xF0ED0 10 0resultßA-10110x894F1 00 0re
11、sultßA and B1000x88400 00 0resultßA or B1010x99731 10 0resultßnot B1100x679C1 10 0resultß B1110x98631 10 0五、實驗過程中遇到問題及解決方法: 設(shè)立兩個標(biāo)志位寄存器Z和C。當(dāng)復(fù)位信號reset為低電平時,將這兩個標(biāo)志寄存器清零。當(dāng)預(yù)算結(jié)束后,在時鐘CLK的上升沿改變標(biāo)志寄存器Z和C的值。運算結(jié)果改變標(biāo)志寄存器C、Z的情況下:加法、減法、加1、減1、運算改變Z、C;與、或、非運算改變Z,C保持不變;傳送操作保持Z、C不變。六、實驗源碼:(加注釋)-算數(shù)邏
12、輯單元libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entity ALU isport(reset,clk :in std_logic;-reset復(fù)位信號,當(dāng)reset為低電平時,兩個標(biāo)志寄存器清零。clk為時鐘信號,clk為高電平,改變Z,C OP: in std_logic_vector(2 downto 0);-運算操作碼sel: in std_logic;-選擇信號,sel=0,若為寫信號,clk上升則存入A寄存器,若sel=1則存入
13、B寄存器 write:in std_logic;-寫信號 C,Z:out std_logic;-Z,C為標(biāo)志位Dinput: in std_logic_vector(15 downto 0);-輸入將寫入的數(shù)據(jù)通過它存入A寄存器或B寄存器 result: out std_logic_vector(15 downto 0)-輸出結(jié)果);end ALU;architecturebehav of alu iscomponentreg isport(clr: instd_logic;-寄存器復(fù)位信號D:instd_logic_vector(15 downto 0);-寄存器輸入信號clock:inst
14、d_logic;-時鐘信號write:instd_logic;-寫信號sel:instd_logic;-選擇信號Q:outstd_logic_vector(15 downto 0);end component;signalz_tmp :std_logic;signal A,B :std_logic_vector(15 downto 0);signalresult_t: std_logic_vector(16 downto 0);beginA_reg: reg port map-A寄存器(clr=> reset,-對應(yīng)ALU的復(fù)位信號 D=>Dinput,對應(yīng)ALU的輸入信號 clo
15、ck=>clk,-對應(yīng)ALU的時鐘信號write=> write,sel=> (not sel),-sel=0則表示選擇A寄存器 Q=> A);B_reg: reg port map-B寄存器(clr=> reset, D=>Dinput,clock=>clk, write=> write,-sel=1則表示選擇B寄存器sel=>sel, Q=> B);alu_proc:process(OP,A,B)begincase OP iswhen "000" =>result_t<= ('0'
16、& A) + ('0' & B);-A+Bwhen "001" =>result_t<= ('0' & A) + '1'-A+1when "010" =>result_t<= ('0' & A) - ('0' & B);-ABwhen "011" =>result_t<= ('0' & A) - '1'-A-1when "100&q
17、uot; =>result_t<= ('0' & A) and ('0' & B);-與when "101" =>result_t<= ('0' & A) or ('0' & B);-或when "110" =>result_t<= not ('0' & B);-非when "111" =>result_t<= ('0' & B);-傳遞end
18、case;end process;result <= result_t(15 downto 0);z_tmp<= (not result_t(15) and (not result_t(14) and(not result_t(13) and (not result_t(12) and(not result_t(11) and (not result_t(10) and(not result_t(9) and (not result_t(8) and(not result_t(7) and (not result_t(6) and(not result_t(5) and (not
19、result_t(4) and(not result_t(3) and (not result_t(2) and(not result_t(1) and (not result_t(0);c_proc: Process(reset,clk,result_t,OP)begin if reset = '0' then-若按下復(fù)位信號則寄存器C為0C <= '0'elsifclk'event and clk = '1' then-若clk為上升 if OP(2) = '0' thenC <= result_t(16);end if;end if;end process;z_proc: process(reset,clk,z_tmp,
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨企業(yè)合作項目合同模板合集
- 2025年福建省福州市福耀科技大學(xué)學(xué)校辦公室招聘參考考試試題及答案解析
- 2025延安市青少年宮招聘備考筆試試題及答案解析
- 洗碗機產(chǎn)品操作培訓(xùn)與維護手冊
- 2026中國農(nóng)業(yè)科學(xué)院第一批統(tǒng)一招聘14人(蔬菜花卉研究所)參考筆試題庫附答案解析
- 2025贛州市建興產(chǎn)業(yè)鏈管理有限公司員工招聘1人參考考試試題及答案解析
- 2026福建龍巖人民醫(yī)院招聘醫(yī)學(xué)類緊缺急需專業(yè)畢業(yè)生4人考試備考題庫及答案解析
- 2025西咸新區(qū)空港新城招聘(42人)備考筆試試題及答案解析
- 硬化坡度施工方案(3篇)
- 吧臺插座施工方案(3篇)
- 廣東省廣州市越秀區(qū)2024-2025學(xué)年八年級上學(xué)期期末考試英語試題
- 地震波速反演方法-洞察及研究
- 百年未有之大變局課件
- 2025年時事政治考試100題及答案
- 應(yīng)急救援電源
- 電力行業(yè)電力工程設(shè)計師崗位招聘考試試卷及答案
- 2025年北京市建筑施工作業(yè)人員安全生產(chǎn)知識教育培訓(xùn)考核試卷E卷及答案
- 中鐵群安員培訓(xùn)
- 2024年云南省第一人民醫(yī)院招聘考試真題
- 2025急性高甘油三酯血癥胰腺炎康復(fù)期多學(xué)科管理共識解讀
- 2025年事業(yè)單位面試熱點題目及答案解析
評論
0/150
提交評論