注: 本文原作者Andy Lithia,译者Wenting Zhang,原文发布于http://lithcore.cn/?p=2032,转载请注明出处,仅限于用于教育或其它非商业用途。头图来源:HP Journal 1972 第6期封面

科学计算器,就如纸笔、书本等其它文具一样,已经是司空见惯的东西。在那些廉价科学计算器的黑胶封装之下,通常都藏着一颗改版的6502或者低功耗RISC处理器。有了成熟的开发工具、足够的计算性能和充足的参考资料,任何有点C语言基础的人都可以用单片机做出一台科学计算器。所以……科学计算器有什么好玩的吗?

如果我们反观历史,回到那个单片机都还不存在的年代,那个每一个晶体管都会明显体现在总成本里面的年代,便携式科学计算器所代表的意义就不只是一个日常用品那么简单了。而本系列所要介绍的,就是一款来自那个年代的产品 —— HP-35。作为世界上第一款便携式科学计算器,HP-35发布于1972年,除了基础的四则运算外,还支持计算根号、三角函数、指数和对数,首发售价395美金,大约相当于2017年的2311美金。计算器大部分的运算可以在1秒之内完成。这个速度在现在当然不足为奇,但是据teenix.org站长Tony所说,在当时而言是非常惊人的速度(Tony还开发了一款非常具有启发意义的HP微码模拟器:CCE33,这个以后会提到);而且HP-35的运算精度相当高,甚至于HP的工程师难以用IBM主机来校验计算结果。最终,HP-35在2009年获得了IEEE里程碑奖项。显然,精妙的软硬件设计才能铸就这样一款划时代的产品;而这些设计,正是本系列的文章试图向大家展示的。

在花了大约一个月研究HP-45的内部研究后(HP-45是HP-35的增强版本),我觉得我现在已经能够简要的解释HP计算器中的ARC和CTC芯片的RTL级实现了。在这个系列中,我会解释我自己对设计的理解,并给出基于我自己的理解编写的HDL代码。

注:本系列文章所参考的原始的设计资料来自于HP-45的专利文档(US Patent 4001569),具体的软件部分的研究是由Jacques Laporte完成的,而NUT的HDL实现是由systemyde.com的Monte Dalrymple完成的。在这里对他们表示尊敬和感谢。作为一个本科学生,我无法保证这里所有内容的准确性。如果有任何问题,请评论指出。

Until next time, thanks for reading!​