IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 计算机组成原理 8位RISC CPU设计 -> 正文阅读

[嵌入式]计算机组成原理 8位RISC CPU设计

基于计算机组成原理课程设计和Verilog数字系统设计第二版夏宇闻版
笔者通过记录课设中CPU的设计过程以总结 后续文章请参看计算机组成原理专栏

RISC-CPU是一个复杂的数字逻辑电路,但是它的基本部件的逻辑并不复杂,可把它分

成8个基本部件来考虑;

〈1)时钟发生器
(2)指令寄存器;
(3)累加器;
(4)算术逻辑运算单元;
(5)数据控制器;
(6)状态控制器;
(7)程序计数器;
(8)地址多路器。

各部件的互相连接关系如图 其中时钟发生器利用外来信号进行分频生成系列时钟

时钟发生器?

时钟发生器CLKGEN利用外来时钟信号clk生成一系列时钟信号clk1,fetch,alu_clk,并送往CPU的其他部件。其中,fetch是控制信号,elk的8分频信号。当FETCH高电平时,使CLK能触发CPU控制器开始执行一条指令;同时FETCH信号还将控制地址多路器输出指令地址和数据地址。clk信号用作指令寄存器、累加器、状态控制器的时钟信号。ALU_ENA则用于控制箅术逻辑运算单元的操作。图17.2为时钟clkgen的波形如图所示


时钟发生器的设计中采用了同步状态机的设计方法,使clk_gen可以被综合。

?

指令寄存器

指令寄存器的触发时钟是clk,在clk的正沿触发下,寄存器将数据总线送来的指令存入高8位或低8位寄存器中。但并不是每个clk的上升沿都寄数据总线的数据,因为数据总线上有时传输指令,有时传输数据。什么时候寄存,什么时候不寄存由CPU状态控制器的load_ir信号控制。load_ir信号通过ena口输到指令寄存器,复位后,指令寄存器被清为零。
每条指令为两个字节,即16位。高3位是操作码,低13位是地址〈CPU的地址总线为13位,寻址空间为8K字节)。本设计的数据总线为8位,所以每条指令需取两次“先取高8位,后取低8位。而当前取的是高8位还是低8位·由变state记录。为0表示取的是8位,存入高8位寄存器,同时将变量state置为1.下次再寄存时,由于state为1,可知取的是低8位,存入低8位寄有器中。

?

累加器 ACCUM

累加器用于存放当前的结果,它也是双目运算中的一个数据来源(见图17,5).复位后,累加器的值是零·当累加器通过ena口收到来自CPU状态控制器load_acc信号时,在clkl时钟正跳沿时就收到来自数总线的数据。
?

?算术运算器ALU

地址多路器ADR?

地址多路器如图所示,它用于选输出的地是(程序计数)地址还是数据/端口地址。每个指令周期的前4个时钟周期用于从ROM中读取指令,输出的应是PC地址,后4个时钟周期用于对RAM或端口的读写,该地由指令给出.地址的选择输出信号由时钟信号的8分频信号fetch提供。

程序计数器PC?

程序计数器如图所示。它用于提供指令地址,以便读取指令·指令按地址序存放在存储器中·有两种途径可形成指令地址;其一是顺序执行的情况,其二是遇到要改变顺序执行程序的情况,例如执行IMP指令后,需要形成新的指令地址。下面就来详细说明PC地址是如何建立的。


复位后.指令指针为零,即每次CPU重新启动将从ROM的零地址开始读取指令并执行·每条指令执行完需两个时钟,这时pc_addr,已被增2,指向下一条指令(因为每条指令占两个字节)-如正在执行的指令是跳转语句,这时CPU状态控制器将会输出load-pc信号,通过load口进人程序计数器·程序计数器(pc_addr)将装人目标地址〔ir-addr),而不是增2。

?

状态机控制器?

