计算机组成原理 8位实验CPU设计与实现

  • E1_379343
    了解作者
  • C/C++
    开发工具
  • 1.2MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-02-24 11:07
    上传日期
1. 深入掌握CPU的工作原理,包括ALU、控制器、寄存器、存储器等部件的工作原理; 2. 熟悉和掌握指令系统的设计方法,并设计简单的指令系统; 3. 理解和掌握小型计算机的工作原理,以系统的方法建立起整机概念; 4. 理解和掌握基于VHDL语言和TEC-CA硬件平台设计模型机的方法。 二、设计要求   参考所给的16位实验CPU的设计与实现,体会其整体设计思路,并理解该CPU的工作原理。在此基础上,对该16位的实验CPU(称为参考CPU)进行改造,以设计得到一个8位的CPU。总的要求是将原来16位的数据通路,改成8位的数据通路,总的要求如下: 将原来8位的OP码,改成4位的OP码; 将原来8位的地址码(包含2个操作数),改成4位的地址码(包含2个操作数)。   在上述总要求的基础上,对实验CPU的指令系统、ALU、控制器、寄存器、存储器进行相应的改造。具体要求如下: 修改指令格式,将原来指令长为16位的指令格式改成8位的指令长格式; 设计总共16条指令的指令系统。此指令系统可以是参考CPU指令系统的子集,但参考CPU指令系统中A组和B组中的指令至少都要选用2条。此外,常见的算术逻辑运算、跳转等指令要纳入所设计的指令系统; 设计8位的寄存器,每个寄存器有1个输入端口和2个输出端口。寄存器的数量受控于每一个操作数的位数,具体要看指令格式如何设计; 设计8位的ALU,具体要实现哪些功能与指令系统有关。设计时,不直接修改参考CPU的VHDL代码,而是改用类似之前基础实验时设计ALU的方式设计; 设计8位的控制逻辑部件,具体结合指令功能、硬布线逻辑进行修改; 设计8位的地址寄存器IR、程序计数器PC、地址寄存器AR; 设计8位的存储器读写部件。由于改用了8位的数据通路,不能直接采用DEC-CA平台上的2片16位的存储芯片,需要按照基础实验3的方法设计存储器。此种方法不能通过DebugController下载测试指令,因此测试指令如何置入到存储器中是一个难点。设计时,可以考虑简单点地把指令写死在存储器中(可用于验证指令的执行),然后用只读方式读出来;或者考虑在reset的那一节拍里,实现存储器中待测试指令的置入; (可选项)设计8位的数据寄存器DR; (可选项)不直接设计存储器RAM,而是采用DEC-CA平台上的2片16位的存储芯片.在实现了第9个要求的基础上,实现由Debugcontroller置入待测试指令; (可选项)顶层实体,不是由BDF方式画图实现,而是用类似基础实验4(通用寄存器组)中设计顶层实体的方式,用VHDL语言来实现。 (可选项)自己设想   利用设计好的指令系统,编写汇编代码,以便测试所有设计的指令及指令涉及的相关功能。设计好测试用的汇编代码后,然后利用Quartus II软件附带的DebugController编写汇编编译规则。接着,利用DebugController软件把汇编编译之后的二进制代码置入到所采用的存储器中,并对设计好的8位CPU进行测试。
计算机组成原理 8位实验CPU设计与实现
内容介绍
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <meta name="generator" content="pdf2htmlEX"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css"> <link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css"> <link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/62b951b7405aad31f70c4881/raw.css"> <script src="https://static.pudn.com/base/js/compatibility.min.js"></script> <script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script> <script> try{ pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({}); }catch(e){} </script> <title></title> </head> <body> <div id="sidebar" style="display: none"> <div id="outline"> </div> </div> <div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/62b951b7405aad31f70c4881/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0">&#32508;&#21512;&#24615;&#23454;&#39564;&#25253;&#21578;</div><div class="t m0 x2 h4 y3 ff1 fs1 fc0 sc1 ls0 ws0">&#35745;&#31639;&#26426;&#32452;&#25104;&#21407;&#29702;</div><div class="t m0 x3 h5 y4 ff1 fs2 fc0 sc0 ls0 ws0">&#24180;&#32423;&#19987;&#19994;&#29677;&#32423;&#65306;<span class="ff2 sc1"> <span class="_ _0"></span> 10<span class="_ _1"></span> <span class="_ _2"> </span> </span></div></div><div class="c x4 y5 w3 h6"><div class="t m0 x0 h7 y6 ff2 fs2 fc0 sc1 ls0 ws0"> <span class="_ _3"></span> <span class="_ _3"></span> <span class="_ _3"></span> </div></div><div class="c x0 y1 w2 h2"><div class="t m0 x5 h5 y4 ff1 fs2 fc0 sc0 ls0 ws0">&#32423;&#36719;&#24037;<span class="_ _4"></span><span class="ff2 sc1"> <span class="_ _5"> </span> </span></div></div><div class="c x6 y7 w3 h8"><div class="t m0 x0 h5 y8 ff1 fs2 fc0 sc0 ls0 ws0"> <span class="_ _6"></span> <span class="_ _6"></span><span class="ff2 sc1"> <span class="_ _3"></span> </span></div></div><div class="c x0 y1 w2 h2"><div class="t m0 x7 h7 y4 ff2 fs2 fc0 sc1 ls0 ws0">2<span class="_ _0"></span> </div></div><div class="c x8 y5 w3 h6"><div class="t m0 x0 h7 y6 ff2 fs2 fc0 sc1 ls0 ws0"> <span class="_ _3"></span> <span class="_ _3"></span> <span class="_ _3"></span> </div></div><div class="c x0 y1 w2 h2"><div class="t m0 x9 h5 y4 ff1 fs2 fc0 sc0 ls0 ws0">&#29677;<span class="_ _1"></span><span class="ff2 sc1"> <span class="_ _2"> </span> <span class="_ _0"></span> </span></div><div class="t m0 x3 h5 y9 ff1 fs2 fc0 sc0 ls0 ws0">&#23567;&#32452;&#21495;&#65306;<span class="ff2 sc1"> <span class="_ _1"></span> <span class="_ _2"> </span> <span class="ff1 sc0">&#31532;<span class="_ _1"></span><span class="ff2 sc1"> <span class="_ _2"> </span> </span></span></span></div></div><div class="c xa ya w3 h8"><div class="t m0 x0 h5 y8 ff1 fs2 fc0 sc0 ls0 ws0"> <span class="_ _6"></span> <span class="_ _6"></span><span class="ff2 sc1"> <span class="_ _3"></span> </span></div></div><div class="c x0 y1 w2 h2"><div class="t m0 xb h7 y9 ff2 fs2 fc0 sc1 ls0 ws0">2<span class="_ _0"></span> </div></div><div class="c xc yb w3 h6"><div class="t m0 x0 h7 y6 ff2 fs2 fc0 sc1 ls0 ws0"> <span class="_ _3"></span> <span class="_ _3"></span> <span class="_ _3"></span> </div></div><div class="c x0 y1 w2 h2"><div class="t m0 xd h5 y9 ff1 fs2 fc0 sc0 ls0 ws0">&#32452;<span class="_ _1"></span><span class="ff2 sc1"> <span class="_ _2"> </span> <span class="_ _7"></span> <span class="_ _8"> </span> </span></div><div class="t m0 xe h5 yc ff1 fs2 fc0 sc0 ls0 ws0">&#23436;&#25104;&#26085;&#26399;&#65306;<span class="ff2 sc1"> <span class="_ _3"></span> <span class="_ _3"></span> 2012/6/6<span class="_ _9"></span> <span class="_ _a"> </span> <span class="_ _7"></span> <span class="_ _8"> </span> </span></div><div class="t m0 xf h9 yd ff1 fs3 fc0 sc1 ls0 ws0">&#23567;&#32452;&#25104;&#21592;&#12289;&#32452;&#20869;&#20998;&#24037;&#21450;&#21508;&#25104;&#21592;&#25104;&#32489;</div><div class="t m0 x10 h9 ye ff1 fs3 fc0 sc0 ls0 ws0">&#23398;&#21495;</div><div class="t m0 x11 h9 yf ff1 fs3 fc0 sc0 ls0 ws0">&#22995;&#21517;</div><div class="t m0 x12 h9 y10 ff1 fs3 fc0 sc1 ls0 ws0">&#65288;&#32452;&#38271;&#25490;&#31532;&#19968;</div><div class="t m0 x11 h9 y11 ff1 fs3 fc0 sc1 ls0 ws0">&#20010;&#65289;</div><div class="t m0 x4 h9 ye ff1 fs3 fc0 sc0 ls0 ws0">&#20998;&#24037;</div><div class="t m0 x9 h9 y12 ff1 fs3 fc0 sc0 ls0 ws0">&#24037;&#20316;&#37327;&#27604;&#20363;</div><div class="t m0 x13 h9 ye ff1 fs3 fc0 sc1 ls0 ws0">&#65288;&#32452;&#38271;&#25351;</div><div class="t m0 x14 h9 y13 ff1 fs3 fc0 sc1 ls0 ws0">&#23450;&#65289;</div><div class="t m0 x15 h9 yf ff1 fs3 fc0 sc0 ls0 ws0">&#33258;&#35780;&#25104;&#32489;</div><div class="t m0 x15 h9 y10 ff1 fs3 fc0 sc1 ls0 ws0">&#65288;&#32452;&#38271;&#25351;</div><div class="t m0 x16 h9 y11 ff1 fs3 fc0 sc1 ls0 ws0">&#23450;&#65289;</div><div class="t m0 x17 h9 y14 ff2 fs3 fc0 sc1 ls0 ws0">201030690224<span class="_ _b"> </span><span class="ff1 sc0">&#33707;&#21326;&#28949;</span></div><div class="t m0 x18 h9 y15 ff1 fs3 fc0 sc1 ls0 ws0">&#36890;&#29992;&#23492;&#23384;&#22120;</div><div class="t m0 xd ha y16 ff1 fs3 fc0 sc1 ls0 ws0">&#32452;&#12289;<span class="fs4">&#21462;&#25351;&#21450;&#35843;</span></div><div class="t m0 x19 ha y17 ff1 fs4 fc0 sc1 ls0 ws0">&#35797;</div><div class="t m0 x14 hb y14 ff2 fs3 fc0 sc1 ls0 ws0">35%<span class="_ _c"> </span>98</div><div class="t m0 x17 h9 y18 ff2 fs3 fc0 sc1 ls0 ws0">201030690202<span class="_ _b"> </span><span class="ff1 sc0">&#34081;&#26364;&#20339;</span> <span class="_ _d"> </span><span class="ff1 sc0">&#23384;&#20648;&#22120;<span class="_ _e"> </span></span>25%<span class="_ _c"> </span>95</div><div class="t m0 x17 h9 y19 ff2 fs3 fc0 sc1 ls0 ws0">201030690230<span class="_ _b"> </span><span class="ff1 sc0">&#21608;&#21152;&#20255;</span></div><div class="t m0 x1a ha y1a ff1 fs4 fc0 sc1 ls0 ws0">&#25511;&#21046;&#36923;&#36753;</div><div class="t m0 x14 hb y19 ff2 fs3 fc0 sc1 ls0 ws0">25%<span class="_ _c"> </span>96</div></div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div> </body> </html>
评论
    相关推荐
    • VHDL语言100例详解
      VHDL语言100例详解,VHDL语言100例详解,VHDL语言100例详解,VHDL语言100例详解,VHDL语言100例详解,VHDL语言100例详解,VHDL语言100例详解,VHDL语言100例详解,VHDL语言100例详解,VHDL语言100例详解,VHDL语言...
    • VHDL密码锁
      VHDL,密码锁,课程作业的源代码。通过正确的密码输入来获得输出。只是简单的课后作业的解答。
    • VHDL uart
      VHDL uart 利用模块化设计 程序可读性强
    • VHDL按键设计
      课程设计代码VHDL相关设计!按键模块等一应俱全课程设计代码VHDL相关设计课程设计代码VHDL相关设计
    • VHDL源代码
      该源程序包括多个VHDL源程序代码:密码锁,看门狗,电梯调度,UART等等,内附解释文档,是大家学习的好东西
    • VGA VHDL实例
      VGA 时序介绍以及VHDL实例源代码,帮助大家学习VHDL语言有很大帮助,其中有一篇研究生论文为引用,希望大家不要随意粘贴他人内容。
    • vhdl 滤波器源码
      使用VHDL语言编程实现滤波器设计,代码中主要是实现了低通滤波器的设计,大家可以根据源代码加以修改实现高通滤波器、带通滤波器等的设计
    • 计数器VHDL
      数字逻辑电路设计实验 用VHDL语言实现的计数器
    • VHDL实用教程
      本书比较系统地介绍了VHDL 的基本语言现象和实用技术全书以实用和可操作 为基点简洁而又不失完整地介绍了VHDL 基于EDA 技术的理论与实践方面的知识 其中包括VHDL 语句语法基础知识第1 章第7 章逻辑综合与编程...
    • VHDL频率计
      本程序为VHDL编写的频率计,测频范围从0.1Hz到1G (VHDL procedures for the preparation of the frequency meter, measuring frequency range from 0.1Hz to 1G)