西电计组实验报告
西电计算机Java上机实验报告参考模板

西安电子科技大学Java课程上机练习题(2016年度)上机报告班级:姓名:学号:一、J ava语言基础1、实验目标:掌握Java语法;掌握Java程序结构;掌握Java编译、调试、运行的方法。
2、实验要求:编写一个程序,程序提供两种功能:(1)用户输入一个整数,程序计算并输出从1开始到该整数的所有整数之和;同时,计算并输出不大于该整数的所有素数的数目。
(2)用户输入一个数字串,程序判断该数字串各位上数字的奇偶性,并分别输出奇、偶数位的计数值及各位的加和值。
3、题目分析:判断整数是素数要构建一个测试类,然后统计是素数的个数;数字串需要判断每位的数字的奇偶性,则要将数字串转化为数组的形式,然后进行奇偶判断,进行统计。
4、题目设计实现:分别设计判断素数、整数求和、格式转变、判断奇偶性、各位求和的函数。
5、实现过程://判断一个数是否是素数public static boolean isPrime(int a){boolean flag = true;if(a<2)return false;elsefor(int i = 2;i<=Math.sqrt(a);i++){if(a%i == 0)flag = false;}return flag;}//在main函数计算求和及判断public static void main(String []args){int sum=0,j=0;Scanner sc = new Scanner(System.in);System.out.println("请输入一个数计算他的和");int num = sc.nextInt();for(int i=1;i<=num;i++){sum = sum + i;if(isPrime(i))j++;}System.out.println("这个数的和为"+sum+"\n素数有"+j+"个");//输入一个字符串并转化为数字存放到数组中public static void main(String[] args){System.out.println("请输入一串数字串");Scanner scan = new Scanner(System.in);String line = scan.next();int odd=0,even=0,sumo=0,sume=0;char[] c = line.toCharArray();//求和for(int i = 0; i<line.length(); i++){if((int)c[i]%2 == 0){even++;sume = sume +(int)c[i]-48;}else{sumo = sumo +(int)c[i]-48;odd++;}}System.out.println("奇数共有"+odd+"个\n"+"奇数和为"+sumo);System.out.println("偶数共有"+even+"个\n"+"偶数和为"+sume);}6、实验结果:7、个人总结:通过这次基础练习,对Java的各种规范和函数调用有了一定的熟悉,因为之前的编过类似的,所以用Java上手没有很陌生,算是一个很好的入门基础。
计算机组成原理实验报告 西电版

计算机组成原理实验报告成评语:绩教师:年月日班级:学号:姓名:地点:时间:实验一存储器实验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+实验台上的调试方法。
西电 机电微机原理实验报告

