三步教你用 Verilog 写一个 CPU
https://blog.csdn.net/iteye_5971/article/details/82612212
第一步:牛刀小试
1. 教学大纲
第一步
指令集设计与五级流水线的实现
第二步
内存设计与 CPU 测试
第三步
指令冲突避免
2. 开发基础
课程要求:数字电路、计算机组成原理、程序设计
编程语言:Verilog
开发平台:xilinx ISE
FPGA 开发板:Nexys3
3. 实现目标
本文实现的 CPU 是一个五级流水线的精简版 CPU(也叫 PCPU,即 pipeline),包括 IF(取指令)、ID(解码)、EX(执行)、
MEM(内存操作)、WB(回写)。
指令集:RISC
指令集大小:2^5 = 32
数据宽度:16bit
数据内存:2^8×16bit = 256 个 16bit
指令内存:2^8×16bit = 256 个 16bit
通用寄存器:8×16bit
标志寄存器:NF(negative flag)、ZF(zero flag)、CF(carry flag)
控制信号:clock、reset、enable、start
4. 介绍与设计
4.1. CPU 顶层视图
第一步只要求实现简单的五级流水线,不要求实现指令内存、数据内存模块,因此 CPU 内部与内存有关的信号都简化
为输入输出信号了,CPU 的顶层视图看起来应该如下图,其中 select_y、y 信号是跟 CPU 板级测试有关的,这一步暂
且没用到。
评论0