8指令RISC_CPU的Verilog实现

本文详细介绍了RISC_CPU的结构,包括时钟发生器、指令寄存器、累加器、数据控制器、地址多路器、程序计数器、算术逻辑运算单元(ALU)和状态控制器的运作机制。此外,还讨论了外围模块,如地址译码器、ROM和RAM。RISC_CPU的操作包括复位启动、总线读写操作,采用直接寻址方式。
摘要由CSDN通过智能技术生成

RISC_CPU的结构

1.时钟发生器
时钟发生器clk_generate利用外来的时钟信号clk生成一系列时钟信号。
其中生成的clk信号用作指令寄存器、累加器、状态控制器的时钟信号。
clk的8分频fetch信号。当fetch信号为高电平时,使clk能触发CPU控制器开始执行一条指令。同时fetch信号还将控制地址多路器输出指令地址或者数据地址。
2.指令寄存器
指令寄存器在clk正沿触发下,将数据总线送来的指令存入高8位或低8位寄存器中。是否寄存是收到CPU状态控制器的load_ir信号控制的。
由于每条指令16位(高3位操作码,低13位地址码)即 两个字节。因为本设计的数据总线为8位,所以每条指令需要取两次。先取高8位,后取低8位。定义一个变量state来决定当前是取的高8位还是低8位。
3.累加器
累加器用于存放当前的结果,它也是双目运算中的一个数据来源。当累加器通过ena口收到来自CPU状态控制器load_acc信号时,在clk时钟正跳沿时就收到来自于数据总线的数据。而累加器的数据只有在需要往RAM区或端口写时才允许输出,否则应呈现高阻态。
4.数据控制器
数据控制器的作用是控制累加器的数据输出。由于这个数据总线是各种操作传送数据的公共通道,不同的情况下传送不同的内容。数据总线有时传送RAM区或接口的数据,有时传送指令。累加器不写的时候是高阻态,就可以允许其他部件使用数据总线了。数据控制器何时输出累加器的数据则由状态控制器输出的控制信号datactl_ena决定。
任何部件往总线上输出数据时,都是由CPU状态控制器输出的各信号控制决定。

module datactl(data,in,data_en
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值