一步一步学做一个CPU——7,用FPGA完成Proj3之寄存器文件实现

书接上回……

第四步:制作一个寄存器组(也称寄存器文件)模块(组件)。

1,输入与输出

根据前面设计总揽中得到的模块间的关系,设计出输入输出端口,包括rs,rt,rw,另外是rsBus,rtBus,当然还有使能控制,时钟,reset等。

clip_image002

2,寄存器

作为第一小步你可以先放四个寄存器,然后做出一个输出,即可选择四个寄存器中的任意一个的值输出。

注意:用MegaWizard生成模块文件的时候,别忘了加一个后缀,因为这里都是子模块设计,后面要应用到顶层设计中去,为避免各个子模块设计中引入的标准模块文件重名,推荐加一个子模块名字的后缀,例如lpm_dff_reg0,就表示reg模块中引入的lpm_dff模块。

clip_image004

3, 输入输出数据选择器

四个寄存器不能同时全部加到两个数据输出端口rsBus和rtBus上,rwBus一次也只能对一个寄存器写入,那么就需要相应的数据选择以及写使能控制。

clip_image006

clip_image008

4, 整体设计

全部完成好的原理图如下:

clip_image010

各个部分之间的关系如结构框图:

clip_image012

5, 总结

从设计一开始要养成良好的绘图习惯,以结构清晰为原则,设计按照一定顺序完成,比如这里的顺序就是:

输入输出端口——>核心模块——>数据通路控制

另外将各部分功能用注释文字标好,方便阅读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值