搜档网
当前位置:搜档网 › 计网实验报告

计网实验报告

计网实验报告
计网实验报告

局域网网络结构及VLAN划分

一.实验目的

1.了解局域网中的基本概念及基本命令;

2.了解Vlan的概念及应用;

3.了解交换机的接口类型;

4.了解Vlan标签协议802.1Q;

5.了解Vlan的实际应用。

二.实验原理

1.局域网中的基本概念

(1)局域网的拓扑结构

局域网常用的拓扑结构有星形网,环形网,总线网和数形网。(2)局域网中常用的传输媒质

局域网中常用的传输媒质有双绞线,同轴电缆,光纤和无线信道。无论用何种媒质,局域网对信道的占用分为共享信道和独占信道来完成的。共享信道:带宽的分配主要采用的是动态分配。

独占信道:带宽的分配通过划分VLAN实现。

(3)共享信道的接入技术

共享信道的接入技术主要分为两类:随机接入和受控接入。

受控接入又分为两大类:集中控制和分散控制。集中控制用到的主要技术为轮询方式;分散控制用到的主要技术为令牌方式。随机接入又分为两大类:载波监听多址接入和ALOHA。

(4)局域网的分层体系结构

局域网的分层体系结构由IEEE的802委员会制定。局域网一

般分为物理层,数据链路层,网络层以及高层。

(5)以太网—最常见的局域网

IEEE的802.3协议主要定义的是以太网标准。我们的工作网络也是在以太网环境里。媒质接入控制采用的是CSMA/CD,物理媒质采用的是双绞线,网络的拓扑结构为星形网,所有的主机通过两台交换机连在一起。

(6)网络操作系统

常用的网络操作系统有Windows NT,WINDOWS 2000,NOVELL,window XP等。包括WINDOWS 98也能提供常用的网络协议。我们的实验主要通过对WINDOWS 98的网上邻居进行协议的配置。

IPconfig命令可以设置和检查各种网络接口的配置值,可以利用它为每个接口设置IP地址,子网掩码和广播地址。

PING主要用来测试网络的连通性。它使用了ICMP回送请求与回送回答报文。

2.VLAN概述

VLAN即虚拟局域网,是一种通过将局域网内的设备逻辑的而不是物理的划分成一个个网段从而实现虚拟工作组的技术。划分VLAN的主要作用是隔离广播域。在共享式的以太网上,每个设备都处于一个广播域中。广播帧会传播到网络中的每台主机,并且对每台主机的CPU造成负担。

ARP请求:建立IP地址和MAC地址的映射关系。

RIP:一种路由协议。

DHCP:用于自动设定IP地址的协议。

NetBEUI:Windows下使用的网络协议。

IPX:Novell Netware使用的网络协议。

如果整个网络只有一个广播域,那么一旦发出广播信息,就会传遍整个网络,并且对网络中的主机带来额外的负担。因此,在设计LAN时,需要注意如何才能有效的分割广域网。

分割广域网的方法:路由器,vlan

3.VLAN的工作原理

(1).

(2).

(3).

(4)端口类型

Access:发送不带标签的报文;

一般与pc,server相连时使用;

Trunk:发送带标签的报文;

一般用于交换机级联端口传递多组vlan信息时使用;

(5).

4.VLAN工作小结

交换机接收报文时需要判断报文在哪个vlan中转发。它根据收到的报文属性判断。

tag——按照tag中的vid标识转发;

untag——按照接收端口所在vlan转发。

交换机发送报文时需要判断是否携带vid标识。它根据发

送端口的vlan属性判断。

access端口——发送untag报文;

trunk端口——发送tag报文。

5.vlan的标准

(1)Access Ports

一个Access Ports只属于一个VLAN;Access端口发送不带标签的报文。缺省所有端口都包含在vlan1中,且都是Access Ports。(2)Trunk Ports

一个Trunk Ports可以属于多个VLAN ;Trunk Ports通过发送带标签的报文来区别某一数据包属于哪一vlan;标签遵守IEEE802.1Q协议标准。

三.实验要求

设计由四个PC和三个交换机组成的简单vlan网,如图:

和pc3,pc0和pc2之间是不可以连通的。

四.实验图及结果

五.实验心得

做实验既能加深我们对实验原理的理解和认识,学会运用这些原理,又能锻炼我们的动手能力。通过这次实验使我明白对于网络实验,我们要树立重视实践更甚于重视理论的观点。业余时间扩宽计算机网络硬件方面的知识。这次实验让我学会了虚拟局域网是指在一个物理网段内进行逻辑划分的虚拟局域网,特点是不受物理位置的限制 可以进行灵活的划分。这次实验都是一些交换机的基本配置和Vlan配置,但让我明白了要想做好一个实验就必须做好课前整备,查阅相关文档、文献,并做好笔记。这次实验我遇到了一些困难但和同学交流后

困难很容易就被解决了,所以我明白学习别人的经验是多么的重要,在遇到困难时一定要和同学多交流,接受别人的建议,不能一意孤行。我明白了学习计算机动手能力是多么的重要。我们要注意动手能力的培养,通过实验来提高动手能力。还有学习英语是非常重要的,很多命令都是英语缩写。

