购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 数字开发工程师掌握算法知识的必要性

在数字电路开发流程中,与算法关系最为密切的是数字前端开发工程师,因为电路设计的好坏主要取决于RTL设计,而较复杂的RTL设计又离不开算法原理的支持。一个算法设计要转变为RTL设计,一方面要解决算法具象化的问题,另一方面要解决算法定点化的问题。

1.5.1 算法的具象化

算法具象化问题,是指一个大的算法架构里面包含有多个算法层次。例如一款WiFi芯片的算法,由表及里可分为以下层次:

1)顶层的架构上包含发射机(TX)、接收机(RX)和信道。

2)进入发射机这一层次,里面包含扰码模块、卷积码编码器、LDPC编码器、空时编码器、空间流分配器、波束成形器、快速傅里叶反变换(Inverse Fast Fourier Transform,IFFT)等。

3)进入LDPC编码器中,其内部包含了生成矩阵存储器、编码器、码率打孔器等。

如果每个层次的每一处细节都需要由算法工程师告知数字开发工程师,那么对于算法工程师的数量和质量的要求就都比较高,实际操作中无法执行。

在实际中,算法工程师会选择一个层级作为底层,自该层往上,均为算法工程师需要具体化的内容,算法工程师会提供给数字开发工程师详细的代码,而该层再往下的内容需要由数字开发工程师自行完成,算法工程师只规定接口的格式、精度,以及运算时间要求。

比如,某个算法工程师做算法的具象化,除了加减乘除四则运算外,都已经具象化完毕,也规定了这些四则运算最终的输出宽度和精度,对于四则运算内部如何处理,则要求数字开发工程师自行解决,那么,此时开发工程师就必须会搭建四则运算的电路。

1.5.2 算法的定点化

算法的定点化问题,即在算法中处理的数据,其属性通常是复数、带符号、浮点,其形式通常是向量或矩阵,甚至是三维或更多维的矩阵,而开发工程师习惯处理的数据通常是实数、无符号、整型的标量,那么将复数转变为实数,带符号的计算转变为无符号的计算,浮点数计算转变为整数计算,矩阵运算转变为多个标量的单独运算,就是广义的定点化。

可以将具象化问题与定点化问题结合起来。假设算法已经细化到两个有符号的浮点数的除法,其内部运算过程并未给出,需要开发人员根据设计经验编写,此时,开发人员就必须熟悉常见的除法电路,其优缺点是什么,其运算器内部的参数如何定,还必须熟悉定点化如何做。

这些基本知识看似简单,像是研究生在做小学数学题,但很多工程师对此只有几分粗浅的认识,缺乏方法梳理和原理理解,凭习惯和普通设计经验进行设计,导致开发速度慢、设计缺陷多、验证时间长,在这种基本电路上牵扯了大量开发和验证时间,甚至还会多次重复开发。很多项目付出巨大的代价才最终证明,无论上层架构和算法做得多么出色,只要底层运算设计有问题,芯片项目就会失败。千里之堤,毁于蚁穴,开发工程师掌握基本的算法常识,了解算法的工作思路和流程,熟悉常见运算单元的电路实现和仿真验证方法,是十分必要的。 Aolq0pb/unaBN2XFAOA2FhnencWQoQ/5vLVh0laWexIkDCA/ADYwyH2BOq510XRQ

点击中间区域
呼出菜单
上一章
目录
下一章
×