计算机组成原理实验报告 电子科技大学

合集下载

计算机组成原理实验报告 西电版

计算机组成原理实验报告  西电版

计算机组成原理实验报告成评语:绩教师:年月日班级:学号:姓名:地点:时间:实验一存储器实验1、F PGA中LPM_ROM定制与读出实验实验课件参考:/CMPUT_EXPMT/E XPERIMENTS/E XPMT3/实验3-1.PPT 实验示例参考:/CMPUT_EXPMT/Experiments/Expmt3 / DEMO_3_1_rom一.实验目的1、掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法。

2、用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于lpm_ROM中;3、在初始化存储器编辑窗口编辑mif文件配置ROM;4、验证FPGA中mega_lpm_ROM的功能。

二.实验原理ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modules)参数化的模块库,可构成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存储器结构。

CPU中的重要部件,如RAM、ROM可直接调用他们构成,因此在FPGA中利用嵌入式阵列块EAB可以构成各种结构的存储器,lpm_ROM是其中的一种。

lpm_ROM有5组信号:地址信号address[ ]、数据信号q[ ]、时钟信号inclock、outclock、允许信号memenable,其参数都是可以设定的。

由于ROM是只读存储器,所以它的数据口是单向的输出端口,ROM中的数据是在对FPGA现场配置时,通过配置文件一起写入存储单元的。

图3-1-1中的lpm_ROM 有3组信号:inclk——输入时钟脉冲;q[23..0]——lpm_ROM的24位数据输出端;a[5..0]——lpm_ROM的6位读出地址。

实验中主要应掌握以下三方面的内容:(1)lpm_ROM的参数设置;(2)lpm_ROM中数据的写入,即LPM_FILE初始化文件的编写;(3)lpm_ROM的实际应用,在GW48_CP+实验台上的调试方法。

计算机组成原理实验报告 电子科技大学

计算机组成原理实验报告 电子科技大学

计算机专业类课程实验报告课程名称:计算机组成原理学院专业:计算机科学与工程计算机科学与技术学生姓名:**学号:20120600*****指导教师:吴晓华日期:2014年11月30日实验报告实验一一、实验名称:ALU设计实验二、实验内容和目的:(1)实验内容:设计一个4bit ALU,实现两个4bit二进制数的算术运算和逻辑运算1、算术运算(加、减);2、逻辑运算(与、或、置1、清0);(2)实验目的:1.熟悉ALU的工作原理;2. 掌握用硬件描述语言设计ALU的方法;三、实验原理:利用veilog hdl语言编写实现实验要求的逻辑功能实现代码。

要求实现两个四位二进制数的算数运算和逻辑运算,有三个输入,分别是输入的两个四位二进制数和一个控制信号,有两个输出,分别是仅为信号和运算结果的输出。

考虑到是电路的逻辑代码设计简化,采用case语句来实现。

所有的输入都会对最终的结果和进位输出产生影响。

在连线时,八个开关分为两组,分别控制两个四位二进制数的各位,有五个指示灯,四个显示结果的输出,一个用来显示进位信号。

四、实验器材(设备、元器件)硬件平台:pc软件平台:windows xp五、实验步骤:先利用仿真软件进行程序的编写,编译调试运行,结果无误后,在仿真软件上绑定对应开关和连线,打开电路板电源,进行控制操作,观察指示灯的亮灭情况,根据实际的逻辑结果来验证实验代码及连线的正确性,若与实际结果不相符,检查连线以及实验代码,重新进行处理。

六、实验数据及结果分析:(1)实验代码:module pz(in1,in2,se,count,c); input[3:0] in1,in2;input[2:0] se;output[3:0] count;output c;reg[3:0] count;reg c;always@(in1,in2,se)begincase(se)3'b000:{c,count}=in1+in2;3'b001:{c,count}=in1-in2;3'b010:count=in1 & in2;3'b011:count=in1 | in2;3'b100:count=0000;3'b101:count=1111;default:count=5'bx;endcaseendendmodule(2)实验结果照片:八.实验结论、心得体会和改进建议:(1)思考题:在进行算术运时,7(0111)+8(1000)=11117(0111)- 8(1000)=1111 其输出结果都是1111,为什么?答:因为计算时都采用二进制补码来运算,而前者进行相加的两个数都是正数,其补码为其本身。

