自制CPU(四)程序编写

本文介绍了如何为自制CPU编写程序,包括使用load、store、beq、jump、add等基本指令,通过案例展示了如何将指令编写成case语句或coe文件,最终实现CPU运行简单程序的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习更多相关知识,关注博主知乎账号,用户名Trustintruth   https://www.zhihu.com/people/suo-yi-xin-90/activities

在我们设计出来前边三种CPU之后,我们来进行程序的编写。

所谓程序的编写,就是;利用我们写好的CPU,根据我们可执行的指令集,来编写一段程序,可一直用我们的CPU来完成。

首先,我们在写程序之前,确定你的CPU可以执行load,store,beq,jump,add几种基础指令,如果这几个都没有,那这个程序怕是也做不出来的。

在你希望实现的小系统中,一定有你的外围电路,它是将你外部输入的数据写入外存/数据存储器 中的,并将运算结果读出并显示或... 之后你的指令在开始时寄存器堆中可以预先有操作数,也可以通过指令读入。程序在开始前进行load将数据从数据存储器中读入寄存器堆中,最后再从寄存器堆中用store写会到数据寄存器中。在运算中有判断时就使用beq来完成,直接跳转一般都在beq跳转到的位置进行有效操作完的下一条指令,为了实现如C语言中的if语句。

最终你的指令是写成一个case语句中或者写成一个.coe文件的,coe文件直接写入数据存储器中,

例如

        32'd0 : instruction <= 32'b000001_00001_00100_0000000000000000;            //1 1 4 000 lw
        32'd1 : instruction <= 32'b000000_00000_00001_00010_00000_000000;        //0 0 1 2 0 0 add
        32'd2 : instruction <= 32'b000001_00010_00101_0000000000000000;            //1 2 5 000 lw
        32'd3 : instruction <= 32'b000000_00000_00010_00011_00000_000000;        //0 0 2 3 0 0 add
     &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值