简单16位CPU的设计
- 格式:doc
- 大小:303.00 KB
- 文档页数:9
16位全加器电路的设计与实现学生姓名:杨传福指导老师:王新摘要本课程设计主要利用门电路完成一个16位的全加器电路的设计与实现。
本设计采用逐步求解的方法,即先设计一位全加器,再利用一位全加器设计出四位全加器,最后在四位全加器的基础上设计出16位全加器,并使用VHDL语言编写程序,在MAX-PLUSⅡ仿真平台上进行仿真。
仿真结果表明,本课程设计中设计出的16位全加器能正确完成16位二进制数的加法运算。
关键词全加器;门电路;先行进位Abstract:This curriculum design primarily use the gate circuit to complete a 16-bit full-adder circuit.The design solve this problem with step-by-step approach, namely start designing one full-adder, and then use one full-adder design a four full-adder , the last design the 16-bit full-adder based on the four full-adder,and use VHDL language programming, at MAX-PLUS Ⅱsimulation on simulation platform. The simulation results show that the design of the curriculum design of the 16-bit full-adder to add a 16-bit binary number addition operations.Keywords:Full-adder; Gate circuit; First binary1引言1.1课程设计的背景随着计算机科学技术的发展,人们获得信息的途径更加多样,获取信息的速度更加快捷。
MIPS的指令的CPU(14条指令)logisim仿真软件编写⼀、课程设计题⽬基于FPGA(或者Logisim 软件仿真)实验平台,完成16位单周期CPU设计。
⼆、课程设计的⽬的与意义本课程设计综合利⽤计算机组成原理课程所学的理论知识,并结合其单元实验中所积累的计算机部件设计和调试⽅法,设计出⼀台具有⾃定义指令系统的简单计算机系统。
所设计的系统能在基于FPGA(或者Logisim)平台上运⾏⼀段⽤户程序,通过检查程序结果的正确性来判断所设计的计算机系统的正确性。
三、课程设计的内容设计模型机系统的指令系统、总体结构和时序信号。
要求所设计的整机系统能⽀持⾃动和单步运⾏⽅式,能正确地执⾏存放在主存中的⽤户程序,并且对主要的数据流和控制流通过适当⽅式显⽰;验证实验结果。
①该单周期CPU实现的指令如下:(从中⾄少选取10条指令,其余指令可以⾃⼰设计;⾄少要选择1条R-型指令、1条⽴即数运算指令、Load 指令(读)、Store指令(写)、1条分⽀指令和⽆条件转移指令;)表1选取指令及格式指令 15~12 11~10 9~8 7~6 5~3 2~0 指令功能1 or 0 rs rt rd 0 0 $rd = $rs | $rt2 and 0 rs rt rd 0 1 $rd = $rs & $rt3 add 0 rs rt rd 0 2 $rd = $rs + $rt4 sub 0 rs rt rd 0 3 $rd = $rs - $rt5 sllv 0 rs rt rd 0 4 $rd = $rs << $rt 逻辑左6 srlv 0 rs rt rd 0 5 $rd = $rs >> $rt 逻辑右7 srav 0 rs rt rd 0 6 $rd = $rs >> $rt 算术右8 slt 0 rs rt rd 0 7 $rd = ($rs < $rt) ? 1 :010 lui 2 0 rt immediate-u $rt = imm << 811 ori 3 rs rt immediate-u $rt = $rs | imm12 andi 4 rs rt immediate-u $rt = $rs & imm13 addi 5 rs rt immediate-s $rt = $rs + imm14 lw 6 rs rt immediate-s $rt = MEM[$rs + imm]15 sw 7 rs rt immediate-s MEM[$rs+imm] = $rt16 beq 8 rs rt offset-s beq =?17 bne 9 rs rt offset-s bne != ?18 bgt 10 rs rt offset-s bgt >?(有符号⽐较)19 jump 11 jump address jump20 halt 12 0 halt (时钟暂停)②编写⼀段包含所有指令的测试程序,将测试程序的机器语⾔存⼊ROM,运⾏测试程序,并对运⾏结果与理论运算结果对⽐(⽤表格对⽐), 判断每⼀步对错。
评语: 课中检查完成的题号及题数:课后完成的题号与题数:成绩: 自评成绩: 85实验报告实验名称:CPU 与简单模型机设计实验日期:2015.11.17 班级: 2 学号:13 姓名:周小多一、实验目的:1. 掌握一个简单CPU 的组成原理。
2. 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
3. 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
二、实验内容:1.要实现一个简单的CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。
CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1 所示。
这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
2.本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):助记符机器指令码说明IN 0010 0000 IN→R0ADD 0000 0000 R0 + R0→R0OUT 0011 0000 R0→OUTJMP addr 1100 0000 addr→ PCHLT 0101 0000 停机3. 设计一段机器程序,要求从IN 单元读入一个数据,存于R0,将R0 和自身相加,结果存于R0,再将R0 的值送OUT 单元显示。
根据要求可以得到如下程序,地址和内容均为二进制数。
地址内容助记符说明00000000 00100000 ; START: IN R0 从IN 单元读入数据送R000000001 00000000 ; ADD R0,R0R0 和自身相加,结果送R000000010 00110000 ; OUT R0R0 的值送OUT 单元显示00000011 11100000 ; JMP START跳转至00H 地址00000100 0000000000000101 01010000 ; HLT停机三、项目要求及分析:1. 试修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相加;增加存数、取数和减法三条机器指令,指令助记符分别为STA、LAD 和SUB,指令操作码分别为十六进制的60、70和80。
计算机组成原理CPU设计实验报告课程设计题目:16位CPU设计学院: 信息学院班级:电子A班学号:1115102015姓名:方茹1目录1 实验方法 ..................................................................... . (4)2 总体说明 ..................................................................... ................................................. 5 2.1指令系统: .................................................................... .......................... 5 2.1.1指令格式分类(按指令字长和操作数不同): ...................................................... 5 2.1.2具体指令汇总表: .................................................................... .......................... 6 2.1.3相关指令流程图: .................................................................... .......................... 6 2.1.4指令数据通路的构建: .................................................................... ................... 8 2.1.5指令的分组及节拍: .................................................................... ..................... 12 2.1.6指令执行状态图:(见下页)..................................................................... ........... 13 2.1.7具体微指令: .................................................................... ............................... 13 2.2 系统整体介绍 ..................................................................... .................. 16 2.2.1系统基本模块划分 ..................................................................... ....................... 16 2.2.2总体结构图:(见下页)..................................................................... (17)3 CPU的控制逻辑与具体数据通道设计 ..................................................................... ......18 3.1取指令逻辑的设计 ..................................................................... .. (19)3.1.1指令地址的保存 ..................................................................... (19)3.1.2指令存储器 ..................................................................... .................................. 20 3.1.3下一条指令地址的计算 ..................................................................... ................ 20 3.2指令译码逻辑的设计...................................................................... ...................... 21 3.3指令执行逻辑的设计...................................................................... ...................... 22 3.4存储器访问逻辑的设计 ..................................................................... ................... 23 3.5结果写回逻辑的设计...................................................................... ...................... 24 3.6单周期CPU的总成...................................................................... (25)4各部分说明 ..................................................................... .............................................26 4.1ALU .................................................................................................................... 26 4.2数据选择器BUS_MUX ................................................................ ........................ 28 4.3器件T1 ..................................................................... .......................................... 30 4.4标志寄存器FLAG_REG ............................................................... ........................ 31 4.5T2: .................................................................... ................................................ 33 4.6程序计数器PC ..................................................................... ............................... 33 4.7地址寄存器AR和指令寄存器IR: .................................................................... .. 34 4.8寄存器、寄存器组和寄存器的选择.......................................................................36 4.9一位控制信号/WR .................................................................... ........................... 37 4.10 节拍发生器 ..................................................................... .................................. 37 4.11控制逻辑 ..................................................................... ...................................... 39 4.12T3...................................................................... ................................................ 42 4.13REG_OUT ......................................................................................................... 43 4.14存储器 ..................................................................... .......................................... 44 4.15总线选择器 ..................................................................... .. (45)24.16REG_TEST ............................................................... .. (46)5附录: .................................................................... .. (47)附录A:组员分工: .................................................................... .. (47)附录B:组员设计总结: .................................................................... . (47)31 实验方法实验要完成的工作主要包括:指令系统的设计,FPGA-CPU的整体结构设计及其细化,逻辑设计的具体实现(VHDL语言程序的编写),软件模拟,以及硬件调试。
电子科技大学通信学院简化CPU设计2013年9月一、课程设计要求1.设计16位精简指令集CPU指令系统;2.完成精简指令集CPU的结构设计和所有模块的代码编写,并仿真验证;3.编写能够完成加法器﹑流水灯等功能的汇编程序,并翻译成二进制机器码;4.设计CPU外围模块如分频器,存储器和IO接口,并在软件平台上仿真CPU执行程序的完整过程;5.下载工程到FPGA芯片,在硬件资源上实现。
二、设计思路1、CPU指令集系统设计本课程设计所设计的RISC_CPU指令长度为16位,能够处理16位数据,指令中需要操作符,寄存器地址和立即数等字段。
完成立即数数据载入操作需要如下指令:mil:将立即数放在低8位mih:将立即数放在高8位因为一条指令无法载入完整16比特立即数数据,设计指令格式中用于存放立即数的字段为8bits,将16bits数据传递到通用寄存器需要2条指令,“mil R1,I(低8位)”将立即数I 的低8位传递给通用寄存器R1,“mih R1,I(高8位)”将立即数I的高8位传递给通用寄存器R1。
完成存储器或I/O数据载入与存储的操作需要如下指令:lda:载入指定地址数据sta:储存数据到指定地址inp:从端口输入oup:输出到端口因为存储器中有些地址的数据可能是有工程意义的,对这些地址上的数据的处理是必不可少的。
“lda Rd Rs”将通用寄存器Rs的数据作为指定地址,将存储器中该地址上的数据载入到通用寄存器Rd中,“sta Rd Rs”将通用寄存器Rd的数据作为指定地址,将通用寄存器Rs的数据储存到存储器该地址上。
完成通用寄存器阵列内数据运算操作需要如下指令:and:寄存器数据与操作orr:寄存器数据或操作not:寄存器数据非操作shl:左移shr:右移add:寄存器数据相加sub:寄存器数据相减mul:寄存器数据相乘cmp:寄存器数据相比较这些是本CPU设计能够完成的数据处理操作,有3点需要注意:1、所有操作的数据必须储存于通用寄存器中2、乘法运算只能进行8比特数据相乘,溢出则取其低8位数据相乘3、cmp指令的结果会影响标志位,该标志位可作为分支操作的条件,但执行cmp指令之前建议先清除相关标志位。
作业:10、解:对非常简单CPU增加了一条CLEAR指令后的新的状态图如下:其RTL代码如下:FETCH1:AR PCFETCH2:DR M, PC PC+1FETCH3:IR DR[7..6], AR DR[5,0]ADD1:DR MADD2:AC AC+DRAND1:DR MAND2:AC AC^DRJMP :PC DR[5..0]R5 :DR[5] 1 或DR[5] 0INC :AC AC+1CLEAR:AC 011、解:一、确定CPU的用途以下设计的CPU是要用来执行取反运算、加法运算、逻辑或运算、减法运算这四条指令的,而且该CPU能够访问64个字的存储器,每个字为8位宽。
字长:8位D[7....0]寻址范围:64Btye ,2^6=64,A[5....0]二、确定ISA1、程序员可访问的寄存器在下表中,为了完成COM , JREL , OR 和SUB1这四条指令,显然我们只需用到一个通用寄存器AC——8位累加器就可以实现。
指令操作码操作COM 00XX XXXX AC AC' (取反)JRET 01AA AAAA PC PC+00AA AAAAOR 10AA AAAA AC AC^M[00AA AAAA]SUB1 11AA AAAA AC AC—M[00AA AAAA]—12、CPU还需要一些其他的寄存器以便完成取指令(或数据)、译码和执行指令所必须的内部操作,最基本的寄存器有:AR(地址寄存器)——6位,由A[5.....0]向存贮提供地址PC (程序计数器)——6位,指出下一条指令的地址DR(数据寄存器)——8位,通过D[7....0]从存贮器接受指令和数据IR(指令寄存器)——2位,存放从存贮器中取回的指令的操作码部分。
三、为CPU设计状态图为了确定CPU的状态图,需对每条指令作如下分析:1、从存贮器取出指令(所有指令都相同)2、指令译码3、指令执行从存贮器中取出指令:1、原理:根据冯. 诺依曼型机的原理(指令在存贮器中按顺序存放.......), 在CPU能执行指令之前,它必须将这条指令从存贮中取出,CPU通过执行如下的操作序列完成这个任务的:【1】选择存贮单元由A[5... 0]确定【2】对A[5... 0]译码、延迟、并向存贮器发一个信号(如READ或R/W'=1),使存贮器将此指令输出到它的输出引脚。
CPU 设计10 计算机科学与技术姓名:谢xx学号:201040200xx一.非常简单的CPU设计规范:1.确定CPU的用途:该CPU的字长为8位,寻址范围为64个字节,并且要求能实现4条简单的指令。
2.确定ISA:要实现的指令集如下:要实现该CPU的功能,还需要一些寄存器完成取指,译码和执行的步骤:AR(地址寄存器)—6位,由A[7..0]向存贮器提供地址PC (程序计数器) —6位,指出下一条指令的地址DR (数据寄存器) —8位,通过D[7..0]从存贮器接收指令和数据IR (指令寄存器) —2位,存放从存贮器中取回的指令的操作码部分3.为CPU设计状态图:为了确定CPU的状态图,需对每条指令作如下分析:①从存贮器中取指令②指令译码③指令执行二.从存贮器中取指令:⑴原理:根据冯•诺依曼型的原理(指令在存贮器中顺序存放••••••),在CPU能执行指令之前,它必须将这条指令从存贮器中取出,CPU通过执行如下的操作序列完成这个任务:①选择存贮单元由A[5..0]确定②对A[5..0]译码、延迟并向存贮器中发一个信号,使存贮器将此指令输出到它的输出引脚。
这些引脚与CPU的D[7..0]相连接。
CPU从这些引脚读入数据。
⑵具体的操作①要取的指令的地址存放在程序计数器(PC)中。
由于A[5..0]从地址寄存器AR中。
这样,取指令周期的第一个状态就是:FETCH1:AR←PC这一状态的意义是当FETCH为真时,把PC的值送到AR,执行微操作AR←PC,以下同理。
②CPU必须存贮器中读取指令。
为此CPU必须发一个READ信号到存贮器的RD端使存贮器将数据送到D[7..0]上。
同时,CPU读进该数据并放到DR 中,因为DR是用来访问存贮器的唯一寄存器。
同时还实现微操作PC←PC+1,为取下一条指令作准备。
FETCH2:DR←M,PC←PC+1③作为取指令的一部分,CPU还必须完成两件事。
•DR的高2位拷贝到IR,母的是确定指令的功能(即将指令的操作码读入IR)·DR的第六位拷贝到AR。
目录第一部分 EL-JY-II计算机组成原理实验系统介绍 (1)第二部分使用说明及要求 (12)实验一运算器实验 (16)实验二移位运算实验 (25)实验三存储器读写和总线控制实验 (29)实验四微程序控制器原理实验 (38)实验五微程序设计实验 (46)实验六、简单模型机组成原理实验 (55)实验七、带移位运算的模型机组成原理实验 (66)实验八、复杂模型机组成原理实验 (77)实验九、复杂模型机的I/O实验 (91)实验十、具有简单中断处理功能的模型机实验 (101)实验十一、基于重叠和流水线技术的CPU结构实验 (111)实验十二、RISC模型机实验 (120)实验十三、存储器扩展实验 (127)实验十四、可重构原理计算机组成实验 (132)附录、实验用机器指令集 (136)第一部分EL-JY-Ⅱ计算机组成原理实验系统介绍EL-JY-Ⅱ型计算机组成原理实验系统是为计算机组成原理课的教学实验而研制的,涵盖了目前流行教材的主要内容,能完成主要的基本部件实验和整机实验,可供大学本科、专科、成人高校以及各类中等专业学校学习《计算机组成原理》、《微机原理》和《计算机组成和结构》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。
一、基本特点:1、本系统采用了新颖开放的电路结构:(1)、在系统的总体构造形式上,采用“基板+ CPU板”的形式,将系统的公共部分,如数据的输入、输出、显示单片机控制及与PC机通讯等电路放置在基板上,它兼容8位机和16位机,将微程序控制器、运算器、各种寄存器、译码器等电路放在CPU板上,而CPU板分为两种:8位和16位,它们都与基板兼容,同一套系统通过更换不同的CPU板即可完成8位机或16位机的实验,用户可根据需要分别选用8位的CPU板来构成8位计算机实验系统或选用16位的CPU板来构成16位计算机实验系统;也可同时选用8位和16位的CPU板,这样就可用比一套略多的费用而拥有两套计算机实验系统,且使用时仅需更换CPU板,而不需做任何其它的变动或连接,使用十分方便。
《计算机组成原理与接口技术实验》实验报告学院名称:学生姓名:学号:专业(班级):合作者:时间:2016年4月25日成绩:实验二:一.实验目的1.掌握单周期CPU数据通路图的构成、原理及其设计方法;2.掌握单周期CPU的实现方法,代码实现方法;3.认识和掌握指令与CPU的关系;4.掌握测试单周期CPU的方法。
二.实验内容设计一个单周期CPU,该CPU至少能实现以下指令功能操作。
需设计的指令与格式如下:==> 算术运算指令说明:以助记符表示,是汇编指令;以代码表示,是机器指令功能:rd←rs + rt。
reserved为预留部分,即未用,一般填“0”。
功能:rt←rs + (sign-extend)immediate;immediate符号扩展再参加“加”运算。
完成功能:rd←rs - rt==> 逻辑运算指令做“0”扩展再参加“或”运算。
(5)and rd , rs , rt功能:rd←rs & rt;逻辑与运算。
==> 传送指令(7)move rd , rs功能:rd←rs + $0 ;$0=$zero=0。
==> 存储器读/写指令(8)sw rt ,immediate(rs) 写存储器功能:memory[rs+ (sign-extend)immediate]←rt;immediate符号扩展再相加。
(9) lw rt , immediate (rs) 读存储器功能:rt ← memory[rs + (sign-extend)immediate ];immediate 符号扩展再相加。
==> 分支指令(10)beq rs,rt,immediate功能:if(rs=rt) pc ←pc + 4 + (sign-extend)immediate <<2;特别说明:immediate 是从PC+4地址开始和转移到的指令之间指令条数。
immediate 符号扩展之后左移2位再相加。
cbw汇编语言CBW汇编语言是一种基于计算机架构的汇编语言。
它最初是为了在16位CPU的模式下运作而设计的,然而现代的CPU已经不再支持此模式。
然而,CBW仍然是一个有用的编程语言,因为它可以用来编写一些非常简单的程序,这些程序可以在那些不能支持更高级语言的系统上运行。
CBW汇编语言是一种低级别的编译语言,但是却非常强大。
即使它的指令集是非常有限的,但是CBW仍然可以通过一些巧妙的技巧来实现很多的功能。
这使得CBW成为学习计算机架构和操作系统的一个很好的入门语言。
CBW的核心思想是将数据存储在寄存器中。
寄存器是一种在CPU内部使用的小存储设备,可以用来存储数据和内存地址。
CBW的指令集包含了一系列可以操作这些寄存器的指令,这些指令可以用来完成各种不同的任务。
CBW的语法类似于其他汇编语言,但是它的指令集非常有限。
CBW的指令集只包含了大约50个指令,这使得CBW相对于其他汇编语言而言学习难度要低很多。
CBW的语法也非常简单,只需记住一些基本指令即可开始编写程序。
CBW程序的开发过程包括编写、汇编和链接。
首先需要编写程序,然后使用CBW汇编器将程序转换为机器码,最后使用链接器将程序与其他模块合并,生成可执行文件。
CBW编写程序的过程需要依照机器码指令的要求进行。
这意味着不同的机器码有不同的操作指令和结构。
因此,CBW程序员需要深入了解指令集和机器码的知识。
CBW汇编语言可以用于编写各种各样的程序,包括操作系统、驱动程序、系统工具以及一些简单的应用程序等。
虽然CBW已经过时,但是它依然在一些特定的领域有很大的用途,例如嵌入式系统和底层编程等。
总之,CBW汇编语言是一种非常有用的编程语言,虽然它已经过时,但是对于想要深入了解计算机操作系统和编译原理的程序员来说,CBW仍然是一个不错的选择。
即使你不会使用CBW来开发系统级的应用程序,但是掌握其基础知识和理解其工作原理,也会让你在其他编程领域中受益无穷。
简单CPU的设计
设计步骤:
1)确定CPU功能
2)拟定指令系统(采用MIPS)
3)分析指令系统,为数据通路选择合适的组件,并给出组件
所需的控制信号,连接组件建立数据通路
4)详细分析指令在多周期通路中的执行过程,给出指令执行
的流程图
5)依据指令执行的流程图,分析控制信号的取值,生成相应
的状态转换图
一、确定CPU功能
M[2]←M[0]+M[1]
二、拟定指令系统
J类型
4位12位
指令格式中的op(opcode)是指令操作码。
rs(register source)是源操作数的寄存
器号。
rd(register destination)是目的寄存器号。
rt(register target)即可作为源寄
存器号,又可作为目的寄存器号,有具体的指令决定。
func(function)可被认为
是扩展的操作码,Target表示一下个地址开始
注:操作码4位,寄存器字段rs,rt,rd各三位,Fun功能字段3位,Imm立即值字段6位;一共8个寄存器,R0只读不可写,恒为0。
R类型的指令
ADD Rd,Rs,Rt
SUB Rd,Rs,Rt
AND Rd,Rs,Rt
OR Rd,Rs,Rt
XOR Rd,Rs,Rt
I类型的指令
LW Rt, Rs,imm6
SW Rt, Rs,imm6
存放在ROM中的汇编指令,完成M[2]←M[0]+ M[1]
LW R1,0(R0);R1←M[R[0]+0],由于R(0)内容为0,即R1←M[0] LW R2,1(R0);R1←M[R[0]+1],由于R(0)内容为0,即R1←M[1] ADD R3,R1,R2 ; R3←R1+R2
SW R3,2(R0) ; M[R[0]+2]←R3
下面地址对应着rom模块里面
LW表示读取数据,SW表示存储数据,BEQ表示相等就跳转,J表示直接跳转到某个地址
三、根据指令的需求,连接组件,形成多周期的数据通路
irwr,pcwr,regwr,aluoutregwr,memwr,lmdwr:相应组件的写使能控制信号,为1时,有效
Regdst: 为1时选择RD;为0时选择RT.
Signex:为1时扩展器进行符号扩展;为0时扩展器进行零扩展。
Aluselb:为1时选择暂存器B;为0时选择扩展器的输出端。
Alufunc:0000与运算;0001或运算;0010异或;0011取反;0100加;0101减
Memtoreg:为1时选择LMD;为0时选择aluoutput
关键组件
1)寄存器及寄存器组
●设计带复位(清零)、写使能控制功能的16位寄存器(PC),
当复位信号为1时,寄存器输出0,否则,在时钟下降沿且写
使能信号有效时将输入数据传送至输出端。
●设计带写使能控制功能的16位寄存器(ALUO、LMD),在
时钟下降沿且写使能信号有效时将输入数据传送至输出端。
●设计暂存器(暂存器A、B),在时钟下降沿将输入数据传送至
输出端。
●设计指令寄存器(IR), 在时钟下降沿且写使能信号有效时将
输入指令传送至输出端,并且分解出指令的op、rs、rt、rd 、func、imm字段。
●设计由8个寄存器构成的16位通用寄存器组。
通用寄存器组
有两个读口,ReadOne 和ReadTwo分别读出由RegOne和
regTwo指定编号的寄存器中的信息,读操作属于组合逻辑操
作,不需时钟控制;有一个写口,WriteData上的信息写入由
WriteReg指定编号的寄存器中,写操作属于时序逻辑操作,需
要clk时钟信号的控制,在WriteEnable为1的情况下,clk
下降沿完成信息的写入。
图1PC元件图符
图 2 寄存器元件图符
图3暂存器元件图符
图4 IR 元件图符图5 寄存器组的元件图符
2)RAM 及ROM
●设计存储容量为64×16的RAM
写操作为时序逻辑操作,当时钟clock下降沿到来且wren=1的情况下,data开始写入由address指定的存储单元中;读操作为组合逻辑操作,address有效后,q输出address指定的存储单元的内容.
定制初始化数据文件,建立Memory Initialization File(.mif)文件,选择File→New命令,并在New窗口选择Other file
选项,再选择Memory Initialization File选项。
出现如图1
所示的窗口,指定存储容量,字的个数输入64,字长输入
16。
之后,出现如图2所示的窗口,向存储单元中输入初
始化数据,选择地址及存储内容采用16进制。
输入数据后
保存文件,文件名ram1.mif。
初始化0单元数据为90H,1
单元数据为60H。
图1 指定存储容量窗口图2 初始化数据窗口
设计存储容量为64×16的ROM
ROM为只读存储器,读操作为组合逻辑操作,Q输出由ADDRESS指定的存储单元的内容。
3)ALU
设计具有下列功能的16位ALU
ALU的元件图符4)指令执行流程图
5)状态转换图。