微机原理实验报告姓名:学号:实验一8259中断实验一、实验目的1.掌握PC机中断处理系统的基本原理。
2.掌握外部扩展中断源的设计方法。
3.学会编写中断服务程序。
二、实验原理PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。
三、实验内容实验要求实现8259控制器的IR1、IR3两路中断都可以通过IRQ向PC机发起中断请求,用SP1、SP2单次脉冲模拟两个中断源。
IR1中断时,在它的中断服务程序中编程显示“IR1 OK AND EXIT!”;IR3中断时,在它的中断服务程序中编程显示“IR3 OK AND EXIT!”。
采用查询方式完成。
图1-1 扩展中断电路四、实验步骤1、连接线路SP1和SP2分别接到IR1和IR3,IR1和IR3与L0和L1指示灯相连,8259CS 接到Y0上,最后将/RD、/WR、INT分别与IOR、IOW、IRQ相连接,连接好后打开电源。
2、编写程序3、汇编、编译、连接及运行五、实验程序DATA SEGMENTIOPORT EQU 0FF00H-0280HMY8259_ICW1 EQU IOPORT +280H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU IOPORT +281H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU IOPORT +281H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU IOPORT +281H ;实验系统中8259的ICW4端口地址MY8259_OCW1 EQU IOPORT +281H ;实验系统中8259的OCW1端口地址MY8259_OCW2 EQU IOPORT +280H ;实验系统中8259的OCW2端口地址MY8259_OCW3 EQU IOPORT +280H ;实验系统中8259的OCW3端口地址MSG1 DB 0DH,0AH,'DVCC PCI CARD INTERRUPT',0DH,0AH,'$'MSG2 DB 0DH,0AH,'PRESS ANY KEY TO EXIT!',0DH,0AH,'$'MSG3 DB 0DH,0AH,'IR1 OK AND EXIT!',0DH,0AH,'$'MSG4 DB 0DH,0AH,'IR3 OK AND EXIT!',0DH,0AH,'$'DATA ENDSSTACKS SEGMENTDB 100 DUP (?)STACKS ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKS,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKSMOV SS,AXMOV AX,DATAMOV DS,AXMOV DX,OFFSET MSG1MOV AH,09HINT 21HMOV DX,OFFSET MSG2MOV AH,09HINT 21HSTART1: MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要ICW4OUT DX,ALMOV DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2MOV AL,08HOUT DX,ALMOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4MOV AL,01H ;非自动结束EOIOUT DX,ALMOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1MOV AL,0F5H ;打开IR1和IR3的屏蔽位OUT DX,ALQUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3发送查询命令MOV AL,0CHOUT DX,ALNOPNOPNOPMOV DX,MY8259_OCW3IN AL,DX ;读出查询字TEST AL,80H ;判断中断是否已响应JZ QUERY ;没有响应则继续查询AND AL,07HCMP AL,01HJE IR1ISR ;若为IR1请求,跳到IR1处理程序CMP AL,03HJE IR3ISR ;若为IR1请求,跳到IR1处理程序JMP EOIQUERY1: MOV DL,0FFHMOV AH,06HINT 21HJZ START1MOV AH,4CHINT 21HIR1ISR: MOV DX,OFFSET MSG3 ;IR1处理,显示字符串'IR1 OK AND EXIT'MOV AH,09HINT 21HJMP EOIIR3ISR: MOV DX,OFFSET MSG4 ;IR1处理,显示字符串'IR3 OK AND EXIT'MOV AH,09HINT 21HEOI: MOV DX,MY8259_OCW2 ;向实验系统中8259发送中断结束命令MOV AL,20HOUT DXMOV AL,20H ;SEND EOIOUT 0A0H,ALOUT 20H,ALPOP DSPOP DXPOP AXJMP START1CODE ENDSEND START六、实验结果接好电路,编好程序,打开电源后,两个LED指示L0和L1灯都熄灭;编译、链接、运行程序,8259控制器的IR1、IR3两路中断可通过IRQ向PC机发起中断请求,按下SP1,IR1中断,指示灯L0亮,电脑屏幕上显示“IR1 OK AND EXIT!”;按下SP2, IR3中断,指示灯L1亮,电脑屏幕上显示“IR3 OK AND EXIT!”七、实验中遇到的问题及解决方法最初认为要按照原理图把所有线都接上,后来知道了直接用排线连接就好,同时还能降低短路的可能性。
西电算法导论上机实验报告

