实验一 简化的RISC_CPU设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
3、 RISC CPU功能分析 、 功能分析
RISC CPU的作用 的作用 • 协调并控制计算机的各个部件 • 执行程序的指令序列
RISC CPU的基本功能 的基本功能
• 取指令 • 分析指令 • 执行指令
9
3、 RISC CPU功能分析 、 功能分析
取指令
• 当程序已经在存储器中时 , 首先根据程序入口 当程序已经在存储器中时, 地址取出一条程序, 地址取出一条程序,为此要发出指令地址及控制 信号。 信号。
13
3、 RISC CPU功能分析 、 功能分析
RISC CPU整体功能 整体功能
• 取指令 • 分析指令 • 执行指令 • 状态控制器 • 地址控制器 • 数据控制器 • 时钟控制器
14
4、 RISC_CPU操作和时序 、 操作和时序
RISC CPU需要执行的操作 需要执行的操作
• 系统的复位和启动操作 • 总线读操作 • 总线写操作
顶层模块
22
6、RISC_CPU的设计 、 的设计
数据通道
23
6、RISC_CPU的设计 、 的设计
状态控制器
24
7、RISC_CPU的实现 、 的实现
25
2
6
7
4
3 1 5
数据通道
26
模块1 模块
时钟发生器
27
模块一 时钟发生器
时钟发生器clkgen利用外来时钟信号 生成一系列时 利用外来时钟信号clk生成一系列时 时钟发生器 利用外来时钟信号 钟信号clk1、fetch、alu_clk,并送往 的其他部件。 钟信号 、 、 ,并送往CPU的其他部件。 的其他部件 其中, 是外来时钟clk的 分频信号 利用fetch的上 分频信号, 其中,fetch是外来时钟 的8分频信号,利用 是外来时钟 的上 升沿来触发CPU控制器开始执行一条指令,同时 控制器开始执行一条指令, 升沿来触发 控制器开始执行一条指令 同时fetch信 信 号还将控制地址多路器输出指令地址和数据地址; 号还将控制地址多路器输出指令地址和数据地址; clk1信号用作指令寄存器、累加器、状态控制器的时钟 信号用作指令寄存器、累加器、 信号用作指令寄存器 信号; 信号; alu_clk则用于触发算术逻辑运算单元。 则用于触发算术逻辑运算单元。 则用于触发算术逻辑运算单元
分析指令
• 即指令译码,这是对当前取得的指令进行分析 , 即指令译码,这是对当前取得的指令进行分析, 指出它要求什么操作, 指出它要求什么操作,并产生相应的操作控制命 令。
10
3、 RISC CPU功能分析 、 功能分析
执行指令
• 根据分析指令时产生的“ 操作命令 ” 形成相应 根据分析指令时产生的“操作命令” 的操作控制信号序列,通过运算器、 的操作控制信号序列,通过运算器、存储器及输 入 /输出设备的执行 , 实现每条指令的功能 , 其 输出设备的执行, 输出设备的执行 实现每条指令的功能, 中包括对运算结果的处理以及下条指令地址的形 成。
16
4、 RISC_CPU操作和时序 、 操作和时序
总线读操作
• 每个指令周期的前 每个指令周期的前0~3个时钟周期用于读指令; 个时钟周期用于读指令; 个时钟周期用于读指令 • 第 3.5个周期处 , 存储器或端口地址就输出到地 个周期处, 个周期处 址总线上; 址总线上; • 第4~6个时钟周期,读信号 有效,数据送到数 个时钟周期, 有效, 个时钟周期 读信号rd有效 据总线上, 以备累加器锁存, 或参与算术、 据总线上 , 以备累加器锁存 , 或参与算术 、 逻辑 运算; 运算; • 第7个时钟周期,读信号无效,第7.5个时钟周期, 个时钟周期,读信号无效, 个时钟周期, 个时钟周期 个时钟周期 地址总线输出PC地址,为下一指令做好准备。 地址总线输出 地址,为下一指令做好准备。 地址
12
3、 RISC CPU功能分析 、 功能分析
执行指令
• 根据分析指令时产生的“ 操作命令 ” 形成相应 根据分析指令时产生的“操作命令” 的操作控制信号序列,通过运算器、 的操作控制信号序列,通过运算器、存储器及输 / 输出设备的执行 实现每条指令的功能, 输出设备的执行, 入 /输出设备的执行 , 实现每条指令的功能 , 其 中包括对运算结果的处理以及下条指令地址的形 成。 • 算术逻辑运算单元(ALU) 算术逻辑运算单元( ) • 累加器 • 程序计数器(PC) 程序计数器( )
实践项目内容
数字电路的数字钟; 数字电路的数字钟; 高级数字系统设计与验证的数字钟; 高级数字系统设计与验证的数字钟; SoC系统开发的数字钟。 SoC系统开发的数字钟。
1
实践项目成果
2
项目第一部分 简化的RISC_CPU设计 简化的RISC_CPU设计
3
1、概 、
设计所用语言 • Verilog HDL 设计所用方法 • Top-Down设计方法 Top-Down设计方法 设计所用知识
20
5、RISC_CPU寻址方式和指令系统 、 寻址方式和指令系统
RISC_CPU是8位微处理器,一律采用直接 是 位微处理器 位微处理器, 寻址方式,即数据总是放在存储器中, 寻址方式,即数据总是放在存储器中,寻址单 元的地址由指令直接给出。 元的地址由指令直接给出。
21
6、RISC_CPU的设计 、 的设计
5
2、 什么是 、 什么是RISC CPU
CPU的意思 的意思
• 中央处理单元的缩写,它是计算机的核心部件 中央处理单元的缩写,
RISC的意思 的意思
• 精 简 指 令 集 计 算 机 ( Reduced Instruction Set Computer)的缩写 )
6
2、 什么是 、 什么是RISC CPU
Fra Baidu bibliotek
述
• 数字电路 • 计算机组成原理 • 高级数字系统设计与验证 可综合风格的组合逻辑电路设计 有限状态机的设计
4
1、概 、
设计所用开发环境
• ISE8.2 • ModelSim6.1
述
设计和实现的目标
• 完成 条指令的 完成8条指令的 条指令的RISC CPU设计 设计 • 完成对所设计 完成对所设计RISC CPU的验证 的验证 • 实现 实现RISC CPU在FPGA开发板上的正确运行 在 开发板上的正确运行
11
3、 RISC CPU功能分析 、 功能分析
取指令
• 当程序已经在存储器中时 , 首先根据程序入口地 当程序已经在存储器中时, 址取出一条程序,为此要发出指令地址及控制信号。 址取出一条程序,为此要发出指令地址及控制信号。 • 指令寄存器
分析指令
• 即指令译码 , 这是对当前取得的指令进行分析 , 即指令译码,这是对当前取得的指令进行分析, 指出它要求什么操作,并产生相应的操作控制命令。 指出它要求什么操作,并产生相应的操作控制命令。 • 译码器
18
5、RISC_CPU寻址方式和指令系统 、 寻址方式和指令系统
指令系统由8条指令组成: 指令系统由 条指令组成: 条指令组成
• HLT:停机操作。该操作将空一个指令周期,即 :停机操作。该操作将空一个指令周期, 8个时钟周期; 个时钟周期; 个时钟周期 • SKZ:若为零跳过下一条语句。该操作先判断当 :若为零跳过下一条语句。 前累加器中的结果是否为零, 前累加器中的结果是否为零 , 若为零就跳过下一 条语句,否则继续执行; 条语句,否则继续执行; • ADD: 该操作将累加器中的值与地址所指的存 : 储器或端口的数据相加,结果仍送回累加器中; 储器或端口的数据相加,结果仍送回累加器中; • ANDD:该操作将累加器的值与地址所指的存储 : 器或端口的数据相与,结果仍送回累加器中; 器或端口的数据相与,结果仍送回累加器中; 19
7
3、 RISC CPU功能分析 、 功能分析
计算机利用RISC CPU处理信息的步骤 计算机利用 处理信息的步骤
• 将数据和程序( 即指令序列 )输入到计算机的 将数据和程序(即指令序列) 存储器中 • 从第一条指令的地址起开始执行该程序,得到 从第一条指令的地址起开始执行该程序, 所需结果, 所需结果,结束运行
RISC CPU简介 简介
• 是 20 世 纪 80 年 代 才 出 现 的 CPU , 与 一 般 的 CPU相比不仅只是简化了指令系统 , 而且还通 相比不仅只是简化了指令系统, 相比不仅只是简化了指令系统 过简化指令系统,使计算机的结构更加简单合理, 过简化指令系统,使计算机的结构更加简单合理, 从而提高运算速度
28
模块2 模块
指令寄存器
29
模块二 指令寄存器
指令寄存器的触发时钟是clk1,在clk1的正沿触发下, , 的正沿触发下, 指令寄存器的触发时钟是 的正沿触发下 寄存器将数据总线送来的指令存入高8位或低 位寄存器中, 位或低8位寄存器中 寄存器将数据总线送来的指令存入高 位或低 位寄存器中, 但并不是每个clk1的上升沿都寄存数据总线的数据,因为 的上升沿都寄存数据总线的数据, 但并不是每个 的上升沿都寄存数据总线的数据 数据总线上有时传输指令,有时传输数据; 数据总线上有时传输指令,有时传输数据; 是不是指令由CPU状态控制器的 状态控制器的load_ir信号控制,该信 信号控制, 是不是指令由 状态控制器的 信号控制 号通过ena口输入到指令寄存器,高电平表示是指令; 口输入到指令寄存器, 号通过 口输入到指令寄存器 高电平表示是指令; 复位信号高有效,指令寄存器被清为零; 复位信号高有效,指令寄存器被清为零; 每条指令为两个字节, 位是操作码, 每条指令为两个字节,即16位。高3位是操作码,低13 位 位是操作码 位是地址( 的地址总线为13位 寻址空间为8K字节 字节) 位是地址(CPU的地址总线为 位,寻址空间为 字节) 的地址总线为 数据总线为8位 所以每条指令需取两次,先取高 位 数据总线为 位,所以每条指令需取两次,先取高8位, 后取低8位 后取低 位。
5、RISC_CPU寻址方式和指令系统 、 寻址方式和指令系统
指令系统由8条指令组成: 指令系统由 条指令组成: 条指令组成
• XORR:该操作将累加器的值与指令中给出地址 : 的数据异或,结果仍送回累加器中; 的数据异或,结果仍送回累加器中; • LDA:该操作将指令中给出地址的数据放入累加 : 器; • STO:该操作将累加器的数据放入指令中给出的 : 地址; 地址; • JMP:该操作将跳转至指令给出的目的地址,继 :该操作将跳转至指令给出的目的地址, 续执行。 续执行。
15
4、 RISC_CPU操作和时序 、 操作和时序
系统的复位和启动操作
• RISC_CPU的复位和启动操作是通过 引脚的信号触发 的复位和启动操作是通过rst引脚的信号触发 的复位和启动操作是通过 执行的; 执行的; • 当rst信号一进入高电平,RISC_CPU就会结束现行操作, 信号一进入高电平, 就会结束现行操作, 信号一进入高电平 就会结束现行操作 并且只要rst停留在高电平状态 停留在高电平状态, 就维持在复位状态; 并且只要 停留在高电平状态 , CPU就维持在复位状态 ; 就维持在复位状态 • 在复位状态 , CPU各内部寄存器都被设为初值, 全部为 在复位状态, 各内部寄存器都被设为初值, 各内部寄存器都被设为初值 数据总线为高阻态,地址总线为0000H,所有控制信 零。数据总线为高阻态,地址总线为 , 号均为无效状态; 号均为无效状态; • rst回到低电平后,接着到来的第一个时钟上升沿将启动 回到低电平后, 回到低电平后 RISC_CPU开始工作,从ROM的000处开始读取指令并执 开始工作, 的 处开始读取指令并执 开始工作 行相应操作。 行相应操作。
17
4、 RISC_CPU操作和时序 、 操作和时序
总线写操作: 总线写操作:
• 每个指令周期的第 个时钟周期处 , 写的地址 每个指令周期的第3.5个时钟周期处 个时钟周期处, 就建立了; 就建立了; • 第4个时钟周期输出数据; 个时钟周期输出数据; 个时钟周期输出数据 • 第 5个时钟周期输出写信号 , 至第 个时钟结束 , 个时钟周期输出写信号, 个时钟结束, 个时钟周期输出写信号 至第6个时钟结束 数据无效; 数据无效; • 第7.5个时钟周期,地址输出为 地址,为下一 个时钟周期, 地址, 个时钟周期 地址输出为PC地址 指令做好准备。 指令做好准备。