计算机组成原理实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机组织与体系结构实验报告评语:成绩教师:年月日班级:________学号:____________姓名:______实验地点: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(LibraryParameterizedModules)参数化的模块库,可构成如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-1lpm_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-1ALU181的运算功能选择端高电平作用数据S3S2S1S0M=HM=L算术操作逻辑功能Cn=L(无进位)Cn=H(有进位)0000AFAF1加AF0001BAFBAF)(BAF加10010BAFBAFBAF+100110FF减1(2的补码)0F0100ABFBAAF加BAAF加加10101BF)(BAF加BA)(BAF加BA+10110BAFBAF减1减减BAF0111BAFBAF1)(减BAF1000BAFABAF加ABAF加加11001BAFBAF加BAF加加11010BFABBAF)加(ABBAF加)(加11011ABFABF1减ABF11001FAAF加*1加加AAF1101BAFABAF)加(ABAF)加(加11110BAFABAF)加(ABAF)加(加11111AFAF1减AF注1、*表示每一位都移至下一更高有效位,“+”是逻辑或,“加”是算术加注2、在借位减法表达上,表2-1与标准的74181的真值表略有不同。三.实验步骤(1)设计ALU元件在QuartusII环境下,用文本输入编辑器TextEditor输入ALU181.VHD算术逻辑单元文件,编译VHDL文件,并将ALU181.VHD文件制作成一个可调用的原理图元件。其中VHDL语言如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYALU181ISPORT(S:INSTD_LOGIC_VECTOR(3DOWNTO0);A:INSTD_LOGIC_VECTOR(7DOWNTO0);B:INSTD_LOGIC_VECTOR(7DOWNTO0);F:OUTSTD_LOGIC_VECTOR(7DOWNTO0);M:INSTD_LOGIC;CN:INSTD_LOGIC;CO:OUTSTD_LOGIC);ENDALU181;ARCHITECTUREbehavOFALU181ISSIGNALA9:STD_LOGIC_VECTOR(8DOWNTO0);SIGNALB9:STD_LOGIC_VECTOR(8DOWNTO0);SIGNALF9:STD_LOGIC_VECTOR(8DOWNTO0);BEGINA9='0'&A;B9='0'&B;PROCESS(M,CN,A9,B9)BEGINCASESISWHEN0000=IFM='0'THENF9=A9+CN;ELSEF9=NOTA9;ENDIF;WHEN0001=IFM='0'THENF9=(A9orB9)+CN;ELSEF9=NOT(A9ORB9);ENDIF;WHEN0010=IFM='0'THENF9=(A9or(NOTB9))+CN;ELSEF9=(NOTA9)ANDB9;ENDIF;WHEN0011=IFM='0'THENF9=000000000-CN;ELSEF9=000000000;ENDIF;WHEN0100=IFM='0'THENF9=A9+(A9ANDNOTB9)+CN;ELSEF9=NOT(A9ANDB9);ENDIF;WHEN0101=IFM='0'THENF9=(A9orB9)+(A9ANDNOTB9)+CN;ELSEF9=NOTB9;ENDIF;WHEN0110=IFM='0'THENF9=(A9-B9)-CN;ELSEF9=A9XORB9;ENDIF;WHEN0111=IFM='0'THENF9=(A9or(NOTB9))-CN;ELSEF9=A9and(NOTB9);ENDIF;WHEN1000=IFM='0'THENF9=A9+(A9ANDB9)+CN;ELSEF9=(NOTA9)andB9;ENDIF;WHEN1001=IFM='0'THENF9=A9+B9+CN;ELSEF9=NOT(A9XORB9);ENDIF;WHEN1010=IFM='0'THENF9=(A9or(NOTB9))+(A9ANDB9)+CN;ELSEF9=B9;ENDIF;WHEN1011=IFM='0'THENF9=(A9ANDB9)-CN;ELSEF9=A9ANDB9;ENDIF;WHEN1100=IFM='0'THENF9=(A9+A9)+CN;ELSEF9=000000001;ENDIF;WHEN1101=IFM='0'THENF9=(A9orB9)+A9+CN;ELSEF9=A9OR(NOTB9);ENDIF;WHEN1110=IFM='0'THENF9=((A9or(NOTB9))+A9)+CN;ELSEF9=A9ORB9;ENDIF;WHEN1111=IFM='0'THENF9=A9-CN;ELSEF9=A9;ENDIF;WHENOTHERS=F9=000000000;ENDCASE;ENDPROCESS;F=F9(7DOWNTO0);CO=F9(8);ENDbehav;(2)以原理图方式建立顶层文件工程选择图形方式。根据图2-1输入实验电路图,从QuartusII的基本元件库中将各元件调入图形编辑窗口、连线,添加输入输出引脚。将所设计的图形文件ALU.bdf保存到原先建立的文件夹中,将当前文件设置成工程文件,以后的操作就都是对当前工程文件进行的。(3)器件选择选择Cyclone系列,在Devices中选择器件EP1C6QC240C8。编译,引脚锁定,再编译。引脚锁定后需要再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所需要的各种文件。(4)芯片编程Programming(可以直接选择光盘中的示例已完成的设计进行验证实验)打开编程窗口。将配置文件ALU.sof下载进GW48系列现代计算机组成原理系统中的FPGA中。(5)选择实验系统的电路模式是NO.0,验证ALU的运算器的算术运算和逻辑运算功能根据表2-1,从键盘输入数据A[7..0]和B[7..0],并设置S[3..0]、M、Cy,验证ALU运算器的算术运算和逻辑运算功能,记录实验数据。图2-1算术逻辑单元ALU实验原理图四.实验过程(1)按图2-1所示,在本验证性示例中用数据选择开关(键3控制)的高/低电平选择总线通道上的8位数据进入对应的74373中;即首先将键3输入高电平,用键2、键1分别向A[7..0]置数01010101(55H),这时在数码管4/3上显示输入的数据(55H);然后用键3输入低电平,再用键2、键1分别向B[7..0]置数10101010(AAH),这时在数码管2/1上显示输入的数据(AAH);这时表示在图2-1中的两个74373锁存器中分别被锁入了加数55H和被加数AAH。可双击图2-1的ALU181元件,了解其VHDL描述。(2)设定键8为低电平,即M=0(允许算术操作),键6控制时钟SCLK,可设置表2-1的S[3..0]=0~F。现连续按动键6,设置操作方式选择S[3..0]=9(加法操作),使数码管8显示9,以验证ALU的算术运算功能:当键7设置cn=0(最低位无进位)时,数码管7/6/5=0FF(55H+AAH=0FFH);当键7设置cn=1(最低位有进位)时,数码管7/6/5=100(55H+AAH+1=100H);(3)若设定键8为高电平,即M=1,键KEY6控制时钟SCLK,设置S[3..0]=0~F,KEY7设置cn=0或cn=1,验证ALU的逻辑运算功能,并记录实验数据。(4)验证ALU181的算术运算和逻辑运算功能,ALU181模块功能可参照表2-1。五、实验结果表2-2S3S2S1S0A[7..0]B[7..0]算术运算M=0逻辑运算(M=1)cn=0(无进位)cn=1(有进位)0000AA55F=(AA)F=(AB)F=(55)000

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功