算法导论上机实验报告册班级: xxxxxx学号: xxxxxxx姓名: xxxx教师: xxxxxx目录实验一排序算法 0题目一: 01、题目描述:描述一个运行时间为θ(nlgn)的算法,给定n个整数的集合S和另一个整数x,该算法能确定S中是否存在两个其和刚好为x的元素。
02、所用算法:1、运用归并排序算法 03、算法分析: 04、结果截图: 05、总结: (1)题目二: (2)1、题目描述:实现优先级队列,即需要支持以下操作:INSERT(S,x):把元素x插入到集合S中;MAXMUM(S):返回S中具有最大key的元素;EXTRACT-MAX(S):去掉并返回S中的具有最大key的元素; (2)2、所用算法:堆排序,运用堆来实现优先队列。
(2)3、算法分析: (2)4、结果截图: (2)5、总结: (3)题目三: (3)1、题目描述:实现quick_sort算法,并且回答以下两个问题:(1)待排数组中的元素值都相同的情况下,运用quick_sort需要进行多少次比较(2)对于n个元素的数组,运用quick_sort举出需要进行比较次数的上限和下限是多少 (3)2、所用算法:快速排序算法 (3)3、算法分析:快速排序采用分治策略,时间复杂度为θ(nlgn),但是最坏情况下为θ(n2),并且快速排序算法属于原地排序,并不需要开辟空间。
快速排序复杂的步骤为其分解的步骤,分解的过程:数组A[p..r]被划分为两个子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中的每个元素都小于A[q],而A[q]也小于等于A[q+1..r]中的每个元素。
而在实现的过程总是选择将A[r]作为基准点进行划分A[p..r]数组。
(4)4、结果截图: (4)5、总结: (4)题目四: (5)1、题目描述:运用分治的策略将两个已经排好序的序列中,找出第k大的元素,且要求时间复杂度为θ(lgm+lgn),其中m和n分别为两个序列的长度。
西安交通大学计算机组成原理实验报告

西安交通大学计算机组成原理实验报告姓名:***班级:物联网**学号:实验一存储器的访问与实现一、实验目的1、理解计算机主存储器的分类及作用;2、掌握ROM、RAM的读写方法。
二、实验原理存储器按存取方式分,可分为随机存储器和顺序存储器。
如果存储器中的任何存储单元的内容都可随机存取,称为随机存储器,计算机中的主存储器都是随机存储器。
如果存储器只能按某种顺序存取,则称为顺序存储器,磁带是顺序存储器,磁盘是半顺序存储器,它们的特点是存储容量大,存取速度慢,一般作为外部存储器使用。
如果按存储器的读写功能分,有些存储器的内容是固定不变的,即只能读出不能写入,这种存储器称为只读存储器(ROM);既能读出又能写入的存储器,称为随机读写存储器(RAM)。
实际上真正的ROM基本上不用了,用的是光可擦除可编程的ROM(EPROM)和电可擦除可编程的ROM(EEPROM)。
EEPROM用的越来越多,有取代EPROM之势,比如容量很大的闪存(FLASH)现在用的就很广泛,常说的U盘就是用FLASH做的。
按信息的可保存性分,存储器可分为非永久性记忆存储器和永久性记忆存储器。
ROM、EPROM、EEPROM都是永久记忆存储器,它们断电后存储内容可保存。
RAM则是非永久性记忆存储器,断电后存储器中存储的内容丢失。
随机读写存储器类型随机存储器按其元件的类型来分,有双极存储器和MOS存储器两类。
在存取速度和价格两方面,双极存储器比MOS存储器高,故双极存储器主要用于高速的小容量存储体系。
在MOS存储器中,根据存储信息机构的原理不同,又分为静态随机存储器(SRAM)和动态随机存储器(DRAM)。
静态随机存储器采用双稳态触发器来保存信息,只要不断电,信息就不会丢失;动态随机存储器利用记忆电容来保存信息,使用时只有不断地给电容充电才能使信息保持。
静态随机存储器的集成度较低,功耗也较大;动态随机存储器的集成度较高,功耗低。
现在计算机中,内存容量较大,常由动态随机存储器构成。
计组实验报告(共10篇)

计组实验报告(共10篇)计组实验报告计算机组成原理实验报告一一、算术逻辑运算器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上。
低电平有效。
西安电子科技大学 数字电路实验报告1

