简单微处理器设计实验报告_第1页
简单微处理器设计实验报告_第2页
简单微处理器设计实验报告_第3页
简单微处理器设计实验报告_第4页
简单微处理器设计实验报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1目 录目 录 1表 目 录 .2图 目 录 .31 文 档 说 明 ( Introduction) 42 描 述 习 惯 ( Conventions) .53 微 处 理 器 各 功 能 模 块 63.1 概 述 63.2 结 构 框 图 63.2.1 ALUpart 63.2.2 controlpart .93.2.3 CPU.113.3 功 能 列 表 123.3.1 ALUpart.123.3.2 controlpart .133.3.2.1 状态转移图 .133.4 工 作 环 境 介 绍 .143.4.1 设 计 代 码 .143.4.2 测 试 平 台 .143.4.3 电 路 综 合 环 境 163.4.4 后 仿 真 环 境 .163.5 功 能 验 证 结 果 173.5.1 前 仿 真 结 果 .173.5.2 后 仿 真 结 果 .193.6 综 合 结 果 .202表目录表 1 ALU8 模块 I/O 接口表 2 通用寄存器堆模块 I/O 接口表 3 alupart 输入输出 I/O 口列表表 4 控制器模块 I/O 接口表 5 IRRAM 模块 I/O 接口表 6 Control-part 结构整体 I/O 接口表 7 CPU 整体模块 I/O 接口表 8 ALU 指令集表 9 添加的 JUMP 指令3图目录图 1 ALU8 模块框图图 2 通用寄存器 RAM 模块框图图 3 ALUpart 模块框图图 4 控制器模块框图图 5 IRRAM 模块框图图 6 Control-part 结构框图图 7 CPU 结构框图图 8 ALUpart 状态转移图图 9 controlpart 状态转移图图 10 CPU 计算 5!的全图图 11 controllpart 执行一条指令的波形图图 12 control 执行非跳转指令的状态机波形图 13 control 执行跳转指令的状态机波形图 14 ALUpart 执行一条指令的波形图图 15 ALUpart 执行指令状态机的波形图 16 综合的 Timing report图 17 综合的 Area report图 18 门级仿真 5!的波形结果图 19 门级仿真产生的延时1 文档说明(Introduction)本文档描述了简单微处理器的总体设计,如功能、模块结构、关键时序等等。本设计参照了课程设计文档的系统原理框图和功能列表,根据需求作了一些改动,将累加器A合并到ALU 单元中,将寄存器 Rn合并到通用寄存器RAM(8*8)中;将程序计数器和指令寄存器合并到控制模块controller 中等。指令方面,添加了Acc非零时跳转指令JNZ。IC 课程设计_微处理器设计_实验报告 第 40 组52 描述习惯(Conventions)在文档写作中黑色字体表明已经确定的内容,尚未完全确定的内容以蓝色字体表示,有疑问或需要醒目标示的内容则以红色字体表示。代码方面,使能信号习惯采用低电平有效。IC 课程设计_微处理器设计_实验报告 第 40 组63 微处理器各功能模块3.1 概述8位微处理器的硬件系统主要包括运算器ALU、控制器CON、指令存储器IRRAM(64*8)、通用寄存器堆RAM(8*8)等逻辑部件。能够通过控制器读取指令集,对 8位数据进行运算和操作。本次设计有独立的控制模块和运算模块,通用寄存器堆合并到ALU模块中,IRRAM合并到CON控制模块中。仿真周期采用10ns。微处理器的指令系统通过指令码实现,根据其格式的不同,可分为算术、逻辑、数据转移、跳转指令等。在功能列表部分将做详细介绍。本次课程设计实现了阶乘5!以验证处理器的运算类指令。已成功实现RTL级设计、功能仿真、综合、门及仿真。3.2 结构框图3.2.1 ALUpartA L U 8c l kr s tD a t a 7 . . 0 D a t a _ l eRn7.0Rn_rdRn_wrOp3.0busyc a r r yA c c 7 . . 0 A图 1 ALU8 模块框图ALU 模块是运算模块,有 3 个状态,从 controller 中读取数据和使能信号等,根据选通信号 op 判断当前要进行的指令操作。先读取 Rn_rd 和 reg_add,状态并不跳转,等待直到data_le 低有效,读取到立即数 data 时,状态跳转到运算状态,再通过 case 语句进行相应运算操作。IC 课程设计_微处理器设计_实验报告 第 40 组7表 1 ALU8 模块 I/O 接口SIGNAL BITS I/O SIGNAL DESCRIPTIONclk 1 I 时钟信号rst 1 I 复位信号Rn_rd 1 I 读 Rn 使能信号,低有效Reg_add 3 I Rn 在 RAM 中的地址Rn 8 I 寄存器,暂存中间运算数据Rn_wr 1 O 写使能信号,低有效op 4 I 运算功能选择信号data 8 I 立即数data_le 1 I 读立即数使能信号,低有效busy 1 O ALU8 忙,低有效carry 1 O 进位信号,carry=1 时 JC addrAcc 8 O 运算器结果通用寄存器堆 RAM(8*8),储存中间数据 Rn,结构框图:R A M n _ a r r a y ( 8 * 8 )c l kr s tR n _ a d d r 2 . . 0 R n _ r dRn7.0Rn_wrA c c 7 . . 0 图 2 通用寄存器 RAM 模块框图下表为输入输出接口:表 2 通用寄存器堆模块 I/O 接口SIGNAL BITS I/O SIGNAL DESCRIPTIONclk 1 I 时钟信号rst 1 I 复位信号Rn_rd 1 I 读 Rn 使能信号,低有效Reg_add 3 I 要操作的操作数 Rn 在 RAM 中的地址Rn 8 O 寄存器,暂存中间运算数据Rn_wr 1 I 写使能信号,低有效Acc 8 I 运算器运算结果IC 课程设计_微处理器设计_实验报告 第 40 组8A L U 8R A M n _ a r r a y ( 8 * 8 )op3.0A c c 7 . . 0 c l kR s tc l kR s tA7.0data7.0R e g _ a d d 2 . . 0 data_lea l u _ p a r tRn_wrRn7.0R n _ r db u s yc a r r y图 3 ALUpart 模块框图Alu8 和 RAMn_array 两个模块组成 ALU part 部分。两个模块通过 Rn_wr 信号,Rn 和 A 进行交互。当需要进行读操作时,在外部(相对于alupart 模块)使能信号 Rn_rd 下,alu 通过地址 Rn_addr 读取出需要的 Rn;当需要进行写操作时,alu8 使信号 Rn_wr 低有效,再经过一个周期,将当前中间运算结果 A 写入到地址Rn_addr 对应的 Rn 中去。ALU8 模块中包含了 16 种运算(不包含跳转) ,也包含了累加功能块 A,从 controlpart读取选通信号 op 和数据 data,从 RAMn_array 读取 Rn。RAM(8*8)中存放 Rn,通过 control 的使能 Rn_rd,经地址 Rn_addr20将数据读到ALU8 中去,利用 ALU8 给的 Rn_wr 信号将 A 写到 RAM(8*8)中去。表 3 alupart 输入输出 I/O 口列表SIGNAL BITS I/O SIGNAL DESCRIPTIONclk 1 I 时钟信号rst 1 I 复位信号Rn_rd 1 I 读 Rn 使能信号,低有效Reg_add 3 I Rn 在 RAM 中的地址op 4 I 运算功能选择信号data 8 I 立即数data_le 1 I 读立即数使能信号,低有效busy 1 O ALU8 忙,低有效carry 1 O 进位信号,carry=1 时 JC addrAcc 8 O 运算器结果IC 课程设计_微处理器设计_实验报告 第 40 组93.2.2 controlpart控制器 controller 结构框图:I R 寄存器程序计数器C o n t r o l l e rI R 7 . . 0 I R R A M _ a d d 5 . . 0 C l kR s tc a r r yA l u _ f r e eA c c 7 . . 0 Reg_add_leReg_add2.0Op3.0data_ledata7.0I R _ l e图 4 控制器模块框图控制器是整个设计中关键的模块,本课程设计中控制器包含了用信号形式表示的 IR 寄存器和程序计数器。控制器从 ALU 模块中读取 Acc 用于判断零跳转 JZ 和非零跳转 JNZ,读取 carry 用于判断进位跳转 JC,读取 busy 即 alu_free 用于判断 alu 正处于空闲状态,握手信号使时序正确。同时,控制器给 ALUpart 提供 data,data_le,reg_add(Rn_add),reg_add_le(Rn_le),op 等信号。控制器与指令寄存器通过 IR_le,IR,IRRAM_add 进行交互。用程序计数器 counter 来计量IRRAM_add,当 IR_le 低有效时,用 IRR 暂存读取的 IRRAM_add 地址上的指令 IR,不同时刻IR 代表指令 op、Rn_reg 或者数据 data。表 4 控制器模块 I/O 接口SIGNAL BITS I/O SIGNAL DESCRIPTIONclk 1 I 时钟信号rst 1 I 复位信号IR 8 I 程序输入IR_le 1 I 读入指令使能IRRAM_add 6 O 指令寄存器 IRRAM 地址Rn_rd 1 O 读 Rn 使能信号,低有效Reg_add 3 O Rn 在 RAM 中的地址op 4 O 运算功能选择信号data 8 O 立即数data_le 1 O 读立即数使能信号,低有效alu_free 1 I ALU 单元空闲,低有效carry 1 I 进位信号,carry=1 时 JC addrAcc 8 I 运算器结果IC 课程设计_微处理器设计_实验报告 第 40 组10指令存储器 IRRAM(64*8)结构框图:I R R A M ( 6 4 * 8 )C l kR s tA d d 5 . . 0 I R 7 . . 0 L e图 5 IRRAM 模块框图在本课程设计中,IRRAM 预先存储着要操作的指令代码,也包括数据。将在典型代码分析中详细说明。表 5 IRRAM 模块 I/O 接口SIGNAL BITS I/O SIGNAL DESCRIPTIONclk 1 I 时钟信号rst 1 I 复位信号IR 8 O 程序输入le(IR_le) 1 O 读指令使能add(IRRAM_add) 6 I 指令寄存器 IRRAM 地址c o n t r o l l e rI R R A M ( 6 4 * 8 )op3.0A c c 7 . . 0 c l kR s tc l kR s tIR7.0IRRAM_add5.0r e g _ a d d _ l eA l u _ f r e ec a r r ydata7.0R e g _ a d d 2 . . 0 data_leC o n t r o l _ p a r tIR_le图 6 Control-part 结构框图IC 课程设计_微处理器设计_实验报告 第 40 组11表 6 Control-part 结构整体 I/O 接口SIGNAL BITS I/O SIGNAL DESCRIPTIONclk 1 I 时钟信号rst 1 I 复位信号Rn_rd 1 O 读 Rn 使能信号,低有效Reg_add 3 O Rn 在 RAM 中的地址op 4 O 运算功能选择信号data 8 O 立即数data_le 1 O 读立即数使能信号,低有效alu_free 1 I ALU 单元空闲,低有效carry 1 I 进位信号,carry=1 时 JC addrAcc 8 I 运算器结果3.2.3 CPUCPU 整体结构框图:C P UA c c _ o u t 7 : 0 c l kr s tc o n t r o l l e rI R R A M ( 6 4 * 8 )A c c 7 . . 0IR7.0IRRAM_add5.0Alu_freecarryd a t a 7 . . 0 d a t a _ l eC o n t r o l _p a r tIR_leA L U 8R A M n _ a r r a y ( 8 * 8)c l kR s tA7.0a l u _p a r tRn_wrRn7.0R n _ r dbusycarryreg_add2.0O p 3 . . 0 Reg_add_leA c c 7 . . 0 图 7 CPU 结构框图IC 课程设计_微处理器设计_实验报告 第 40 组12表 7 CPU 整体模块 I/O 接口SIGNAL BITS I/O SIGNAL DESCRIPTIONclk 1 I 时钟信号rst 1 I 复位信号Acc 8 O 输出结果由于时间仓促,本次课设没有做汇编器和 I/O 界面输入,程序指令已预先存储到IRRAM 中。只需时钟 clk 和复位信号 rst 经仿真即可得到运算结果。3.3 功能列表3.3.1 ALUpart表 8 ALU 指令集指令 op 功能描述算术指令 ADD A, Rn 0001 把 Rn 的值加到 A 上ADD A, #data 0010 把立即数的值加到 A 上ADDC A, Rn 0011 连同进位一起把 Rn 的值加到 A 上SUBB A, Rn 0100 连同借位一起从 A 中减去寄存器的值SUBB A, #data 0101 连同借位一起从 A 中减去立即数的值逻辑运算指令 ANL A, Rn 0110 Rn 对 A 进行逻辑与运算ANL A, #data 0111 立即数对 A 进行逻辑与运算ORL A, Rn 1000 Rn 对 A 进行逻辑或操作ORL A, #data 1001 立即数对 A 进行逻辑或操作XRL A, Rn 1010 Rn 对 A 进行逻辑异或操作XRL A, #data 1011 立即数对 A 进行逻辑异或操作CLR A 1100 清空 A 的值CPL A 1101 对 A 的值取反数据传输指令 MOV A, Rn 1110 把 Rn 的值传输给 AMOV A, #data 1111 把立即数传输给 AMOV Rn, A 0000 把 A 传输给 Rn 寄存器指令操作中涉及到 Rn 的需要对 RAMn_array 进行读或者写操作,读操作需要提前写好Rn 的值,写操作需要经过两个周期(Rn_wr 置低到 RAMn_array 在 Rn_wr 使能下读入 A 进行写操作各需一个周期)的才能实现。涉及 data 的可直接在本周期完成。正常情况下指令的顺序是,控制器在第一个周期先给 ALU 模块 op 和 Rn_addr,第二个周期等待 ALU 接受数据,第三个周期给出 data 和 data_le,因此 Rn 有足够的时间提前准备好。IC 课程设计_微处理器设计_实验报告 第 40 组130 01 00 1Data_le=0I D L E S T A T EO PS T A T EW A I TS T A T E图 8 ALUpart 状态转移图Alu 模块设定了 3 个状态:空闲状态 00,用于接收数据,当 Rn_le 低有效时读入Rn_add,不跳转,当 data_le 低有效时状态跳转到 01。状态 01 为运算状态,根据 op 判断将要进行的运算,从 RAMn_array 中读取数据,或者写入 A,或者用输入的 data 对 A 进行操作。状态 01 无条件跳转到状态 10,因为 01 中的运算操作在一个周期内即可完成,10存在是给 RAMn_array 留一个周期进行写操作。由于 Acc 结果需要即时改变,实现时用到一个中间信号 A 跟踪 Acc。与控制模块握手的 busy 信号在 01 状态即赋值为高,因为非阻塞赋值在下一时钟有效沿才实现,即 10 状态时 busy 为高,即 alu 不忙(可能忙的是 RAMn_array) ,控制模块 controller 可以继续给 alu操作信号。3.3.2 controlpart3.3.2.1 状态转移图Con 模块状态转移图如下,可见每个指令,控制部分最短只需 4 个周期。状态 000,为空闲状态,当 IR_le=0 and Alu_free=0时读入指令 IR,在根据 IR7来判断将要跳转的下一个状态。当 IR7=1时,指令为 jump 类指令,状态由 000 跳转到 001;当 IR7=0时,指令为数据操作类指令,状态由 000 跳转到 010。并且程序计数器加一,指令存储器中指针也指向下一条指令。由于 IRRAM 中设定 IR_le 一直低有效,故跳转状态条件没有写出IR_le=0。状态 001 和 010 纯是等待时间,没有操作。这 2 个状态存在是在等待指令指向下一行,方便在下一个状态中读取指令中的数据或者跳转地址。状态 011 是 jump state,从 IR 中读取跳转地址,并让程序计数器指向下一条指令。然后跳转到 101 等待进行下一条指令操作。状态 100 是读数据 data 状态,000 状态已将 reg_add 和 op 读取出来传给 ALU,此时在100 状态,将立即数 data 读出,传给 ALU。然后跳转到 101 等待 ALU 一个周期跳转到000,状态转到 000 后,若 ALU 尚未运算完毕(alu_free=1),则继续停留在 idle 状态。IC 课程设计_微处理器设计_实验报告 第 40 组140 0 0i d l e1 0 1w a i t0 1 1j u m p1 0 0d a t a0 0 1J u m p w a i t0 1 0D a t a w a i tA l u _ f r e e = 0 move A to R3move R1 to AA=A-1move A to R1JNZ to 001100move R3 to Amove A to R0A=A-1move A to R1move A to R2JNZ to 001100move R3 to A-jmp机器指令如下case add iswhen “000000“ = IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR IR2 状态( 必然跳转)-4 状态( 必然

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论