单周期CPU设计(一)

单周期CPU设计(一)

设计过程分两步,首先,根据所设计的所有汇编指令的功能及指令格式,完成CPU的数据通路设计;其次,根据指令功能和数据通路设计控制部件。
数据通路的一般设计方法:
1.根据指令的功能,确定每条指令在执行过程中所需要的部件。
2.所用的部件用表格列出,并在表格中填入每个部件的输入来源。
3.根据表格所涉及的部件及部件的输入来源,画出每条指令的数据通路。
4.将所有指令数据通路汇总成一个总的数据通路。
以下仅描述ADDU.SUBU.ORI.SLL.LW.SW.BEQ.J八条指令的CPU设计
下图实现了8条指令的完整的数据通路。
单周期CPU设计完整的数据通路
控制部件设计步骤:
1.根据每条指令功能,在已形成的数据通路下,画出每条指令从取值到执行过程的指令流程图。
2.根据指令流程图,编排指令取指到执行的操作时间表。
3.根据指令操作时间表,写出每个信号的逻辑表达式。
4.根据逻辑表达式,用门电路实现,完成控制部件设计。
以下是八条指令控制信号表:
8条指令控制信号表
以下是单周期CPU设计8条指令的操作时间表:
单周期CPU设计8条指令的操作时间表
以下是8条指令的CPU逻辑结构:
8条指令的CPU逻辑结构
目前仅完成了控制信号、pc、npc的行为级建模,用verilog实现,在vivado实验平台。
以后代码调试好了再考虑上传。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、 设计目标 设计目的: 设计一个含有36条指令的MIPS周期处理器,并能将指令准确的执行并烧写到试验箱上来验证 设计初衷 1、理解MIPS指令结构,理解MIPS指令集中常用指令的功能和编码,学会对这些指令进行归纳分类。 2、了解熟悉MIPS体系中的处理器结构 3、熟悉并掌握周期处理器CPU的原理和设计 4、进一步加强Verilog语言进行电路设计的能力 二、实验设备 1、装有xilinx ISE的计算机一台 2、LS-CPU-EXB-002教学系统实验箱一台 三、实验任务 1.、学习 MIPS 指令集,深入理解常用指令的功能和编码,并进行归纳确定处理器各部件的控制码,比如使用何种 ALU 运算,是否写寄存器堆等。 2、周期 CPU 是指一条指令的所有操作在一个时钟周期内执行完。设计中所有寄存器和存储器都是异步读同步写的,即读出数据不需要时钟控制,但写入数据需时钟控制。 故周期 CPU 的运作即:在一个时钟周期内,根据 PC 值从指令 ROM 中读出相应的指令,将指令译码后从寄存器堆中读出需要的操作数,送往 ALU 模块,ALU 模块运算得到结果。 如果是 store 指令,则 ALU 运算结果为数据存储的地址,就向数据 RAM 发出写请求,在下一个时钟上升沿真正写入到数据存储器。 如果是 load 指令,则 ALU 运算结果为数据存储的地址,根据该值从数据存 RAM 中读出数据,送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆中。 如果非 load/store 操作,若有写寄存器堆的操作,则直接将 ALU 运算结果送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆中。 如果是分支跳转指令,则是需要将结果写入到 pc 寄存器中的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值