//最简单计算机核设计 2009-4-29(可下载到开发板验证)
//可以用QuartusII编译下载
//解释权姜咏江 Email:accsys@126.com,
//参考书:姜咏江.PMC计算机设计与应用.清华大学出版社.2008-5
//基本输入时钟clock
//复位控制:reset_n,低电位有效
//基本输出:o
//程序存储器iram,16位,高5位是类指令代码,用imem16.mif初始化
//数据存储器dram,16位,不用数据文件初始化
//用lpm存储器地址信号要稳定1拍,才可以读写数据
//指令格式:高5位指令代码,11位地址码,16位立即数(分高低8位)
module test
(
clock,
reset_n,
o,
//调试输出(可以不要):
opc,
omar,
ojp,
oqw,
olda,
oadd,
oout
);
input clock;
input reset_n;
output [15:0] o;
output [15:0] oqw;
output [10:0] opc,omar;
output [2:0] ojp;
output olda,oadd,oout;
wire dwren;
wire [15:0] q_w;
wire [15:0] q_data;
reg [15:0] b,a,ir,da,oo,ddata;
reg [10:0] pc,mar;
reg [2:0] jp; //节拍
reg dwrit; //写控制
//指令:
reg lda, //取数:从数据单元取数到da
add, //加:da与数据单元相加,结果放入da
out, //输出:将数据单元内容输出到输出寄存器
sdal, //低8位立即数:将8位立即数扩充为16位送da
sdah, //高8位立即数:将8位立即数作为高8位,与原da低8位连接成16位放在da中
str; //da送数据存储单元:
//仿真信号输出:
assign o = oo;
assign opc = pc;
assign omar = mar;
assign ojp = jp;
assign oqw = q_w;
assign old

这篇博客介绍了一个使用Verilog编写的最简单CPU设计,包括了基本的输入时钟、复位控制、输出以及程序和数据存储器。CPU通过读取16位指令并执行如加载、加法、输出等操作。设计可以使用QuartusII进行编译和下载验证,并提供了相关参考书籍和作者信息。
最低0.47元/天 解锁文章
1064

被折叠的 条评论
为什么被折叠?



