欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机组成原理课程设计—基于微程序控制器的简单计算机系统设计与实现.doc

    • 资源ID:853318       资源大小:3.13MB        全文页数:56页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机组成原理课程设计—基于微程序控制器的简单计算机系统设计与实现.doc

    1、目 录1 课程设计概述71.1 课设目的71.2 设计任务71.3 设计要求82 实验原理与环境92.1 实验原理92.2 实验环境93 总体方案设计103.1 需求分析103.2 硬件设计103.3 软件设计164 详细设计与实现184.1 选用芯片184.2 硬件实现244.3 软件实现305 实验过程与调试485.1 仿真XXX485.2 主要故障与调试495.3 功能测试515.4 实验流程图536 设计总结与心得556.1 课设总结556.2 课设心得57参考文献59附录 (实验电路大图及部分重要的图)附在纸质档后面1、课程设计概述1.1课设目的计算机组成原理是计算机专业的核心专业基

    2、础课,也是作为计算机专业的学生应该要好好掌握的重要学科。课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,考验同学的创新思维,而且通过进行设计及实现,进一步提高分析和解决问题的能力。再者,组成原理课设也是对学生们一个学期的学习成果的检验和巩固,也是同学们提高分析、定位、排错能力的一次机会。1.2设计任务计算机系统设计的总体目标是设计模型机系统的总体结构、指令系统和时序信号。在对该模型机系统中的部件功能利用EDA软件的仿真功能进行仿真分析和功能验证的基础上,将部分电路下载到FPGA,并与适当的外围器件(包括部分芯片、输入/输出开关、LED显示等)相配合,实现模型机的主机系统。要求所设

    3、计的主机系统能支持自动和单步运行方式,能正确地执行存放在主存中程序的功能,对主要的数据流和控制流通过LED适时显示信息。具体如下:l 设计微程序控制器或硬布线控制器或基于微程序和硬布线相结合方式的CPU控制器;l 利用所设计的CPU组成一台功能完整的模型机并基于实验平台实现.要求部分功能利用FPGA实现,部分功能用芯片连接实现;l 所设计的模型机支持加法减运算等基本的算术运算指令、支持逻辑运算类指令、支持存储器读写指令、支持寄存器间数据传送等几类指令、支持定点数的溢出判断;l 支持立即数寻址、直接寻址、隐含寻址、间接寻址(寄存器寻址)等几种基本的寻址方式;l 能支持10条以上的指令;l 能运行

    4、由自己设计的CPU所支持的指令系统构成的一段程序,程序执行功能正确;l 根据课程设计指导书和本次课程设计的具体要求,制定出设计方案。确定CPU 的基本结构是采用总线方式还是采用专用通路方式;l 画出自己所设计计算机系统的原理框图和器件连接图,分析器件连接图中各器件不同引脚的功能,哪些可以固定连接,哪些需要通过微程序来控制,以及这些控制信号的有效形式;l 画出各指令的指令周期流程图和所需要的控制信号;l 布线、调试、验收; l 鼓励完成上述基本功能的基础上进行适当扩展,比如支持流水线、支持其他寻址方式等。1.3设计要求根据理论课程所学的至少,设计出简单计算机系统的总体方案,结合各单元实验积累和课

    5、堂上所学知识,选择适当芯片,设计简单的计算机系统,具体要求如下:l 利用各单元实验和课堂上所学知识,选择适当的芯片,设计简单的计算机系统;l 在完成数据通路设计并验证数据通路功能的基础上增加指令和微指令控制的功能;l 以手动方式产生各指令执行过程中所需要的微命令,控制指令的执行;l 以自己所设计的计算机系统为硬件环境,设计出完成指定功能的各指令周期流程图,并设计出相应的微命令;l 设计时序列电路,产生满足指令周期和指令执行所需要的多级时序信号;设计控存,将各指令的微程序存放在CM中,经过适当的时序控制,通过微程序自动控制指令的执行(当采用微程序控制器时)。2、实验原理与环境2.1实验原理计算机

    6、组成原理,数字逻辑, FPGA(Field Programmable Gate Array)现场可编程门阵列 、QUARTUS仿真等2.2实验环境JZYLII型计算机组成原理试验台,windows xp系统,512M内存电脑电脑一台,Quartus II 6.0版软件,导线若干。3、总体方案设计3.1需求分析在这次计算机系统设计中,我们需要根据计算机的各个部件先画出总的框图,然后在框图的基础上选择适当的芯片实现各自的功能,主要先实现运算器部分,保证运算的正确性,然后设计存储部分,选择主存和控存是合并还是分开,然后设计对应的微指令,用手动操作检验后,进行设计时序电路,转成自动执行。3.2硬件设计

    7、3.2.1总体设计本次我们采用的方案是微程序控制,且主、控存分开的方案,即采用微程序控制方式,实现主存储器(MM)和微程序控制存储器(CM)不共用一个存储器的方式完成方案的设计。同时在实施的过程中,采用部分电路用FPGA方式下载、部分电路用硬件搭建的方式完成,其中运算器和存储器部分由硬件搭线完成,主存使用6116芯片实现,控存与主存分开,使用2816芯片实现,然后时序控制部分选择用FPGA方式下载,最后汇总在一起,形成实现所有功能的整体计算机系统。总体结构图如图 3.1所示。MM(6116)DR2(373)输 出 控 制 信 号181181CM(2816)CM(2816)DR1(373)AC(

    8、373)PC(395)UP244DOWN244IR(373)244157PC(161)图 0.1 总体结构图3.2.2运算通路由181作运算,373锁存组合成的电路,其中包括了AC,DR1,DR2等设计如图3.2所示几点说明(包括选择芯片的理由及引脚连接情况):MM(6116)DR2(373)181181DR1(373)AC(373)UP244DOWN244244157图 0.2 运算器图3.2.3存储通路 :由6116作主存。2816作控存的主控存分开方式如图3.3所示输 出 控 制 信 号CM(2816)CM(2816)PC(395)MM(6116)IR(373)157244PC(161)

    9、图 0.3 存储器图3.2.4选择电路 如图3.4所示为方便置数,直接让指令的数据部分与161的输入相连157PC(161)图 0.4 选择通路图3.2.5时序控制:通过各种控制点设计而出如图3.5所示图 0.5 时序控制图3.3软件设计3.3.1机器指令系统设计本次指令设计格式遵循常见指令格式设计原则,机器指令共占8位,其中高四位为操作码OP,低四位为操作数地址ADDR,见下表描述:74位30位OPADDR指令寻址方式设计l 顺序寻址:根据PC(74LS161)计数器自动增1,顺序读取下一条指令;l 跳跃寻址:根据PC(74LS161)的PC-SET功能,依照跳跃指令内容往计 数器中预置打入

    10、数据,从而跳转到相应地址。操作数寻址方式设计l 寄存器寻址:利用AC(74LS373)寄存器进行寻址;l 直接寻址:根据指令中的ADDR所指向的地址得到主存相应数据;l 隐含寻址:利用AC(74LS373)寄存器,对于需要双操作数的机器指令只提供一个操作数,另一操作数隐含在AC中。3.3.2微指令设计微指令设计思想:此次设计共决定选取12条指令,分别是取址公操作、store存储指令、load导入指令、jump跳转指令、加、减、与、或、非、地址非、异或等运算指令,以及最后的停机指令。指令采用双周期、自动执行。微指令设计方案:根据具体的电路原理决定采取16个微程序控制点,然后通过对各个控制点的值来

    11、实现对微指令的编码(即各个控制点的值取0或1),不同的指令所对应的各个控制点的编码会有不同。微指令设计流程:因为事先必须确定好电路才能得出各个控制点,因此根据完整的电路的各个可控信号确定了16个控制点,在这个过程中,实际有的控制点不止16个,因此我们采取了一些措施,部分控制点合并,另外一些改成了直接采用节拍控制,最终将控制点的数目控制在了16个,然后设计了取址公操作部分各个控制点的值,形成了取址公操作的编码,然后在此基础上修改各个控制点的值,形成了一个大概的指令编码表,然后在实践中检验、纠错、修改,最后得到完整的微指令设计表。微程序设计 对于每条指令都设计了相应的汇编程序来进行检验,将汇编程序

    12、设计好,然后改写成计算机所能识别的二进制形式,事先将二进制程序存入内存的芯片中,然后开始执行检验即可。对于各条指令的微程序要考虑到指令的控制点编码,以及控制它的地址,还有内存中的存储数据的部分。将微程序分为两段,一段是所执行的操作,另一段是操作数。而每一行代码又可分为3部分,比如我们设计的微程序地址四位,数据八位,指令八位,因此我们的程序中,前四位二进制数字表示程序执行的地址,即PC计数器的内容,后八位是指令,指令的前四位对应的是操作码,需送入控存译码,进而得到具体操作,后四位是数据地址,返送回内存读取数据。各个指令所对应的微程序具体还是不同的,在后面会有详细说明。4、 详细设计与实现4.1

    13、所选用芯片1. 74LS181系统使用了2片181芯片作为ALU,用于8位的运算器,负责执行阶段的各种运算。181芯片引脚图及引脚说明如Error! Reference source not found.表4.1 74181芯片引脚及其引脚说明2、74LS157如图4.2所示表4.2 74167芯片引脚及其引脚说明3、74LS161如图4.3所示表4.3 74161芯片引脚及其引脚说明4、74LS395如图4.4所示表4.4 74181芯片引脚及其引脚说明5、6116如图4.5所示表4.5 6116芯片引脚及其引脚说明6、2816如图4.6所示表4.6 2816芯片引脚及其引脚说明7、74LS

    14、244如图4.7所示表4.7 74LS244芯片引脚及其引脚说明8、74LS373如图4.8所示表4.8 74181芯片引脚及其引脚说明4.2硬件实现4.2.1硬件原理图本次我们采用的方案是微程序控制,且主、控存分开的方案,即采用微程序控制方式,实现主存储器(MM)和微程序控制存储器(CM)不共用一个存储器的方式完成方案的设计。同时在实施的过程中,采用部分电路用FPGA方式下载、部分电路用硬件搭建的方式完成,其中运算器和存储器部分由硬件搭线完成,主存使用6116芯片实现,控存与主存分开,使用2816芯片实现,然后时序控制部分选择用FPGA方式下载,最后汇总在一起,形成实现所有功能的整体计算机系

    15、统。具体的电路设计图如图4.9所示:图4.9 系统总框架引脚图4.2.2运算通路实现运算器部分电路是采用硬件连线实现的,但是原价努力图还是用Quartus设计的,并且为了检验其正确性,也进行了仿真.设计图如4.10所示:图4.10 运算器电路的图4.2.3存储器部分实现此部分通路中,主要为一片6116做主存,其IO输出数据通过一片373缓冲然后经过一片157选择高四位送给作为寄存器的395芯片,然后送入作为控存的2816芯片中,低四位作为数据地址传回内存,读取操作数。如图4.11所示图4.11 存储器电路引脚图4.2.4选择电路的实现采用了157芯片作为选择控制,从161芯片或者是作为IR的3

    16、73芯片的两个输出中选择一个作为其输出。如图4.12所示图4.12 选择通路电路引脚图4.2.5时序电路的实现根据具体的控制信号得出的时序电路图,用16个控制点与节拍信号作为输入,通过各种逻辑门实现逻辑运算,最后将其输出作为控制开关的信号来实现各条指令。如图4.13所示图 4.13 时序电路图4.3软件实现4.3.1机器指令系统实现本次指令设计格式遵循常见指令格式设计原则,机器指令共占8位,其中高四位为操作码OP,低四位为操作数地址ADDR指令寻址方式设计l 顺序寻址:根据PC(74LS161)计数器自动增1,顺序读取下一条指令;l 跳跃寻址:根据PC(74LS161)的PC-SET功能,依照

    17、跳跃指令内容往计 数器中预置打入数据,从而跳转到相应地址。操作数寻址方式设计l 寄存器寻址:利用AC(74LS373)寄存器进行寻址;l 直接寻址:根据指令中的ADDR所指向的地址得到主存相应数据;l 隐含寻址:利用AC(74LS373)寄存器,对于需要双操作数的机器指令只提供一个操作数,另一操作数隐含在AC中。1指令格式本次指令设计格式遵循常见指令格式设计原则,机器指令共占8位,其中高四位为操作码OP,低四位为操作数地址ADDR,见表4.14描述:74位30位OPADDR表 4.14 系统指令格式指令格式编码及其格式说明如表4.15所示:指令全称指令地址指令功能LOAD ADDR0001取操

    18、作数指令,将ADDR所指向的内存单元中的操作数取出,然后打入AC中STORE ADDR0010回存指令,将计算结果回存打入地址ADDR所指向的内存单元MM中JMP ADDR0011跳转指令,使程序跳转到地址ADDR所指向的单元,然后读取下一条指令(依赖PC)ADD ADDR0100加法指令,实现(AC)加(ADDR),且将结果打入ACSUB ADDR0101减法指令,实现(AC)减(ADDR),且将结果打入ACAND ADDR0110与指令,实现(AC)&(ADDR),且将结果打入ACOR ADDR 0111或指令,实现(AC)&(ADDR),且将结果打入ACNOT ADDR1000取反指令,

    19、实现,且将结果打入ACNOT1001取反指令,实现,且将结果打入ACA异或B1010异或指令,实现(AC)异或(ADDR),且将结果打入ACA加A1011乘2指令,实现(AC)加(AC),且将结果打入ACEND1100结束指令,程序终止运行表4.15 指令格式说明表2、指令周期流程图如下图4.16所恨死图 4.16 指令流程图具体的指令流程1、 LOAD指令,如图4.17所示RDBUSbusLDACAR清零PCMMRD、LDIR;IRAAR开始PC+1PCIRBMM取指公操作M1M24.17 LOAD指令流程图2、 STORE指令,如图4.18所示M1AR清零PCMMRD、LDIR;IRAAR

    20、开始PC+1PCIRBMM传数ALDDR2busBUSWR取指公操作M2图4.18 STORE指令流程图3、 JMP指令如图4.19所示AR清零PCMMRD、LDIRIRAAR开始PC+1PCIRBPC取指公操作M1M2图4.19 JMP指令流程图4、END指令如图4.20所示M2AR清零PCMMRD、LDIR;IRAAR开始PC+1PCSTOP停止M1图4.20 END 指令流程图5、ADD指令如图4.21所示注:所有的双操作数运算指令均和ADD相同M1LDACAR清零PCMMRD、LDIR;IRAAR开始PC+1PCIRBMMRDBUSbusLDDR1ADDLDDR2取指公操作M2图4.2

    21、1 ADD 指令流程图6、NOT (A)指令如图4.22所示注:所有单操作数指令均同此,如A加AM2AR清零PCMMRD、LDIR;IRAAR开始PC+1PCNOT ALODR2LDAC取指公操作M1图4.22 NOT(A) 指令流程图4.3.2微指令实现1、 控制信号选择 运算器部分:如表4.23所示 名称功能所属芯片DR2_G使能端,控制DR2是否为锁状态74LS373DR2_CtrlDR2输出控制74LS373M运算器运算控制74LS181S0运算器运算控制74LS181S1运算器运算控制74LS181S2运算器运算控制74LS181S3运算器运算控制74LS181AC_G使能端,控制A

    22、C是否为锁状态74LS373DR1_G使能端,控制DR1是否为锁状态74LS373Up_244上行244输出控制端74LS244Down_244下行244输出控制端74LS373表4.23 运算器部分控制点选择 主、控存部分:如表4.24所示名称功能所属芯片WE控制主存MM的读写状态CMOS静态RAM 6116IR_G使能端,控制IR是否为锁状态74LS373S1控制选择IR的IRA(高)或IRB(B)74LS157PC_ 控制PC的预置功能74LS161PC_CP控制PC的时钟,实现计数功能74LS161AR_CP控制AR的时钟,实现装入数据74LS395AR_控制AR的清零端74LS395

    23、表4.24 主控存部分控制点选择 默认部分:如表4.25所示名称状态功能所属芯片AC_CtrlL(常接低)AC输出控制有效74LS373DR1_CtrlL(常接低)DR1输出控制有效74LS373IR_CtrlL(常接低)IR输出控制有效74LS373MM_L(常接低)输出控制6116MM_L(常接低)片选有效6116157_L(常接低)使能有效74LS157PC_或开关手自动控制清零74LS161PC_CEP/CET与PC_ 连接协同控制74LS161AR_PEH(常接高)置数功能有效74LS395CM_L(常接低)片选有效2816CM_ H(常接高)常读状态2816表4.25 默认部分控点

    24、H/L控制 时序部分: STOP ,控制时序停止2、 指令周期设计每条指令包含两个机器周期,其中第一个用于取指令,用M1标识,第二个用于执行指令,用M2标识;每个机器周期包含4个T周期,分别为T1、T2、T3、T4,对于所有的指令,设计了取指公操作,则其第一个机器周期都一样,即进行取指公操作,第二个机器周期则执行对应的指令功能。3、时序产生设计选择JZYL型计算机组成原理实验台左半边的时序电路部分,通过其中的T1、T2、T3、T4来作为时序控制中的T1T4,同时通过一片正沿 双D触发器74LS74和一片反相器74LS04作为产生时序控制中所需的M1与M2(其中 =M2);其时序部分的接线如下:

    25、T1、T2、T3、T4:接逻辑控制电路的输入;START:接脉冲P1;STOP:接微指令设计中的第一位C0;CLK:接某一频率控点;SEL:接地,持续产生T1、T2、T3、T4;M1、M2:接逻辑控制电路的输入。如图4.26所示CLKT47404QM1M274LS74D触发器CLRD图4.26 双周期实现4、 微指令流程设计 :取指公操作:处于M1内(其中表内L为低,H为高);如表4.27T节拍功能或所需数据流向所需控制信号值T1AR清零R_395=LT2PCMMS1=LT3RD;LDIR;PC+1PC; =H;IR_G=H;PC_CP=();T4IRAARS2=L,AR_()表4.27 取指

    26、公操作设计流程 :LOAD指令(M1同取指公操作,只列出M2的设计):如表4.28T节拍功能或所需数据流向所需控制信号值T1IRBMMS2=S1=HT2RD;BUSbus;LDAC; =H;Up_244=L;AC_G=H;T3空空T4空空表4.28 LOAD指令设计流程 :STORE指令(M1同取指公操作,只列出M2的设计):如表4.29T节拍功能或所需数据流向所需控制信号值T1IRBMMS2=S1=HT2空空T3传操作数A;LDDR2;(S3,S2,S1,S0,M,)=(LLLLLH);DR2_G=H,DR2_Ctrl=L;T4DR2out;busBUS;WR;DR2_G=L,DR2_Ctr

    27、l=L;Down_244=L; =L;表4.29 STORE指令设计流程 :JMP指令(M1同取指公操作,只列出M2的设计):如表4.30T节拍功能或所需数据流向所需控制信号值T1IRBPCPC_ =L(PC_CEP/CET=L)T2空空T3空空T4空空表4.30 JMP指令设计流程 :ADD指令(M1同取指公操作,只列出M2的设计):如表4.31注:所有双操作数指令(SUB,AND,Fab,NOT D,等)流程均同ADD,区别只是(S3,S2,S1,S0,M,)序列值不同而已,此处不再赘述,类比即可。T节拍功能或所需数据流向所需控制信号值T1IRBMMS2=S1=HT2RD;BUSbus;L

    28、DDR1; =H;Up_244=L;DR1_G=H;T3ADD;LDDR2;(S3,S2,S1,S0,M,)=(HLLHLH);DR2_G=H,DR2_Ctrl=L;T4DR2out;LDAC;DR2_G=L,DR2_Ctrl=L;AC_G=H;表4.31 ADD指令设计流 :NOT(A)指令(M1同取指公操作,只列出M2的设计):如表4.32注:所有单操作数指令(乘2等)流程均同该指令,区别只是(S3,S2,S1,S0,M,)序列值不同而已,此处不再赘述,类比即可。T节拍功能或所需数据流向所需控制信号值T1空空T2空空T3NOT A;LDDR2;(S3,S2,S1,S0,M,)=(LLLLH

    29、L);DR2_G=H,DR2_Ctrl=L;T4DR2out;LDAC;DR2_G=L,DR2_Ctrl=L;AC_G=H;表4.32 NOT(A)指令设计流 :END指令(M1同取指公操作,只列出M2的设计):如表4.33T节拍功能或所需数据流向所需控制信号值T1STOPC0(STOP)=1T2空空T3空空T4空空表4.33 END指令设计流5、 逻辑表达式 因为很多符号无法直接打出(如作为非的上划线等),在这里直接用纸质上的截图来作为参考:4.3.3微程序的设计 :微指令格式:如表4.34微指令共设计了16位,并且全部投入使用,共有16位微指令控制信号,微地址为4位,可以存放16位微指令,

    30、满足使用需求,具体设计如下:序列C15C14C13C12C11C10C9C8C7C6C5C4C3C2C1C0功能STOPLOAD161_置数DR2_CONTDR2_GAC_GDR1_GDOWN_244UP_244S3S2S1S0MCn6116-WE有效值001100011XXXXXX0表4.34 微指令格式设计 :控制存储器内容:如表4.35指令存入主存和控存中,如下所示指令地址C15STOPC14LOADC13161_置数C12DR2_CONTC11DR2_GC10AC_GC9DR1_GC8DOWN_244C7UP_244C6S3C5S2C4S1C3S0C2MC1CnC06116_WE取址0

    31、0000 011000110000010LOAD00010111010100000010STORE00100010100010000011JMP00110001000110000010ADD01000010111101001010SUB01010010111100110000AND01100010111101011110或01110010111101110110NOTD10000010111100101110NOT10010010110110000110异或10100010111100110110乘210110010111111100010END11001011000100000010表4.3

    32、5 存储的指令表4.3.4测试程序1、检测逻辑运算(1+2-2)&3Load 1 0000 0001 0101加 2 0001 0100 0110减 2 0010 0101 0111AND 3 0011 0110 1000END 0100 1100 1111操作数A =1 0101 0000 0001操作数B =2 0110 0000 0010操作数C =2 0111 0000 0010操作数D =3 1000 0000 0011最后结果为12、 检测store/JumpLoad 0000 0001 1100Store 0001 0010 1111Jump 0010 0011 0111 Sto

    33、re 0111 0010 1110End 1000 1100 1111地址原来存的数 1100 1010 1010 1110 0000 0000 1111 0000 0000指令执行完后 地址存的新数据:1100 1010 10101110 1010 10101111 1010 1010并且成功看到PC数值的变化,即完成了跳转! 5、实验过程与调试5.1仿真实验中的时序电路部分采用了波形仿真,主要用于检验电路能否实现预期的效果,出现问题也主要是根据波形仿真去发现错误然后改正,对于时序电路的仿真图5.1所示:图 5.1 时序仿真图5.2主要故障与调试5.2.1故障1双周期运行不正常解决:当初在时

    34、序设计中,我们决定采用的是双周期来实现指令,并且在波形仿真时得到了完全正确的结果,但是在下载后具体连线检验时,发现了问题,双周期的运行并不对,M1周期比M2周期长很多,准确是M2很短,然后我们仔细对比后,发现是M2没有实现完整的4个节拍,经过一系列排错,发现是时序电路的信号有问题,T0节拍并不灵敏,单独用灯检测是发现T0节拍的灯并不是蓝红交错的闪烁,而是蓝一下,然后暗了,后来换了一个节拍,发现双周期待运行正常了!5.2.2故障2 AC累加器显示灯有信号冲突当我们连接完整个运算器部分,然后检测电路的正确性时,发现了AC的接出灯的红灯很暗,而蓝灯很正常,因此认为产生了信号冲突,于是开始对整个电路进

    35、行检查,发现电路连接正常,并且373的使能端和244的高阻端控制也很正确,但是信号冲突一直存在着,即使是换过一些数据结果也会出现相应的情况,最后检测芯片时,发现时181芯片的输入端有信号输出,于原来的输入产生了冲突,最后问老师才知道181芯片在通电时偶尔会出现这样的情况,换了181芯片后问题终于得到了解决!5.2.3故障3 load指令导致其他指令运行不正确我们设计指令时,因为得到的控制点数目超过了16,所以有一些控制点选择了接到节拍信号上,所以随着节拍信号,一些开关也是随之每条指令都会打开,我们的load指令的微程序控制便是因为连接的节拍,导致了一些运算指令因为373的使能和244的高阻打开

    36、的不是时候而出现了一系列问题,最后重新合并了一些控制结点,将load单独做了一个控制位才使问题解决!5.2.4故障4Quartus无法编译原理图在设计完原理图,用Quartus编译时,发现有错误,发现是因为已经过了使用期限,因此无法正常使用,最后发现了两个办法解决问题:第一、使用教程中的破解方法生成一个license。dat文件进行破解,具体操作见教程;第二种方法较简单,就是直接修改计算机的时间,向前调一段很长的时间,这样软件可以正常进行编译了。5.2.5故障5FPGA下载出问题在设计完时序电路后用FPGA进行下载,但是出现了一些问题,修改过原理图后还是无法将其下载进去,实际运行的还是原来的原

    37、理图,这让我们百思不得其解,老师对这个也不是很拿手,最后细心的同学提示是quartus中下载要修改一些文件,比如q6.0&dsp&mega这个文件,就要将文件中的序列号改成我们主机中quartus的序列号,这样才能正常下载。5.2.6 故障6执行store指令时,数据无法正常写入在依次检查各条指令的执行情况时,发现有两条指令的执行有问题,其中之一就是store指令,发现数据无法正常写入,例如本来想向0000地址写入数据10001001,但是在检查时发现0000地址存的并不是100001001,而是11111111,而后发现无论往该地址存什么数据,结果都是11111111不变,于是我们觉得是数据

    38、并没有写入,于是检查了指令的执行过程,最后发现在微程序的控制上有问题,当6116在写时,373置成了高祖状态,因此才会写入的是11111111,最后修改了微程序的执行节拍,将其分开,然后发现结果正确! 5.2.6 故障7执行JUMP指令时,并没有跳转我们设计的指令中有两条出了问题,另外一条便是JUMP指令了,无法跳转,从仿真图上来看,应该是可以正常跳转的,但是结果就是不对,这让我和搭档非常郁闷,单独将芯片接出来检测,发现手动控制可以实现直数功能,即芯片本身并没有问题,但自动执行的时候会出错,仔细研究了161芯片后,我们发现关于跳转的实现是要两个信号控制一个是cp脉冲,一个控制开关,于是我们讨论

    39、是不是上升沿给的不是时候,于是将CP信号由本来的一个节拍延长到两个节拍,让其可以完全覆盖到整个控制开关的变化,最后结果正确了5.3功能测试在本次课程设计中,我们能够根据具体的运算式写出系统运行的程序,一般要求所设计的机器指令中包含了运算式的所有运算要求,倘若没有包含的话(如异或运算等等),需要重新写控存CM,操作比较麻烦,但是其实现思路非常简单,只需通过两个74LS244直接操作对2816进行写入即可,写完再调整2816为读状态,便可实现后续功能。经过测试,完全能够实现此项操作。下面就以本次课程设计中检查时老师给我出的测试题目为例,分析程序设计的过程和方法。其余程序均可按照下述方法和步骤进行设计,不在赘述。题目:(8+7非)加8 + 9异或6乘2与6减7程序流程为:如表5.2所示地址顺序所执行的指令0开始1LOAD 82Fab 73ADD 84或 95异或 66乘 27与 68减 79END表5.2内存内容为:如表5.3所示内存地址内存数据解释00000000 0000开始00010001 1010LOAD 800101101 1011Fab 700110100 1010ADD 801000111 1100或 901011010 1101异或 601101011 1110乘 201110110 1101与 610000101 1011减 710011100 1110


    注意事项

    本文(计算机组成原理课程设计—基于微程序控制器的简单计算机系统设计与实现.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922