现在的位置: 首页 > FPGA开发 > 正文

<自制MCU> 8位CPU,仿真成功【一】

2020年02月29日 FPGA开发 ⁄ 共 466字 ⁄ 字号 <自制MCU> 8位CPU,仿真成功【一】已关闭评论 ⁄ 阅读 2,555 次

今天晚上把指令集定了一下,编写了一串机器码测试了一下计算结果,是对的。

先放几个图片,需要做的内容还很多,外设现在只加了ram和rom,后续要丰富起来。

哈佛结构

单流水线,取指、译码、执行:

下图可以看出PC每3个机器周期+1,开始下一条指令的执行:

以下是指令集介绍,共分了4类指令:

1、特殊指令

2、立即数操作指令

3、访存指令

4、跳转指令

所有指令都是24位(有些浪费,大多数指令只需要16位,为了考虑跳转指令方便实现暂时把指令都定为了24位)

下图是MCU顶层视图:

上图为Core的组成,有取指模块、译码模块、执行模块、控制模块(相当于微指令发生器)、寄存器模块(共5个寄存器:PC、ACC、DR、SR、IR),后续要加上debug模块,方便在线下载程序。

以下是一些内部模块综合完成后的RTL视图:

下面是一个计算的例子:

手工编写机器码,写入ROM初始化文件中,下一步开始仿真

仿真结果是正确的 00001101 = 00001010+00000011

从上图可以看出,执行完计算之后,PC的值在3和4之间一直跳动,证明死循环正在执行,实现了程序逻辑。

×