本书在将算法转化为RTL的过程中,会遵循从算法到RTL的开发流程。具体步骤如下:
1)先用MATLAB开发算法的浮点版本,使得算法在浮点上能够实现。
2)将浮点算法改为定点算法,为了尝试不同定点化造成的性能差别,需要将定点化的精度设置为参数。通过尝试不同定点化参数,得到符合性能要求的设计。
3)上一步只确定了精度,本步骤中将尝试不同位宽。从2.2.6节可知,信号的取值范围和精度决定了最终的位宽,在已知精度的情况下尝试不同位宽对算法效果的影响,实际是在确定算法内部各种信号的取值范围。通过人为加入溢出,使仿真效果产生明显的恶化,从而可以比较容易地确认信号的正确取值范围。
4)将算法参数改为常数,这样可方便算法代码转化为RTL代码。
5)将已确定了内部精度和取值范围的算法代码改写为RTL代码。在改写过程中,须引入算法中没有的控制逻辑和时钟复位。
6)编写TestBench对算法RTL进行仿真,以算法定点化后的输出结果作为参考。