计算机组成原理-Verilog课程设计制作8位CPU简析

前言

        课设时间已经过去一周了,有人还是不甚了解自己在写什么(QwQ),我说一些我对需要我们做的部分的见解吧。整个文章分为模块篇、信号篇、top连线篇和查错篇。(很多人不会以为我只会传C++的实验吧)

一、模块篇

        Verilog语言和常规语言有很大的不同,常规语言我们做的是一个顺序执行的过程,从头往后写就完事了,Verilog,与其说是语言,不如说是“电路连线模拟器”。

        连线之前我们应该干什么?应该了解每个模块的作用,先写模块。很多人上来就跟风写信号,最后发现信号改了又改加了又加,那肯定更容易出问题。

 

         根据这个数据通路,我们可以整理一下,M是ram、rom(写在ram中了)存储器,老师已经写好给我们了,而剩下的就是AR、PC、DR、IR、TR、R、AC、ALU、Z,什么顺序无所谓,我们一个个分析过来。他们有什么用,我们需要知道吗?啊不需要,我们现在在写模块,有什么用,以后再说。(以下过程暂不赘述clk和rst信号)

        AR需要输入选择信号arload、自增信号arinc、输入数据(其实是指令,不过无所谓,后面再说)来自哪?来自dbus(16位总线)。输出什么?addr(这些是老师已经写了的,有什么用?现在不用知道)

        PC信号输入选择信号pcload、自增信号pcinc、输入数据来自哪?还是dbus,那会不会和AR抢起来了?关我x事,不管。然后输出给pcdbus。那眼尖的人就看到了,啊这个pcbus是什么,pcbus不在PC里,和我们有关系吗?没有关系。

        那可能聪明的人可能就发现了(可能是悟到的也可能是看老师给的代码看懂了),xxload代表选择信号,当xxload=1的时候,那个寄存器可以把输入的值存进去,不然就不理输入数据。xxinc就是能让他被选择的时候自增一位,然后输出信号;输出会给xxdbus,不会直接给dbus,如果遇到xxbus挡住了(为0)就卡在那里不动,等xxbus同意输出了再进入dbus。

        这里注意了,我们的信号不是电流,是数据,数据就像爱情(bushi),他不会凭空消失,他只会转移(准确地说是只会复制,比如xxdbus的数据给dbus之后原先的数据一直都在)。不是说我PC输出了一下,后面没有继续输入了,我的pcdbus就没有数据了。

        那么看不懂没关系,后面讲到信号也都懂了。言归正传讲寄存器。

       

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘下来邦我吧

头发加了一根

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值