计组实验报告

计算机组成原理实验报告 实验1:VERILOG 设计基础 专业班级:14级计算机二班 学号:14048001 姓名:杨娜 学号:14048003 姓名:周蓉 实验地点:理工楼901 实验时间:2016年5月14日

实验十VGA显示控制器的设计 一、实验目的 1、学习VERILOG的基本语法和编程规则 2、掌握通用寄存器等常用基本数字模块的VERILOG描述和基本设计方法 3、理解带使能控制和异步清零的8位寄存器的设计原理 4、掌握使用VERILOG设计和验证带使能控制和异步清零的8位寄存器的方法 5、掌握移位寄存器的设计方法 二、实验任务 1、设计一个带使能控制和异步清零的8位寄存器REG8X,实现8位输入的锁存,在时钟的上升沿处得到一个8位的输出和一个8位的反向输出,将结果显示在发光二极管。 模块的端口描述如下: 模块的参考物理结构如下: R7 R6 R i R 0 7 6 i 0 带使能控制和异步清零的8位寄存器 模块的使用注意事项

1.数据源D(7..0)一直加在寄存器的数据输入端; 2.周期性的时钟信号Clock一直加在寄存器的时钟输入端 3.使能信号Enable控制寄存器是否接受数据。当Enable = '0'时,寄存器不 接受数据,保持原来的状态不变;当Enable = '1'时,在时钟信号Clock正 跳变时,寄存器接受并保存当时D(7..0)的数据; 4.本寄存器其它方面的功能与上述的寄存器相同。 完成的参考电路图如下:dout=q 2、设计一个有左、右移位功能的8位寄存器REGSHIFT8,并仿真验证。

三、实验内容 1、通过输入数据先进行计算,并通过实验进行验证REG8X。 (1)、将清零信号Resetn(sw17)设为0,将输入信号D(sw7~sw0)设为10101010,观察输出信号Q(ledr7~ledr0)和Qb(ledg7~ledg0),观察并记录输出。 (2)、将清零信号Resetn(sw17)设为1,在时钟信号处输入一个上升沿(按下key0),观察并记录输出。 (3)、将输入信号D(sw7~sw0)设为01010101,观察并记录输出。 (4)、在时钟信号处输入一个上升沿(按下key0),观察并记录输出。 (5)、自行完善设计表格,观察并记录测试输出。 实验数据表 2、通过输入数据先进行计算,并通过实验进行验证REGSHIFT8。 (1)、测试清零信号Resetn (2)、测试移位功能 (3)、测试寄存功能 (4)、自行设计表格观察并记录测试输出。 实验数据表

杭电计组实验报告10

计组实验十 老师:包健 一、源代码测试模块代码: module Top( inputinclk, inputmem_clk, inputrst, outputreg[7:0] LED, input [3:0] SW ); wireclk; MyButtonmb( .clk_100MHz(mem_clk), .BTN(inclk), .BTN_Out(clk) ); wire [31:0] ALU_F; wire [31:0] M_R_Data; wire ZF; wire OF; wire [31:0]PC; My_I_CPUmy_i_cpu( .clk(clk), .mem_clk(mem_clk), .rst(rst), .ALU_F(ALU_F), .M_R_Data(M_R_Data), .ZFF(ZF), .OF(OF), .PC_out(PC) ); always@(*) begin case(SW) 4'd0:LED=ALU_F[7:0]; 4'd1:LED=ALU_F[15:8]; 4'd2:LED=ALU_F[23:16]; 4'd3:LED=ALU_F[31:24]; 4'd4:LED=M_R_Data[7:0];

