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

    计算机组成原理第6章.ppt

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

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

    计算机组成原理第6章.ppt

    现代计算机组成原理,潘 明 潘 松 编著,科学出版社,第 6 章,16位CISC CPU设计,6.1 顶层系统设计,6.1.1 16位CPU的组成结构,图6-1 16位CPU结构框图,6.1 顶层系统设计,指令系统设计,(1)单字指令,1指令格式,表6-1 单字节指令格式,6.1 顶层系统设计,(2)双字指令,表6-2 双字指令格式,表6-3 双字节指令,6.1 顶层系统设计,指令系统设计,2指令操作码,表6-4 操作码功能表,6.1 顶层系统设计,指令系统设计,2指令操作码,表6-5 常用指令举例,6.1 顶层系统设计,6.1.3 顶层结构的VHDL设计,1.CPU元件的VHDL描述,【例6-1】CPU_LIB.VHDlibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;package cpu_lib istype t_shift is(shftpass,shl,shr,rotl,rotr);subtype t_alu is unsigned(3 downto 0);,(接下页),6.1 顶层系统设计,6.1.3 顶层结构的VHDL设计,1.CPU元件的VHDL描述,constant alupass:unsigned(3 downto 0):=0000;constant andOp:unsigned(3 downto 0):=0001;constant orOp:unsigned(3 downto 0):=0010;constant notOp:unsigned(3 downto 0):=0011;constant xorOp:unsigned(3 downto 0):=0100;constant plus:unsigned(3 downto 0):=0101;constant alusub:unsigned(3 downto 0):=0110;constant inc:unsigned(3 downto 0):=0111;constant dec:unsigned(3 downto 0):=1000;constant zero:unsigned(3 downto 0):=1001;type t_comp is(eq,neq,gt,gte,lt,lte);subtype t_reg is std_logic_vector(2 downto 0);type state is(reset1,reset2,reset3,reset4,reset5,reset6,execute,nop,load,store,move,load2,load3,load4,store2,store3,store4,move2,move3,move4,incPc,incPc2,incPc3,incPc4,incPc5,incPc6,loadPc,loadPc2,loadPc3,loadPc4,bgtI2,bgtI3,bgtI4,bgtI5,bgtI6,bgtI7,bgtI8,bgtI9,bgtI10,braI2,braI3,braI4,braI5,braI6,loadI2,loadI3,loadI4,loadI5,loadI6,inc2,inc3,inc4);subtype bit16 is std_logic_vector(15 downto 0);end cpu_lib;,6.1 顶层系统设计,6.1.3 顶层结构的VHDL设计,1.CPU元件的VHDL描述,【例6-2】top.vhdlibrary IEEE;use IEEE.std_logic_1164.all;use work.cpu_lib.all;entity top isend top;architecture behave of top iscomponent memport(addr:in bit16;sel,rw:in std_logic;ready:out std_logic;data:inout bit16);end component;component cpuport(clock,reset,ready:in std_logic;addr:out bit16;rw,vma:out std_logic;data:inout bit16);end component;signal addr,data:bit16;signal vma,rw,ready:std_logic;signal clock,reset:std_logic:=0;beginclock=not clock after 50 ns;reset=1,0 after 100 ns;m1:mem port map(addr,vma,rw,ready,data);u1:cpu port map(clock,reset,ready,addr,rw,vma,data);end behave;,6.1 顶层系统设计,6.1.3 顶层结构的VHDL设计,2.顶层文件的原理图设计,(接下页),图6-2 CPU顶层结构图,6.1 顶层系统设计,6.1.3 顶层结构的VHDL设计,3CPU与LCD显示模块的接口,图6-3 显示模块dsp的实体结构图,6.1 顶层系统设计,6.1.3 顶层结构的VHDL设计,3CPU与LCD显示模块的接口,图6-4 LCD显示屏的数据显示,6.1 顶层系统设计,6.1.4 软件设计实例,表6-6 示例程序,表6-7 存储器初始化文件RAM_16.mif的内容,6.2 CPU基本部件设计,6.2.1 运算器ALU,表6-8 运算器ALU的功能,图6-5 运算器ALU结构图,6.2 CPU基本部件设计,6.2.1 运算器ALU,图6-5 运算器ALU结构图,【例6-3】alu.vhdlibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use work.cpu_lib.all;entity alu isport(a,b:in bit16;sel:in t_alu;c:out bit16);end alu;architecture rtl of alu isbeginaluproc:process(a,b,sel)begincase sel iswhen alupass=c c c c c c c c c c c=0000000000000000 after 1 ns;end case;end process;end rtl;,6.2 CPU基本部件设计,6.2.1 运算器ALU,图6-6 运算器ALU的仿真波形,6.2 CPU基本部件设计,6.2.1 运算器ALU,表6-9 ALU运算仿真结果说明,6.2 CPU基本部件设计,6.2.2 比较器COMP,表6-10 比较器的运算类型,6.2 CPU基本部件设计,6.2.2 比较器COMP,图6-7比较器结构图,6.2 CPU基本部件设计,6.2.2 比较器COMP,【例6-4】COMP.VHDlibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;use work.cpu_lib.all;entity comp isport(a,b:in bit16;sel:in t_comp;compout:out std_logic);end comp;architecture rtl of comp isbegincompproc:process(a,b,sel)begincase sel iswhen eq=if a=b then compout if a/=b then compout if a b then compout if a=b then compout if a if a=b then compout=1 after 1 ns;else compout=0 after 1 ns;end if;end case;end process;end rtl;,6.2 CPU基本部件设计,6.2.2 比较器COMP,图6-8 比较器COMP的仿真波形图,表6-11 比较器COMP的仿真波形说明,6.2 CPU基本部件设计,6.2.3 控制器CONTROL,图6-9 控制器CONTROL的实体结构图,【例6-5】control.vhdlibrary IEEE;use IEEE.std_logic_1164.all;use work.cpu_lib.all;entity control isport(clock,reset,ready,compout:in std_logic;instrReg:in bit16;progCntrWr,progCntrRd,addrRegWr,addrRegRd,outRegWr,outRegRd:out std_logic;shiftSel:out t_shift;aluSel:out t_alu;compSel:out t_comp;opRegRd,opRegWr,instrWr,regRd,regWr,rw,vma:out std_logic;regSel:out t_reg);end control;architecture rtl of control issignal current_state,next_state:state;beginnxtstateproc:process(current_state,instrReg,compout,ready)beginprogCntrWr aluSel aluSel=zero;shiftSel=shftpass;outRegWr=1;,(接下页),next_state outRegRd outRegRd vma vma case instrReg(15 downto 11)iswhen 00000=next_state regSel regSel regSel progcntrRd progcntrRd regSel regSelnext_state=incPc;,(接下页),end case;when load2=regSel vma vma regSel regSel regSel regSel outRegRd outRegRd progcntrRd outregRd outregRd vma vma=1;rw=0;,(接下页),if ready=1 then regSel progcntrRd outregRd outregRd vma vma regSel opRegRd opRegRd progcntrRd progcntrRd=1;alusel=inc;shiftsel=shftpass;outregWr=1;next_state=bgtI7;,(接下页),when bgtI7=outregRd outregRd vma vma regSel outregRd outregRd progcntrRd progcntrRd vma vma progcntrRd progcntrRd outregRd outregRd=1;progcntrWr=1;,(接下页),addrregWr vma vma next_state=incPc;end case;end process;controlffProc:process(clock,reset)beginif reset=1 then current_state=reset1 after 1 ns;elsif clockevent and clock=1 then current_state=next_state after 1 ns;end if;end process;end rtl;,6.2 CPU基本部件设计,6.2.4 寄存器与寄存器阵列,图6-10 寄存器REG的实体结构和RTL图,1寄存器REG,6.2 CPU基本部件设计,6.2.4 寄存器与寄存器阵列,1寄存器REG,【例6-6】reg.vhdlibrary IEEE;use IEEE.std_logic_1164.all;use work.cpu_lib.all;entity reg isport(a:in bit16;clk:in std_logic;q:out bit16);end reg;architecture rtl of reg isbeginregproc:processbeginwait until clk event and clk=1;q=a after 1 ns;end process;end rtl;,6.2 CPU基本部件设计,2寄存器阵列RegArray,【例6-7】regarray.vhdlibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use work.cpu_lib.all;entity regarray isport(data:in bit16;sel:in t_reg;en,clk:in std_logic;q:out bit16);end regarray;architecture rtl of regarray istype t_ram is array(0 to 7)of bit16;signal temp_data:bit16;beginprocess(clk,sel)variable ramdata:t_ram;beginif clkevent and clk=1 then ramdata(conv_integer(sel):=data;end if;temp_data=ramdata(conv_integer(sel)after 1 ns;end process;process(en,temp_data)beginif en=1 then q=temp_data after 1 ns;else q=ZZZZZZZZZZZZZZZZ after 1 ns;end if;end process;end rtl;,6.2 CPU基本部件设计,6.2.4 寄存器与寄存器阵列,图6-11 寄存器阵列RegAarray的结构图和RTL图,2寄存器阵列RegArray,6.2 CPU基本部件设计,6.2.4 寄存器与寄存器阵列,图6-12 寄存器阵列regarray.VHD的仿真波形,2寄存器阵列RegArray,6.2.5 移位寄存器SHIFT,【例6-8】sheft.VHDlibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use work.cpu_lib.all;entity shift isport(a:in bit16;sel:in t_shift;y:out bit16);end shift;architecture rtl of shift isbeginshftproc:process(a,sel)begincase sel iswhen shftpass=y y y y y y=0000000000000000 after 1 ns;end case;end process;end rtl;,6.2 CPU基本部件设计,6.2.5 移位寄存器SHIFT,表6-12 SHIFT移位运算类型说明,6.2 CPU基本部件设计,6.2.5 移位寄存器SHIFT,图6-13 移位寄存器的结构图,6.2 CPU基本部件设计,6.2.5 移位寄存器SHIFT,图6-14 移位寄存器SHIFT的仿真波形图,6.2 CPU基本部件设计,6.2.6 三态寄存器TRIREG,图6-15 三态寄存器triReg的结构图和RTL图,6.2 CPU基本部件设计,6.2.6 三态寄存器TRIREG,【例6-9】triReg.vhdlibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use work.cpu_lib.all;entity trireg isport(a:in bit16;en,clk:in std_logic;q:out bit16);end trireg;architecture rtl of trireg issignal val:bit16;begintriregdata:processbeginwait until clkevent and clk=1;val=a;end process;trireg3st:process(en,val)beginif en=1 then q=val after 1 ns;elsif en=0 then q=ZZZZZZZZZZZZZZZZ after 1 ns;else q=XXXXXXXXXXXXXXXX after 1 ns;-exemplar_translate_onend if;end process;end rtl;,6.3 CPU的时序仿真与实现,6.3.1 编辑仿真波形文件,图6-15 三态寄存器triReg的结构图和RTL图,1建立仿真波形VWF文件,通过仿真波形分析,可以了解CPU在执行指令过程中,各信号的工作时序是否符合设计要求。将工程TOP的端口信号节点加入波形编辑器中。top.vwf的波形文件存入文件夹/cpu_16/top中。将重要的端口节点RST、CLK0、STEP、Addr、data、alu和其它重要的控制信号分别加入到波形编辑窗中。在仿真波形文件中,输入信号有RST、CLK0和STEP。,6.3 CPU的时序仿真与实现,6.3.1 编辑仿真波形文件,图6-16 仿真输出波形,1建立仿真波形VWF文件,6.3 CPU的时序仿真与实现,6.3.1 编辑仿真波形文件,表6-13 图6-16仿真波形对应的程序,1建立仿真波形VWF文件,6.3 CPU的时序仿真与实现,6.3.1 编辑仿真波形文件,图6-17 CPU复位和第1条指令的仿真波形,1建立仿真波形VWF文件,6.3 CPU的时序仿真与实现,6.3.1 编辑仿真波形文件,图6-18 STEP时序控制器的RTL电路图,2CPU的RTL电路结构图,6.3 CPU的时序仿真与实现,6.3.1 编辑仿真波形文件,图6-19 三态触发寄存器的RTL电路图,2CPU的RTL电路结构图,6.3 CPU的时序仿真与实现,6.3.2 16位CPU的调试运行,图6-20 信号调入观察窗,存盘,6.3.3 应用嵌入式逻辑分析仪调试CPU,6.3 CPU的时序仿真与实现,图6-21 的全屏编辑窗,6.3.3 应用嵌入式逻辑分析仪调试CPU,6.3 CPU的时序仿真与实现,图6-22 SignalTapII数据窗的实时信号,6.3.3 应用嵌入式逻辑分析仪调试CPU,6.3 CPU的时序仿真与实现,图6-24 ByteBlasterII接口AS模式编程窗口,6.3.4 对配置器件编程,6.4 应用程序设计实例,图6-25 乘法算法1的硬件实现,6.4.1 乘法算法及其硬件实现,6.4 应用程序设计实例,图6-26 改进后的乘法算法2的硬件实现,6.4.1 乘法算法及其硬件实现,6.4 应用程序设计实例,图6-27 乘法算法1的流程图 图6-28 乘法算法2的流程图,6.4.1 乘法算法及其硬件实现,6.4 应用程序设计实例,图 6-29 除法算法1的硬件结构,6.4.2 除法算法及其硬件实现,6.4 应用程序设计实例,图 6-30 除法算法2的硬件结,6.4.2 除法算法及其硬件实现,习 题,6-1对CPU进行修改,为其增加一个状态寄存器FLAG,FLAG可以中保存进位标志和零标志。6-2修改CPU,为其加入一条带进位加法指令ADDC,给出ADDC指令的运算流程,对控制器的控制程序作相应的修改。6-3说明在16位CPU中,PCPC+1操作是如何执行的?6-4根据图6-26和图6-27的电路结构和流程图,设计乘法应用程序,进行计算机仿真验证程序功能,并在16位CPU上调试运行。6-5根据图6-30和图6-31的电路结构和流程图,设计除法应用程序,进行计算机仿真验证程序功能,并在16位CPU上调试运行。6-6请说明CONTROL.vhd中的两个进程各自的作用,两个进程之间是如何发生联系的?6-7简要说明16位CPU的复位过程。6-8根据control.vhd中状态机的描述,说明指令MOVE R1,R2 的执行过程。,实验与设计,实验6-1.16位计算机基本部件实验参考实验示例和实验课件:/CMPUT_EXPMT/CH6_Expt/DEMO_61/和 实验6_1.ppt。,实验6-2.16位CPU设计综合实验参考实验示例和实验课件:/CMPUT_EXPMT/CH6_Expt/DEMO_62/TOP 和 实验6_2.ppt。,实验与设计,表6-14 汇编语言指令格式,实验与设计,图6-31 在QUARTUS II环境下编辑ram_16.mif文件,实验与设计,图6-32用In-System Memory Content Editor读取的数据文件,实验与设计,图6-33数据搬运完毕后的In-System Memory Content Editor窗,实验与设计,图6-34 嵌入式逻辑分析仪设置情况图,实验与设计,图6-35 CPU运行时逻辑分析仪显示波形,实验与设计,表6-15 LCD液晶显示屏显示数据说明,实验与设计,图6-36 LCD液晶显示屏,实验与设计,图6-37 CPU_16仿真波形,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开