专题4精简8位CPU电路设计.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARCHITECTURE a OF ROM 16_8 IS BEGIN DATA=WHEN ADDR=“0000”AND CE=‘0’ --LDA 9H WHEN ADDR=“0001”AND CE=‘0’ELSE --ADD AH WHEN ADDR=“0010”AND CE=‘0’ELSE --ADD BH WHEN ADDR=“0011”AND CE=‘0’ELSE --SUB CH WHEN ADDR=“0100”AND CE=‘0’ELSE --OUT WHEN ADDR=“0101”AND CE=‘0’ELSE --HLT WHEN ADDR=“1001”AND CE=‘0’ELSE WHEN ADDR=“1010”AND CE=‘0’ELSE WHEN ADDR=“1011”AND CE=‘0’ELSE WHEN ADDR=“1100”AND CE=‘0’ELSE ; END a; 程序说明: 实际上仍是使用when-else方式,以类似查表方式作ROM的设计. 这个ROM有个CE使能接脚,它必须为“0”时,才接受读取数据的命令. 仿真结果:略 四 .SAP-1 CPU设计与仿真 SAP-CPU在前面所提的指令,它们执行的指令周期总长度基本上都是6个脉冲长度,这可以用下图说明 S0 S1 S2 S3 S4 S5 (Fetch) 磅 (Execute) Machine Cycle Instruction Cycle 图2: SAP-1指令周期(Instruction Cycle) 时序状态S0-S2范围为取指令周期,而时序状态S3-S5为指令执行周期.下面是每个时序状态下,SAP-1 CPU的工作任务: 1.取指令周期(Fetch Cycle) (1)状态S0: (寻址状态, Address State) 这个状态下,“程序计数器”负责将所要执行的指令地址值传递至MAR存放. (2)状态S1: (增加状态,Increment State) 这个状态下,“程序计数器”的值加1,代表计数器将指针指向下一个要执行的指令地址值. 例如: 原先在状态S0时,“程序计数器”的值是01H,它会传递01H给 “MAR”,然后在这个状态S1时,将内容值加1后变成02H,这样以便记录下次要执行的指令地址值. (3)状态S2: (记忆状态, Memory State) 这个状态下,将把记录在 “MAR”里的指令地址值,送入 “RAM”里后,由 “RAM”读出该地址的指令码,再将该指令放入 “指令寄存器”. 有一点必须强调的是,不论是执行哪个指令,它们的状态S0-S2的动作方式都是相同的,不过状态S3-S5的动作方式就会因执行对那个指令而有所不同. 2.指令执行周期 (1)LDA指令 状态S3: 这个状态下,上述的09H数据传入MAR,以便下个状态能取出该数值所代表的地址里的值,比如20H. 状态S4: 这个状态是将存放在 “MAR”里的09数据,通过RAM读出09H地址的数据,比如是数值20H数值至 “累加器” 状态S5: 这个状态下的LDA指令并没有作用 (2)ADD指令 状态S3: 这个状态下,上述的AH数据将传入MAR,以便下个状态取出该数值所代表地址里的内容值,比如是数值14H 状态S4: 这个状态是将存放 “MAR”里的AH数据,通过RAM读出AH地址内的数据 状态S5: 这个状态是将存在 “累加器”和 “B 寄存器”的数值内容存放入 “加减法器”相加后,再将相加结果放回 “累加器” (3)SUB指令 状态S3: 这个状态下,上述的BH数据传入MAR,以便下个状态能取出该数值所

文档评论(0)

精品家园 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档