4'd5:LED=M_R_Data[15:8]; 4'd6:LED=M_R_Data[23:16]; 4'd7:LED=M_R_Data[31:24]; 4'd8:LED={ZF,6'd0,OF}; 4'd12:LED=PC[7:0]; 4'd13:LED=PC[15:8]; 4'd14:LED=PC[23:16]; 4'd15:LED=PC[31:24]; default:LED=8'b0000_0000; endcase end endmodule 顶层模块代码: moduleMy_I_CPU( inputclk, inputmem_clk, inputrst, output [31:0] ALU_F, output [31:0] M_R_Data, output ZFF, output OF, output [31:0]PC_out ); //wire clk_n = ~clk; wire[31:0] codes; wire [31:0]PC_new; reg [31:0]PC; Inst_Fetch1 inst_fetch( .PC(PC), .rst(rst), .clk(clk), .Inst_codes(codes), .PC_new(PC_new) ); wire[5:0] OP; wire[5:0] func;

计组-加法器实验报告

半加器、全加器、串行进位加法器以及超前进位加法器 一、实验原理 1.一位半加器 A和B异或产生和Sum,与产生进位C 2.一位全加器 将一位半加器集成封装为halfadder元件,使用两个半加器构成一位的全加器 3.4位串行进位加法器 将一位全加器集成封装为Fulladder元件,使用四个构成串行进位加法器

4.超前进位加法器(4位) ⑴AddBlock 产生并行进位链中的ti(即Cthis)和di(即Cpass),以及本位结果Sum ⑵进位链(Cmaker) 四位一组并行进位链,假设与或非门的级延迟时间为1.5ty,与非门的延迟时间为1ty,在di和ti产生之后,只需2.5ty就可产生所有全部进位

⑶超前进位加法器 将以上二者结合起来即可完成,A和B各位作为各个AddBlock的输入,低一位的进位Ci-1作为本位AddBlock的C-1的输入。各个AddBlock输出的C_this和C_pass作为对应的Cmaker的thisi和passi的输入。

二、实验器材 QuartusII仿真软件,实验箱 三、实验结果 1.串行进位加法器结果 2.超前进位加法器结果

四、实验结果分析 1.实验仿真结果显示串行加法器比超前进位加法器快,部分原因应该是电路结构优化 不到位。另外由于计算的位数比较少,超前进位加法链结构较复杂,所以优势没体现出来,反倒运作的更慢一点。当位数增加的时候,超前进位加法器会比串行的更快。 2.波形稳定之前出现上下波动,应该与“竞争冒险”出现的情况类似,门的延迟和路径 的不同导致了信号变化时到达的时间有先有后,因此在最终结果形成前出现了脉冲尖峰和低谷;另外也可能部分原因由于电路结构优化的不到位所致

计组-4位乘法器实验报告

实验4位乘法器实验报告 姓名:X XX 学号:X XX 专业:计算机科学与技术课程名称:计算机组成同组学生姓名:无 实验时间:实验地点:指导老师:XXX 一、实验目的和要求 1.熟练掌握乘法器的工作原理和逻辑功能 二、实验内容和原理 实验内容: 根据课本上例3-7的原理,来实现4位移位乘法器的设计。 具体要求:1. 乘数和被乘数都是4位 2. 生成的乘积是8位的 3. 计算中涉及的所有数都是无符号数 4.需要设计重置功能 5.需要分步计算出结果(4位乘数的运算,需要四步算出结果) 实验原理: 1.乘法器原理图

2.本实验的要求: 1.需要设计按钮和相应开关,来增加乘数和被乘数 2.每按一下M13,给一个时钟,数码管的左边两位显示每一步的乘 积 3.4步计算出最终结果后,LED灯亮,按RESET重新开始计算 三、主要仪器设备 1.Spartan-III开发板1套 2.装有ISE的PC机1台 四、操作方法与实验步骤 实验步骤: 1.创建新的工程和新的源文件 2.编写verilog代码(top模块、display模块、乘法运算模块、去抖动模块以及 UCF引脚) 3.进行编译 4.进行Debug 工作,通过编译。

5.. 生成FPGA代码,下载到实验板上并调试,看是否与实现了预期功能 操作方法: TOP: module alu_top(clk, switch, o_seg, o_sel); input wire clk; input wire[4:0] switch; output wire [7:0] o_seg; // 只需七段显示数字,不用小数点 output wire [3:0] o_sel; // 4个数码管的位选 wire[15:0] disp_num; reg [15:0] i_r, i_s; wire [15:0] disp_code; wire o_zf; //zero detector initial begin i_r <= 16'h1122; //0x1122 i_s <= 16'h3344; //0x3344 end alu M1(i_r, i_s, switch[4:2], o_zf, disp_code); display M3(clk, disp_num, o_seg, o_sel); assign disp_num = switch[0]?disp_code:(switch[1] ? i_s : i_r); endmodule

计组实验二实验报告-80868088指令系统

HUNAN UNIVERSITY 课程实习报告 题目: 8086/8088指令系统 学生姓名 学生学号 专业班级计算机科学与技术2班 指导老师 完成日期2013年4月21日

一、实验目的 利用debug工具的e和u功能找出8086/8088指令系统的指令格式中各种操作吗编码对应的指令功能,得到8086/8088操作吗从00~FF所对应的的汇编指令的名字。并加以分析总结,形成你的关于8086/8088指令系统操作码编码方法的实验报告。 二、实验过程 1、编写C++程序,生成debug的输入文件(shuru.txt) 2、将shuru.txt复制到debug的根目录下,在debug界面输入如下指令“debug out.txt”,在debug的根目录下,生成了输出文本文件out.txt。 打开out.txt,对256条记录进行整理,如下所示。 3、固定前两位为00,将第二字节从00变为ff,观察汇编指令变化。编写C++程序如下: 4、将shuru2.txt复制到debug的根目录下,在debug界面输入如下指令“debug out2.txt”,在debug的根目录下,生成了输出文本文件out2.txt。

打开out2.txt,对256条记录进行分析。 三、256条记录 指令码汇编指令 ------------------------------------------------------------- 0B76:0100 0000 ADD [BX+SI],AL 0B76:0100 0100 ADD [BX+SI],AX 0B76:0100 0200 ADD AL,[BX+SI] 0B76:0100 0300 ADD AX,[BX+SI] 0B76:0100 0400 ADD AL,00 0B76:0100 050000 ADD AX,0000 0B76:0100 06 PUSH ES 0B76:0100 07 POP ES 0B76:0100 0800 OR [BX+SI],AL 0B76:0100 0900 OR [BX+SI],AX 0B76:0100 0A00 OR AL,[BX+SI] 0B76:0100 0B00 OR AX,[BX+SI] 0B76:0100 0C00 OR AL,00 0B76:0100 0D0000 OR AX,0000 0B76:0100 0E PUSH CS 0B76:0100 0F DB 0F 0B76:0100 1000 ADC [BX+SI],AL 0B76:0100 1100 ADC [BX+SI],AX 0B76:0100 1200 ADC AL,[BX+SI] 0B76:0100 1300 ADC AX,[BX+SI] 0B76:0100 1400 ADC AL,00 0B76:0100 150000 ADC AX,0000 0B76:0100 16 PUSH SS 0B76:0100 17 POP SS 0B76:0100 1800 SBB [BX+SI],AL 0B76:0100 1900 SBB [BX+SI],AX 0B76:0100 1A00 SBB AL,[BX+SI] 0B76:0100 1B00 SBB AX,[BX+SI] 0B76:0100 1C00 SBB AL,00 0B76:0100 1D0000 SBB AX,0000 0B76:0100 1E PUSH DS 0B76:0100 1F POP DS 0B76:0100 2000 AND [BX+SI],AL 0B76:0100 2100 AND [BX+SI],AX 0B76:0100 2200 AND AL,[BX+SI] 0B76:0100 2300 AND AX,[BX+SI] 0B76:0100 2400 AND AL,00 0B76:0100 250000 AND AX,0000

计组实验报告.

武汉大学计算机学院计算机科学与技术专业 CPU设计实验报告 实验名称:开放式实验CPU设计课题名称: 计算机组成原理 班级: 指导教师:徐爱萍 组长: 组员: 二零一五年三月

目录 目录 (1) 1 实验环境 (2) 1.1 Quartus Ⅱ介绍 (2) 1.2 硬件描述语言(VHDL) (3) 1.3实验的主要成果 (3) 2 实验要求 (5) 2. 1 指令格式要求 (5) 2. 2 指令流程及微信号序列分析 (6) 2.2.1 ADD指令分析 (6) 2.2.2 ADC指令分析 (7) 2.2.3 SUB指令分析 (7) 2.2.4 SBC指令分析 (7) 2.2.5 INC指令分析 (7) 2.2.6 DEC指令分析 (8) 2.2.7 SHL指令分析 (8) 2.2.8 SHR指令分析 (8) 2.2.9 MOVR指令分析 (8) 2.2.10 MOVD指令分析 (9) 2.2.11 LDRR指令分析 (9) 2.2.12 STRR指令分析 (10) 2.2.13 JMP指令分析 (10) 2.2.14 JRC指令分析 (11) 2.2.15 JRZ指令分析 (11) 2.2.16 JRS指令分析 (11) 2.2.17 CLC指令分析 (11) 2.2.18 STC指令分析 (11) 3.部件仿真实验 (11) 3.1 八个通用寄存器设计与仿真 (11) 3.1.1 设计代码 (11) 3.1.2 RTL连接图 (17) 3.1.3 仿真过程 (17) 3.2算术逻辑单元设计与仿真 (18) 3.2.1 设计代码 (18) 3.2.2 RTL连接图 (21) 3.2.3 仿真过程 (22) 4. CPU设计 (23) 4.1取指设计 (23) 4.2指令译码的设计 (25) 4.3执行部分设计 (28) 4.4存储器部分设计 (31) 4.5通用寄存器组设计 (32)

计算机组成原理实验报告二

实验二存储器实验 一、实验目的 熟悉和了解存储器组织与总线组成的数据通路。 二、实验原理 存储器是计算机的存储部件,用于存放程序和数据。存储器是计算机信息存储的核心,是计算机必不可少的部件之一,计算机就是按存放在存储器中的程序自动有序不间断地进行工作。本系统从提高存储器存储信息效率的角度设计数据通路,按现代计算机中最为典型的分段存储理念把存储器组织划分为程序段、数据段等,由此派生了数据总线(DBUS)、指令总线(IBUS)、微总线( BUS)等与现代计算机设计规范相吻合的实验环境。该存储器组织由二片6116构成具有奇偶概念的十六位信息存储体系,该存储体系AddBus由PC指针和AR 指针分时提供,E/M控位为“0”时选通PC,反之选通AR。该存储体系可随机定义总线宽度,动态变更总线结构,把我们的教学实验提高到能与现代计算机设计规范相匹配与接轨的层面。 连线信号孔接入孔作用有效电平 1 DRCK CLOCK 单元手动实验状态的时钟来源下降沿打入 2 W K6(M6) 总线字长:1=16位字操作,0=8位字节操作 3 XP K7(M7) 源部件奇偶标志:1=偶寻址,0=奇寻址 4 X2 K10(M10) 源部件定义译码端X2 三八译码 八中选一5 X1 K9(M9) 源部件定义译码端X1

四、实验过程 1. 存储器数据段读写操作 (1) 数据段写操作(字) 在进行数据存储器字操作时,地址线A0必须为0(偶地址)。向数据段的0000~0005h 存储单元写入11 22 33 44 55 66一串数据,以0000h 地址单元写入数据1122h 为例表述操作流程。 置地址I/O=0000h AR 地址写入(0000h)置数据I/O=1122h 存储器写入(1122h)关存储器写X2 X1 X0=011XP W=11 LDAR(K17)=0 MWR(K21)=1按[单拍] E/M(K23)=1LDAR(K17)=1按[单拍] MWR(K21)=0 (2) 数据段读操作(字) 依次读出数据段0~0005h 单元的内容,这里以0000h 地址单元读出为例阐述操作流程。 置地址I/O=0000h AR 地址写入(0000h)关AR 写使能存储器读出(1122h)数据总线显示存储器值 X2 X1 X0=011XP W=11 LDAR(K17)=0 E/M(K23)=1LDAR(K17)=1按 [单拍] X2 X1 X0=100W=1 2. 存储器程序段读写操作 (1) 程序段字节写操作 计算机规范的取指操作均以字节为单位。所以本实验以字节操作方式展开。程序段写入必须从定义地址入手,然后再进入程序存储器的写入。 PC 指针是带预置加法计数器,因此在输入起始地址后一旦后续地址为PC+1的话就不需重装PC ,用PC+1指令完成下续地址的读写操作。 PC 地址装载写入与PC+1写入流程 置地址I/O=0000h PC 地址写入(0000h)I/O=1234h 12h →[PC]地址增量PC+1关存储器写X2 X1 X0=011XP W=11 E/M(K23)=0LDPC(K22)=0MWR(K21)=1W=0,按[单拍] LDPC(K22)=1MWR(K21)=0 E/M(K23)=1LDPC(K22)=1按[单拍] LDPC(K22)=0MWR(K21)=1XP=0,按[单拍] (2) 程序段字节读操作 PC 地址装载读出及PC+1读出流程 X2 X1 X0=011XP W=11 E/M(K23)=0LDPC(K22)=0X2 X1 X0=100XP=1, W=0 LDPC(K22)=1按[单拍] E/M(K23)=1LDPC(K22)=1按[单拍] 按[单拍] 五、结果分析

计组实验报告--部分

2、设计报告 2、1实验方法 本实验要完成的工作主要包括: 1、指令系统的设计 2、利用VHDL语言完成实验CPU的设计,包括通用寄存器的设计、取值部分设计、指令译 码设计、执行设计、存储器设计、程序包设计和顶层设计设计 3、在Quatus II 平台上进行仿真,并下载到TEC-CA教学实验箱上进行调试。 这三大部分为并行关系,只有在完成上一部分的基础上才能继续进行下一步,而第二大部分可以同时并行进行。 实验的主要流程图为图2.1所示。 图2.1

在指令系统和CPU逻辑设计时,主要的方法是先根据老师给的指令要求,确定CPU所要实现的功能,根据寄存器等的情况划分指令格式,然后根据功能写出指令,根据不同指令的特点将它们分组并确定操作码;接下来设想每条指令的执行过程,需要哪些硬件支持,最后确定整个CPU的逻辑结构图。 2、2总体说明 2.2.1 CPU组成部件 实验CPU由5部分组成:取指部分instru_fetch、指令译码部分decoder_unit、执行部分exe_unit、存储器部分memory_unit和通用寄存器组fegile.另外,还有一个程序包exe_cpu_components,将各底层设计实体作为元件存储,供各设计实体使用。顶层设计实体exe_cpu完成5个组成部分的链接。 GR(8位,4个寄存器),ALU(8位),时序节拍发生器timer,AR(8位),IR(8位),PC(8位)、PC(8位),RAM(8位),组合期间T1,T2,T3。逻辑控制器件controller,地址总线(8位),数据总线(8位)。 2、2、2整机原理实验图

图2.2.1 图2.2.2

计组实验报告2016

电 子 科 技 大 学 实验报告

(一) 一实验名称:8位算术逻辑运算实验 二实验学时:4学时 三实验内容、目的和实验原理: 实验目的: 1. 掌握算术逻辑运算器单元ALU(74LS181)的工作原理。 2. 掌握模型机运算器的数据传送通路组成原理。 3. 验证74LS181的组合功能。 4. 按给定数据,完成实验指导书中的算术/逻辑运算。 实验原理: 1. 运算器由两片74LS181以并/串形式构成8位字长的ALU。 2. 运算器的输出经过一个三态门(74LS245)和数据总线相连。 3. 运算器的两个数据输入端分别由两个锁存器(74LS273)锁存。 4. 锁存器的输入连至数据总线,数据开关(INPUT DEVICE)用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连。 5. 数据显示灯(BUS UNIT)已和数据总线相连,用来显示数据总线内容。 四实验器材(设备、元器件) 1. DVCC实验机一台 五实验步骤: 连接线路,仔细检查核对后接通电源。 用二进制数据开关KD0-KD7向DR1和DR2寄存器置入8位运算数据。 检验DR1和DR2置入的数据是否正确。 验证74LS181的算术和逻辑运算功能。 填写实验报告表3-1中的空白数据。

六实验数据及结果分析(包括各种截图:实验过程截图、界面截图、操作截图、运算结果截图): 七实验结论、心得体会和改进建议:

实验结论: 1. S3、S2、S1、S0、M、Cn、LDDR1、LDDR2、ALU-B、SW-B均为电平信号,与"SWITCH UNIT"中的二进制开关对应相接,用于模拟产生电平控制信号。开关状态打上去是高电平,打下来是低电平。 2. 数据开关输入数据时,要打开SW-B,关闭ALU-B 心得体会: 1. 通过这次实验我掌握了算术逻辑运算器单元ALU(74LS181)工作原理。 2. 通过这次实验我掌握了模型机运算器的数据传送通路组成原理。 3. 通过这次实验我验证了74LS181的组合功能。

西电计组实验报告

计算机组成原理 实验报告 班级: **** 学号: ***** 姓名: ** 地点: *** 时间: ***

计算机组成原理与体系结构课程设计实验报告 基本模型机设计与实现 一.实验目的 1.深入理解基本模型计算机的功能、组成知识; 2.深入学习计算机各类典型指令的执行流程; 3.学习微程序控制器的设计过程和相关技术,掌握LPM_ROM 的配置方法。 4.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。 5.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。掌握微程序的设计方法,学会编写二进制微指令代码表。 6.通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。 二.实验原理 1.在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本实验将能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。实验中,计算机数据通路的控制将由微过程控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 2.指令格式 (1)指令格式 采用寄存器直接寻址方式,其格式如下: 其中, 其中IN RAM 中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。

1,存储器读操作(KRD ):下载实验程序后按总清除按键(CLR )后,控制台SWA 、SWB 为“0 0”时,可对RAM 连续手动读入操作。 2,存储器写操作(KWE ):下载实验程序后按总清除按键(CLR )后,控制台SWA 、SWB 为“0 1”时,可对RAM 连续手动写操作。 3、启动程序(RP ):下载实验程序后按总清除按键(CLR )后,控制台SWA 、SWB 为“1 1”时,即可转入到微地址“01”号“取指令”微指令,启动程序运行。 根据以上要求设计数据通路框图,如图5-1所示。 表6-1 24位微代码定义: 表6-2 A 、B 、C 各字段功能说明: 24(1) uA5—uA0:微程序控制器的微地址输出信号,是下一条要执行的微指令的微地址。 (2) S3、S2、Sl 、S0:由微程序控制器输出的ALU 操作选择信号,以控制执行16种算术操作或16种逻辑操作中的某一种操作。 (3) M :微程序控制输出的ALU 操作方式选择信号端。M =0执行算术操作;M =l 执行逻辑操作。 (4)Cn :微程序控制器输出的进位标志信号,Cn =0表示ALU 运算时最低位有进位,Cn =1则表示无进位。 (5)WE :微程序控制器输出的RAM 控制信号。当/CE =0时,如WE =0为存储器读;如WE =1为存储器写。 (6) A9、A8——译码后产生CS0、CS1、CS2信号,分别作为SW_B 、RAM 、LED 的选通控制信号。(7) A 字段(15、14、13)——译码后产生与总线相连接的各单元的输入选通信号(见表6-1)。 (8) B 字段(12、11、10)——译码后产生与总线相连接的各单元的输出选通信号。 (9) C 字段(9、8、7)——译码后产生分支判断测试信号P(1)~P(4)和LDPC 信号。 系统涉及到的微程序流程见图6-2。当执行“取指令”微指令时,该微指令的判断测试字段为P(1)测试。由于“取 图6-1 数据通路框图

计组实验5中断实验

综合实验报告 ( 2013 -- 2014年度第一学期) 名称:计算机组成原理综合实验题目:综合实验 院系:计算机系 班级: 学号: 学生姓名: 指导教师: 设计周数: 成绩: 日期:年月

一、目的与要求 (1)掌握中断在计算机系统中的作用; (2)了解可以响应中断请求的条件和时刻,响应中断的过程和实现方案;理解使用中断隐指令的必要性; (3)了解中断处理的完整过程,开中断、关中断操作的作用,保存现场信息和恢复现场信息必须确保完整完成的含义和可行措施; (4)掌握确定中断向量、设计中断处理程序的操作步骤和实现方法; 二、实验正文 1.实验内容 (1)读懂教材中有关中断的概念、中断响应和中断处理的内容,了解这些功能在教学计算机中是如何体现的; (2)如果所用的教学计算机的基本指令集合中尚未实现中断隐指令、与处理中断有关的EI、DI和IRET三条指令,则需要首先实现中断隐指令和扩展这三 条指令;如果在基本指令集中已经实现了上述内容,则直接跳过这一实验步骤。 (3)确定中断向量表地址。这个向量表是以XXX4为首地址的一段内存区(为每一个中断保留4个字的空间),用于存放对应每一个中断源的中断处理程序 的首地址,要在中断隐指令中把这里的选定的一个地址传送到程序计数器PC中, 之后就进入响应中断处理程序的执行过程。常用的可行方案是在这里保存一条转 移指令,实现依据不同的中断源转移到不同的中断处理程序。教学机设置了3个 中断源并为每个中断源分配了不同的优先级,则3个中断程序入口地址分别为16 进制的XXX4、XXX8和XXXC。 (4)设计对应每一个中断的处理程序,例如显示对应各自中断优先级的一个数字符,重复显示80或160次。 (5)设计一个死循环程序并执行,例如反复显示大写英文字母M。在这个程序运行过程中,通过按用作为中断请求源的3个不同按钮,则屏幕上会显示不 同的字符序列,可以清楚地看到中断嵌套的运行情况。 例如在主程序运行时,屏幕上显示字母M,随时按下哪一个中断源按钮(例如中间位置的一个,对应中断优先级2),会立即进入相应的中断处理过程(屏幕 上显示字符2);在执行某一个级别(例如2级)的中断处理的过程中,当按下更 低级别(例如1级,右面位置的那个)的中断源按钮时,这个中断请求不会得到 响应(屏幕上仍显示字符2,而不是字符1);当按下的是更高级别(例如3级, 左面位置的那个)的中断源按钮时,这个中断请求会立即得到响应(屏幕上将变 为显示字符3,而不再是字符2);当3级中断处理程序执行结束之后(80或160 个字符3显示完成),则会返回到原来尚未完成的2级中断处理过程(屏幕上继续 显示字符2);当2级中断处理程序执行结束之后,则返回主程序,屏幕上又开始 重复显示字母M。

计组实验报告Add8

附页: 1.代码 module Add8(A,B,asc,Cin,en,d,Cout,Af); input en,asc,Cin; Input [7:0] A,B; output Cout,Af; Output [7:0] d; reg Cout,Af; reg [7:0] d; integer i,n,k; always@(A or B or en or Cin or asc ) if(!en) begin end else begin if(!asc) begin n=Cin; k=0; for(i=0;i<8;i=i+1) begin n=A[i]+B[i]+n; k=k+1; if(k==4) begin if(n> 1) begin Af=1; if(n>1)begin d[i]=n-2;n=1;end else begin d[i]=n;n=0;end end else if (n<2) begin Af=0; if(n>1)begin d[i]=n-2;n=1;end else begin d[i]=n;n=0;end end end else begin if(n>1)begin d[i]=n-2;n=1;end else begin d[i]=n;n=0;end end end Cout=n; end else begin n=Cin;k=0; for(i=0;i<8;i=i+1) begin

if(n>=0)begin d[i]=n;n=0;end else if(n==-1)begin d[i]=1;n=1;end else if(n==-2)begin d[i]=0;n=1;end end Cout=n; end endmodule 2.适配结果

计组实验报告

计算机组成原理实验报告一 一、算术逻辑运算器 1. 实验目的与要求: 目的:①掌握算术逻辑运算器单元ALU(74LS181)的工作原理。 ②掌握简单运算器的数据传输通道。 ③验算由74LS181等组合逻辑电路组成的运输功能发生器运输功能。 ④能够按给定数据,完成实验指定的算术/逻辑运算。 要求:完成实验接线和所有练习题操作。 实验前,要求做好实验预习,掌握运算器的数据传送通道和ALU的特性,并熟悉本实验中所用的模拟开关的作用和使用方法。 实验过程中,要认真进行实验操作,仔细思考实验有关的内容,把自己想得不太明白的问题通过实验去理解清楚,争取得到最好的实验结果,达到预期的实验教学目的。 实验完成后,要求每个学生写出实验报告。 2. 实验方案: 1.两片74LS181(每片4位)以并/串联形式构成字长为8为的运算器。 2.8为运算器的输出经过一个输入双向三态门(74LS245)与数据总线相连,运算器的两个数据输入端分别与两个8位寄存器(74LS273)DR1和DR2的输出端相连,DR1和DR2寄存器是用于保存参加运算的数据和运算的结果。寄存器的输入端于数据总线相连。 3.8位数据D7~D0(在“INPUT DEVICE”中)用来产生参与运算的数据,并经过一个输出三态门(74LS245)与数据总线相连。数据显示灯(BUS UNIT)已与数据总线相连,用来显示数据总线上所内容。

4.S3、S2、S1、S0是运算选择控制端,由它们决定运算器执行哪一种运算(16种算术运算或16种逻辑运算)。 5.M是算术/逻辑运算选择,M=0时,执行算术运算,M=1时,执行逻辑运算。 6.Cn是算术运算的进位控制端,Cn=0(低电平),表示有进位,运算时相当于在最低位上加进位1,Cn=1(高电平),表示无进位。逻辑运算与进位无关。 7.ALU-B是输出三态门的控制端,控制运算器的运算结果是否送到数据总线BUS上。低电平有效。 8.SW-B是输入三态门的控制端,控制“INPUT DEVICE”中的8位数据开关D7~D0数据是否送到数据总线BUS上。低电平有效。 9.LDDR1是寄存器DR1存数控制信号,LDDR2是寄存器DR2存数控制信号。它们都是高电平有效。 10.A0~A3是4位数据输入通道A,B0~B3是4位数据输入通道B。 11.F0~F3是运算结果输出端。 3. 实验结果和数据处理: 实验结果记录表: 4. 结论

杭电计组实验报告9

计组实验九 老师:包健 一、源代码 测试模块代码: moduleTest_Top; // Inputs reginclk; regmem_clk; regrst; reg [3:0] SW; // Outputs wire [7:0] LED; // Instantiate the Unit Under Test (UUT) Top uut ( .inclk(inclk), .mem_clk(mem_clk), .rst(rst), .LED(LED), .SW(SW) ); reg [2:0] i; initial begin // Initialize Inputs inclk = 0; mem_clk = 0; rst = 0; SW = 0; i=0; // Wait 100 ns for global reset to finish #100; rst = 1; #100; rst =0 ;

#100; forever begin #100; mem_clk=~mem_clk; i=i+1; if(i==3'b000) inclk=~inclk; end end endmodule 顶层模块代码: moduleMy_I_CPU( inputclk, inputmem_clk, inputrst, output [31:0] ALU_F, output [31:0] M_R_Data, output ZF, output OF ); wireclk_n = ~clk; wire[31:0] codes; Inst_Fetch1 inst_fetch( .rst(rst), .clk(clk), .Inst_codes(codes) ); wire[5:0] OP; wire[5:0] func; wire[2:0] ALU_OP; wirerd_rt_s; wireimm_s; wirert_imm_s; wirealu_mem_s; wireWrite_Reg;

计组实验2报告

Your goal is to modify(修改)your copy of bits.c so that it passes all the tests in btest without violating(违反)any of the coding guidelines.(编码指南) ********* 0. Files: ********* Makefile - Makes btest, fshow, and ishow README - This file bits.c - The file you will be modifying and handing in bits.h - Header file btest.c - The main btest program btest.h - Used to build btest decl.c - Used to build btest tests.c - Used to build btest tests-header.c- Used to build btest dlc* - Rule checking compiler binary (编译器的二进制)(data lab compiler)9实验数据编译器) driver.pl* - Driver program that uses btest and dlc to autograde bits.c Driverhdrs.pm - Header file for optional "Beat the Prof" contest fshow.c - Utility for examining floating-point representations ishow.c - Utility(实用,通用)for examining integer representations *********************************************************** 1. Modifying bits.c and checking it for compliance(服从)with dlc *********************************************************** IMPORTANT: Carefully read the instructions(说明)in the bits.c file before you start. These give the coding rules(编码规则)that you will need to follow if you want full credit(学分). Use the dlc compiler(编译器)(./dlc) to automatically(自动的)check your version(版本)of bits.c for compliance(服从)with the coding guidelines: unix> ./dlc bits.c dlc(数据链路控制)returns silently if there are no problems with your code. Otherwise it prints(打印)messages that flag any problems. Running dlc with the -e switch: unix> ./dlc -e bits.c

