大过年的,除了吃饭睡觉,电影是我主要的休息方式。这确实也看了不少好的电影。有趣影院看的,也有在电脑上看的。都是非常不错的影片。尤其是其中的几部科幻片,看完了以后还给了我不少启发。让我联想到一些技术上的问题。我准备就这个问题专门开一个新坑:看电影说技术。今天先讲第一讲:为什么硬件描述语言你学不会?
学习硬件描述语言这个东西是非常“因人而异”的,学不会硬件描述语言或者学硬件描述语言学起来很艰难是由诸多原因造成的。有“遇人不淑”的问题,有些老师自己水平就很差,搞了很多错误的概念一代代传下去误导一届届的学生。也有“垃圾教材误终生”的问题。但是在排除掉这些以后,在我的教学实践中会发现有些同学就是比其他人学习起来更困难一些。他们对于硬件描述语言的概念也一直理解不了。
看完了《降临》(Arrival)以后,我突然觉得这给了一种解释。在《降临》中阐述了一种语言学的观点:语言会影响到思维。由于人类的语言是典型的“线性语言”,所以人类的思维也是典型的“线性思维”。简单的说,就是一种按顺序,讲因果的思维。当然,我觉得这个地方有一点循环解释的问题,以为人类生活的时空就是一个有“因果性”的线性时空。信号与系统里面经常强调的一点就是“因果系统”,在很多物理实现中只有满足“因果系统”才是物理上可以实现的系统。
由于人类语言的线性和因果性,所以人类做事也好,说话也好,都习惯于“顺序性”。基本上来说世界上大部分的语言都是这样的特点。要说清楚一件事情,一般都要先说前提,再讲原因,接来下讲结果。在告诉别人应该怎么做的时候,也是先做什么,再做什么,最后做什么。这就是所有语言的一般思路。
好了,大家看明白了吧。由于语言是线性的,顺序性的。所以一般人看任何语言写成的东西的时候,潜意识都是按照先后顺序来逐条理解的。但偏偏硬件电路是一个空间性而非顺序性的东西,用一种顺序性的语言来描述这样一个具备空间性硬件电路不可避免就要出现一个映射过程。正向的映射过程是看到硬件电路能用语言描述出来,反向的过程是看到语言能想出来硬件是长什么样子。
相较于语言,符号系统其实更好理解一些。这在《降临》中也提现了。地球的语言学家在于外星人交流不畅的时候是靠的符号系统来辅助交流的。而外星人用所谓的图像形式来表征非线性语言。现实中符号对于提高交流效率是又很大帮助的。但是不幸的是,符号虽然一看就懂,但是制作符号的过程却需要花更多的时间(对于人类而言)。人类语言学家在通过这套符号图案和外星人交流的时候也体现了这一点。这在硬件电路设计的例子就是看硬件框图可以让整个硬件的链接关系和基本功能一目了然,但是制作硬件框图本身却是一件费时费力难做的事。
如果没有形成硬件电路和语言之间的映射关系,或者说缺乏一种能力去理解这种映射关系。那么就很难能理解并掌握硬件描述语言。这其实需要一些辅助措施和额外练习才能达成。正确的做法就是从理解符号系统(硬件电路图)出发,先真正的形成了硬件电路的观念以后,再去学这些语言。
当然,最后还是要说一句。成才的路千万条,如果试了试发现自己真的理解不了。那还是应该及时的转换思路,去学一些自己理解得了的东西。没有必要把时间和精力耗在自己很难掌握的事情上面。