实验一报告1.题目集成逻辑门的测试2.实验目的了解与非门各参数的意义。
熟悉万用表的使用方法。
熟悉数字逻辑实验板的使用方法。
了解集成逻辑门电路的使用注意事项。
3.实验设备及仪器数字逻辑电路实验板1块HD74HC00P 1片数字万用表1块4.实验原理本实验采用HD74HC00P,即在一块集成块内含有四个相互独立的与非门,每个与非门有两个输入端。
试验用器件管脚介绍:1HD74HC00P管脚如上图所示。
一.与非门逻辑功能测试(基本命题)实验图:实验结果:输入1 输入2 输出0 0 11 0 10 1 11 1 0实验过程中的问题:在实验过程中,实验接入完全正确,led灯不亮。
解决办法:经过认真检查之后发现个别led灯已经坏掉导致没有出现实验结果,换上别的灯口之后问题解决。
实验体会:实验过程中,耐心仔细很重要。
出现问题之后要学会自己逐步检查。
二.与非门电压传输特性测试(基本命题)实验图:实验结果:输0.03 1.02 2.54 2.63 2.74 2.81 2.90 2.99 3.13 4.03 4.53入4.74 4.74 4.74 2.39 2.25 2.16 2.06 1.88 0.03 0.03 0.03输出实验过程中的问题:实验过程中,万能表测电压总是不准确,可能因为接触不良、万能表本身误差或者其他原因导致万能表显示的示数一闪一闪的。
解决办法:关于万能表自身的客观原因,在读不准的范围内,我会多次重新从0专门测这个范围的数据;电源本身也会一闪一闪的,所以我多换了几个电源测试,这样就能减少仪器所引起的系统误差。
关于非系统误差,也就是导线接触不良的影响,我们则会几个人组队,请同学帮忙固定线,使接线柱接线良好。
最终得到了正确的结论。
实验体会:由于实验没有具体详细的步骤,所以实验之前的预习非常重要。
但是由于没有接触过集成电路板,所以第一次实验难免会感觉有些陌生。
实验是要求实践能力的。
在做实验的整个过程中,我们首先要学会独立思考,出现问题按照老师所给的步骤逐步检查,一般会检查处问题所在。
电子系统设计实验报告 西安交通大学 计算机

