计算机组成原理实验报告

更新时间:2023-10-03 10:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机组织与体系结构

实 验 报 告

评 语: 教 师: 年 月 日 成 绩

班 级: ________ 学 号: ____________ 姓 名: ______ 实验地点: E-Ⅱ区 311 _ 实验时间: 第三批

实验一 存储器实验

1.FPGA中LPM_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位读出地址。 实验中主要应掌握以下三方面的内容: ⑴ lpm_ROM的参数设置;

⑵ lpm_ROM中数据的写入,即LPM_FILE初始化文件的编写; ⑶ lpm_ROM的实际应用,在GW48_CP+实验台上的调试方法。 三.实验步骤

(1)用图形编辑,进入mega_lpm元件库,调用lpm_rom元件,设置地址总线宽度address[]

和数据总线宽度q[],分别为6位和24位,并添加输入输出引脚,如图3-1-1设置和连接。

(2)设置图3-1-1为工程。

(3)在设置lpm_rom数据参数选择项lpm_file的对应窗口中(图3-1-2),用键盘输入

lpm_ROM配置文件的路径(rom_a.mif),然后设置在系统ROM/RAM读写允许,以便能对FPGA中的ROM在系统读写。

(4) 用初始化存储器编辑窗口编辑lpm_ROM配置文件(文件名.mif)。这里预先给出后面

将要用到的微程序文件:rom_a.mif 。rom_a.mif中的数据是微指令码(图3-1-3)。 (5)全程编译。

(6)下载SOF文件至FPGA,改变lpm_ROM的地址a[5..0],外加读脉冲,通过实验台上

的数码管比较读出的数据是否与初始化数据(rom_a.mif中的数据)一致。

图3-1-1 lpm_ROM的结构图

图3-1-2 设置在系统ROM/RAM读写允许

四、实验结果

通过电路板1,2键的输入和模式键的选择进行操作验证

实验二 运算器实验

1.算术逻辑运算实验 一.实验目的

1. 了解简单运算器的数据传输通路。 2. 验证运算功能发生器的组合功能。

3. 掌握算术逻辑运算加、减、与的工作原理。 4. 验证实验台运算的8位加、减、与、直通功能。 5. 按给定数据,完成几种指定的算术和逻辑运算。 二.实验内容 1.实验原理

算术逻辑单元ALU的数据通路如图2-1所示。其中运算器ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU。参加运算的两个8位数据分别为A[7..0]和B[7..0],运算模式由S[3..0]的16种组合决定,而S[3..0]的值由4位2进制计数器LPM_COUNTER产生,计数时钟是Sclk(图2-1);此外,设M=0,选择算术运算,M=1为逻辑运算,CN为低位的进位位;F[7..0]为输出结果,CO为运算后的输出进位位。两个8位数据由总线IN[7..0]分别通过两个电平锁存器74373锁入,ALU功能如表2-1所示。

表2-1 选择端 S3 S2 S1 S0 0 0 0 0 0 0 0 1 F?A?B ALU181的运算功能

高电平作用数据 M=H 逻辑功能 M=L 算术操作 Cn=L(无进位) Cn=H(有进位) F?A加1 F?A F?A F?(A?B)F?A?B 加1 0 0 1 0 F?AB 0 0 1 1 F?A?B F?A?B+1 F?0 F?减1(2的补码) F?0 0 1 0 0 F?AB 0 1 0 1 F?A加AB F?A加AB加1 F?B F?(A?B)加AB F?(A?B)加AB+1 0 1 1 0 F?A?B 0 1 1 1 F?A减B F?A减B减1 F?AB 1 0 0 0 F?A?B F?(A?B)减1 F?A?B 1 0 0 1 F?A?B F?A加AB F?A加AB加1 F?A加B加F?A加B 1 1 0 1 0 F?B F?(A?B)加AB F?(A?B)加AB加1 1 0 1 1 F?AB F?AB F?AB减1 1 1 0 0 F?1 F?A加A* F?A加A加1 1 1 0 1 F?A?B 1 1 1 0 F?(A?B)加A F?(A?B)加A加1 F?A?B 1 1 1 1 F?(A?B)加A F?(A?B)加A加1 F?A F?A F?A减1 注1、* 表示每一位都移至下一更高有效位, “+”是逻辑或,“加”是算术加 注2、在借位减法表达上,表2-1与标准的74181的真值表略有不同。 三.实验步骤 (1)设计ALU元件

在Quartus II 环境下,用文本输入编辑器Text Editor输入ALU181.VHD算术逻辑单元文件,编译VHDL文件,并将ALU181.VHD文件制作成一个可调用的原理图元件。 其中VHDL语言如下: LIBRARY IEEE;

本文来源:https://www.bwwdw.com/article/u7od.html

Top