欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    8位CPU的设计与实现.docx

    • 资源ID:3151124       资源大小:40.05KB        全文页数:9页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    8位CPU的设计与实现.docx

    8位CPU的设计与实现 计算机组成原理 实验题目 8位CPU的系统设计 学 号 1115106046 姓 名 魏忠淋 班 级 11电子B 班 指导老师 凌朝东 华侨大学电子工程系 8位CPU的系统设计 一、实验要求与任务 完成从指令系统到CPU的设计,编写测试程序,通过运行测试程序对CPU设计进行正确性评定。具体内容包括:典型指令系统设计;CPU结构设计;规则文件与调试程序设计;CPU调试及测试程序运行。 1.1设计指标 能实现加减法、左右移位、逻辑运算、数据存取、有无条件跳转、内存访问等指令; 1.2设计要求 画出电路原理图、仿真波形图; 二、CPU的组成结构 三、元器件的选择 1.运算部件(ALU) ALU181的程序代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 ); A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); M : IN STD_LOGIC; CN : IN STD_LOGIC; CO,FZ: OUT STD_LOGIC ); END ALU181; ARCHITECTURE behav OF ALU181 IS SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN A9 <= '0' & A ; B9 <= '0' & B ; PROCESS(M,CN,A9,B9) BEGIN CASE S IS WHEN "0000" => IF M='0' THEN F9<=A9 + CN ; ELSE F9<=NOT A9; END IF; WHEN "0001" => IF M='0' THEN F9<=(A9 or B9) + CN ; ELSE F9<=NOT(A9 OR B9); END IF; WHEN "0010" => IF M='0' THEN F9<=(A9 or (NOT B9)+ CN ; ELSE F9<=(NOT A9) AND B9; END IF; WHEN "0011" => IF M='0' THEN F9<= "000000000" - CN ; ELSE F9<="000000000" END IF; WHEN "0100" => IF M='0' THEN F9<=A9+(A9 AND NOT B9)+ CN ; ELSE F9<=NOT (A9 AND B9); END IF; WHEN "0101" => IF M='0' THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9<=NOT B9; END IF; WHEN "0110" => IF M='0' THEN F9<=(A9 - B9) - CN ; ELSE F9<=A9 XOR B9; END IF; WHEN "0111" => IF M='0' THEN F9<=(A9 or (NOT B9) - CN ; ELSE F9<=A9 and (NOT B9); END IF; WHEN "1000" => IF M='0' THEN F9<=A9 + (A9 AND B9)+CN ; ELSE F9<=(NOT A9)and B9; END IF; WHEN "1001" => IF M='0' THEN F9<=A9 + B9 + CN ; ELSE F9<=NOT(A9 XOR B9); END IF; WHEN "1010" => IF M='0' THEN F9<=(A9 or(NOT B9)+(A9 AND B9)+CN ; ELSE F9<=B9; END IF; WHEN "1011" => IF M='0' THEN F9<=(A9 AND B9)- CN ; ELSE F9<=A9 AND B9; END IF; WHEN "1100" => IF M='0' THEN F9<=(A9 + A9) + CN ; ELSE F9<= "000000001" END IF; WHEN "1101" => IF M='0' THEN F9<=(A9 or B9) + A9 + CN ; ELSE F9<=A9 OR (NOT B9); END IF; WHEN "1110" => IF M='0' THEN F9<=(A9 or (NOT B9) +A9) + CN ; ELSE F9<=A9 OR B9; END IF; WHEN "1111" => IF M='0' THEN F9<=A9 - CN ; ELSE F9<=A9 ; END IF; WHEN OTHERS => F9<= "000000000" ; END CASE; IF(A9=B9) THEN FZ<='0'END IF; END PROCESS; F<= F9(7 DOWNTO 0) ; CO <= F9(8) ; COUT<="0000" WHEN F9(8)='0' ELSE "0001" END behav; ALU的原理图: 2.微控制器 实现信息传送要靠微命令的控制,因此在CPU 中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进行控制,同时在数据传送至运算部件时控制完成运算处理。 微命令产生部件可由若干组合逻辑电路组成,也可以由专门的存储逻辑组成。产生微命令的方式可分为组合逻辑控制方式和微程序控制方式两种。在本章所介绍的8 位模型CPU 设计中,采用微程序控制方式通过微程序控制器和微指令存储器产生微命令,因此此CPU 属于复杂指令CISC CPU。 微控制器的原理图: 3.寄存器组 计算机工作时,CPU 需要处理大量的控制信息和数据信息。例如对指令信息进行译码,以便产生相应控制命令对操作数进行算术或逻辑运算加工,并且根据运算结果决定后续操作等。因此,在CPU 中需要设置若干寄存器,暂时存放这些信息。在模型CPU中,寄存器组由R0、R1、R2所组成。 寄存器组的原理图: 3.地址寄存器 CPU 访问存储器,首先要找到需要访问的存储单元,因此设置地址寄存器来存放被访单元的地址。当需要读取指令时,CPU 先将PC 的内容送入AR,再由AR将指令地址送往存储器。当需要读取或存放数据时,也要先将该数据的有效地址送入AR,再对存储器进行读写操作。 地址寄存器的原理图: 4.指令寄存器 指令寄存器用来存放当前正在执行的指令,它的输出包括操作码信息、地址信息等,是产生微命令的主要逻辑依据。 指令寄存器的原理图: 5.程序计数器 程序计数器也称指令指针,用来指示指令在存储器中的存放位置。当程序顺序执行时,每次从主存取出一条指令,PC 内容就增量计数,指向下一条指令的地址。增量值取决于现行指令所占的存储单元数。如果现行指令只占一个存储单元,则PC 内容加1;若现行指令占了两个存储单元,那么PC 内容就要加2。当程序需要转移时,将转移地址送入PC,使PC 指向新的指令地址。因此,当现行指令执行完,PC 中存放的总是后续指令的地址;将该地址送往主存的地址寄存器AR,便可从存储器读取下一条指令。 程序计数器的原理图: 四、系统总电路图及原理 系统原理: 该CPU 主要由算术逻辑单元ALU,数据暂存寄存器DR1、DR2,数据寄存器R0R2,程序计数器PC,地址寄存器AR,程序/数据存储器MEMORAY,指令寄存器IR,微控制器uC,输入单元INPUT 和输出单元OUTPUT 所组成。图中虚线框内部分包括运算器、控制器、程序存储器、数据存储器和微程序存储器等,实测时,它们都可以在单片FPGA 中实现。虚线框外部分主要是输入/输出装置,包括键盘、数码管、LCD 显示器等,用于向CPU 输入数据,或CPU 向外输出数据,以及观察CPU 内部工作情况及运算结果。 五、波形仿真 仿真波形图: 分析: M输出微指令01800,控制台执行P,进行“读、写、运行”功能判断。检测到SWA、SWB=11后,进入程序运行RP方式。 执行微地址为23的微指令,M输出微指令为018001,后续微地址uA为01.然后进入程序运行的流程。 执行微地址为01的M微指令008001,执行的操作为PCAR=00H,PC+1=01H,AR指向RAM存储器地址00H,后续地址uA为02. 执行微地址为02的M微指令01ED82,执行取指令操作,取出第一条指令的操作码,经过分支判断P(1),这是一条输入指令IN。 执行微地址为10的M微指令00C048,将RAM中的指令00通过内部总线BUS,送指令寄存器IR:RAM=00BUSIR=00H。 执行微地址为01的M微指令001001,SW_B为高电平,允许SW的数据送往数据总线BUS,由此接收数据56H。所以R0=56H。 执行微地址为02的M微指令01ED82,执行取指令操作:PCAR=01H,PC+1=02H,AR指向RAM存储器地址01H,后续微地址uA为02。 执行微地址09的M微指令00C048,取指令,并经过分支判断P,读出地址为01H单元的内容10H,经过BUS送到指令寄存器IR:RAM=10HBUSIR=10H。 执行微地址为03的M微指令01ED83,进入加法运算微程序。通过间接寻址获得另一个操作数,地址寄存器AR指向取数的间接地址:PCAR=02H,PC+1=03H,AR指向RAM的02单元。 执行微地址为04的M微指令00E004,RAM_B为高电平,RAM的单元的内容通过BUS送AR,取数地址=0AH,RAM(02)=0AHBUSAR=0AH。 执行微地址为05的M微指令00B005,RAM_B为高电平,RAM的单元的内容34H送到BUS,此时LDDR2为高电平,BUS上的数据就送给了DR2,执行结果:RAM=34HBUSDR2=34H。 执行微地址为06的M微指令01A206,将R0的数据送DR1.R0_B=1,允许R0的内容56H送往BUS,此时LDDR1为高电平,BUS上的数据56H写入ALU的数据缓冲期DR1,执行结果:=56HBUSDR1=56H. 执行微地址为01的M微指令919A01,完成加法运算:+R0,56H+34H=8AHR0=8AH。 执行微地址为02的M微指令01ED82,执行取指令操作:PCAR=03H,PC+1=04H,AR指向RAM存储器地址03H,执行第三条指令,存储STA。 执行微地址12的M微指令00C048,取指令,并经过分支判断P,读出地址为03H单元的内容20H,经过BUS送到指令寄存器IR:RAM=20HBUSIR=20H。 执行微地址为07的M微指令01ED87,通过间接寻址获得另一个操作数,地址寄存器AR指向取数的间接地址:PCAR=04H,PC+1=05H,AR指向RAM的04单元。 执行微地址为15的M微指令00E00D,RAM_B为高电平,RAM的单元的内容通过BUS送AR,取数地址=0BH,RAM(04)=0BHBUSAR=0BH。 执行01微地址为01的M微指令038201,RAM_B为高电平,R0的内容存入RAM单元,BUS上的数据就送给了DR2,执行结果:RAM=8AHBUSRAM=8AH。 执行微地址为02的M微指令01ED82,执行取指令操作:PCAR=05H,PC+1=06H,AR指向RAM存储器地址05H,执行第四条指令,输出OUT。 执行微地址13的M微指令00C048,取指令,并经过分支判断P,读出地址为05H单元的内容30H,经过BUS送到指令寄存器IR:RAM=30HBUSIR=30H。 执行微地址为16的M微指令01ED8E,通过间接寻址获得另一个操作数,地址寄存器AR指向取数的间接地址:PCAR=06H,PC+1=07H,AR指向RAM的06单元。 执行微地址为17的M微指令00E00F,RAM_B为高电平,RAM的单元的内容通过BUS送AR,取数地址=0BH,RAM(06)=0BHBUSAR=0BH。 执行微地址为25的M微指令00A015,RAM_B为高电平,RAM的单元的内容8AH送到BUS,此时LDDR2为高电平,BUS上的数据就送给了DR2,执行结果:RAM=8AHBUSDR2=8AH。 (24) 执行微地址为01的M微指令010A01,将DR1的数据送输出单元OUT,允许DR1的内容8AH送往BUS, BUS上的数据8AH送输出单元OUT,执行结果:DR1=8AHBUSOUT=8AH。 执行微地址为02的M微指令01ED82,执行取指令操作:PCAR=07H,PC+1=08H,AR指向RAM存储器地址07H。 执行微地址14的M微指令00C048,取指令,并经过分支判断P,读出地址为07H单元的内容40H,经过BUS送到指令寄存器IR:RAM=40HBUSIR=40H。 执行微地址为26的M微指令01ED96,进入转移JMP运算微程序。通过间接寻址获得另一个操作数,地址寄存器AR指向取数的间接地址:PCAR=08H,PC+1=09H,AR指向RAM的08单元。 执行微地址为01的M微指令00D181,RAM_B为高电平,RAM的单元的内容34H送到BUS,此时LDDR2为高电平,BUS上的数据就送给了DR2,执行结果:RAM=34HBUSDR2=34H。 题目:减法器实验结论:本实验系统是我做过最为庞大的,开始时根本不知道如何下手,完全是一头雾水,老师讲解后还是不知道如何着手,还是慢慢查找资料才略微懂得点头绪。

    注意事项

    本文(8位CPU的设计与实现.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开