实验报告实验课程:电子系统设计与实践学生姓名:高君宇学号:2110505112专业班级:计算机15班2013年11月25日一、实验目的电子系统设计实验是计算机专业面向计算机综合应用设计的一个重要的实践环节。
主要以嵌入式单片机开发系统为主要实验平台,以此平台为基础,通过对单片机应用系统的开发设计训练,对外围接口电路的组成设计和应用编程技术训练,使学生能够掌握实现一个小型完整计算机应用系统从硬件电路设计到软件程序开发的设计过程,激发学生的创新兴趣,为以后的创新项目设计打好坚实基础。
本实验课程为独立开设的选修实验课程。
本实验课程的主要目的是让学生通过一个新型嵌入式单片机为核心的应用系统设计,掌握微型计算机硬件系统结构基本原理,软件开发编程方法,外围接口电路的组成和应用编程技术,以及电子系统设计的相关技术。
通过课程实践训练,能够让学生独立实现一个完整的计算机应用系统设计。
实验任务分为基本实验和综合应用设计实验两部分。
基本实验部分让学生学习单片机系统的基本硬件组成原理和软件程序设计方法;综合设计实验要求学生根据题目需求自行设计系统硬件组成电路,并设计实现完成相应功能的应用程序调试任务。
二、开发平台实验开发板采用技术性能优良的AVR ATmega128单片机作为核心器件,还特别设计了USB接口模块、Ethernet网络接口模块,还有MCU对外扩插槽,可为电路扩展模块提供必要的准备。
实验开发板可满足高端应用设计的要求,激发学生的创新兴趣,完成具体项目的开发设计。
学生还可以根据自己的兴趣设计制作新的目标模块实现对系统的进一步扩展。
三、实验内容(一)单片机实验系统开发环境学习1、实验目的:(1)、熟悉实验电路的结构原理、元器件名称、作用及相应的接口连接;(2)、学会使用C编译器编辑、编译、调试简单C源程序;(3)、学会使用AVR Studio集成开发软件下载调试并得到正确结果;(4)、熟悉蜂鸣器电路的编程原理。
2、实验电路原理图由图1.1所示的蜂鸣器电路可知,当BEEP引脚输出为低电平时,三极管导通,蜂鸣器鸣响;而当BEEP引脚输出为高电平时,三极管截止,蜂鸣器停止鸣响。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理实验报告班级: ****学号: *****姓名: **地点: ***时间: ***计算机组成原理与体系结构课程设计实验报告基本模型机设计与实现一.实验目的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 数据通路框图指令”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支(见图6-2左图)。
用指令寄存器的高4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定地址单元。
控制台操作为P(4)测试(见图6-2右图),它以控制台信号SWB、SW A作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控制存储器的一个微地址单元,随意填写。
注意:微程序流程图上的微地址为8进制!当全部微程序设计完毕后,应将每条微指令代码化,表6-2即为图6-2的微程序流程图按微指令格式转化而成的“二进制微代码表”。
表6-2二进制微代码表指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。
指令划分为操作码和地址码段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试“P(1)”,通过节拍脉冲T4的控制,以便识别所要求的操作。
指令译码器: 根据指令中的操作码强置微控制器单元的微地址,使下一条微指令指向相应的微程序首地址。
实验中LCD液晶显示屏可以用来显示模型机CPU中各组成单元的内容。
将B100_C.sof文件下载到实验台后,按系统复位键,LCD液晶显示屏即显示CPU中各组成单元的内容。
其功能说明如下:LCD液晶显示屏功能说明图6-4 LCD液晶显示屏实验程序1:说明:1、指令IN为单字节指令,指令码:00,其功能是将输入口IN的数据送到寄存器R0;2、指令ADD [0AH]为双字节指令,指令码:100A,其功能是将R0中的数据加上RAM地址0AH中的数据(34H);3、指令STA [0BH]为双字节指令,指令码:200B,其功能是将R0中的数据送到RAM的0BH地址单元中;4、指令OUT[0BH]为双字节指令,指令码:300B,其功能是将RAM的0BH地址单元中的数据送到OUT输出口上;5、指令JMP [12H] 为双字节指令,指令码:4012,其功能是将其操作码下一地址单元(08H)的数据作为转跳地址。
三.实验步骤1.微程序的输入:根据表6-2所对应的二进制微代码,编辑LPM_ROM配置文件ROM_11.mif(参考demoD_cpu5文件夹中的同名文件),并将其保存在与实验电路b100_c.bdf工程所在的文件夹中,与实验电路b100_c.bdf一同编译后,得到下载文件b100_c.sof。
下载配置文件bus_c.sof下载到实验系统。
实验板上的时钟clock0选择输入频率为1.5MHz。
图6-3是示例原理图,详见b100_c.bdf。
2.输入模型机的程序(示例工程文件是b100_c.bdf )(一)手动写入(1)使用控制台KWE和KRD微程序将机器指令程序(“实验程序1”:按地址输入指令代码,如地址00、01、02、03、04…分别对应指令码00、10、0A、20、0B…)装入模型机CPU的程序RAM(LPM_RAM_DQ)中,并进行检查。
根据图6-2控制台微程序流程图,在微指令的控制下,依次输入机器指令代码:①以下将数据35、C4依次装入00、01地址为例:选择实验模式NO.0,输入数据显示于数码2、1上;②将控制开关SWB、SW A(键4、键3)设置为:0、1;模型机的复位控制信号RST(键8)=1;③机器指令代码的数据输入由键2、键1输入,先键入35,再按两次键7,即0->1->0,产生一个写入正脉冲,这时观察右上液晶屏上的输入端口IN=35;PC=00(当前将要输入的地址);MC=018110微指令。
再按两次键7(地址寄存器加1),根据图5-2控制台微程序流程图,进入到KWE(01)分支,进入并执行了微地址“21”中的操作,这时控制此操作的微指令码MC=01ED94,PC自动加1,PC=1。
④按键7,再产生一个脉冲,进入并执行了微地址“24”中的操作;观察液晶,数据35进入总线BUS=35,35进入RAM=35,此时微指令码MC=062011,此时将机器指令代码数据写入了LPM_RAM中;⑤此后每当出现MC=062011时,即可利用键2,键1输入待写入RAM的数据,此时如C4,连续按键7,再产生2个脉冲,即将C4写入RAM,PC加1,微指令码变成MC=062011;⑥重复③—⑤的步骤,将“实验程序1”的全部机器指令代码输入RAM。
图6-2 微程序流程图(注,图中的DR1应改为DR0, DR2应改为DR1)(2)以下是检查RAM中的内容。
当全部机器指令代码输入模型机后,在微指令的控制下,依次检查LPM_RAM 中已输入的机器指令代码。
步骤如下:①按复位键8=0,使模型机中的PC复位;②将控制开关SWB、SW A(键4、键3)设置为:0、0;③复位信号RST(键8)=1;④按键7,每两个2次单步运行(产生2个正脉冲),可读出LPM_RAM中以写入的数据;根据图6-1的CPU部件和信息流程,对于读出的每一数据,仔细观察液晶上显示的MIC、PC、AR、IN、BUS、RAM、DR0、DR1的数据变化。
重复以上步骤,依次检查LPM_RAM中已输入的机器指令代码。
(二)自动配置LPM_RAM如果程序量大,手动输入效率太低,可以在计算机上编译好代码文件,并随同模型CPU设计文件一同编译进SOF 下载文件中,直接下载进入FPGA。
(1)在QuartusII环境下,打开工程文件b100_c.bdf,修改b100_C.b df中LPM_RAM_DQ的参数,将初始化文件LPM_FILE设置为:“./5_ram.mif”;打开“5_ram.mif”(在示例中已有此文件),根据“实验程序1”,在5_ram.mif中输入全部机器指令代码(示例中已经输入)。
(2)将工程文件重新编译后,下载到实验台中,即完成LPM_RAM的配置。
(3)根据以上的方法,复位信号RST(键8)=1;将控制开关SWB、SW A(键4、键3)设置为:0、0,按键7,每两个2次单步运行(产生2个正脉冲),检验配置进入FPGA中的程序代码。
(三)执行程序(1)按1次系统复位键8,并置键8为高电平,使CPU允许正常工作;(2)控制开关(键4、键3)设置为SWB、SWA=1,1,处于程序执行方式,观察图6-1控制台:RP(11);(3)通过键2、键1输入运算数据,如56H,按4次单步键7,产生2个脉冲,执行2条微指令,进入到图6-1控制台的RP(11),此时的微指令地址是“23”,微指令码MC=008001;IN=56H(4)再用键7产生1个脉冲,执行1条微指令,微程序流程进入图6-2左的“运行微程序”的最上块:此时PC=00送地址寄存器AR=00,PC自动加1,PC=01,MC=00ED82,IN=56;注意,1、实验箱上数码管7、6显示的是下一节拍将要执行的微指令的微地址码;2、数码管3显示的是进位情况,有进位,LED3显示1,无进位LED3显示0。
(5)键7产生1个脉冲,执行微指令MC=00C048(图6-2),RAM中的第一条指令码00进入BUS,再由BUS进入指令寄存器IR=00。
键7再进1个脉冲,进入MC=001001,执行指令IN,送数IN R0=56;(6)键7产生1个脉冲,执行完IN指令后,返回到初始端,执行微指令MC=00ED82;(7)键7产生2个脉冲后,执行微指令MC=00ED83,即执行ADD指令的第1步:PC送AR=02,PC+1=03,这时RAM 中在02地址的0AH进入BUS=0A;(8)键7产生1个脉冲,执行微指令MC=00E004,即执行ADD指令的第2步:BUS数据送AR=0A,由实验程序1可知,0A是ADD指令的加数的间接地址,而在地址0A中放有34H,最后完成的加法是34+56;(9)键7产生1个脉冲,MC=00B005,执行ADD的第3步:将RAM中0A地址的数据34送BUS,再送DR1=34H。