经过大约半个月的思考和查阅资料,准备还是将这部分教程写出来,这个思路的来源主要是好多人留言,入门之后感觉还是很迷茫。其实这个问题,我也很难去解答,但是我还是希望通过今天这部分解说和接下来的教程,帮大家理理思路。
大家可能在进阶过程中可能听到的最多的一句话就是在用硬件语言(VHDL/Verilog HDL)“写程序”时,脑中要有电路的概念,但是很多人肯定不能理解这个电路到底是什么?
我也和几个朋友讨论过这个问题,其实这个概念很宽泛,我大概说一下:这个概念其实是早期用原理图进行设计输入时比较看重的,你在设计原理图时,你需要知道每个门电路、数字电路(SSI、MSI、LSI)的功能和作用,才能进行正确的连线和综合。随着硬件描述语言的崛起,慢慢的取代“效率低下”的原理图设计。到了硬件描述语言设计时期,就需要分是简单设计还是复杂设计,简单的设计这个“电路”就是指综合出来的电路;复杂设计这种电路的概念就会上升到模块划分的概念,之后每个小模块内又回到了简单设计。尤其是在大型设计时需要调成时,这个概念就上升到了网表。
下面将整个教程脑图放一下:
上面会花费大量篇幅介数字电路,但是不会简单的介绍,会根据内部模拟电路的应用进行介绍,这样就可以理解:(1)为什么数字电路的时钟会有限制;(2)竞争和冒险;(3)扇入扇出系数;(4)静态时序分析等。
然后会将剩下的篇幅介绍Verilog语言,这里不会很详细介绍语言语法等基本概念,会直接在应用层展开。
这里再解释几个概念:
1、原理图设计输入和硬件描述语言设计有什么区别?
HDL语言输入:
逻辑描述功能强
成为国际标准,便于移植
原理图输入:
使用元件符号和连线等描述
比较直观,但设计大规模的数字系统时则显得繁琐
原理图与HDL的联系与高级语言与汇编语言类似
2、常见的培训机构提供的教学,像根据波形写“程序”(明德扬),状态机,模块划分等,这几种方式有什么优缺点?
这些方式其实都是硬件描述语言的辅助设计,有利于在设计过程中方便进行描述。
PS:以上方式类似于Xilinx提出的利用IP进行大型项目设计类似。
今天就先写到这,思路还比较乱,还有很多概念,比如网表等,还没融入进去,所以整个教程可能需要花费大约一年的时间来组织(主要是涉及到思路,要比写实例教程难度大很多),语言组织有限,大家多担待!
PS:对于这方面大家有其他想法的可以后台联系我,或者有什么问题的也可以后台联系我,尊听教导!