西南交通大学计算机组成原理课程设计报告

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

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

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

资源描述

《计算机组成实验C》课程设计适用专业:电子信息类专业专业:软件工程班级:软件一班学号:姓名:某某某指导教师:陈红梅实验学期:2014-2015第1学期西南交通大学信息科学与技术学院目录简化计算机系统的设计.......................................................................................................................2一、实验目的...............................................................................................................................2二.、实验内容...............................................................................................................................2三.、预习要求...............................................................................................................................2四、实验报告...............................................................................................................................21.BLOCK图...........................................................................................................................32.程序设计(纸质的版本我用手抄)...........................................................................43.仿真波形图.................................................................................................................114、仿真中遇到的问题:...................................................................................................14五、实验感想............................................................................................................................15简化计算机系统的设计一、实验目的通过学习简单的指令系统及其各指令的操作流程,用VHDL语言实现简单的处理器模块,并通过调用存储器模块,将处理器模块和存储器模块连接形成简化的计算机系统。二.、实验内容1.用VHDL语言实现简单的处理器模块。2.调用存储器模块设计64×8的存储器模块。3.将简单的处理器模块和存储器模块连接形成简单的计算机系统。4.将指令序列存入存储器,然后分析指令执行流程。三.、预习要求1、学习简单指令集。2、学习各指令的操作流程。四、实验报告1.BLOCK图2.程序设计(纸质的版本我用手抄)CPU的设计:LIBRARYieee;USEieee.std_logic_1164.ALL;PACKAGEmypackISCONSTANTidle:std_logic_vector(3DOWNTO0):=0000;CONSTANTload:std_logic_vector(3DOWNTO0):=0001;CONSTANTmove:std_logic_vector(3DOWNTO0):=0010;CONSTANTaddx:std_logic_vector(3DOWNTO0):=0011;CONSTANTsubp:std_logic_vector(3DOWNTO0):=0100;CONSTANTandp:std_logic_vector(3DOWNTO0):=0101;CONSTANTorp:std_logic_vector(3DOWNTO0):=0110;CONSTANTxorp:std_logic_vector(3DOWNTO0):=0111;CONSTANTshrp:std_logic_vector(3DOWNTO0):=1000;CONSTANTshlp:std_logic_vector(3DOWNTO0):=1001;CONSTANTswap:std_logic_vector(3DOWNTO0):=1010;CONSTANTjmp:std_logic_vector(3DOWNTO0):=1011;CONSTANTjz:std_logic_vector(3DOWNTO0):=1100;CONSTANTread:std_logic_vector(3DOWNTO0):=1101;CONSTANTwrite:std_logic_vector(3DOWNTO0):=1110;CONSTANTstop:std_logic_vector(3DOWNTO0):=1111;ENDmypack;LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEWORK.mypack.ALL;------------------------cpu实体声明---------------------------------ENTITYcpuISPORT(reset:INstd_logic;--清零信号低有效clock:INstd_logic;--时钟信号Write_Read:OUTstd_logic;--读写信号,'1'为写M_address:OUTstd_logic_vector(11DOWNTO0);--地址线M_data_in:INstd_logic_vector(7DOWNTO0);--数据输入线M_data_out:OUTstd_logic_vector(7DOWNTO0);--数据输出线overflow:OUTstd_logic);--溢出标志ENDcpu;------------------------cpuRTL级行为描述--------------------------------ARCHITECTURERTLofcpuISSIGNALIR:std_logic_vector(15DOWNTO0);--指令寄存器SIGNALMDR:std_logic_vector(7DOWNTO0);--数据寄存器SIGNALMAR:std_logic_vector(11DOWNTO0);--地址寄存器SIGNALstatus:integerRANGE0TO6;--状态寄存器BEGINstatus_change:PROCESS(reset,clock,status)BEGINIFreset='0'THENstatus=0;ELSIFclock'EVENTANDclock='0'THENCASEstatusISWHEN0=status=1;WHEN1=IFIR(15DOWNTO12)=StopTHENstatus=1;ELSEstatus=2;ENDIF;WHEN2=CASEIR(15DOWNTO12)ISWHENRead|Write|Jmp|Jz|Swap=status=3;WHENOTHERS=status=0;ENDCASE;WHEN3=IFIR(15DOWNTO12)=SwapTHENstatus=0;ELSEstatus=4;ENDIF;WHEN4=status=5;WHEN5=CASEIR(15DOWNTO12)ISWHENRead|Write=status=6;WHENOTHERS=status=0;ENDCASE;WHENOTHERS=status=0;ENDCASE;ELSENULL;ENDIF;ENDPROCESSstatus_change;seq:PROCESS(reset,clock)VARIABLEPC:std_logic_vector(11DOWNTO0);--程序计数器VARIABLER0,R1,R2,R3:std_logic_vector(7DOWNTO0);--通用寄存器VARIABLEA:std_logic_vector(7DOWNTO0);--临时寄存器VARIABLEtemp:std_logic_vector(8DOWNTO0);--临时变量BEGINIF(reset='0')THEN--清零IR=(OTHERS='0');PC:=(OTHERS='0');R0:=(OTHERS='0');R1:=(OTHERS='0');R2:=(OTHERS='0');R3:=(OTHERS='0');A:=(OTHERS='0');MAR=(OTHERS='0');MDR=(OTHERS='0');ELSIF(clock'eventANDclock='1')THENoverflow='0';CASEstatusISWHEN0=--状态0IR=M_data_in&00000000;--取指令PC:=PC+1;--程序计数器加1WHEN1=--状态1IF(IR(15DOWNTO12)/=stop)THENMAR=PC;ENDIF;CASEIR(15DOWNTO12)ISWHENload=R0:=0000&IR(11DOWNTO8);WHENshlp|shrp=CASEIR(11DOWNTO10)IS--RxtoAWHEN00=A:=R0;WHEN01=A:=R1;WHEN10=A:=R2;WHENOTHERS=A:=R3;ENDCASE;WHENMove|addx|subp|andp|orp|xorp|Swap=CASEIR(9DOWNTO8)IS--RytoAWHEN00=A:=R0;WHEN01=A:=R1;WHEN10=A:=R2;WHENOTHERS=A:=R3;ENDCASE;WHENOTHERS=NULL;ENDCASE;WHEN2=--状态2CASEIR(15DOWNTO12)ISWHENaddx=--Rx:=Rx+A;CASEIR(11DOWNTO10)ISWHEN00=temp:=(R0(7)&R0(7DOWNTO0))+(A(7)&A(7DOWNTO0));R0:=temp(7DOWNTO0);overflow=temp(8)XORtemp(7);WHEN01=temp:=(R1(7)&R1(7DOWNTO0))+(A(7)&A(7DOWNTO0));R1:=temp(7DOWNTO0);overflow=temp(8)XORtemp(7);WHEN10=temp:=(R2(7)&R2(7DOWNTO0))+(A(7)&A(7DOWNTO0));R2:=temp(7DOWNTO0);overflow=temp(8)XORtemp(7);WHENOTHERS=temp:=(R3(7)&R3(7DOWNTO0))+(A(7)&A(7DOWNTO0));R3:=temp(7DOWNTO0);overflow=temp(8)XORtemp(

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

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

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

×
保存成功