一个16位RISC CPU设计 下载本文

二.主要模块设计

首先给出了系统的总体结构图如图1:

haltwrMechinectlfetchcontr_enaaux2rdInto_pcZeroRESETCLKCLK_GENLoad_irMechineaux1Load_pcLoad_regAlu_clkclk1Op_code[4:0]Counter_enaInc_pcData_enaADDRclk1Op_code[4:0]ADDR[7:0]DATA[15:0]RegistD2[2:0]erD1[2:0]D3[2:0]RegfileDI[15:0]Pc_addrAUAlu_a[15:0]X1DO1[15:0]ALUPc_addr[7:0]DO2[15:0]RESETAUX3clk1Aux3_in[15:0] DO2[15:0]Alu_b[15:0]COUNTERI[7:0]AUX2Alu_out[15:0]DATACTLPc_addrin[7:0]图1. 16位RISC CPU结构简图

图1中,与外围器件相连的线均为粗体表示。同时按照要求,设计了MEM用于存放数据和指令,按照便于程序执行的原则,外围设计及连接示意如图2所示:

CLKRESETDO2[15:0]WRDATA[15:0]MEMENACPUHALTADDR[7:0]Memdecode图2. CPU 外部电路及连接关系图

组件 功能 clk_gen register regfile aux1 aux2 auxpc 接受外指令寄寄存器组 部时钟,存器 生成内部时钟 选通寄存选通寄存选通是器输出 还是PC 器输出还本指令是立即数 生成地址还是预存跳转地址 组件 功能 aux3 alu machinectl reg_z auxreg reg_pc 选通存进行数对控制机存贮条件对寄存器存储跳储器输据和逻进行 出还是辑运算 复位 转移指令堆的选取转指令的标志变进行控的目标PC或是ALU输出 组件 machine counter addr 量 制,主要地址,是控制寄以备跳存器号 转使用 mem memdecode 功能 控制机,地址计地址选通外部存储存储器译 通过对数器,对正常的下器单元,码和使能 控制为地址进位地址还用于存放赋值决行+4操是ALU生指令和数定各个作 不同状态下不同指令的操作 成的新地据 址

在设计的部件中,针对不同功能的实现,采取了比较繁琐的射击方式。在MEMORY之外存在几大设计部件。主要部件设计如下:

一.状态控制机: