DLX 项目总结(Deluxe processor)

DLX project 项目总结

  • DLX 处理器的架构设计
    • datapath设计思路
  • 仿真以及基准测试(benchmarking)
  • 合成(synthesis)
  • 物理设计(physical design)

DLX 处理器的架构设计

下图我们可以看到,我们的顶层结构由三个部分组成,第一部分是IRAM(Instruction RAM),第二部分是DRAM(Data RAM),第三部分是DLX。

IRAM:是一个异步RAM存储器,用于存储二进制指令。当读取并初始化汇编程序并将其转化为二进制指令,指令依次存入IRAM中,便于之后运行程序正确读取指令。

DRAM:是一个同步写、异步读的RAM存储器,有一个高电平复位信号,一个高电平读使能信号和一个高电平写使能信号,具体封装如下。

DLX:包含 datapath 和 Control unit 两部分,其中数据路径包括五个阶段:fetch,decode,execution,memory,writeback。Control unit 包括三种:FSM,Microprogrammed,hardwired CU。最后选择了hardwired CU因为较为容易实现流水线pipeline操作。
DLX 项目总结(Deluxe processor)_第1张图片

datapath设计思路

首先想到把数据路径分成五个阶段,将五个阶段分别整体封装,确定五个阶段的输入和输出,然后将封装的五个阶段连接在一起形成一个整体的数据路径。

  1. fetch instruction:我们首先确认进入这个模块的输入信号为PC(program count),clock,reset;输出信号为instruction为32位。
  2. decode :这一模块的输入信号为instruction,clock,reset和enable信号;输出信号为RS1,RS2,RD1,IMM16,IMM26.
  3. execution :执行模块是最关键的设计部分,也是最难的部分之一,这里我们可以有很多思路实现。这里输入信号为RS1(读端口源1),RS2(读端口源2),RD1(写地址端口),IMM16(16位立即数),IMM26(26位立即数),WDATA(写回数据端口),RF1(读端口1的使能信号),RF2(读端口2的使能信号),WF(写端口使能信号),ENABLE,S1,S2,S3,S4(这里因为我们只设计执行的指令类型有:判断分支,基本运算+,-,*,位运算 or,xor,and。所以四位选择信号足够了),clock,reset信号。一部分信号来自于Control unit,一部分来自于上一阶段decoder的输出。执行单元的输出为具体的运算结果,可自行定义。
  4. memory:这一模块输入信号为上一步执行单元计算出来的运算结果,还有来自于控制单元的信号,仅当执行Load/Store指令时,才有data memory操作,否则就会在最后直接写回register file。当有jump跳转指令时,我们也需要更新PC值进行跳转操作。
  5. writeback:最后写回阶段就是需要最后将数据写回register file。我们在各个阶段加寄存器来存储写回地址,使得写回数据和写回地址保持同步。

仿真以及基准测试(benchmarking)

合成(synthesis)

物理设计(physical design)

你可能感兴趣的:(架构,嵌入式硬件)