在下这几年关于数字电路、Verilog、FPGA和IC方面的书前前后后都读了不少,发现了不少好书,也在一些废话书上浪费过时间。接下来会写一系列文章,把一部分读过的书做个测评,根据个人标准按十分制满分来打分并分享给大家。
![](https://file.jishuzhan.net/article/1771939470522716161/7a05649fa87bf8cd0db93f523106f650.webp)
定位
书名:Verilog 传奇--从电路出发的HDL代码设计
内容:Verilog语法、设计方法学
评价:7.5分。这个7.5分我其实给得挺纠结,因为这本书真的很难评价--它内容上是很有干货的,但是缺点也真的很明显--太啰嗦了!随便截一段你感受一下:
![](https://file.jishuzhan.net/article/1771939470522716161/3f7371935b869839db3081bd30b5a111.webp)
像这种21世纪初互联网论坛帖子风格的废话充斥全书。反正我读这本书都是跳着看的,只看干货,不看废话。
第1章:基础知识
![](https://file.jishuzhan.net/article/1771939470522716161/c35ae4c223eedfef90b84ac91067d459.webp)
主要介绍了Verilog发展历史、ASIC和FPGA的开发流程,对于时序约束也有一个简单的介绍,尤其是对FPGA的内部结构介绍得还挺清晰。
![](https://file.jishuzhan.net/article/1771939470522716161/eba99464fa78ba2ef483922da6ac387b.webp)
这一章的干货其实蛮多的,很多基础性的概念介绍对初学FPGA其实是有非常大的帮助的。
第2章:语言层次
![](https://file.jishuzhan.net/article/1771939470522716161/e08368d0e23d01ee81ccda50b27e652f.webp)
从层级设计为引子,从整体到细节对Verilog语法做了一个详细的介绍。
第3章:组合操作
![](https://file.jishuzhan.net/article/1771939470522716161/74c0f5f7048e2b0927cf4d1c8f148197.webp)
这一章主要介绍组合逻辑电路的设计方法,尤其是wire变量和assign语句的应用。一些移位预算、比较、拼接和加减乘除电路的分析还蛮透出的。
第4章:还是组合
![](https://file.jishuzhan.net/article/1771939470522716161/70ea5bc387125c2fd2dacef199d5a183.webp)
这一章主要介绍reg和always构建的组合逻辑电路的设计方法。这部分讲的内容,把数字电路和Verilog很好的对应上了,能帮你建立起一个很好的从语法到电路的直观认知。
第5章:时序逻辑
![](https://file.jishuzhan.net/article/1771939470522716161/0a28109ca5efec4e863eb32d03a9758a.webp)
这一章主要讲时序逻辑。对于触发器和锁存器的分析写得挺好,也讲了一些设计方法,比如流水线设计和并行化设计。
第6章:工程话题
![](https://file.jishuzhan.net/article/1771939470522716161/774e6639e10dcd7bab4ad49713408fde.webp)
这一章是从实际工程应用入手的,介绍了复位设计、亚稳态、跨时钟域设计、FIFO、乒乓操作、移位操作和状态机设计等内容。这一章节的干货很多,可以看出来作者是位工程经验很丰富的工程师。
第7章:灵活模块
![](https://file.jishuzhan.net/article/1771939470522716161/121923d0ebbfd14236aae48695d6be29.webp)
这一章主要介绍如何用函数Function、任务Task、参数parameter、locaparam和`define来实现参数化的可复用设计。这些设计技巧可以大大帮助你提高工作效率。
第8章:电路之外
![](https://file.jishuzhan.net/article/1771939470522716161/71483714a8b705a974a4b670abf8a875.webp)
这一样主要讲仿真设计,包括各种各样的系统任务和编译指令。这部分的内容可以帮助你提高编写测试脚本的能力。
第9章:综合例子
![](https://file.jishuzhan.net/article/1771939470522716161/d7c7f5637e1dd94e499aa07000db709c.webp)
这一章是比较复杂的实战内容,介绍了CORDIC算法,以及DDS实现的三种方法,可以帮以后的设计打好基础。从模块划分、功能设计到具体的代码实现作者都写得很棒。
不过老实讲,这部分的内容个人认为对于初学者还是难了一点,不如先搁置,过几个月有需要了再来读这部分。
![](https://file.jishuzhan.net/article/1771939470522716161/456f1ec26b683f2b338924993da8cec5.webp)
![](https://file.jishuzhan.net/article/1771939470522716161/cd954600c87d45ff8177bd58dc8c4861.webp)
总结
如果只看书名《Verilog 传奇--从电路出发的HDL代码设计》,你肯定会觉得这本书的定位是一本Verilog入门语法书,但实际上它关于Verilog语法的篇幅占比可能就20%,剩余的内容都是Verilog对应的各种数字电路的设计方法。
个人认为本书不适合Verilog语法初学者,而是适合有一定语法和数字电路基础的同学阅读。这部书能帮你建立起Verilog和数字电路的对应关系,并从中学习到许多实际应用中的设计方法和工程经验。