1, 指令指针寄存器PC 2, 指令存储器ROM 3, 寄存器文件 4, ALU 5, 内存单元 6, 控制逻辑单元
一个大体的CPU的结构图:
4,总结
从分析结果来看,我们需要的实现的几个模块都在图中表现出来了,他们之间的关系也基本如上图所示,更详细的说明请参考罗老板的课件吧。
我们要设计中可能用到的库中的模块有以下几种,寄存器模块,RAM,ROM,算术以及逻辑运算单元比如加法器,移位,与或门等。
当然还有前面我们讲到的数据选择器,这个会在Controller中用到,另外在每个单元模块前做数据选择也会用到。
第四步:制作一个寄存器组(也称寄存器文件)模块(组件)。 1,输入与输出
根据前面设计总揽中得到的模块间的关系,设计出输入输出端口,包括rs,rt,rw,另外是rsBus,rtBus,当然还有使能控制,时钟,reset等。
2,寄存器
作为第一小步你可以先放四个寄存器,然后做出一个输出,即可选择四个寄存器中的任意一个的值输出。
注意:用MegaWizard生成模块文件的时候,别忘了加一个后缀,因为这里都是子模块设计,后面要应用到顶层设计中去,为避免各个子模块设计中引入的标准模块文件重名,推荐加一个子模块名字的后缀,例如lpm_dff_reg0,就表示reg模块中引入的lpm_dff模块。
3, 输入输出数据选择器