版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE35目录HYPERLINK前言实验一HYPERLINK运算器组成实验(基于FPGA)1.HYPERLINK算术逻辑运算实验2.HYPERLINK带进位算术运算实验3.HYPERLINK移位运算实验实验二HYPERLINK存储器实验(基于FPGA)1.HYPERLINKFPGA中ROM配置与读出实验2.HYPERLINKLPM_RAM_DP双端口RAM实验3.HYPERLINKLPM_FIFO存储器实验4.HYPERLINKFPGA与外部RAM接口实验5.HYPERLINKFPGA与外部EEPROM接口实验实验三HYPERLINK微控制器实验(基于FPGA)HYPERLINK时序电路实验HYPERLINK程序计数器PC和地址寄存器ARHYPERLINK微控制器组成实验实验四HYPERLINK总线控制实验(基于FPGA)实验五HYPERLINK基本模型机设计与实现(基于FPGA)实验六HYPERLINK带移位运算的模型机的设计与实现(基于FPGA)实验七HYPERLINK复杂模型机的设计与实现(基于FPGA)实验八HYPERLINK8051通用单片机IP核应用实验(基于FPGA)实验九HYPERLINK用嵌入式逻辑分析仪实时测试FPGA中CPU或单片机VHDL硬件描述语言/MaxplusII教学参考推荐前言随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,现场可编程(FPGA)技术含量正以惊人的速度上升。电子类的新技术项目的开发也更多地依赖于FPGA技术的应用,特别是随着VHDL等硬件描述语言综合工具功能和性能的提高,计算机中许多重要的元件,包括CPU都用硬件描述语言来设计和表达,许多CPU(如8051单片机、8086等),硬核嵌入式系统(如ARM、Excalibue系列FPGA)、软核嵌入式系统(如Nios),微机CPU,乃至整个计算机系统都用FPGA来实现,即所谓的单片系统:SOC和SOPC(SystemOnaChip、SystemOnaProgrammerbleChip)。计算机和CPU的设计技术及其现方法进入了一个全新的时代!不但如此,传统的CPU结构模式,纽曼结构和哈佛结构正在受到巨大的挑战。例如,美国赢通系统公司(WincomSystems)推出一款令人惊叹的服务器,其核心部分由FPGA完成的超强功能CPU。该系统工作能力超过50台戴尔或IBM计算机,或SunMicrosytems公司的服务器。该服务器的处理速度要比传统服务器快50到300倍。我们知道,传统的个人电脑及服务器通常采用英特尔的奔腾处理器或SUN公司的SPARC芯片作为中央处理单元,而赢通的这一产品却没有采用微处理器,而是由FPGA芯片驱动。FPGA芯片的运行速度比奔腾处理器慢,但可并行处理多项任务,而微处理器一次仅能处理一项任务。因此,赢通公司的服务器只需配置几个价格仅为2000多美元的FPGA芯片,便可击败SUN公司的服务器或采用英特尔处理器的电脑。50多年前,匈牙利数学家纽曼(JohnvonNeumann)提出了电脑的设计构想:通过中央处理器从存储器中存取数据,并逐一处理各项任务。现在,通过采用FPGA,SOPC及顺序与并行方式相结合的软核嵌入式系统取代传统微处理器,导致Xlinx的CEOWillemRoelandts所说的“由纽曼提出的电脑架构已经走到尽头”,“可编程芯片将掀起下一轮应用高潮。FPGA芯片以操作灵活著称,可以重复擦写无限次,而微处理器均采用固定电路,只能进行一次设计。设计人员可通过改变FPGA中晶体管的开关状态对电路进行重写,即重配置。从而,尽管FPGA芯片的时钟频率要低于奔腾处理器,但是由于FPGA芯片可并行处理各种不同的运算,所以可完成许多复杂的任务。例如网页显示,全球天气建模及基因组合核对等,而且处理速度比奔腾处理器或数字信号处理器快得多。戴尔和SUN公司生产的某些标准服务器也采用了ALTERA公司的FPGA芯片。时代逻辑公司对这些标准服务器加以改进之后,生产了一种用于基因研究的高速处理设备。时代逻辑公司总监ChristopherHoover说该设备比原来的产品至少快1000倍。美国的AnnapolisMicroSystems公司在其电脑芯片电路板中也集成了FPGA芯片,以便提高其产品性能。该公司首席执行官JaneDonaldson指出,相关产品的销售量与前两年相比翻了一番。IBM和Xilinx公司正在合力开发一种混合芯片,以整合前者的PowerPC微处理器和后者的FPGA芯片。这种芯片的好处是:一台网络服务器的FPGA部分可以根据不同的标准进行订制,而不用为每个国家开发一种新的芯片。美国StarBridgeSystems公司也声称已在进行一项技术尝试,即采用FPGA芯片和该公司自己的Viva编程语言开发出“超级电脑(hypercomputer)”,对该超级电脑进行测试的美国国家航空航天局(NASA)科学家表示“其运行速度无与伦比,这一产品的性能令人过目难忘”。超级电脑是科技世界中的极品:售价奇高、速度飞快、集成了数以千计的微处理器。但这种超级电脑也浪费了非常多的芯片资源,每个处理器只能进行单任务操作,大部分功能难以充分发挥。现在有了另一种更为简洁的设计:设计工程师采用FPGA芯片来武装超级电脑,取代了原先大量的英特尔奔腾处理器。经过使用硬件描述语言和相关软件语言的设计,FPGA芯片可并行处理多项任务,从而使所有电路都能随时发挥作用。又由于FPGA芯片可以反复编程培植,而且几乎可瞬时完成。例如可通过利用FPGA的重配置功能,在某一时刻它可以用来预报全球天气状况,而下一时刻又可根据某公司做的主要利率对冲情况来评估债券市场的风险,或是转而去做图象信息处理。其它公司或机构的研究人员,如美国加州大学伯克利分校(UniversityofCalifornia,Berkeley)和杨百翰大学(BrighamYoungUniversity)的研究员也正在设计基于FPGA的电脑,这些电脑可在运行中实现动态重配置。这对定位危险目标等军事应用和面容识别一类的计算密集型安全应用十分有用。不言而喻,全新的计算机设计技术和实现技术向传统的计算机组成原理的教学内容和实验方式提出尖锐的挑战。相形之下,传统的计算机组成原理实验方式已显得十分不合时宜。显然,传统的实验方式,就教学实验内容上看,与现代的计算机组成模式、理念、基本理论和构成形式及方案上都无任何吻合之处;就实验方法上看,完全是一种脱离现代计算机实际组成技术和测试技术(现代测试技术包括JTAG、嵌入式逻辑分析仪等)的,由实验系统设计者一相情愿的构建,难免引出诸多对初学者产生误导的实验方法;就实验模式和模型上看,与真实的现代计算机组成和构建方式相去更远。现代计算机,包括嵌入式系统绝不可能是由一大堆独立的、低速的、传统逻辑器件连接而成,而是由硬件描述语言来表达,由ASIC或FPGA来实现的计算机系统。使用大规模FPGA、EDA软件工具和IEEE标准硬件描述语言构建的现代计算机组成原理实验系统取代传统的计算机组成原理实验已成为势在必行。利用FPGA技术,在实验中能方便灵活地设计出简单完整的CPU模型机。基于查找表硬件结构的商用FPGA是当前进行快速系统原型设计最流行的ASIC手段。ALTERA的ACEX系列FPGA产品具有片上EAB,可以构成构成各种类型的存储器结构,利用在其内部的LPM可以实现微程序控制和管理复杂逻辑电路。现代计算机组成原理实验系统GW-48CCP的CPU核心部分由FPGA设计实现,通过FPGA与单片机的接口,将CPU核心部件中的指令寄存器、程序计数器、地址寄存器、暂存寄存器、运算寄存器、缓冲寄存器、存储器、微地址寄存器、输入缓冲寄存器等大量的数据实时地在数码管和LCD液晶显示屏显示出来。各类操作指示、数据动态流向显示,直观明了,一目了然,摆脱了与电脑联机的麻烦。该实验仪采用FPGA设计CPU内部结构,采用模块化设计,单元电路分开,模块间连接通过内部总线和总线选择多路开关连接相,不必进行硬件连线,从而大大提高了实验的成功率。传统的计算机组成原理实验台体积庞大,使用的芯片种类繁多,实验中需要花许多时间进行大量的连线,系统的可靠性低,由于芯片或连线出现的各种故障排查困难。GW48CCP计算机组成原理实验台采用模块化的系统结构,学生可通过一系列基本单元实验和模型计算机综合设计实验,对CPU的运算功能、控制功能、总线结构、指令系统的设计和微指令的实现,以及CPU内部是如何工作的,有直观、深刻的认识。学生在进行各个单元实验和综合实验时,既可以通过系统计算机进行综合设计,系统软件仿真、观察仿真波形,更重要的是可以在GW48CPP实验平台上,将自己设计的CPU电路下载到FPGA中进行硬件仿真。观察CPU内部的各种信息:包括数据总线、地址寄存器、程序计数器、指令译码器、指令寄存器、控制信号、内部寄存器、数据寄存器、微指令存储器LPM_ROM中的数据等,都实时、直观地显示在LCD屏幕上,使学生实时观察每条指令及微指令的执行情况,从而对计算机的原理、结构,从部件到系统,直到计算机整机有一个形象的、生动的、本质的认识。微处理器主要由两个主要部分——控制器和运算器组成。控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。控制器的主要功能有:(1)从内存中取出一条指令,并指出下一条指令在内存中的位置;(2)对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;(3)指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的。通过利用GW48CCP现代计算机组成原理实验系统的学习,还能使学生在VHDL语言、EDA软件工具和FPGA的应用方面获得大量实用的技术。本实验的先期课程为不少于20学时的EDA技术课,包括FPGA应用技术、MaxplusII软件、原理图输入设计方法,以及VHDL基础。推荐选择用《EDA技术使用教程》一书。实验一 运算器组成实验1.算术逻辑运算实验实验目的掌握简单运算器的数据传输通路。验证运算功能发生器的组合功能。掌握算术逻辑运算加、减、与的工作原理。熟悉简单运算的数据传送通路。验证实验台运算的8位加、减、与、直通功能。按给定数据,完成几种指定的算术和逻辑运算。实验内容1.实验原理实验中选用MAXPLUS2\Max2lib\mf组件库中运算器,数据通路如图1-1所示。其中运算器由两个74181以并/串形式构成8位字长的ALU。图1-1算术逻辑运算器结构图表1-1 ALU的运算功能选择端高电平作用数据S3S2S1S0M=HM=L算术操作逻辑功能Cn=H(无进位)Cn=L(有进位)00000001加100100011减1(2的补码)0100加10101加011001111000加11001加11010加110111100*1101加11110加11111*每一位都移至下一更高有效位运算器的输出应当与数据总线相连,在传统的组成原理实验系统中,可以通过三态门(74LS245)与总线相连,但在FPGA中无类似于三态门的器件,由FPGA组成的系统中各组成部件的输出端不允许直接连接在一起,因此各部件的输出端在与数据总线连接时需通过多路选择器连接到数据总线的输入端。ALU的运算功能如表1-1所示。三.实验步骤(1)图形文件输入在MAX+PLUSII环境下选择图形方式输入图1-1。输入方法如下:首先建立一个文件夹,以便将所有设计文件存放于该文件夹中。MAX+PLUSII→File→New→Graphiceditfile在d:\maxplus2\max2lib\mf图形组件库中选择74181,另外加上其它门电路和input、output引脚,将所设计的图形文件ALU.gdf保存到原先建立的文件夹中。将当前文件设置成工程文件。在主菜单的file项下→选择Project→setprojecttocurrentfile,就将当前的ALU.gdf设置为工程文件。(2)器件选择(3)编译(4)引脚锁定(5)编译(6)芯片编程Programming(配置configuration)(7)验证运算器的算术运算和逻辑运算功能四、实验任务(1)按图1_1所示,正确连接运算器模块。用数据开关KEY1、KEY2向A[7..0]置数01010101,用数据开关KEY3、KEY4向B[7..0]置数10101010。(2)用KEY7置M1=1,KEY8设置S[3..0]=0~F,KEY11设置cn=0和cn=1,验证ALU的逻辑运算功能,并记录实验数据。(3)用KEY7置M1=0,KEY8设置S[3..0]=0~F,KEY11设置cn=0和cn=1,验证ALU的算术运算功能,并记录实验数据。表1-2A[7..0],B[7..0]设置值检查ALU_BSW_B寄存器内容S3S2S1S0MBUSA[7..0]B[7..0]010101011010101010010101011010101010(3)验证LS74181的算术运算和逻辑运算功能,74181芯片功能可参照表1—1。表1—3给定了寄存器DRl=A[7..0]和DR2=B[7..0]的数据(十六进制),要求根据此数据对照逻辑功能表所得的理论值(要求课前完成)与实验结果值进行比较(均采用正逻辑0)。表1—3S3S2S1S0A[7..0]B[7..0]算术运算M=0逻辑运算(M=1)cn=1(无进位)cn=0(有进位)0000AA55F=()F=()F=()0001AA55F=()F=()F=()0010AA55F=()F=()F=()0011AA55F=()F=()F=()0100FF01F=()F=()F=()0101FF01F=()F=()F=()0110FF01F=()F=()F=()0111FF01F=()F=()F=()1000FFFFF=()F=()F=()1001FFFFF=()F=()F=()1010FFFFF=()F=()F=()1011FFFFF=()F=()F=()11005501F=()F=()F=()11015501F=()F=()F=()11105501F=()F=()F=()11115501F=()F=()F=()(4)表1—4列出了8种常用的算术与逻辑运算要求指定的操作内容,正确选择运算器数据通路、控制参数S3、S2、S1、S0、M,并将实验结果值填入括号内,表中给定原始数据DR1=A[7..0]和DR2=B[7..0],以后的数据取自前面运算的结果。表1—4 8种常用的算术与逻辑运算操作S3S2S1S0MC0DR1DR2运算关系及结果显示Cn逻辑乘66FFDR1.DR2→DR2()传送DR1→DR2()按位加DR1DR2→DR2()取反→DR2()加1DR2+1→DR2()求负+1→DR2()加法DR1+DR2→DR2()减法DR1–DR2→DR2()五、实验要求1、做好实验预习,掌握运算器的数据传送通路和ALU的功能特性,并熟悉本实验中所用的控制台开关的作用和使用方法。2、写出实验报告,内容是:①实验目的;②按理论分析值填写好表1—2、表1—3和表1—4。③列表比较实验数据(2)的理论分析值与实验结果值;并对结果进行分析。实验结果与理论分析值比较,有没有不同?为什么?④实验任务(3),出现何种现象?为什么⑤通过本实验,你对运算器的认识是否有所提高,你有什么心得体会?2.带进位算术运算实验一.实验目的1、验证带进位控制的算术运算功能发生器的功能。2、按指定数据完成几种指定的算术运算。二.实验原理在实验(1)的基础上增加进位控制电路,将运算器74181的进位送入D锁存器,其写入是由T4和AR信号控制,T4是脉冲信号,T4由时序电路产生。AR是电平控制信号(高电平有效),可用于实现带进位控制实验。图1-2带进位控制的算术运算器三.实验步骤(1)按图1_2所示,正确输入运算器模块及相关元件原理图。并完成编译、引脚锁定、芯片配置。(2)用数据开关KEY1、KEY2向A[7..0]置数01010101,用数据开关KEY3、KEY4向B[7..0]置数10101010。(3)用KEY7置M1=1,KEY8设置S[3..0]=0~F,KEY11设置cn=0和cn=1,验证ALU的逻辑运算功能,并记录实验数据。(4)用KEY7置M1=0,KEY8设置S[3..0]=0~F,KEY11设置cn=0和cn=1,验证ALU的算术运算功能,并记录实验数据。(5)验证带进位运算及进位锁存功能。四、实验要求1、做好实验预习,掌握带进位控制的算术运算功能发生器的功能特性。2、写出实验报告,内容是:①实验目的;②按理论分析值填写好表1—6。③列表比较实验数据的理论分析值与实验结果值;并对结果进行分析。④实验结果与理论分析值比较,有没有不同?为什么?表1—6S3S2S1S0A[7..0]B[7..0]算术运算M=0逻辑运算(M=1)cn=1(无进位)cn=0(有进位)0000AA55F=()F=()F=()0001AA55F=()F=()F=()0010AA55F=()F=()F=()0011AA55F=()F=()F=()0100FF01F=()F=()F=()0101FF01F=()F=()F=()0110FF01F=()F=()F=()0111FF01F=()F=()F=()1000FFFFF=()F=()F=()1001FFFFF=()F=()F=()1010FFFFF=()F=()F=()1011FFFFF=()F=()F=()11005501F=()F=()F=()11015501F=()F=()F=()11105501F=()F=()F=()11115501F=()F=()F=()3.移位运算实验一.实验目的1.验证移位控制的组合功能。二.实验原理1、移位运算实验原理图如图1-4所示。使用D:\MAXPLUS2\MAX2LIB\mf库中的74299作为移位发生器,其输入/输出端分别与键盘/显示器LED连接。G是信号控制使能端,T4时序为其时钟脉冲。K7为单脉冲发生器,由S0、S1、M控制移位运算的功能状态。移位发生器的功能如表1-7所示:图1-4移位运算实验原理图三.实验步骤(1)用图形编辑器(GraphicEditor)输入图1—4或文本编辑器输入移位运算器文件SHEFT.VHD,并编译、锁定引脚(实验台选择模式0)、下载(Configure)到实验台;(2)通过键盘K1、K2向D[7..0]置数01101011;(3)进位标志的置位与清零。(4)根据表1—7,通过设置(M、S1、S0)验证移位运算的带进位和不带进位移位功能。表1-7 移位发生器的功能GS1S0M功能000任意保持0100循环右移0101带进位循环右移0010循环左移001带进位循环左移任意11任意装数图1-5SHEFT.VHD对应的移位运算实验原理图四、实验要求1、做好实验预习,掌握带进位控制的算术运算功能发生器的功能特性。2、写出实验报告,内容是:①实验目的;②按理论分析值填写好表1—8。③列表比较实验数据的理论分析值与实验结果值;并对结果进行分析。④实验结果与理论分析值比较,有没有不同?为什么?说明:SHEFT具有移位器的功能,数据口分为输入端口D[7..0]和输出端口Q[7..0]。D[7..0]——数据输入口;Q[7..0]——数据输出口;CLK——时钟输入S1、S0——工作模式附:实验参考程序LibraryIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSHEFTISPORT(CLK,M,C0:INSTD_LOGIC;S:INSTD_LOGIC_VECTOR(1DOWNTO0);D:INSTD_LOGIC_VECTOR(7DOWNTO0);QB:OUTSTD_LOGIC_VECTOR(7DOWNTO0);CN:OUTSTD_LOGIC);ENDENTITY;ARCHITECTUREBEHAVOFSHEFTISSIGNALABC:STD_LOGIC_VECTOR(2DOWNTO0);BEGIN ABC<=S&M;PROCESS(CLK,S)VARIABLEREG8:STD_LOGIC_VECTOR(8DOWNTO0);VARIABLECY:STD_LOGIC;BEGINIFCLK'EVENTANDCLK='1'THEN-- IFABC="000"ORABC="001"THEN-- REG8:=REG8;-- ENDIF; IFABC="010"THEN CY:=REG8(8); REG8(8DOWNTO1):=REG8(7DOWNTO0); REG8(0):=CY; ENDIF; IFABC="011"THEN CY:=REG8(8); REG8(8DOWNTO1):=REG8(7DOWNTO0); REG8(0):=C0; ENDIF; IFABC="100"THEN REG8(7DOWNTO1):=REG8(6DOWNTO0); ENDIF; IFABC="101"THEN CY:=REG8(0); REG8(7DOWNTO0):=REG8(8DOWNTO1); REG8(8):=CY; ENDIF; IFABC="110"ORABC="111"THEN REG8(7DOWNTO0):=D(7DOWNTO0); ENDIF; QB(7DOWNTO1)<=REG8(7DOWNTO1);ENDIF; QB(7DOWNTO0)<=REG8(7DOWNTO0); CN<=REG8(8); ENDPROCESS;ENDBEHAV;实验二存储器实验1、FPGA中ROM配置与读出实验一.实验目的1、掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法。2、用文本编辑器编辑mif文件配置ROM;3、在初始化存储器编辑窗口编辑mif文件配置ROM;4、验证FPGA中mega_lpm_ROM的功能。二.实验原理在FPGA中利用嵌入式阵列块EAB可以构成存储器,lpm_ROM的结构如图2-1-1。图2-1-1lpm_ROM的结构图inclk——输入时钟脉冲;q[7..0]——lpm_ROM的8位数据输出端;a[5..0]——lpm_ROM的读出地址;图2-1-2lpm_ROM的配置三.实验步骤(1)在MAX_PLUSII环境下,用图形编辑GraphicEditer,进入max2lib\mega_lpm元件库,调用lpm_rom元件,设置地址总线宽度address[]和数据总线宽度q[],并添加输入、输出引脚。(2)在设置lpm_rom数据参数选择项lpm_file的对应窗口中,用键盘输入lpm_ROM配置文件的路径。(3)用初始化存储器编辑窗口编辑lpm_ROM配置文件(文件名.mif)。原理图输入完成后,打开仿真器窗口Simulator,选择Initialize菜单中的InitializeMemory选项,并在此编辑窗口中完成ROM数据的编辑,然后按ExportFile键,将文件以mif后缀存盘。四、实验要求(1)实验前认真复习LPM-ROM存储器部分的有关内容。(2)记录实验数据,写出实验报告(3)通过本实验,对FPGA中EAB构成的LPM-ROM存储器有何认识,有什么收获?(4)将51单片机程序编译后的HEX格式机器码文件放在LPM-ROM中。2.LPM_RAM_DP双端口RAM实验一.实验目的1、了解FPGA中lpm_ram_dp的功能,2、掌握lpm_ram_dp的参数设置和使用方法,3、掌握lpm_ram_dp作为随机存储器RAM的工作特性和读写方法。二.实验原理在FPGA中利用嵌入式阵列块EAB可以构成存储器,lpm_ram_dp的结构如图2-2-1。R/W——读/写控制端,高电平时进行读操作,低电平时进行写操作;CLK——读/写时钟脉冲;DATA[7..0]——RAM-dp的8位数据输入端;A[7..0]——RAM的读出和写入地址;Q[7..0]——RAM-dp的8位数据输出端。图2-2-2lpm_ram_dp的结构图三.实验步骤图2-2-3lpm_ram_dp实验电路图图2-2-3lpm_ram_dp数据初始化设置(1)在MAXPLUSII环境下,按图2-2-2输入电路图。并进行编译、引脚锁定、FPGA配置。(2)通过K1、K2输入RAM数据,K3、K4输入存储器的地址。K5(R/W)——读/写控制端,高电平时进行读操作,低电平时进行写操作;K6(CLK)产生读/写时钟脉冲。向存储器中1号地址,2号地址中分别写入2个不同的数据,然后读出这2个数据,观察是否与写入的数据相同。(3)在simulator窗口下,用InitializeMemory功能对lpm_ram_dp数据初始化设置,初始化设置的界面如图2-2-3所示。并完成第(2)项功能。四、实验要求(1)实验前认真复习运算器和存储器部分的有关内容。(2)写出实验报告,内容如下:(3)实验任务第(2)一(3)中结果是否正确。(4)分析实验任务第(8)一(10)的原因。(5)通过本实验,对计算机主机的结构是否加深了认识,有什么收获。3.FIFO读/写实验一.实验目的掌握FPGA中lpm_fifo的功能,先进先出存储器FIFO的工作特性和读写方法。1、了解FPGA中lpm_fifo的功能,2、掌握lpm_fifo的参数设置和使用方法,3、掌握lpm_fifo作为先进先出存储器FIFO的工作特性和读写方法。二.实验原理在FPGA中利用嵌入式阵列块EAB可以构成存储器,lpm_fifo的结构如图2-3-1。图2-3-1lpm_fifo的实验结构图WR——写控制端,高电平时进行写操作;RD——读控制端,高电平时进行读操作;CLK——读/写时钟脉冲;CLR——FIFO清零信号;D[7..0]——lpm_fifo的8位数据输入端;Q[7..0]——lpm_fifo的8位数据输出端。三.实验步骤1.编辑输入lpm_fifo实验电路2.将编译通过的文件下载到GW-48CPP实验台,实验台选择工作模式NO1;3.通过实验台上的KEY1、2输入数据,在WR、CLK信号的作用下,将数据写入LPM-FIFO;4.在RD、CLK信号作用下,读出LPM-FIFO中数据,与输入数据进行比较。四、实验要求(1)实验前认真复习LPM-FIFO存储器部分的有关内容。(2)写出实验报告,内容如下:(3)实验任务第(3)一(4)中结果是否正确。(4)通过本实验,对FPGA中EAB构成的LPM-FIFO存储器有何认识,有什么收获?4.FPGA与外部RAM接口实验一.实验目的1.掌握FPGA与外部RAM的硬件接口技术;2.通过FPGA控制,向外部RAM写入数据;3.通过FPGA控制,从外部RAM读出数据,并且用数码管显示读出的数据。二.实验原理实验电路结构如图所示,选择模式NO.9电路结构。图2-4-1中FPGA与外部RAM以及实验台的控制信号定义如下:输入信号:U/D——地址计数器增/减控制。当U/D=1时,地址递增;当U/D=0时,地址递减,由K8控制。CLK——地址计数器计数脉冲输入端。通过K7输入。CLR——地址计数器复位信号输入端。由K6控制,高电平有效。DATA[7..0]——RAM数据(十六进制)输入端,通过K1、K2输入。CK0——RAM数据“写”脉冲输入端,接实验台上的clock0,可在64Hz~65536Hz之间选择。R/W——RAM读/写控制信号输入端。当R/W=1时,RAM输出;当R/W=0时,向RAM写数据,由K5控制。输出信号:A[9..0]——FPGA输出的地址信号,与RAM的地址线A9~A0相连。D[7..0]——FPGA与RAM之间的双向数据总线D7~D0。OE——RAM数据输出允许控制信号,低电平有效。WE——RAM数据写入控制信号,低电平有效。LED[7..0]——实验台数码1、数码2,显示从RAM中读出的数据。L[9..0]——实验台数码5、6、7,显示FPGA输出给RAM的地址信号。图2-4-1FPGA与外部RAM接口电路结构图2-4-2FPGA与外部RAM接口电路内部结构三.实验步骤1.编辑、输入FPGA与外部RAM接口电路;2.将编译通过的文件下载到GW-48CPP实验台,实验台选择工作模式NO1;3.通过实验台上的KEY1、2输入数据D[7..0];R/W=0,进行数据写入操作;U/D=1,存储器地址递增;在CLK信号的作用下,地址计数器LPM-COUNTER进行加1计数,同时产生写脉冲WE,将数据D[7..0]写入SRAM6264;4.在R/W、CLK信号作用下,读出外部RAM6264中数据,与输入数据进行比较。四、实验报告(1)实验前认真复习CPU与存储器接口部分的有关内容。(2)写出实验预习报告;(3)实验任务第(3)一(4)中结果是否正确。(4)通过本实验,对CPU与外部存储器接口电路设计有何认识,有什么收获?5.FPGA与外部EEPROM接口实验一.实验目的1.掌握FPGA与外部EEPROM的硬件接口技术;二.实验原理电路结构与上一实验基本相同,但FPGA与EEPROM的引脚需另行锁定。CK0的工作频率需适当降低,CLOCK0选择16Hz~16kHz。三.实验步骤同上一实验。实验三微控制器实验1时序电路实验一.实验目的(1)掌握节拍脉冲发生器的设计方法和工作原理。(2)理解节拍脉冲发生器的工作原理。二.实验原理计算机之所以能够按照人们事先规定的顺序进行一系列的操作或运算,就是因为它的控制部分能够按一定的先后顺序正确地发出一系列相应的控制信号。这就要求计算机必须有时序电路。控制信号就是根据时序信号产生的。本实验说明时序电路中节拍脉冲发生器的工作原理。时序电路由4个D触发器组成,可产生4个等间隔的时序信号T1~T4,其中CLK为时钟信号,由实验台右边的方波信号源CLOCK0提供,可产生1Hz~12MHz的方波信号频率。学生可根据实验自行选择信号频率。当RST1为低电平时,T1输出为“1”,而T2、T3、T4输出为“0”;当RST1输入为一个负脉冲,T1~T4将在CLK1的输入脉冲作用下,周期性地轮流输出正脉冲,机器进入连续运行状态(EXEC)。T1~T4以及CLK1、RST1的工作波形如图3-1-2所示。图3-1-2节拍脉冲发生器工作波形单步运行电路CLK1——时钟输入信号,可以选择实验台上clock0为1Hz——2MHz。RST1——复位控制信号,低电平有效。在单步方式下,每当RST由低电平转为高电平时,输出一组T1、T2、T3、T4节拍信号。图3-1-3单步运行电路工作原理图3-1-4单步运行电路工作波形单步/连续运行S0——21MUX的2选1控制端。当S0=0时,Y=A,单步方式;当S0=1时,Y=B,连续方式。CLK1——时钟输入信号,可以选择实验台上clock0为1Hz——2MHz。RST——复位控制信号,低电平有效。在单步方式下,每当RST由低电平转为高电平时,输出一组T1、T2、T3、T4节拍信号。在连续方式下,当RST由低电平转为高电平时,连续输出周期性T1、T2、T3、T4节拍信号。单步/连续运行的工作原理如图3-1-5所示,工作波形如图3-1-6所示。图3-1-5单步/连续运行电路工作原理图3-1-6单步运行电路工作波形三.实验步骤(1)将实验电路与输入开关组和LED输出显示电路连接(2)按KEY8键,产生CLK信号。(3)观察在不同的CLK信号下所产生的节拍,显示LED的亮灭。(4)重复步骤2,3,产生不同的节拍脉冲,观察显示灯LED的亮灭。(5)绘出相应的时序波形图。四.实验报告(1)实验原理。(2)绘制相应的时序波形图。(3)实验结果分析、讨论。2.程序计数器PC与地址寄存器AR实验一.实验目的1.掌握地址单元的工作原理。2.掌握程序计数器的两种工作方式,加1计数和重装计数器初值的实现方法;3.掌握地址寄存其从程序计数器获得数据和从内部总线获得数据的实现方法。二.实验原理地址单元主要由三部分组成:、地址寄存器和多路开关。程序计数器PC用以指出下条指令在主存中的存放地址,CPU正是根据PC的内容去主存取得指令的,因程序中指令是顺序执行的,所以PC有自增功能。程序计数器提供下一条程序指令的地址,在T4时钟脉冲的作用下具有自动加1的功能;在LDPC信号的作用下可以预置计数器的初值,当LDPC为高电平时,计数器装入data[]端输入的数据。aclr是计数器的清0端,高电平有效,使计数器清零;aclr为低电平时,允许计数器正常计数。图3-2-1程序计数器原理图地址寄存器AR(74273)锁存访问内存SRAM的地址,地址来自两个渠道。一是程序计数器PC的输出,通常是下一条指令的地址;二是来自于内部数据总线的数据,通常是被访问操作数的地址。为了实现对两路输入数据的切换,在FPGA的内部通过总线多路开关BUSMUX进行选择。LDAR与选择控制端sel相连接,当LDAR为低电平,即选择控制端sel为“0”时,选择程序计数器的输出;当LDAR为高电平时,即选择控制端sel为“1”时,选择内部数据总线的数据。图3-2-2程序计数器工作波形三.实验步骤1.按照图3-2-1程序计数器原理图编辑、输入电路,实验台选择NO.1工作模式。对输入原理图进行编译、引脚锁定、并下载到实验台。2.通过B[7..0]设置程序计数器的预加载数据。当LDPC=0时,观察程序计数器自动加1的功能;当LDPC=1时,观察程序计数器加载输出情况。3.分别观察当LDAR=0时和LDAR=1时,地址寄存器AR的输入和输出情况。四.实验报告(1)实验原理。(2)绘制相应的时序波形图。(3)实验结果分析、讨论。3.微控制器组成实验一.实验目的1.掌握微程序控制器的组成原理2.掌握微程序的编写、输入,观察微程序的运行。二.实验原理(1)微程序控制电路微程序控制器的组成如图3-3-1。其中控制存储器由FPGA中的LPM_ROM构成,输出24位控制信号。在24位控制信号中,微命令信号18位,微地址信号6位。在不判别测试的情况下,T2时刻打入微地址寄存器uA的内容即为下一条微指令地址。当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强制端将某一触发器置为“1”状态,完成地址修改。微程序控制器中的微控制代码可以通过对FPGA中LPM_ROM的配置进行输入,通过编辑LPM_ROM.mif文件修改微控制代码。详细情况可参考实验二中FPGA中LPM_ROM的配置方法。图3-3-1微程序控制电路图3-3-2微指令控制电路内部结构三.实验步骤1.输入图3-3-2微指令控制电路,并按照图中说明锁定引脚,编译、下载到实验系统中,选择实验台工作模式No.0。2.根据微程序控制器的内部结构,记录微控制器在程序输入方式、FC=0或FC=1、FZ=0或FZ=1时,输出微地址控制信号的变化情况3.输入图3-3-3微地址寄存器电路,并按照图中说明锁定引脚,编译、下载到实验系统中,选择实验台工作模式No.0。观察记录微地址寄存器在正常工作情况下,由d[6..1]输入、q[6..1]输出的微地址实验数据,以及在发生控制/转移情况下,当s6..s1信号有效时,q[6..1]输出的微地址发生变化的情况。(2)微地址寄存器电路图3-3-3微地址寄存器电路四.实验报告(1)实验原理。(2)绘制相应的时序波形图。(3)实验结果分析、讨论。实验四总线控制实验一.实验目的1.理解总线的概念及特性。2.掌握总线传输控制特性。二.实验原理数据输入开关地址寄存器数据输入开关地址寄存器AR存储器RAM数码管LED寄存器R0SW-BLDARCSW/RLED-BW/RR0-BLDR0总线图4-1总线实验传输框图总线是多个系统部件之间进行数据传输的公共通路,是构成计算机系统的骨架。借助总线连接,计算机在系统各部件之间实现传送地址、数据和控制信息的操作。所谓总线就是指能为多个功能部件服务的一组公用信息线。2.实验原理实验所用总线实验传输框图如图4-1所示。它将几种不同的设备挂在总线上,有存储器、输入设备、输出设备、寄存器。这些设备在传统的系统中需要有三态输出控制,然而在FPGA的内部没有三态输出控制结构,因此必须采用总线输出多路开关结构加以控制。按照传输要求恰当有序地控制它们,就可以实现总线信息传输。三.实验内容1.实验要求根据挂在总线上的几个基本部件,设计一个简单的流程。(1)输入设备将数据打入寄存器R0。(2)输入设备将另一个数据打入地址寄存器AR。(3)将寄存器R0中的数据写到当前地址的存储器中。(4)将当前地址的存储器中的数用数码管LED显示。2.实验步骤图4-2总线控制实验线路图(1)实验电路如图4-2所示。(2)、打开GW48系统的电源。(3)、将GW48系统左下角的拨码开关的4向下,其余向上。(4)、下载BUS-A.SOF到实验板的FPGA中;(5)、选模式“0”;再按一次右侧的复位键;(6)、具体操作步骤初始状态:sel[1..0]=00,键1——键8为低电平。键1、键2键1、键2输入数据键3数据打入寄存器R0键1、键2输入数据键5打入地址寄存器AR写入存储器RAM键4键(8、7)=10键6=RAM→LED(5、4)键1、键2输入数据图4-3具体操作步骤(2)图4-4是总线控制的时序仿真波形图。图4-4总线控制的时序仿真波形图。3、键盘定义:键1、键2——数据输入D[7..0],输入的数据同时显示在数码管2和数码管1上。键3——寄存器R0的输入选通端;键4——存储器RAM的输入选通端;键5——地址寄存器AR的输入选通端;键6——输出设备OUTPUT的输入选通端,输出数据显示在数码管5和数码管4上;键8、键7——设备选择端sel[1..0]:00——输入设备INPUT;01——寄存器R0;10——存储器RAM;11——输出设备OUTPUT。四.实验报告思考题1.如何向RAM中输入多个数据,并在输出设备OUTPUT上显示这些数据?实验五基本模型机设计与实现一.实验目的1.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。2.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。二.实验原理1.附表-1中各信号的功能(1)uA5—uAo。微程序控制器的微地址输出信号,可接发光二极管,以观察微地址的变化情况。(2)IR7一IR5。指令寄存器IR7、IR6、IR5输出信号.输入至微程序控制器作为修改微地址用的控制信号。(3)T4。微程序控制器的T4时序信号输入端。(4)T2。微程序控制器的T2时序信号输入端。(5)QA—QD。时钟源输出信号端,QA输出频率为250kIk,QB输出频率为500Hz,QC输出频率为1MHz、QD输出频率为2MHz。(6)T1一T4——时序信号发生器提供的四个标准输出信号,可以采用单拍或连续两种方式输出。(7)s3、s2、sl、so、——由微程序控制器输出的ALU操作选择信号,以控制执行16种算术操作或16种逻辑操作中的哪一种操作。(8)M——微程序控制输出的A上u操作方式选择信号端。M=0执行算术操作;M=l执行逻辑操作。(9)——微程序控制器的输出的进位标志信号,=o表示ALU运算时最低位有进位=1,则表示无进位。(10)SWE——微程序控制器的微地址修改信号。将SwE接逻辑开关,先按下CLR清零键。使微地址为全“0”时,将逻辑开关从“1”—“0”一“1”(相当于负脉冲),微地址修改为10000,使机器处于写RAM微程序。(11)SRD——微程序控制器的微地址修改信号。将SRD接逻辑开关,先按下CLR清零键,使微地址为全“0”时,将逻辑开关从“1”—“0”—“1”,(相当于负脉冲),微地址修改为01000,使机器处于读RAM的微程序。(12)/CLR——清“0”信号输入端,可与单次脉冲P0、P1、P2之中任一个按键相连。(13)LDAR——微程序控制器的输入信号,将程序计数器的内容打入到存储器地址寄存器AR中,产生访问RAM的地址。(14)/CE——微程序控制器输出的RAM选片情号,/CE=0时,6ll6RAM芯片被选中。(15)WE——微程序控制器输出的RAM徽制信号。当/CE=0时,如WE=0为存储器读;如WE=1为存储器写。(16)T1-T4——功能同6,为增强带负载能力.分2组输出。(17)LDPC——微程序控制器输出的PC打入信号。(18)LOAD——微程序控制器的输出信号。LOAD=0时,PC(程序计数器)处于并行置数状态;LOAD=1时,PC处于计数状态。(19)ALU_B——微程序控制器输出信号,控制运算器的运算结果是否送到总线BUS.低电平有效。(20)PC_B——微程序控制器输出信号,控制程序计数器的内容是否送到总线BUS,低电平有效。(2I)R0_B——微程序控制器输出信号,控制寄存器R4的内容是否达到总线BUS,低电平有效。(22)SW_B——微程序控制器输出信号,控制八位数据开关sw7一sw。的开关量是否送到总线,低电平有效。(23)LDR0——微程序控制器的输出信号。控制把总线上的数据打入寄存器RD0。(24)LDR1——微程序控制器输出信号,控制把总线上的数据打入寄存器RD1(25)LDR2——微程序控制器输出信号,控制把总线上的数据打入寄存器DR2(26)LDIR——微程序控制器输出信号,控制把总线上的数据(指令)输入到指令寄存器IR中。(27)P(1)——微程序控制器输出的修改微地址P(1),标志信号。用于机器指令的微程序分支测试。(28)uA——微程序控制器的微地址寄存器输出控制信号,uA=0,微地址信号输出。(29)MF——*时序发生器的时钟输入端,从eh、QB、Q*QD中任选一个连接。(30)STEP——时序发生器启动控制信号。按2次STEP键,时序发生器可输出一组(单步)或连续的时序信号Tl、T2、T3、T4。2.在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本实验将能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。实验中,计算机数据通路的控制将由微过程控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前4位为操作码):助记符机器指令addr对应的二进制地址码说明INADDaddrSTAaddrOUTaddrJMPaddr0000000000010000XXXXXXXX00100000XXXXXXXX00110000XXXXXXXX01000000XXXXXXXX“INPUTDEVICE”中的开关状态→R0R0+[addr]R0R0[addr][addr]BUSaddr→PC其中IN为单字长(8位),其余为双字长指令,XXXXXXXX为addr对应的二进制地址码。为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。存储器读操作(KRD):下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“00”时,可对RAM连续手动读操作。存储器写操作(KWE):下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“01”时,可对RAM连续手动读操作。启动程序(RP):下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“11”时,即可转入到01号“取址”微指令,启动程序运行。SWBSWA控制台指令001011读内存(KRD)写内存(KWE)启动程序(RP)图5—1数据通路框图根据以上要求设计数据通路框图,如图图5—1数据通路框图微代码定义如表5-1所示。242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8ABCuA5uA4uA3uA2uA1uA0表5-1121110选择000001RS-B010011100101ALU-B11表5-1121110选择000001RS-B010011100101ALU-B110PC-B987选择000001P(1)010011100P(4)101110LDPC151413选择000001LDRi010LDDR1011LDDR2100LDIR101LOAD110LDARA字段B字段C字段控制台操作为P(4)测试,它以控制台信号SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控制存储器的一个微地址单元,随意填写。注意:微程序流程图上的地址为八进制。当全部微程序设计完毕后,应将每条微指令代码化,表5-2即为图5-2的微程序流程图按微指令格式转化而成的“二进制微代码表”。表5-2图5-2微程序流程图二进制微代码表图5-2微程序流程图微地址S3S2S1S0MCNWEA9A8ABCUA5——UA000000000011000000100010000010000000111101101100000100200000000110000000100100003000000001110000000000100040000000010110000000001010500000001101000100000011006100101011001101000000001070000000011100000000011011000000000000100000000000111000000011110110110000011120000000111101101100001111300000001111011011000111014000000011110110110010110150000001010000010000000011600000000111000000000111117000000001010000000010101200000000111101101100100102100000001111011011001010022000000001010000000010111230000000110000000000000012400000000001000000001100025000001110000101000000001260000000011010001100000012700000111000010100001000030000001101000101000010001指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试[P(1)],通过节拍脉冲T4的控制,以便识别所要求的操作。“指令译码器”根据指令中的操作码强置微控制器单元的微地址,使下一条微指令指向相应的微程序首地址。实验系统中有以下外部I/O设备:实验台上的按键作为输入设备(INPUTDEVICE);数码管、发光二极管作为输出设备;LCD液晶显示屏作为辅助输出设备,显示CPU中的各部件的信息。地址(二进制)00000000地址(二进制)000000000000000100000010000000110000010000000101000001100000011100001000000010010000101000001011内容(二进制)00000000000100000000101000100000000010110011000000001011010000000000000000001011助记符INADD[0AH]STA[0BH]OUT[0BH]JMP[08H]说明“INPUTDEVICE”→R0R0+[0AH]→R0R0→[0BH][0BH]→LED00→PC自定求和结果1.微程序的输入:表5-2所对应的二进制微代码可通过对FPGA中存放微代码的LPM-ROM配置文件uP_ROM.mif的编辑、输入,并与实验电路一同编译后,得到下载文件bus_c.sof。若采用FPGA外部EEPROM存放微程序,则采用bus_a.sof下载文件,将专用的EEPROM配置文件下载到实验系统中。2.输入实验电路:通过微机将编译通过的配置文件bus_c.sof下载到实验系统。3.输入模型机的程序手动写入(1)先将机器指令对应的微代码正确地写入到EEPROM2864中,对照表5-2进行检验。(2)使用控制台KWE和KRD微程序将机器指令程序装入SRAM6264,并进行检查。地址数据状态输出-地址数据S2S1S0111110101100011010001000选择RAMRegu5u4u3u2u1uPC键号Key8Key7Key6Key5Key4Key3Key2Key1定义S2S1S0RUN/LOAD地址H地址L数据H数据L类型H/LH/LH/LH/LHEXHEXHEXHEX实验六带移位运算的模型机的设计与实现一.实验目的1.在基本模型计算机实验的基础上,增加移位运算单元SHEFT,构造一台具有移位运算功能的模型计算机。2.在实验五的5条基本机器指令基础上,增加4条移位运算指令,并编写相应的微程序,上机调试,掌握计算机整机概念。3.进一步熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。二.实验原理在基本模型计算机实验的基础上,增加移位运算单元SHEFT。实验中所用到的带移位运算功能的模型计算机的数据通路框图如图6-1所示。图6-2控制台操作流程图图6-3微程序流程图微代码定义如表6-1所示。242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8ABCuA5uA4uA3uA2uA1uA0表6-2带移位运算模型机微程序地址uIS3S2S1S0MCNWEA9A8ABCUA5…UA0000181080000000110000001000010000101ED820000000111101101100000100200C0500000000011000000010100000300E0040000000011100000000001000400B0050000000010110000000001010501A20600000001101000100000011006959A011001010110011010000000010700E00F0000000011100000000011110801ED8A0000000111101101100010100901ED8C0000000111101101100011000A00A00E0000000010100000000011100B0180010000000110000000000000010C00200D0000000000100000000011010D068A090000011010001010000010010E070A080000011100001010000010000F028201000000101000001000000001100010010000000000010000000000011101ED830000000111101101100000111201ED870000000111101101100001111301ED990000000111101101100110011401ED9C0000000111101101100111001531821D0011000110000010000111011631821F00110001100000100001111117318221001100011000001000100001183182230011000110000010001000111900E01A0000000011100000000110101A00A01B0000000010100000000110111B070A010000011100001010000000011C00D1810000000011010001100000011D21881E0010000110001000000111101E0198010000000110011000000000011F2988200010100110001000001000002001980100000001100110000000000121118822000100011000100000100010220198010000000110011000000000012319882400011001100010000010010024019801000000011001100000000001地址(二进制)00000000地址(二进制)000000000000000100000010000000110000010000000101000001100000011100001000000010010000101000001011000011000000110100001110内容(二进制)0000000000010000000011011000000000000000011000000111000000100000000011100011000000001110010000000000000001000000助记符INADD[0DH]RLCINRRCRLSTA[0EH]OUT[0EH]JMP[00H]说明“INPUTDEVICE”→R0R0+[0DH]→R0“INPUTDEVICE”→R0R0→[0EH][0EH]→LED00→PC自定存数单元三.实验步骤1.微程序的输入:表6-2所对应的二进制微代码可通过对FPGA中存放微代码的LPM-ROM配置文件uP_ROM.mif的编辑、输入,并与实验电路一同编译后,得到下载文件bus_c.sof。若采用FPGA外部EEPROM存放微程序,则采用bus_a.sof下载文件,将专用的EEPROM配置文件下载到实验系统中。2.输入实验电路:通过微机将编译通过的配置文件bus_c.sof下载到实验系统。3.输入模型机的机器指令程序(1)先将机器指令对应的微代码正确地写入到EEPROM2864中,对照表6-2进行检验。(2)使用控制台KWE和KRD微程序将机器指令程序装入SRAM6264,并进行检查。实验七复杂模型机的设计与实现实验目的1.综合运用所学计算机原理知识,设计并实现较为完整的计算机。2.设计指令系统。3.编写简单程序,在所设计的复杂模型计算机上调试运行。实验设备GW-48CPP系列计算机组成原理实验系统。实验原理1.数据格式模型机采用定点补码表示法表示数据,字长为8位,其格式如下:76543210符号尾数其中第7位为符号位,数值表示范围是:-1≤1。2.指令格式所设计的指令分为四大类共十六条,其中包括算术逻辑指令、I/O指令、访问、转移指令和停机指令。(1)算术逻辑指令设计9条算术逻辑指令并用单字节表示,采用寄存器直接寻址方式,其格式如下:76543210OP-CODErsrd其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:Rs或rd选定的寄存器000110R0R1R2(2)访问指令及转移指令访问指令有2条,即存数(STA)、取数(LDA);2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:7654321000MOP-CODErdD其中,OP-CODE为操作码,rd为目的寄存器地址(用于LDA、STA指令)。D为位移量(正负均可),M为寻址模式,其定义如下:寻址模式M有效地址E说明00011011E=DE=(D)E=(RI)+DE=(PC)+D直接寻址间接寻址RI变址寻址相对寻址在本模型机中规定变址寄存器RI为寄存器R2。(3)I/O指令输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:76543210OP-CODEaddrrd其中,addr=01时选中“INPUTDEVICE”中的键盘输入设备,addr=10时,选中“OUTPUTDEVICE”中的LCD点阵液晶屏作为输出设备。(4)停机指令指令格式如下:76543210OP-CODE00003.指令系统共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入/输出指令2条,其他指令1条。各条指令的格式、汇编符号、功能如表7-1所示。助记符号指令格式功能CLRrdMOVrs,rdADCrs,rdSBCrs,rdINCrdANDrs,rdCOMrdRRCrs,rdRLCrs,rd011100rd0→rd1000rsrdrs→rd1001rsrdrs+rd+cy→rd1010rsrdrs–rd–cy→rd1011rdrd+1→rd1100rdrs∧rd→rd1101rd→rd1110rd1111rdLDAM,D,rdSTAM,D,rdJMPM,DBZCM,D00M00rdDE→rs00M01rdDrd→E00M10rdDE→PC00M11rdD当CY=1或Z=1时,E→PCINaddr,rdOUTaddr,rd010001rdaddr→rd010110rdrd→addrHALT01100000停机本模型机的数据通路框图如图7-1。根据机器指令系统要求,设计微程序流程图及确定微地址,如图7-2。图7-2微程序流程图PAGEPAGE40实验内容按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。微代码定义如表7-1所示。242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8ABCuA5uA4uA3uA2uA1uA0表7-2表7-2微指令格式121110选择000001RS-B010RD-B011RI-B100299-B101ALU-B110PC-B987选择000001P(1)010P(2)011P(3)100P(4)101AR110LDPC151413选择000001LDRi010LDDR1011LDDR2100LDIR101LOAD110LDARA字段B字段C字段程序$P0044程序$P0044$P0146$P0298$P0381$P04F5$P050C$P0600助记符IN 01,R0IN 01,R2ADC R2,R0MOV R0。R1RLC R1,R1BZC 00,00$M00$M00018108$M0100ed82$M0200c050$M0300a004$M0400e0a0$M0500e006$M0600a007$M0700e0a0$M0800ed8a$M0900ed8c$M0A00a008$M0B008001$M0C062009$M0D00a00e$M0E01b60f$M0F95ea25$M1000ed83$M1100ed85$M1200ed8d$M1300eda6$M14001001$M15030401$M16018016$M173d9a01$M1801920
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年望奎县带编教师招聘考试备考题库及答案解析
- 2027年贵阳市中考数学押题试卷(含答案解析)
- 2026年明溪县带编教师招聘考试模拟试题及答案解析
- 2026年西盟佤族自治县带编教师招聘考试参考题库及答案解析
- DB32/T 5300-2025 后备种鸽饲养管理技术规程
- DB32/T 5331-2025 内陆淡水湿地生态修复固碳增汇成效评估技术规程
- 2026年措美县带编教师招聘考试备考试题及答案解析
- 2026年宝清县带编教师招聘考试备考题库及答案解析
- 2026年改则县带编教师招聘考试参考题库及答案解析
- 2026年安溪县带编教师招聘笔试模拟试题及答案解析
- 2026电动重卡换电模式推广障碍与基础设施需求报告
- 2026年云南睿城建设项目管理有限公司、云南朗锐工程咨询服务有限公司招聘(6人)笔试备考题库及答案详解
- 心房颤动防治科普课件
- 《2.我的肖像》课件2026-2027学年人美版五年级上册美术
- 2026年秋季学期学校德育工作计划
- 2026年应急救援知识安全生产应用试题题库(附答案)
- 第7课《培养德智体美劳全面发展的社会主义建设者和接班人》课件
- 新版部编人教版四年级上册道德与法治(课件)11学会合理消费
- DB11-T 383-2023 建筑工程施工现场安全资料管理规程
- CJT 288-2017 预制双层不锈钢烟道及烟囱
- 铁路防雷及接地工程技术规范(TB 10180-2016)
评论
0/150
提交评论