计算机组成原理实验报告

计算机组成原理实验报告

计算机组成原理实验报告实验目的,通过本次实验,深入了解计算机组成原理的相关知识,掌握计算机硬件的基本组成和工作原理。

实验一,逻辑门电路实验。

在本次实验中,我们学习了逻辑门电路的基本原理和实现方法。

逻辑门电路是计算机中最基本的组成部分,通过逻辑门电路可以实现各种逻辑运算,如与门、或门、非门等。

在实验中,我们通过搭建逻辑门电路并进行实际操作,深入理解了逻辑门的工作原理和逻辑运算的实现过程。

实验二,寄存器和计数器实验。

在本次实验中,我们学习了寄存器和计数器的原理和应用。

寄存器是计算机中用于存储数据的重要部件,而计数器则用于实现计数功能。

通过实验操作,我们深入了解了寄存器和计数器的内部结构和工作原理,掌握了它们在计算机中的应用方法。

实验三,存储器实验。

在实验三中,我们学习了存储器的原理和分类,了解了不同类型的存储器在计算机中的作用和应用。

通过实验操作,我们进一步加深了对存储器的认识,掌握了存储器的读写操作和数据传输原理。

实验四,指令系统实验。

在本次实验中,我们学习了计算机的指令系统,了解了指令的格式和执行过程。

通过实验操作,我们掌握了指令的编写和执行方法,加深了对指令系统的理解和应用。

实验五,CPU实验。

在实验五中,我们深入了解了计算机的中央处理器(CPU)的工作原理和结构。

通过实验操作,我们学习了CPU的各个部件的功能和相互之间的协作关系,掌握了CPU的工作过程和运行原理。

实验六,总线实验。

在本次实验中,我们学习了计算机的总线结构和工作原理。

通过实验操作,我们了解了总线的分类和各种总线的功能,掌握了总线的数据传输方式和时序控制方法。

结论:通过本次实验,我们深入了解了计算机组成原理的相关知识,掌握了计算机硬件的基本组成和工作原理。

通过实验操作,我们加深了对逻辑门电路、寄存器、计数器、存储器、指令系统、CPU和总线的理解,为进一步学习和研究计算机组成原理奠定了坚实的基础。

希望通过不断的实践和学习,能够更深入地理解和应用计算机组成原理的知识。

电子科技大学中山学院计算机组成原理实验4Cache控制器设计实验

电子科技大学中山学院计算机组成原理实验4Cache控制器设计实验

实验四 Cache控制器设计实验1.实验目的(1) 掌握Cache控制器的原理及其设计方法。

(2) 熟悉CPLD应用设计及EDA软件的使用。

2.实验设备PC机一台,TD-CMA实验系统一套。

3.实验原理本实验采用的地址变换是直接映像方式,这种变换方式简单而直接,硬件实现很简单,访问速度也比较快,但是块的冲突率比较高。

其主要原则是:主存中一块只能映像到Cache 的一个特定的块中。

假设主存的块号为B,Cache的块号为b,则它们之间的映像关系可以表示为:b = B mod Cb其中,Cb是Cache的块容量。

设主存的块容量为Mb,区容量为Me,则直接映像方法的关系如图4-1所示。

把主存按Cache的大小分成区,一般主存容量为Cache容量的整数倍,主存每一个分区内的块数与Cache的总块数相等。

直接映象方式只能把主存各个区中相对块号相同的那些块映像到Cache中同一块号的那个特定块中。

例如,主存的块0只能映像到Cache 的块0中,主存的块1只能映像到Cache的块1中,同样,主存区1中的块Cb(在区1中的相对块号是0)区0区1区M e-1主存储器图4-1 直接相联映像方式也只能映像到Cache的块0中。

根据上面给出的地址映像规则,整个Cache地址与主存地址的低位部分是完全相同的。

直接映像方式的地址变换过程如图4-2所示,主存地址中的块号B与Cache地址中的块号b是完全相同的。

同样,主存地址中的块内地址W与Cache地址中的块内地址w也是完全相同的,主存地址比Cache地址长出来的部分称为区号E。

