- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA技术与VHDL 第6章 16位CISC CPU设计 6.1 顶层系统设计 6.1 顶层系统设计 6.1 顶层系统设计 6.1 顶层系统设计 6.1 顶层系统设计 6.1 顶层系统设计 6.1 顶层系统设计 6.2 CPU基本部件设计 6.2 CPU基本部件设计 6.2 CPU基本部件设计 6.2 CPU基本部件设计 6.2 CPU基本部件设计 6.2 CPU基本部件设计 6.2 CPU基本部件设计 * * * KX康芯科技 6.1.1 16位CPU的组成结构 图6-1 16位CPU结构框图 KX康芯科技 原理图 6.1.2指令系统设计 1.指令格式 KX康芯科技 图6-1 单字节指令格式 (1)单字指令 空位填零 KX康芯科技 图6-2 双字指令格式 (2)双字指令 图6-3 双字节指令 空位填零 空位填零 KX康芯科技 2.指令操作码 表6-1 操作码功能表 NOP指令:空操作 举例:NOP; #PC+1?PC 十六进制指令 空位填零 操作码 00000000000 00000 二进制指令 0000h 6.1.2指令系统设计 LOAD指令:装载数据到寄存器 举例:装载R1寄存器指明地址的数据到R2寄存器中 LOAD (R1),R2; #(R1)?R2 010 目的操作数 001 源操作数 十六进制指令 空位填零 操作码 00000 00001 二进制指令 080Ah 6.1.2指令系统设计 STORE指令:将寄存器的数据存入存储器 举例:将R1寄存器的数据存入R2寄存器指明地址的存 储器中 STORE R1,(R2); #R1?(R2) 010 目的操作数 001 源操作数 十六进制指令 空位填零 操作码 00000 00010 二进制指令 100Ah 6.1.2指令系统设计 MOVE指令:在寄存器之间传送操作数 举例:将R1寄存器的数据传送到R2寄存器 MOVE R1,R2; #R1?R2 010 目的操作数 001 源操作数 十六进制指令 空位填零 操作码 00000 00011 二进制指令 180Ah 6.1.2指令系统设计 LOADI指令:将立即数装入寄存器 举例:将立即数0021h装载到R1寄存器 LOADI R1,0021h; #0021h?R1 2001h 00100100 目的操作数 十六进制指令 (双字) 空位填零 操作码 立即数:0000000000100001 二进制指令(双字) 0021h 6.1.2指令系统设计 BRAI指令:无条件转移到立即数指定的程序地址 举例:程序转移到立即数0006h指定的地址执行 BRAI 0006h; #0006h?PC 2800h 00000000000 00101 十六进制指令 (双字) 空位填零 操作码 立即数:0000000000000110 二进制指令(双字) 0006h 6.1.2指令系统设计 BRAGTI指令:比较大于时转移到立即数指定的程序地址 举例:设比较数存放在R1、R2寄存器中,当R1R2时,程 序转移到立即数0006h指定的地址执行,否则执行 下一条指令 BRAGTI R1,R2,0006h; # R1R2, 0006h?PC # 否则 PC+1?PC 010 操作数2 001 操作数1 300Ah 00000 00110 十六进制指令 (双字) 空位填零 操作码 立即数:0000000000000110 二进制指令(双字) 0006h 6.1.2指令系统设计 INC指令:加1指令 举例:将R1寄存器的值加1 INC R1; #R1+1?R1 001 目的操作数 十六进制指令 空位填零 操作码00111 二进制指令 3801h 6.1.2指令系统设计 KX康芯科技 表6-2 常用指令举例 2.指令操作码 KX康芯科技 1. CPU元件的VHDL描述 6.1.3 顶层结构的VHDL设计 【例6-1】 library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; package cpu_lib is type t_shift is (shftpass, shl, shr, rotl, rotr
文档评论(0)