已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理实验实验报告第 5次实验: 桶形移位器实验 姓名: 学号: 111220120 11级 计算机科学与技术系 03 班邮箱:时间:2012年10月18日一, 实验目的: 1、学习掌握桶形移位器的工作原理。 2、掌握桶形移位器的设计方法。二, 实验设备:1、装有Quartus II的计算机一台。 2、Altera DE2-70开发板或Altera DE2-115开发板一块。三,实验原理图:Mips 8位桶形移位器方框图:Mips 8位桶形移位器组逻辑图:ARM32 位桶形移位器方框图:ARM32位桶形移位器逻辑图:四,实验任务:1、用Verilog HDL语言或VHDL 语言来编写,实现MIPS32位CPU中的桶形移位器。并在Quartus II上实现模拟仿真。 2、用Verilog HDL语言或VHDL 语言来编写,在Altera DE2-70开发板或Altera DE2-115开发板上实现一个8位的桶形移位器(如图)。不MIPS32位CPU中的桶形移位器原理相同,使其能够正常工作。 3、用Verilog HDL语言或VHDL 语言来编写,实现ARM32位CPU中的桶形移位器。并在Quartus II上实现模拟仿真。五 实验步骤1, 做Mips8位桶形移位器:代码设计思想:Mips桶形移位器共有四种移位方式:逻辑左移,逻辑右移,算术右移,循环右移。其中,逻辑左移和逻辑右移比较简单,先进行移位,在给空位填0就行。算术右移和逻辑右移有所差别。算术右移时,先进行右移,再在高位填上符号位。如果符号位为0,则可以和逻辑右移合并在一起,如果符号位为1,则只需先移位,再在高位填1就行。输入实验代码: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建立代码文件:分析综合成功:建立仿真:导入提前配置好的引脚文件:全编译成功:之后下载在开发板上实现。2, 做Mips32位桶形移位器:代码设计思想:与八位的设计思路相同。其中,逻辑右移和逻辑左移比较简单,只需要先移位,再添加0就行。而算术右移则要求在高位添加符号位:高位为0时out=amountb0,in31:amount;高位为1时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:算术左移4op为3:循环右移全编译成功:3, ARM32位桶形移位器:代码设计思想:ARM32位桶形移位器在代码设计方面和mips32位的桶形移位器有些类似,只是ARM的多了进位和溢出位已经RRX带C循环右移1位操作。在代码设计的时候,还是把每种情况都分开来写,这样比较明了。输入实验代码: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等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年克孜勒苏职业技术学院单招职业技能考试题库含答案详解(轻巧夺冠)
- 2026年冀中职业学院单招职业技能考试题库带答案详解(基础题)
- 2026年内蒙古巴彦淖尔盟单招职业适应性考试题库及一套完整答案详解
- 2026年信阳学院单招职业技能考试题库附参考答案详解(典型题)
- 2026年兰州科技职业学院单招职业倾向性测试题库带答案详解(培优b卷)
- 2026年内蒙古能源职业学院单招职业技能测试题库附参考答案详解(模拟题)
- 2026年南京旅游职业学院单招职业倾向性考试题库附答案详解ab卷
- 2026年南京特殊教育师范学院单招综合素质考试题库附答案详解(综合卷)
- 2026年国际商务谈判口译考试试题
- 2026年英语四六级备考试题集听力与翻译技巧
- 派出所档案培训课件
- 企业气候风险披露对会计信息质量的影响研究
- 表面重构动力学-洞察及研究
- 生产工单管理办法
- 景观照明设施养护服务方案投标文件(技术方案)
- 苏教牛津译林版小学英语六年级上册单词背诵默写本
- 高中英语词汇3500词(必背)-excel版
- 老舍骆驼祥子第一章
- 康腾杯案例分析大赛作品
- 绿色建筑绿色建材应用比例计算报告
- 关于大学生就业创业指导课程的调查问卷
评论
0/150
提交评论