区表存储器图4-2 直接相联地址变换在程序执行过程中,当要访问Cache 时,为了实现主存块号到Cache 块号的变换,需要有一个存放主存区号的小容量存储器,这个存储器的容量与Cache 的块数相等,字长为主存地址中区号E 的长度,另外再加一个有效位。

在主存地址到Cache 地址的变换过程中,首先用主存地址中的块号去访问区号存储器(按地址访问)。

2021年西安电子科技大学计组实验报告

2021年西安电子科技大学计组实验报告

西安电子科技大学计算机组织与体系结构 课程试验汇报试验名称 计算机组织与体系结构计算机 学院 1503013 班姓名 陈宁 学号 同作者 罗超试验日期 年 9 月 24 日试验地点 E-II-311 试验批次 第二批一.试验目1.深入了解基础模型计算机功效、组成知识;2.深入学习计算机各类经典指令实施步骤;3.学习微程序控制器设计过程和相关技术, 掌握LPM_ROM配置方法。

4.在掌握部件单元电路试验基础上, 深入将单元电路组成系统, 结构一台基础模型计算机。

5.定义五条机器指令, 并编写对应微程序, 上机调试, 掌握计算机整机概念。

掌握微程序设计方法, 学会编写二进制微指令代码表。

6.经过熟悉较完整计算机设计, 全方面了解并掌握微程序控制方法计算机设计方法。

二.试验原理1.在部件试验过程中, 各部件单元控制信号是人为模拟产生, 而本试验将能在微过程控制下自动产生各部件单元控制信号, 实现特定功效。

试验中, 计算机数据通路控制将由微过程控制器来完成, CPU 从内存中取出一条机器指令到指令实施结束一个指令周期, 全部由微指令组成序列来完成, 即一条机器指令对应一个微程序。

2.指令格式 (1)指令格式采取寄存器直接寻址方法, 其格式以下:其中, OP -CODE 为操作码, rs 为源寄存器, rd 为目寄存器, 并要求:1,存放器读操作(KRD): 下载试验程序后按总清除按键(CLR)后, 控制台SWA、SWB为“0 0”时, 可对RAM连续手动读入操作。

2,存放器写操作(KWE): 下载试验程序后按总清除按键(CLR)后, 控制台SWA、SWB为“0 1”时, 可对RAM连续手动写操作。

3、开启程序(RP): 下载试验程图6-1 数据通路框图序后按总清除按键(CLR)后, 控制台SWA、SWB为“1 1”时, 即可转入到微地址“01”号“取指令”微指令, 开启程序运行。

依据以上要求设计数据通路框图, 如图5-1所表示。

杭电计算机组成原理实验报告.doc

杭电计算机组成原理实验报告.doc

杭电计算机组成原理实验报告篇一:杭电计组实验报告9计组实验九老师:包健一、源代码测试模块代码:moduleTest_Top;// Inputsreginclk;regmem_clk;regrst;reg [3:0] SW;// Outputswire [7:0] LED;// Instantiate the Unit Under TestTop uut ,.mem_clk,.rst,.LED,.SW);reg [2:0] i;initial begin// Initialize Inputsinclk = 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;foreverbegin#100;mem_clk=~mem_clk;i=i+1;ifinclk=~inclk;endendendmodule顶层模块代码:moduleMy_I_CPU;wireclk_n = ~clk;wire[31:0] codes;Inst_Fetch1 inst_fetch,.clk,.Inst_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;wireMem_Write;wire [15:0] imm;wire [31:0] imm_data ;assign imm_data = ?{{16{imm[15]}},imm}:{{16{1b0}},imm}; assign OP =codes[31:26];assignfunc = codes[5:0];assignimm = codes[15:0]; OP_Decoderop_decoder,//input.func,//input.ALU_OP,.rd_rt_s,.imm_s,.rt_imm_s,.alu_mem_s,.Write_Reg,.Mem_Write);wire[4:0] rs;wire[4:0] rt;wire[4:0] rd;assigs = codes[25:21];assigt = codes[20:16];assigd = codes[15:11];wire[4:0] W_Addr;assignW_Addr=?rt:rd;wire [31:0]W_Data;wire [31:0]R_Data_A;wire [31:0]R_Data_B; RegisterHeapregister,.R_Addr_B,.W_Addr,.Write_Reg,.Reset,.Clk,.W_Data,.R_Data_A,.R_Data_B);wire [31:0]ALU_A;wire [31:0]ALU_B;assign ALU_A = R_Data_A;assign ALU_B = ?imm_data:R_Data_B;ALU alu,.A,.B,.F,.ZF,.OF);Data_Memdata_mem , // input clka.wea, // input [0 : 0] wea .addra, // input [5 : 0] addra .dina, // input [31 : 0] dina .douta // output [31 : 0] douta);assignW_Data = ?M_R_Data:ALU_F; endmodule二、仿真波形三、电路图四、引脚配置篇二:杭电计算机组成原理取指令与指令译码实验7杭州电子科技大学计算机学院实验报告课程名称:计算机组成原理姓名实验项目:取指令与指令译码实验班级指导教师:学号:实验位置:日期:篇三:杭电计算机组成原理多功能ALU设计实验3杭州电子科技大学计算机学院实验报告课程名称:计算机组成原理姓名:实验项目:多功能ALU设计实验班级:指导教师:学号:实验位置:日期:2015年4月29日。

