《从算法到电路:数字芯片算法的电路实现》兔爸爸-读后感

非常感谢面包板社区提供的书籍精读机会!

标题解释:
  莎士比亚曾经说过:凑够100个读者,就能召唤出101个不同的哈利波特。
  由于知识储备、知识盲区、技术视角、读书目的差异,不同读者对同一本的感受也不同。
  所以本文只是我个人的感觉,因此标题叫这个名字,也不全是咕哝玄虚。

读书的大致过程和感受
0: 浏览目录,了解该书的主题和组织方法
  主要针对:四则运算-扣底客算法-滤波器-ADC-PLL,从浅入深
  技术路径:整数--定点数--浮点数,应当是以定点数的运算为主
   
1: 我有些不解,为什么不是"从C算法到电路",而是"从四则算术到电路"?
  我于是读了前言和第一章, 查询了本书作者:
   
  白栎旸,厦大通信系硕士,芯片设计与算法工程师,WiFi芯片算法负责人
  https://www.douban.com/personage/36621950/  
  擅长射频电路相关数字校准算法设计以及SoC芯片的架构设计,
  移知课程《从算法到RTL实现》主讲人,《数字IC设计入门》作者。

B站 皮特派 还有不少教学视频呢!
  https://www.zhihu.com/people/peter_pye
     
   不知为什么, 让我想起了《通信之道——从微积分到5G》这本书,  
    总感觉两本书, 在技术气味上有些相象吧。

2:  既然作者的技术出身是"SOC芯片设计",
     那么从"IP集成"的工作需要出发,  真正要手撸的代码,  可不就是这个 ( 定点数四则计算+ 矩阵运算) 么!

    脑海中突然 想起这么一句话:  我们不是数字IP的生产者, 我们只是数字IP的搬运工

3:  无端想起,学校里的"基础教研室"和"专业课教研室",  
    在 Fabless 的大背景下,大家都想挣"快钱",
    正如前几年大干快上"AI调参/区块链/5G",拉投资容易,出成果又快又容易,1年就名利双收;下一年就转行去.
    而专心研究更底层理论和基础的陈景润们, 用爱来为我们发电吧!

4:  对于"补码",感觉 作者还是没有说到我心里去;  
   取反好理解,为了加减法合一; 但为什么要加1呢?
    作者还是没说出来, 只是用一个数据罗盘,让我,们自己悟.
       为什么要加一? 假设不加一,光是取反,那么整个数轴就会出现两个"0点" : 全0和全1!  
        加一是为了 合并这两个"0点"为1个 (全F+1=0,全0+1=1)  

5:  "加法"是逻辑工程师的基础算法啦!太熟悉啦!
  作者讲解逻辑, 偏重于"手搓一个"和"人家的IP"一模一样的东西出来
   
  我曾经在 FPGA4FUN 网站上看到的这个主题:  https://www.fpga4fun.com/Counters.html
  印象相当深刻:   这算是 "加法"的一个小例子,  我认为这种行文和讲解, 是真正的大家手笔,细致而精微,妙不可言!
   
  当然, 这些差别,不过是因为两个人有不同的主题,材料有不同的组织方式,表达方法不一样罢了

6:   "乘法"就讲到了"扣底客算法",  说实话,我是吃惊的.

   我以前所知道的"扣底客算法"是算正切的,等于是将 tan 以另外一种维度展开成无穷级数
   
   我没想到居然还能计算"乘法"!  算是赚到了!!
   
   "扣底客"的原理是"吉纹丝转换",  我得好好理解一下.  我以前一直以为是"二分法无限逼近"来着.....
   "线性坐标下的定点数建模",  一下没看明白~~~   
           独自一个人去研究这个算法,  估计一时半会也比较难领悟, 总而言之,姑且相信有这么一种"简单算法"
   
7: "除法"也可以用"扣底客算法"加速实现, 现在的数学的确和厉害了!
      终于可以像"补码"统一 加减法一样,   用 "扣底客"来 统一 乘除法啦!!

           我以前想的是, (由CPU通过C算法库先) 取倒数, 来 统一乘除法,
            呵呵, 算是占人家"补码"的便宜,揩人家"补码"的油,
             不过,"取倒数"的时间和"除法"的时间,不一样么? 还搭上"乘法"的时间, 等于2倍时间啦!! 一点好处都没捞到!!


8:   "扣底客算法" 能生成正弦信号?   是 arctan 算法吧?
            算是遗留问题,   等我学完 "吉纹丝转换", 再进一步评论吧.

9:  总之, "扣底客算法" 是本书的书胆!   
                这个算法绝对能支撑得起一本书!!

            让我们知道"扣底客算法"有这么多的精妙应用 !


10:   最后的读书体会

1) 作者对当前国内FPGA从业者现状进行了一些描述,我本人非常赞同!
   可以和"基础/专业"做类比: 国内大多做"专业应用"于

2) 我发现自己以前这么多年的 FPGA工作,所做都是"操作类",而不是"计算类"

  所谓"操作类",指的是:FSM状态机;从MEM读数变换后写入;从Avalon接口读出写入到AXI;I2C/SPI/UART的Master/Slave实现等等..
  所谓"计算类",指的是 "真正意义上的数学函数计算"

3) 这是一本很有观点的书。
   能够讲解清楚 What很不容易;
   能够讲明白 Why 的都是高手!
  
4)一些期望
  最近正在研究用 bluespec来描述算法,  
  我相信,"扣底客算法" 完全可以用 bluespec 来描述, 而且会描述得更加精巧
  希望有能人志士门,在这个角度多做贡献!!