正弦信号LPM精要.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正弦信号LPM精要

8位CPU实验报殷达一.实验内容设计要求:设计一简单的8位CPU,不仅要有加减运算功能,还要有与或的位运算。。使用VHDL语言设计。二.实验原理RISC即精简指令集计算机(Reduced Instruction Set Computer)的缩写。RISC-CPU与一般的CPU相比,通过简化指令系统使计算机的结构更加简单合理,从而提高了运算速度。本文对RISC-CPU的架构进行了分析,并使用VHDL语言设计了8位RISC-CPU IP软核。SAP-1 CPU部分:程序计数器、MAR、指令寄存器、控制器/序列发生器、累加器、加减法器、B寄存器、输出寄存器。1.程序计数器 它是一个4Bits的计数器,计数范围由0~15。主要功用是记录下每个执行的指令地址,并把这个地址传送至MAR寄存器存放。2.输入与MAR(Memory Access Register) 这个方块应分成两个部分,一个是接受由“输入”部分输入到RAM内存的外部程序和数据,另一部分“MAR”是用来在CPU执行上述所加载的程序时,暂存下一个要执行的指令地址。3.16×8 RAM 这个RAM有16个存储单元,每个单元为1字节,即8bits。所以这个RAM的地址总线是4bit,地址编码是由0000,0001,0010…1111,这个地址内容是由上述MAR传送过来,然后通过译码将地址存放的8位数据或指令输出至Wbus。4.指令寄存器 属于CPU内的控制单元,主要是将在RAM的8位数据,通过Wbus后读入指令寄存器,然后再把数据一分为二,较高的4位属于指令部分,送至下一级的“控制器”,而较低的4位属于数据部分,将会被送至Wbus。5.控制器/序列发生器 这个模块也是属于CPU内控制单元的一部分,这个控制器在程序执行时,负责送出整个计算机的时序信号CLK,而且会把指令寄存器送来的4位指令,解译成12位的控制信号,由这组控制信号指挥其它的功能方块,完成该指令的运作。由于使用VHDL语言设计整个SAR-1,依照语法的使用,这部分会被省略,而且不会影响整个CPU运作。6.累加器 累加器是个8位的缓冲寄存器,它是存放目前计算机执行的实时数据地方。不同的指令也将使它产生不同的工作方式。7.加减法器 这个加减法器负责执行数学的加法和减法运算,而且运算的结果会放回“累加器”暂存。8.B寄存器 这个寄存器用来配合“累加器”、“加减法器”,执行“加法” 或“减法”的工作。9.输出寄存器这个输出寄存器的用途是,CPU执行到“输出结果”的指令时,便将“累加器”的结果传至“输出寄存器”,所以它是负责存放输出结果,当然这个存放的结果是二进制形式的。SAP-1的CPU指令,共有5个且可分成两种类型,如表 直接寻址法(Direct Addressing)指令运算码范例说明LDA0000LDA 9H将9H内存的内容值加载累加器ADD0001ADD BH将BH的内存内容值和累加器内容值相加,再存放运算结果回累加器SUB0010SUB EH将EH的内存内容值和累加器内容值相减,再存放运算结果回累加器零位寻址法(Zero Addressing)指令运算码范例说明OUT1110OUT将累加器内容输出至“输出寄存器”HLT1111HLT结果CPU执行三.SAP-1 CPU设计SAP-1指令周期(Instruction Cycle)时序状态S0-S2范围为取指令周期,而时序状态S3-S5为指令执行周期.下面是每个时序状态下,SAP-1 CPU的工作任务:1.取指令周期(Fetch Cycle)(1)状态S0: (寻址状态, Address State)这个状态下,“程序计数器”负责将所要执行的指令地址值传递至MAR存放.(2)状态S2: (增加状态,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.

文档评论(0)

6663144 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档