计算机组成原理 实验报告

计算机组成原理实验报告计算机组成原理实验报告引言计算机组成原理是计算机科学与技术专业中的一门重要课程,通过实验学习可以更好地理解和掌握计算机的基本原理和结构。

本实验报告将介绍我在学习计算机组成原理课程中进行的实验内容和实验结果。

实验一:二进制与十进制转换在计算机中,数据以二进制形式存储和处理。

通过这个实验,我们学习了如何将二进制数转换为十进制数,以及如何将十进制数转换为二进制数。

通过实际操作,我更深入地了解了二进制与十进制之间的转换原理,并且掌握了转换的方法和技巧。

实验二:逻辑门电路设计逻辑门电路是计算机中的基本组成部分,用于实现不同的逻辑运算。

在这个实验中,我们学习了逻辑门的基本原理和功能,并通过电路设计软件进行了实际的电路设计和模拟。

通过这个实验,我深入理解了逻辑门电路的工作原理,并且掌握了电路设计的基本方法。

实验三:组合逻辑电路设计组合逻辑电路是由多个逻辑门组合而成的电路,用于实现复杂的逻辑功能。

在这个实验中,我们学习了组合逻辑电路的设计原理和方法,并通过实际的电路设计和模拟,实现了多个逻辑门的组合。

通过这个实验,我进一步掌握了逻辑电路设计的技巧,并且了解了组合逻辑电路在计算机中的应用。

实验四:时序逻辑电路设计时序逻辑电路是由组合逻辑电路和触发器组合而成的电路,用于实现存储和控制功能。

在这个实验中,我们学习了时序逻辑电路的设计原理和方法,并通过实际的电路设计和模拟,实现了存储和控制功能。

通过这个实验,我进一步了解了时序逻辑电路的工作原理,并且掌握了时序逻辑电路的设计和调试技巧。

实验五:计算机指令系统设计计算机指令系统是计算机的核心部分,用于控制计算机的操作和运行。

在这个实验中,我们学习了计算机指令系统的设计原理和方法,并通过实际的指令系统设计和模拟,实现了基本的指令功能。

通过这个实验,我深入了解了计算机指令系统的工作原理,并且掌握了指令系统设计的基本技巧。

实验六:计算机硬件系统设计计算机硬件系统是由多个模块组成的,包括中央处理器、存储器、输入输出设备等。

机综实验报告

一、实验模块计算机组成原理实验二、实验标题计算机组成原理实验报告三、实验内容本次实验主要围绕计算机组成原理展开,通过实际操作和理论分析,加深对计算机硬件组成和工作原理的理解。

四、实验目的1. 理解计算机硬件的基本组成,包括CPU、内存、I/O接口等。

2. 掌握计算机各组成部分之间的数据传输和通信方式。

3. 了解计算机的基本工作原理,包括指令的执行过程和中断处理等。

4. 通过实验,提高动手能力和问题解决能力。

