# DE2-6bit-CPU **Repository Path**: snwjas/de2-6bit-cpu ## Basic Information - **Project Name**: DE2-6bit-CPU - **Description**: 6位简易处理器的硬件设计,使用VHDL语言开发,在DE2-115开发板上运行通过。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-06-08 - **Last Updated**: 2024-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
2、6位三选二多路数据选择器
3、指令寄存器
4、ALU(算术逻辑运算单元)
5、7段显示译码器
6、显示状态字的7段显示译码器
## 设计仿真
1、四节拍顺序脉冲发生器
因为DE2板上的按键在松开时的状态是高电平,按下时状态是低电平,故由GEN = '0' AND GEN'LAST_VALUE = '1' 判断按键按下。由波形图可以看出,按键按下,然后顺序产生了四个脉冲。四节拍顺序脉冲发生器功能是正常的。
2、6位3选二多路复用数据选择器
可以看出S_Y=’0’时,选择A、B作为QA、QB输出;S_Y=’0’ AND S_AB=’0’时,选择Y、B作为QA、QB输出;S_Y=’0’ AND S_AB=’1’时,选择A、Y作为QA、QB输出。6位3选二多路复用数据选择器功能正常。
3、ALU(算术逻辑运算单元)
这里只进行了四种加法运算,分别是6+8,6+11,-6-11,6-8。从波形图可以看出:
6+8 运算结果Y为14,V为”00”为正数,运算正确。
6+11 运算结果Y为1,V为”01”为正溢,运算正确。
-14-8 运算结果Y为6,V为”10”为负溢,运算正确。
6-11 运算结果Y为5,V为”11”为负数,运算正确。
## 总结
本设计总共是有两个版本的,本文中描述的是第一个版本,至于第二个版本,设计和功能上可能是复杂一点的,但它是为了解决什么问题而做的,我已经忘了,现在也看不懂了,这里贴一下它的设计图:

另外,还有本设计中存在的一个Bug至今仍然记忆尤新,它是这样的,如果使用上一次的运算结果再运算,一按键输入就会跳到别的数字去(如,上一次运算结果是5,我调用上一次结果时,可能会变成其他数字),造成无法再运算,我一开始以为是电路延时什么的问题,困扰了我很久,后来我了解到应该是一个`按键抖动`的问题,我按键没有做消抖,所以切换时,高低电位连续跳动造成结果变成了其他数字。这个Bug在本设计中是没解决的。