Multiple Constant Multiplication (MCM) over integers is a frequent operation arising in embedded systems that require highly optimized hardware. An efficient way is to replace costly generic multiplication by bit-shifts and additions, i.e. a multiplierless circuit. In this work, we improve the state-of-the-art optimal approach for MCM, based on Integer Linear Programming (ILP). We introduce a new lower-level hardware cost, based on counting the number of one-bit adders and demonstrate that it is strongly correlated with the LUT count. This new model for the multiplierless MCM circuits permitted us to consider intermediate truncations that permit to significantly save resources when a full output precision is not required. We incorporate the error propagation rules into our ILP model to guarantee a user-given error bound on the MCM results. The proposed ILP models for multiple flavors of MCM are implemented as an open-source tool and, combined with the FloPoCo code generator, provide a complete coefficient-to-VHDL flow. We evaluate our models in extensive experiments, and propose an in-depth analysis of the impact that design metrics have on actually synthesized hardware.
翻译:超整数的多重倍增(MCM)是嵌入系统中经常产生的操作,这些系统需要高度优化的硬件。一种高效的方式是替换成本高昂的通用倍增,使用比特转换和添加,即无倍化电路。在这项工作中,我们根据整数线性编程(ILP)改进了最先进的MCM最佳方法。我们采用了一个新的较低水平的硬件成本,以一位添加器数计算为基础,并表明它与LUT的计算密切相关。这个无倍化MCM电路的新模型允许我们考虑在不需要完全输出精度的情况下,通过中间变速来节省资源。我们把错误传播规则纳入我们的 ILP 模型,以保证在MCM结果上出现用户给定出的错误。拟议的多口味MCM(ILP)模型作为开放源工具实施,并与FloPoCo代码生成器一起提供完整的系数到VHDL流。我们从广泛的实验中评估了我们的模型,并提议对设计硬件的实际影响进行深入分析。