五、实验环境实验地点:学校机房实验设备:计算机组成原理实验箱(EL-JY-II型)实验软件:相关实验软件六、实验步骤及实验结果1. CPU实验(1)实验连线:将CPU、内存、I/O接口等设备按照实验要求进行连接。

(2)写数据:向内存写入数据,通过CPU读取数据并输出。

(3)实验结果:观察数据是否正确传输,分析CPU的工作原理。

2. 内存实验(1)实验连线:将内存与CPU、I/O接口等设备连接。

(2)往存储器写数据:向内存写入数据。

(3)从存储器读数据:从内存读取数据,观察数据是否正确。

(4)实验结果:分析内存的工作原理,验证内存读写功能。

3. I/O接口实验(1)实验连线:将I/O接口与CPU、内存等设备连接。

(2)实验步骤:通过I/O接口进行数据传输。

(3)实验结果:观察数据是否正确传输,分析I/O接口的工作原理。

4. 中断实验(1)实验连线:将中断设备与CPU、内存等设备连接。

(2)实验步骤:模拟中断发生,观察CPU如何响应中断。

(3)实验结果:分析中断处理过程,理解中断在计算机中的作用。

七、实验结果的分析与总结1. 通过本次实验,我们深入了解了计算机硬件的基本组成和工作原理,掌握了CPU、内存、I/O接口等设备的工作方式。

2. 实验过程中,我们学会了如何进行实验连线、数据传输和中断处理等操作,提高了动手能力和问题解决能力。

3. 实验结果表明,计算机硬件各部分之间协同工作,共同完成指令的执行和数据的处理。

计算机组成原理综合实验报告

计算机组成原理综合实验报告一、实验目的本次计算机组成原理综合实验旨在深入理解计算机组成的基本原理,通过实际操作和设计,巩固所学的理论知识,并培养实践动手能力和创新思维。

二、实验设备本次实验所使用的设备包括计算机硬件实验平台、数字逻辑实验箱、示波器、万用表等。

三、实验内容1、运算器实验设计并实现一个简单的运算器,能够完成加法、减法、乘法和除法运算。

通过实验,深入理解运算器的工作原理,包括数据的输入、运算过程和结果的输出。

2、控制器实验构建一个基本的控制器,实现指令的读取、译码和执行过程。

了解控制器如何控制计算机的各个部件协同工作,以完成特定的任务。

3、存储系统实验研究计算机的存储系统,包括主存和缓存的工作原理。

通过实验,掌握存储单元的读写操作,以及如何提高存储系统的性能。

4、输入输出系统实验了解计算机输入输出系统的工作方式,实现与外部设备的数据传输。

四、实验步骤1、运算器实验步骤(1)确定运算器的功能和架构,选择合适的逻辑器件。

(2)连接电路,实现加法、减法、乘法和除法运算的逻辑。

(3)编写测试程序,输入不同的数据进行运算,并观察结果。

2、控制器实验步骤(1)分析控制器的工作流程和指令格式。

(2)设计控制器的逻辑电路,实现指令的译码和控制信号的生成。

(3)编写测试程序,验证控制器的功能。

3、存储系统实验步骤(1)连接存储单元,设置地址线、数据线和控制线。

(2)编写读写程序,对存储单元进行读写操作,观察数据的存储和读取情况。

(3)通过改变缓存策略,观察对存储系统性能的影响。

4、输入输出系统实验步骤(1)连接输入输出设备,如键盘、显示器等。

(2)编写程序,实现数据的输入和输出。

(3)测试输入输出系统的稳定性和可靠性。

五、实验结果1、运算器实验结果通过测试程序的运行,运算器能够准确地完成加法、减法、乘法和除法运算,结果符合预期。

2、控制器实验结果控制器能够正确地译码指令,并生成相应的控制信号,使计算机各个部件按照指令的要求协同工作。

(完整word版)计算机组成原理实验报告-单周期CPU的设计与实现

电子科技大学计算机科学与工程学院标准实验报告(实验)课程名称:计算机组成原理实验电子科技大学教务处制表1个时钟周期Clock电 子 科 技 大 学实 验 报 告学生姓名: 郫县尼克杨 学 号: 2014666666666 指导教师:陈虹 实验地点: 主楼A2—411 实验时间:12周—15周一、 实验室名称:主楼A2—411二、 实验项目名称:单周期CPU 的设计与实现。