计算机组成原理实验报告2

计算机组成原理实验报告

F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); M : IN STD_LOGIC; CN : IN STD_LOGIC; CO : OUT STD_LOGIC ); END ALU181; ARCHITECTURE behav OF ALU181 IS SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN A9 <= '0' & A ; B9 <= '0' & B ; PROCESS(M,CN,A9,B9) BEGIN CASE S IS WHEN "0000" => IF M='0' THEN F9<=A9 + CN ; ELSE F9<=NOT A9; END IF; WHEN "0001" => IF M='0' THEN F9<=(A9 or B9) + CN ; ELSE F9<=NOT(A9 OR B9); END IF; WHEN "0010" => IF M='0' THEN F9<=(A9 or (NOT B9))+ CN ; ELSE F9<=(NOT A9) AND B9; END IF; WHEN "0011" => IF M='0' THEN F9<= "000000000" - CN ; ELSE F9<="000000000"; END IF; WHEN "0100" => IF M='0' THEN F9<=A9+(A9 AND NOT B9)+ CN ; ELSE F9<=NOT (A9 AND B9); END IF; WHEN "0101" => IF M='0' THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9<=NOT B9; END IF; WHEN "0110" => IF M='0' THEN F9<=(A9 - B9) - CN ; ELSE F9<=A9 XOR B9; END IF; WHEN "0111" => IF M='0' THEN F9<=(A9 or (NOT B9)) - CN ; ELSE F9<=A9 and (NOT B9); END IF; WHEN "1000" => IF M='0' THEN F9<=A9 + (A9 AND B9)+CN ; ELSE F9<=(NOT A9)and B9; END IF; WHEN "1001" => IF M='0' THEN F9<=A9 + B9 + CN ; ELSE F9<=NOT(A9 XOR B9); END IF; WHEN "1010" => IF M='0' THEN F9<=(A9 or(NOT B9))+(A9 AND B9)+CN ; ELSE F9<=B9; END IF; WHEN "1011" => IF M='0' THEN F9<=(A9 AND B9)- CN ; ELSE F9<=A9 AND B9; END IF; WHEN "1100" => IF M='0' THEN F9<=(A9 + A9) + CN ; ELSE F9<= "000000001"; END IF; WHEN "1101" => IF M='0' THEN F9<=(A9 or B9) + A9 + CN ; ELSE F9<=A9 OR (NOT B9); END IF; WHEN "1110" => IF M='0' THEN F9<=((A9 or (NOT B9)) +A9) + CN ; ELSE F9<=A9 OR B9; END IF; WHEN "1111" => IF M='0' THEN F9<=A9 - CN ; ELSE F9<=A9 ; END IF; WHEN OTHERS => F9<= "000000000" ; END CASE; END PROCESS; F<= F9(7 DOWNTO 0) ; CO <= F9(8) ; END behav;

相关主题