本书的写作目的是为广大的数字芯片开发工程师提供一种实用的指导方法论。书中梳理了常见的基本算法在数字电路实现过程中的落地步骤和注意事项,并在计算时间和面积等方面对一些常见方法进行比较,最终让读者在遇到基本算法问题的时候可以有地方进行参考,按部就班地进行电路设计、参数确定和问题分析。
由于芯片都是由四则运算器,滤波器,特殊信号发生器等基本算法电路构成,所以熟练掌握这些基本算法电路是实现复杂算法电路的基础。本书从算法,芯片设计,软件开发等多个角度解读基础算法电路的设计,涵盖了溢出保护、有符号运算、浮点运算、位宽确定等运算电路基础知识,以及除法器、信号发生器、滤波器、小数分频器等常用基本算法电路的Matlab建模和RTL设计,可以帮忙读者提高设计基本算法电路的能力,从而进阶设计复杂算法电路。
本书共12章,1-2章介绍算法和芯片设计的基础知识,包括算法与芯片设计的关系、位宽确定、有符号数处理、浮点数运算、溢出保护和四舍五入等算法的实现。3-11章重点介绍各和典型基本算法的电路设计,包括乘法器、除法器、信号发生器、滤波器、ADC、小数倍分频器及CRC校验器等,部分电路还给出了多种可选设计,并在面积和时序方面进行了优缺点分析对比,让读者有更加深刻的认识。第12章介绍了IEEE754浮点运算单元的设计,专为满足具备标准协议格式的浮点运算核开发需求,主要整理了相关协议的实现、集成及应用。
由于日常对滤波比较有接触,特意先翻看了滤波器相关的章节,作者不仅仅只是介绍滤波器机的设计,还把基本的信号处理、通信也进行了介绍。如为什么信息不是直接传输,而是要调制在正弦波上,相信很多人是大概知道原因,但是不全面:如果未调制,信号将表现为方波形式,方波可视为多种频率的正弦波叠加。除了本身的频率是周期的倒数外,还包含了一些奇数倍频率,由于某些频点不适合在介质中传输,会很快衰减为0,所以即使发出了方波,在接收端也很难收到一个方波,它会退化为一个正弦波,将会导致信号的丢失。另外方波包含多个频点,不利于频谱的管理。
书中有大量的Matlab和Verilog代码,可以跟着完成完整的实验,这对于初学者非常的友好。并且代码还有详细的备注,便于读者理解和修改。