三、 实验学时:8学时四、 实验原理:(一) 概述单周期(Single Cycle )CPU 是指CPU 从取出1条指令到执行完该指令只需1个时钟周期.一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保存结果。

对于单周期CPU 来说,这些执行步骤均在一个时钟周期内完成.(二) 单周期cpu 总体电路本实验所设计的单周期CPU 的总体电路结构如下。

(三) MIPS 指令格式化MIPS 指令系统结构有MIPS —32和MIPS-64两种.本实验的MIPS 指令选用MIPS-32。

以下所说的MIPS 指令均指MIPS-32.MIPS 的指令格式为32位。

下图给出MIPS 指令的3种格式。

本实验只选取了9条典型的MIPS 指令来描述CPU 逻辑电路的设计方法.下图列出了本实验的所涉及到的9条MIPS 指令。

26 312521 2016 1511 106 5oprsrtrd sa funcR 型指令26 312521 2016 15oprs rt immediateI 型指令26 3125op addressJ 型指令五、实验目的1、掌握单周期CPU的工作原理、实现方法及其组成部件的原理和设计方法,如控制器、运算器等。

2、认识和掌握指令与CPU的关系、指令的执行过程。

3、熟练使用硬件描述语言Verilog、EDA工具软件进行软件设计与仿真,以培养学生的分析和设计CPU的能力。

六、实验内容(一)拟定本实验的指令系统,指令应包含R型指令、I型指令和J型指令,指令数为9条.(二)CPU各功能模块的设计与实现.(三)对设计的各个模块的仿真测试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机专业类课程




课程名称:计算机组成原理
学院专业:计算机科学与工程计算机科学与技术学生姓名:**
学号:20120600*****
指导教师:吴晓华
日期:2014年11月30日
实验报告
实验一
一、实验名称:
ALU设计实验
二、实验内容和目的:
(1)实验内容:
设计一个4bit ALU,实现两个4bit二进制数的算术运算和逻辑运算
1、算术运算(加、减);
2、逻辑运算(与、或、置1、清0);
(2)实验目的:
1.熟悉ALU的工作原理;
2. 掌握用硬件描述语言设计ALU的方法;
三、实验原理:
利用veilog hdl语言编写实现实验要求的逻辑功能实现代码。

要求实现两个四位二进制数的算数运算和逻辑运算,有三个输入,分别是输入的两个四位二进制数和一个控制信号,有两个输出,分别是仅为信号和运算结果的输出。

考虑到是电路的逻辑代码设计简化,
采用case语句来实现。

所有的输入都会对最终的结果和进位输出产生影响。

在连线时,八个开关分为两组,分别控制两个四位二进制数的各位,有五个指示灯,四个显示结果的输出,一个用来显示进位信号。

四、实验器材(设备、元器件)
硬件平台:pc
软件平台:windows xp
五、实验步骤:
先利用仿真软件进行程序的编写,编译调试运行,结果无误后,在仿真软件上绑定对应开关和连线,打开电路板电源,进行控制操作,观察指示灯的亮灭情况,根据实际的逻辑结果来验证实验代码及连线的正确性,若与实际结果不相符,检查连线以及实验代码,重新进行处理。

六、实验数据及结果分析:(1)实验代码:
module pz(in1,in2,se,count,c); input[3:0] in1,in2;
input[2:0] se;
output[3:0] count;
output c;
reg[3:0] count;
reg c;
always@(in1,in2,se)
begin
case(se)
3'b000:{c,count}=in1+in2;
3'b001:{c,count}=in1-in2;
3'b010:count=in1 & in2;
3'b011:count=in1 | in2;
3'b100:count=0000;
3'b101:count=1111;
default:count=5'bx;
endcase
end
endmodule
(2)实验结果照片:
八.实验结论、心得体会和改进建议:(1)思考题:
在进行算术运时,
7(0111)+8(1000)=1111
7(0111)- 8(1000)=1111 其输出结果都是1111,为什么?
答:因为计算时都采用二进制补码来运算,而前者进行相加的两个数都是正数,其补码为其本身。

而后者进行补码的减法运算时,要对减数求补,转换成加法运算,所以最终所得结果相同。