状态控制器如图所示·它由两部分组成:
(1)状态机(图中的MACHINE部分〕;
(2)状态控制器(图中的MACHINECTL部分).
状态机控制器接收复位信号RST,当RST有效时,通过信号ena使其为0,输人到状态机中,以停止状态机的工作。
状态控制器的VerilogHDL程序见下面模块;


状态机是CPU的控制核心,用于产生一系列的控制信号,启动或停止某些部件生CPU何时进行读指令来读写I/O端囗及RAM区等操作,都是由状态机来控制的。状态机的当前状态,由变最state记录,state的值就是当前这个指令周期中已经过的时钟数〈从零计起)。指令周期是由8个时钟周期组成,每个时钟周期都要完成固定的搡作,即
(1)第0个时钟,CPU状态控制器的输出rd和load_ir为高电平,其余均为低电平·指令寄存器寄存由ROM送来的高8位指令代码。
(2)第1个时钟,与上一时钟相比只是inc_pc从0变为1,故PC增1,ROM送来低8位指令代码,指令寄存器存该8位代码。
(3)第2个时钟,空操作
〔4)第3个时钟,增1,指向下一条指令。若搡作符为HL六输出信号HLT为高。如果操作符不为HLT,除了PC增一外(指向下一条指令).其他各控制线输出为零“
(5)第4个时钟,若操作符为AND,ADD,XOR或LDA,读相应地址的数据,若为JMP,将目的地址送给程序计数器i若为STO,出累加器数据。
(6)第5个时钟,若操作符为ANDD.ADD或XORR,算术运箅器就进行相应的运算;若为LDA,就把数据通过算数运算器送给累加器;若为SKZ,先判断累加器的值是否为如果为0,PC就增1,否则保持原值:若为JMP,锁存目的地址若为STO,将数据写人地处。
(7)第6个时钟,空操作。
〈8)第7个时钟,若操作符为SKZ且禦加器值为0,则PC值再增1,跳过一条指令,否则PC无变化。
状态机和状态机控制器组成了状态控制器。

外围:ROM\RAM\地址译码器?
1.地址译码器:用于产生选通信号,选通ROM或RAM



2.ROM和RAM

?

cpu的操作和时序?

一个微机系统为了完成自身的功能,需要CPU执行许多操作。以下是RISC-CPU的主要操作,
(1)系统的复位和启动搡作;
(2)总线读操作
(3)总线写操作

系统的复位和启动搡作
RISC-CPU的复位和启动操作是通过reset引脚的信号触发执行的·当reset信号一进入高电平,RISC-CPU就会结束现行操作,并且只要reset停留在高电平状态,CPU就维持在复位状态。在复位状态,CPU各内部寄存器都被设为初值,全部为零·数据总线为高阻态,地址总线为佣00H,所有控制信号均为无效状态。reset回到低电平后,接着到来的第一个fetch上升沿将启动RISC-CPU开始工作,
从ROM的000处开始读取指令并执行相应操作。
总线读操作
每个指令周期的前0~3个时钟周期用于读指令,在状态控制器中已详细讲述,这里就不再重复;第3·5个周期处,存储器或端口地址就输出到地址总线上;第4~6个时钟周期,读信号rd有效,数据送到数据总线上,以备累加器锁存,或参与算术、逻辑运算;第7个时钟周期,读信号无效,第7,5个时钟周期,地址总线输出pc地址,为下一个指令做好准备。
总线写操作??????????????
每个指令周期的第3.5个时钟周期处,写的地址就建立了;第4个时钟周期输出数据;第5个时钟周期输出写信号;至第6个时钟结束,数据无效;第7,5个时钟地址输出为PC地址,为下一个指令周期做好准备。图17,13为CPU对存储器或端口写数据的时序。

CPU的寻址方式和指令系统?

模块的综合?

仿真文件cputop


?

?

?

?

由于笔者比较懒 所以没有具体代码块 后续会补充上的 见谅见谅

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 11:49:55  更:2021-12-09 11:52:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:10:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码