计算器的设计思路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算器的设计思路
将计算器分为四个部分:计算部分、存储部分、显示部分和输入部分。
1. 计算器的计算部分
在该部分,可以将每一个数均表示成8位二进制数统一进行运算,各个计算数之间的计算可以直接使用VHDL语言中的运算符来实现。但在显示时,必须将个位、十位、百位分开显示,设计时使用比较的方法来实现各个位的分离。
另外,由于在VHDL语言中只能进行除数是2的幂的除法,不能进行任意数的除法,因此必须单独设计一个除法器来实现计算器的功能要求。该除法器可以利用减法运算和左移位运算实现除法运算。
2、计算器的存储部分
在该设计中,存储部分需要3个存储器来实现:内部累加器(acc)、输入寄存器(reg)以及结果暂存器(ans)。
在存放数字时,将数字放入acc或者reg里面,当第一次按下数字键时,表示该数字是个位。当第二次按下数字键时,表示这次输入的是个位,上一次输入的是十位,所以要把第一次输入的数字乘以10再加上第二次输入的数字,来得到最终输入的数字。当第三次按下数字键时,可以将第一次输入的数字乘以100加上第二次输入的数字乘以10再加上第三次输入的数字,来得到最终输入的数字。
当进行第一次计算时,第一个数字存放在acc里面。按下运算符号以后,第二个数字存放在reg里面。当再按下运算符号或者等号时,第一次计算的结果将存放在ans里面,同时reg清零,等待下一个数字的输入。进行第二次运算时,将ans里面的结果与reg里面新输入的数字进行运算,再将运算结果存放在ans里面,直到最后按下等号按键结束运算。
3. 计算器的显示部分
输入第一个数字后至再一次按下数字按键输入第二个数字前,3个七段译码器显示的都是第一个数字。当开始输入第二个数字的时候显示第二个数字,再次按下运算按键到输入第三个数字前,显示的是前两个数字的运算结果,依次类推,当最后按下等号按键的时候,显示最终的运算结果。
4. 计算器的输入部分
计算器的输入部分是由0~9十个数字按键、加减乘除四则运算的运算符按键、一个等号按键和一个清零按键组成的,设计所要做的是对按键信息进行译码,使其在计算器内部可以使用。