(2)实验结论、心得体会和改进建议:
在设计逻辑电路是使用了实现该逻辑功能最简单的方式,case语句,在编写实验代码时需要注意always语句中的输出变量必须提前声明为reg型的变量。

注意根据实验指导书绑定正确的接线。

电子科技大学
实验报告
实验二
一、实验名称:
静态存储器的设计
二、实验学时:4
三、实验内容和目的:
(1)实验目的:
1.掌握存贮器的读写控制方法;(读信号、写信号、片选信号)
2.掌握存储器的字扩展和位扩展方法;
3.掌握用硬件描述语言设计存贮器的方法;
4.了解存储器种类、工作原理和特点.
(2)实验内容:
用字扩展和位扩展的方式,设计一个 32X8的静态存储器,能够对其随机的读写.
其中: 32表示地址的寻址空间大小,8表示数据单元的位数;
四、实验原理:
利用veilog hdl语言编写实现实验要求的逻辑功能实现代码。

1.设计一个16X4的可随机读写的存储器模块;
2.利用16X4存储器模块,通过实例化完成对所需要的存储器,因为是16X4扩展为32X 8,所以将16X4两两分为一组刚好两组。

3.数据、地址的输入/输出
a 、数据/地址的输入: 开关控制;
b 、数据的输出: 指示灯显示;
4.控制信号
a 、片选: 低有效;
b 、读: 低有效;
c 、写: 上升沿有效;
五、实验器材(设备、元器件)
硬件平台:pc
软件平台:windows xp
六、实验步骤:
先根据实验内容,实验目的,实验要求编写实现所需逻辑功能的实
验代码,然后在仿真软件上进行编译链接运行,无误后进行宋旭单元与电路板相关接口的绑定,对电路板进行连线,练好后进行实际操作,观察电路板上指示灯的亮灭情况,根据实际的逻辑结果判断实验代码以及连线是否正确,若输出有误,则重新检查连线以及代码是否有逻辑问题。

七、实验数据及结果分析:
(1)实验代码:
module m(din,addr,wr,rd,cs,dout);
parameter D_WIDTH = 8;
parameter A_WIDTH = 5;
input[D_WIDTH-1:0] din;
input[A_WIDTH-1:0] addr;
input wr,rd,cs;
output [7:0]dout;
reg[D_WIDTH-1:0] ram[(2**A_WIDTH)-1:0];
wire [D_WIDTH-1:0] dout;
ram16_4
ram16_4_1(.din(din[3:0]),.addr(addr[3:0]),.wr(wr),.rd(rd),.cs(addr[4]|cs),.dout(dout [3:0]));
ram16_4
ram16_4_2(.din(din[7:4]),.addr(addr[3:0]),.wr(wr),.rd(rd),.cs(addr[4]|cs),.dout(dout [7:4]));
ram16_4
ram16_4_3(.din(din[3:0]),.addr(addr[3:0]),.wr(wr),.rd(rd),.cs((~addr[4])|cs),.dout(d out[3:0]));
ram16_4
ram16_4_4(.din(din[7:4]),.addr(addr[3:0]),.wr(wr),.rd(rd),.cs((~addr[4])|cs),.dout(d out[7:4]));
endmodule
module ram16_4(din,addr,wr,rd,cs,dout);
parameter D_WIDTH = 4;
parameter A_WIDTH = 4;
input[D_WIDTH-1:0] din;
input[A_WIDTH-1:0] addr;
input wr,rd,cs;
output[D_WIDTH-1:0]dout;
reg [D_WIDTH-1:0] ram [(2**A_WIDTH)-1:0];
wire [D_WIDTH-1:0] dout;
always @(posedge wr)
if (!cs)
ram[addr] <= din;
assign dout = (!(rd||cs))?ram[addr]:4'bzzzz; endmodule
(2)实验结果截图:
八、实验结论、心得体会和改进建议:
对于存储器的扩充有字扩充和位扩充,在编写实验代码时首先得编写出实验所需要的基本单元16X4的存储器,通过对该存储器模块的
实例化来实现实验所需要用到的存储器,实验内容比较简单,只要按照实验要求和步骤结合实验目的进行正确操作,实验都能成功.。

相关文档
最新文档