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, 输入输出数据选择器
四个寄存器不能同时全部加到两个数据输出端口rsBus和rtBus上,rwBus一次也只能对一个寄存器写入,那么就需要相应的数据选择以及写使能控制。
4, 整体设计
全部完成好的原理图如下:
各个部分之间的关系如结构框图:
5, 总结
从设计一开始要养成良好的绘图习惯,以结构清晰为原则,设计按照一定顺序完成,比如这里的顺序就是:
输入输出端口——>核心模块——>数据通路控制 另外将各部分功能用注释文字标好,方便阅读。 书接上回……
第四步:制作一个ALU 输入输出端口
ALU的输入输出相对简单,输入是两个操作数和一个操作符,输出是计算结果。
各运算单元
为了节省片上资源,加减法器使用一个,用一根选择线控制加或减,逻辑左右移位也是用一根选择线控制左右移。
数据通路选择
上面的各运算单元是并行工作的,对于输入的两个操作数,几个运算单元都会计算结果,至于输出哪一个,要通过后面的数据选择器来控制了。选择器的选择开关接的是操作符,这样输出结果就是操作数对应的操作运算得到的的结果了。
第五步:制作一个PC指针寄存器 4,PC指针寄存器
关于PC指针的操作很多,有一般指令所需的PC+1操作(这里是+1操作,与课件中+4稍有不同,因为我们后面设计ROM的时候按16位数据线设计,每个地址存储的是16位数
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库如何使用logisim - 图文(5)在线全文阅读。
相关推荐: