ARM桶形移位器.doc_第1頁
ARM桶形移位器.doc_第2頁
ARM桶形移位器.doc_第3頁
ARM桶形移位器.doc_第4頁
ARM桶形移位器.doc_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告第 5次實(shí)驗(yàn): 桶形移位器實(shí)驗(yàn) 姓名: 學(xué)號(hào): 111220120 11級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)系 03 班郵箱:時(shí)間:2012年10月18日一, 實(shí)驗(yàn)?zāi)康模?1、學(xué)習(xí)掌握桶形移位器的工作原理。 2、掌握桶形移位器的設(shè)計(jì)方法。二, 實(shí)驗(yàn)設(shè)備:1、裝有Quartus II的計(jì)算機(jī)一臺(tái)。 2、Altera DE2-70開發(fā)板或Altera DE2-115開發(fā)板一塊。三,實(shí)驗(yàn)原理圖:Mips 8位桶形移位器方框圖:Mips 8位桶形移位器組邏輯圖:ARM32 位桶形移位器方框圖:ARM32位桶形移位器邏輯圖:四,實(shí)驗(yàn)任務(wù):1、用Verilog HDL語言或VHDL 語言來編寫,實(shí)現(xiàn)MIPS32位CPU中的桶形移位器。并在Quartus II上實(shí)現(xiàn)模擬仿真。 2、用Verilog HDL語言或VHDL 語言來編寫,在Altera DE2-70開發(fā)板或Altera DE2-115開發(fā)板上實(shí)現(xiàn)一個(gè)8位的桶形移位器(如圖)。不MIPS32位CPU中的桶形移位器原理相同,使其能夠正常工作。 3、用Verilog HDL語言或VHDL 語言來編寫,實(shí)現(xiàn)ARM32位CPU中的桶形移位器。并在Quartus II上實(shí)現(xiàn)模擬仿真。五 實(shí)驗(yàn)步驟1, 做Mips8位桶形移位器:代碼設(shè)計(jì)思想:Mips桶形移位器共有四種移位方式:邏輯左移,邏輯右移,算術(shù)右移,循環(huán)右移。其中,邏輯左移和邏輯右移比較簡(jiǎn)單,先進(jìn)行移位,在給空位填0就行。算術(shù)右移和邏輯右移有所差別。算術(shù)右移時(shí),先進(jìn)行右移,再在高位填上符號(hào)位。如果符號(hào)位為0,則可以和邏輯右移合并在一起,如果符號(hào)位為1,則只需先移位,再在高位填1就行。輸入實(shí)驗(yàn)代碼:module shifter_111220120(in,op,out,amount);input 7:0in;input 1:0op;input 2:0amount;output reg 7:0out;always(op or in or amount)case(op)0:begincase(amount)3b000:out=in;3b001:out=in6:0,1b0;3b010:out=in5:0,2b0;3b011:out=in4:0,3b0;3b100:out=in3:0,4b0;3b101:out=in2:0,5b0;3b110:out=in1:0,6b0;3b111:out=in0,7b0;endcaseend1:begincase(amount)3b000:out=in;3b001:out=1b0,in7:1;3b010:out=2b0,in7:2;3b011:out=3b0,in7:3;3b100:out=4b0,in7:4;3b101:out=5b0,in7:5;3b110:out=6b0,in7:6;3b111:out=7b0,in7;endcaseend2:beginif(in7=0)begincase(amount)3b000:out=in;3b001:out=1b0,in7:1;3b010:out=2b0,in7:2;3b011:out=3b0,in7:3;3b100:out=4b0,in7:4;3b101:out=5b0,in7:5;3b110:out=6b0,in7:6;3b111:out=7b0,in7;endcaseendelsebegincase(amount)3b000:out=in;3b001:out=1b1,in7:1;3b010:out=2b10,in7:2;3b011:out=3b100,in7:3;3b100:out=4b1000,in7:4;3b101:out=5b10000,in7:5;3b110:out=6b100000,in7:6;3b111:out=7b1000000,in7;endcaseendend3:begincase(amount)3b000:out=in;3b001:out=in0,in7:1;3b010:out=in1:0,in7:2;3b011:out=in2:0,in7:3;3b100:out=in3:0,in7:4;3b101:out=in4:0,in7:5;3b110:out=in5:0,in7:6;3b111:out=in6:0,in7;endcaseenddefault:;endcaseendmodule建立代碼文件:分析綜合成功:建立仿真:導(dǎo)入提前配置好的引腳文件:全編譯成功:之后下載在開發(fā)板上實(shí)現(xiàn)。2, 做Mips32位桶形移位器:代碼設(shè)計(jì)思想:與八位的設(shè)計(jì)思路相同。其中,邏輯右移和邏輯左移比較簡(jiǎn)單,只需要先移位,再添加0就行。而算術(shù)右移則要求在高位添加符號(hào)位:高位為0時(shí)out=amountb0,in31:amount;高位為1時(shí)out=1b1,amount-1b0,in31:amount;代碼如下:module shifter_32bits(in,op,out,amount);input 31:0in;input 1:0op;input 4:0amount;output reg 31:0out;always(op or in or amount)case(op)0:begincase(amount)5b00000:out=in;5b00001:out=in30:0,1b0;5b00010:out=in29:0,2b0;5b00011:out=in28:0,3b0;5b00100:out=in27:0,4b0;5b00101:out=in26:0,5b0;5b00110:out=in25:0,6b0;5b00111:out=in24:0,7b0;5b01000:out=in23:0,8b0;5b01001:out=in22:0,9b0;5b01010:out=in21:0,10b0;5b01011:out=in20:0,11b0;5b01100:out=in19:0,12b0;5b01101:out=in18:0,13b0;5b01110:out=in17:0,14b0;5b01111:out=in16:0,15b0;5b10000:out=in15:0,16b0;5b10001:out=in14:0,17b0;5b10010:out=in13:0,18b0;5b10011:out=in12:0,19b0;5b10100:out=in11:0,20b0;5b10101:out=in10:0,21b0;5b10110:out=in9:0,22b0;5b10111:out=in8:0,23b0;5b11000:out=in7:0,24b0;5b11001:out=in6:0,25b0;5b11010:out=in5:0,26b0;5b11011:out=in4:0,27b0;5b11100:out=in3:0,28b0;5b11101:out=in2:0,29b0;5b11110:out=in1:0,30b0;5b11111:out=in0,31b0;endcaseend1:begincase(amount)5b00000:out=in;5b00001:out=1b0,in31:1;5b00010:out=2b0,in31:2;5b00011:out=3b0,in31:3;5b00100:out=4b0,in31:4;5b00101:out=5b0,in31:5;5b00110:out=6b0,in31:6;5b00111:out=7b0,in31:7;5b01000:out=8b0,in31:8;5b01001:out=9b0,in31:9;5b01010:out=10b0,in31:10;5b01011:out=11b0,in31:11;5b01100:out=12b0,in31:12;5b01101:out=13b0,in31:13;5b01110:out=14b0,in31:14;5b01111:out=15b0,in31:15;5b10000:out=16b0,in31:16;5b10001:out=17b0,in31:17;5b10010:out=18b0,in31:18;5b10011:out=19b0,in31:19;5b10100:out=20b0,in31:20;5b10101:out=21b0,in31:21;5b10110:out=22b0,in31:22;5b10111:out=23b0,in31:23;5b11000:out=24b0,in31:24;5b11001:out=25b0,in31:25;5b11010:out=26b0,in31:26;5b11011:out=27b0,in31:27;5b11100:out=28b0,in31:28;5b11101:out=29b0,in31:29;5b11110:out=30b0,in31:30;5b11111:out=31b0,in31;endcaseend2:beginif(in31=0)begincase(amount)5b00000:out=in;5b00001:out=1b0,in31:1;5b00010:out=2b0,in31:2;5b00011:out=3b0,in31:3;5b00100:out=4b0,in31:4;5b00101:out=5b0,in31:5;5b00110:out=6b0,in31:6;5b00111:out=7b0,in31:7;5b01000:out=8b0,in31:8;5b01001:out=9b0,in31:9;5b01010:out=10b0,in31:10;5b01011:out=11b0,in31:11;5b01100:out=12b0,in31:12;5b01101:out=13b0,in31:13;5b01110:out=14b0,in31:14;5b01111:out=15b0,in31:15;5b10000:out=16b0,in31:16;5b10001:out=17b0,in31:17;5b10010:out=18b0,in31:18;5b10011:out=19b0,in31:19;5b10100:out=20b0,in31:20;5b10101:out=21b0,in31:21;5b10110:out=22b0,in31:22;5b10111:out=23b0,in31:23;5b11000:out=24b0,in31:24;5b11001:out=25b0,in31:25;5b11010:out=26b0,in31:26;5b11011:out=27b0,in31:27;5b11100:out=28b0,in31:28;5b11101:out=29b0,in31:29;5b11110:out=30b0,in31:30;5b11111:out=31b0,in31;endcaseendelsebegincase(amount)5b00000:out=in;5b00001:out=1b1,in31:1;5b00010:out=1b1,1b0,in31:2;5b00011:out=1b1,2b0,in31:3;5b00100:out=1b1,3b0,in31:4;5b00101:out=1b1,4b0,in31:5;5b00110:out=1b1,5b0,in31:6;5b00111:out=1b1,6b0,in31:7;5b01000:out=1b1,7b0,in31:8;5b01001:out=1b1,8b0,in31:9;5b01010:out=1b1,9b0,in31:10;5b01011:out=1b1,10b0,in31:11;5b01100:out=1b1,11b0,in31:12;5b01101:out=1b1,12b0,in31:13;5b01110:out=1b1,13b0,in31:14;5b01111:out=1b1,14b0,in31:15;5b10000:out=1b1,15b0,in31:16;5b10001:out=1b1,16b0,in31:17;5b10010:out=1b1,17b0,in31:18;5b10011:out=1b1,18b0,in31:19;5b10100:out=1b1,19b0,in31:20;5b10101:out=1b1,20b0,in31:21;5b10110:out=1b1,21b0,in31:22;5b10111:out=1b1,22b0,in31:23;5b11000:out=1b1,23b0,in31:24;5b11001:out=1b1,24b0,in31:25;5b11010:out=1b1,25b0,in31:26;5b11011:out=1b1,26b0,in31:27;5b11100:out=1b1,27b0,in31:28;5b11101:out=1b1,28b0,in31:29;5b11110:out=1b1,29b0,in31:30;5b11111:out=1b1,30b0,in31;endcaseendend3:begincase(amount)5b00000:out=in;5b00001:out=in0,in31:1;5b00010:out=in1:0,in31:2;5b00011:out=in2:0,in31:3;5b00100:out=in3:0,in31:4;5b00101:out=in4:0,in31:5;5b00110:out=in5:0,in31:6;5b00111:out=in6:0,in31:7;5b01000:out=in7:0,in31:8;5b01001:out=in8:0,in31:9;5b01010:out=in9:0,in31:10;5b01011:out=in10:0,in31:11;5b01100:out=in11:0,in31:12;5b01101:out=in12:0,in31:13;5b01110:out=in13:0,in31:14;5b01111:out=in14:0,in31:15;5b10000:out=in15:0,in31:16;5b10001:out=in16:0,in31:17;5b10010:out=in17:0,in31:18;5b10011:out=in18:0,in31:19;5b10100:out=in19:0,in31:20;5b10101:out=in20:0,in31:21;5b10110:out=in21:0,in31:22;5b10111:out=in22:0,in31:23;5b11000:out=in23:0,in31:24;5b11001:out=in24:0,in31:25;5b11010:out=in25:0,in31:26;5b11011:out=in26:0,in31:27;5b11100:out=in27:0,in31:28;5b11101:out=in28:0,in31:29;5b11110:out=in29:0,in31:30;5b11111:out=in30:0,in31;endcaseenddefault:;endcaseendmodule建立代碼文件:分析綜合成功:建立波形文件并仿真:1op為0:邏輯左移2op為1:邏輯右移3op為2:算術(shù)左移4op為3:循環(huán)右移全編譯成功:3, ARM32位桶形移位器:代碼設(shè)計(jì)思想:ARM32位桶形移位器在代碼設(shè)計(jì)方面和mips32位的桶形移位器有些類似,只是ARM的多了進(jìn)位和溢出位已經(jīng)RRX帶C循環(huán)右移1位操作。在代碼設(shè)計(jì)的時(shí)候,還是把每種情況都分開來寫,這樣比較明了。輸入實(shí)驗(yàn)代碼:module ARM_shifter_32bits_111220120(in,op,out,amount,carry_flag,carry_out);input 31:0in;input 2:0op;input 4:0amount;input carry_flag;output reg carry_out;output reg 31:0out;reg c;always(op or in or amount)case(op)0:begincase(amount)5b00000:begin out=in; carry_out=0;end5b00001:begin out=in30:0,1b0; carry_out=in31;end5b00010:begin out=in29:0,2b0; carry_out=in30;end5b00011:begin out=in28:0,3b0; carry_out=in29;end5b00100:begin out=in27:0,4b0; carry_out=in28;end5b00101:begin out=in26:0,5b0; carry_out=in27;end5b00110:begin out=in25:0,6b0; carry_out=in26;end5b00111:begin out=in24:0,7b0; carry_out=in25;end5b01000:begin out=in23:0,8b0; carry_out=in24;end5b01001:begin out=in22:0,9b0; carry_out=in23;end5b01010:begin out=in21:0,10b0; carry_out=in22;end5b01011:begin out=in20:0,11b0; carry_out=in21;end5b01100:begin out=in19:0,12b0; carry_out=in20;end5b01101:begin out=in18:0,13b0; carry_out=in19;end5b01110:begin out=in17:0,14b0; carry_out=in18;end5b01111:begin out=in16:0,15b0; carry_out=in17;end5b10000:begin out=in15:0,16b0; carry_out=in16;end5b10001:begin out=in14:0,17b0; carry_out=in15;end5b10010:begin out=in13:0,18b0; carry_out=in14;end5b10011:begin out=in12:0,19b0; carry_out=in13;end5b10100:begin out=in11:0,20b0; carry_out=in12;end5b10101:begin out=in10:0,21b0; carry_out=in11;end5b10110:begin out=in9:0,22b0; carry_out=in10;end5b10111:begin out=in8:0,23b0; carry_out=in9;end5b11000:begin out=in7:0,24b0; carry_out=in8;end5b11001:begin out=in6:0,25b0; carry_out=in7;end5b11010:begin out=in5:0,26b0; carry_out=in6;end5b11011:begin out=in4:0,27b0; carry_out=in5;end5b11100:begin out=in3:0,28b0; carry_out=in4;end5b11101:begin out=in2:0,29b0; carry_out=in3;end5b11110:begin out=in1:0,30b0; carry_out=in2;end5b11111:begin out=in0,31b0; carry_out=in1;endendcaseend1:begincase(amount)5b00000:begin out=in;carry_out=0;end5b00001:begin out=1b0,in31:1; carry_out=in0;end5b00010:begin out=2b0,in31:2;carry_out=in1;end5b00011:begin out=3b0,in31:3;carry_out=in2;end5b00100:begin out=4b0,in31:4;carry_out=in3;end5b00101:begin out=5b0,in31:5;carry_out=in4;end5b00110:begin out=6b0,in31:6;carry_out=in5;end5b00111:begin out=7b0,in31:7;carry_out=in6;end5b01000:begin out=8b0,in31:8;carry_out=in7;end5b01001:begin out=9b0,in31:9;carry_out=in8;end5b01010:begin out=10b0,in31:10;carry_out=in9;end5b01011:begin out=11b0,in31:11;carry_out=in10;end5b01100:begin out=12b0,in31:12;carry_out=in11;end5b01101:begin out=13b0,in31:13;carry_out=in12;end5b01110:begin out=14b0,in31:14;carry_out=in13;end5b01111:begin out=15b0,in31:15;carry_out=in14;end5b10000:begin out=16b0,in31:16;carry_out=in15;end5b10001:begin out=17b0,in31:17;carry_out=in16;end5b10010:begin out=18b0,in31:18;carry_out=in17;end5b10011:begin out=19b0,in31:19;carry_out=in18;end5b10100:begin out=20b0,in31:20;carry_out=in19;end5b10101:begin out=21b0,in31:21;carry_out=in20;end5b10110:begin out=22b0,in31:22;carry_out=in21;end5b10111:begin out=23b0,in31:23;carry_out=in22;end5b11000:begin out=24b0,in31:24;carry_out=in23;end5b11001:begin out=25b0,in31:25;carry_out=in24;end5b11010:begin out=26b0,in31:26;carry_out=in25;end5b11011:begin out=27b0,in31:27;carry_out=in26;end5b11100:begin out=28b0,in31:28;carry_out=in27;end5b11101:begin out=29b0,in31:29;carry_out=in28;end5b11110:begin out=30b0,in31:30;carry_out=in29;end5b11111:begin out=31b0,in31;carry_out=in30;endendcaseend2:beginif(in31=0)begincase(amount)5b00000:begin out=in;carry_out=0;end5b00001:begin out=1b0,in31:1; carry_out=in0;end5b00010:begin out=2b0,in31:2;carry_out=in1;end5b00011:begin out=3b0,in31:3;carry_out=in2;end5b00100:begin out=4b0,in31:4;carry_out=in3;end5b00101:begin out=5b0,in31:5;carry_out=in4;end5b00110:begin out=6b0,in31:6;carry_out=in5;end5b00111:begin out=7b0,in31:7;carry_out=in6;end5b01000:begin out=8b0,in31:8;carry_out=in7;end5b01001:begin out=9b0,in31:9;carry_out=in8;end5b01010:begin out=10b0,in31:10;carry_out=in9;end5b01011:begin out=11b0,in31:11;carry_out=in10;end5b01100:begin out=12b0,in31:12;carry_out=in11;end5b01101:begin out=13b0,in31:13;carry_out=in12;end5b01110:begin out=14b0,in31:14;carry_out=in13;end5b01111:begin out=15b0,in31:15;carry_out=in14;end5b10000:begin out=16b0,in31:16;carry_out=in15;end5b10001:begin out=17b0,in31:17;carry_out=in16;end5b10010:begin out=18b0,in31:18;carry_out=in17;end5b10011:begin out=19b0,in31:19;carry_out=in18;end5b10100:begin out=20b0,in31:20;carry_out=in19;end5b10101:begin out=21b0,in31:21;carry_out=in20;end5b10110:begin out=22b0,in31:22;carry_out=in21;end5b10111:begin out=23b0,in31:23;carry_out=in22;end5b11000:begin out=24b0,in31:24;carry_out=in23;end5b11001:begin out=25b0,in31:25;carry_out=in24;end5b11010:begin out=26b0,in31:26;carry_out=in25;end5b11011:begin out=27b0,in31:27;carry_out=in26;end5b11100:begin out=28b0,in31:28;carry_out=in27;end5b11101:begin out=29b0,in31:29;carry_out=in28;end5b11110:begin out=30b0,in31:30;carry_out=in29;end5b11111:begin out=31b0,in31;carry_out=in30;endendcaseendelsebegincase(amount)5b00000:begin out=in;carry_out=0;end5b00001:begin out=1b1,in31:1; carry_out=in0;end5b00010:begin out=1b1,1b0,in31:2; carry_out=in1;end5b00011:begin out=1b1,2b0,in31:3; carry_out=in2;end5b00100:begin out=1b1,3b0,in31:4; carry_out=in3;end5b00101:begin out=1b1,4b0,in31:5; carry_out=in4;end5b00110:begin out=1b1,5b0,in31:6; carry_out=in5;end5b00111:begin out=1b1,6b0,in31:7; carry_out=in6;end5b01000:begin out=1b1,7b0,in31:8; carry_out=in7;end5b01001:begin out=1b1,8b0,in31:9; carry_out=in8;end5b01010:begin out=1b1,9b0,in31:10; carry_out=in9;end5b01011:begin out=1b1,10b0,in31:11; carry_out=in10;end5b01100:begin out=1b1,11b0,in31:12; carry_out=in11;end5b01101:begin out=1b1,12b0,in31:13; carry_out=in12;end5b01110:begin out=1b1,13b0,in31:14; carry_out=in13;end5b01111:begin out=1b1,14b0,in31:15; carry_out=in14;end5b10000:begin out=1b1,15b0,in31:16; carry_out=in15;end5b10001:begin out=1b1,16b0,in31:17; carry_out=in16;end5b10010:begin out=1b1,17b0,in31:18; carry_out=in17;end5b10011:begin out=1b1,18b0,in31:19; carry_out=in18;end5b10100:begin out=1b1,19b0,in31:20; carry_out=in19;end5b10101:begin out=1b1,20b0,in31:21; carry_out=in20;end5b10110:begin out=1b1,21b0,in31:22; carry_out=in21;end5b10111:begin out=1b1,22b0,in31:23; carry_out=in22;end5b11000:begin out=1b1,23b0,in31:24; carry_out=in23;end5b11001:begin out=1b1,24b0,in31:25; carry_out=in24;end5b11010:begin out=1b1,25b0,in31:26; carry_out=in25;end5b11011:begin out=1b1,26b0,in31:27; carry_out=in26;end5b11100:begin out=1b1,27b0,in31:28; carry_out=in27;end5b11101:begin out=1b1,28b0,in31:29; carry_out=in28;end5b11110:begin out=1

溫馨提示

  • 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)論