在下这几年关于数字电路、Verilog、FPGA和IC方面的书前前后后都读了不少,发现了不少好书,也在一些废话书上浪费过时间。接下来会写一系列文章,把一部分读过的书做个测评,根据个人标准按十分制满分来打分分享给大家。
概述
📖书名:《那些年,我们拿下了FPGA》
✒内容:Verilog语法
💎评分:7/10
📣评价:乍一看书名,还以为这是一本主讲FPGA的书,但实际上70%的内容在讲Verilog语法,剩余30%才是和FGPA开发直接相关。我对本书的定位是适用于新手的一本Verilog语法入门书。全书虽然有26个章节,但是只有350页左右,所以有很多地方都只是浅浅地提了一嘴,并没有深入。中规中矩的一本书,没太多出彩的地方,最大的优点是不像其他语法书那么喜欢堆概念,行文风格比较通俗,也就是“说人话”,对于新手来说理解算是比较简单。
第1部分:1~3章
这部分主要讲解了FPGA发展的历史,FPGA的结构和FPGA在各个行业的应用,是导读性质的一部分,对于直观地认识和理解FPGA在工业领域的应用很有帮助。
第2部分:4~5章
这部分主要讲了如何从整体上设计一个FPGA工程,以及详细概述了一个典型的FPGA开发过程,对每一个步骤都做了详细的解释。
第3部分:6~11章
这部分主要是对Verilog语法的介绍,没有单纯地堆砌概念,而是用通俗的语言加丰富的示例进行解释,对新手非常友好,理解起来也简单。
第4部分:12~14章
这部分算是对Verilog语法的补充,不过不是介绍语法细节,而是着眼于从宏观及总体层面上对Verilog语言进行FPGA设计,有助于理解如何进行大规模的FPGA设计,并对模块化等常用设计理念有一个直观的认识。
第5部分:15~16章
这部分是仿真Testbench相关的内容,包括如何编写一个简单的Testbench,并详细讲解了如何使用常用的仿真工具Modelsim。这里多说一句,其实对于初学者来说,FPGA自带的仿真工具已经是够用了的,而且更方便,不需要编译一些额外的库,比如Vivado自带的Simulator就挺好用的。
第6部分:17~18章
这部分介绍FPGA设计的两种电路形式:组合逻辑电路和时序逻辑电路。组合逻辑实现函数功能,而时序逻辑则存储中间数值,二者相辅相成。理论上,这两种电路可以组合着实现所有电路。
第7部分:19~20章
函数Function和任务Task都是可以提高编码效率的语法,但不是必需,掌握了这些进阶技巧可以让你的编码效率上一个台阶,预编译指令同理。同时,这些语法还可以提高你的代码的可复用性和可读性。
第8部分:21章
状态机实现是太重要了,只要你设计的逻辑稍微复杂一点,那肯定是离不开状态机FSM的,所以请一定要学好状态机!
第9部分:22~23章
22章以Altera的综合工具Quartus II为例,详细讲解了一个FPGA开发的全部流程;23章则主要介绍了如何进行调试,包括线上的仿真和下载到FPGA后的调试。
第10部分:24章
IP核本质上就是FPGA厂商已经设计好了的电路模块,开发一些特定的接口给你去调用。因为FPGA厂商雄厚的技术实力以及对自身器件的了解,这些IP核往往比自己写出来的电路模块更好用,性能更好,所以作为一个FPGAer,一定要学会如何使用各种常见的IP核。
第11部分:25~26章
两个设计实例,但其实我觉得这两章写得一般,从设计思路到代码实现的介绍比较简单和突兀,不是很容易就能让人读懂,而且用现在(2024年)的眼光来看,这两个例子真的有点过时了。