可在ASIC/FPGA设计中合成查找表划分?说得通



我正在研究如何制作一个高效的FPGA项目(朝着成为ASIC设计),其中包括简单的32位二进制数的除法运算。

我发现最快速的方法是使用LUT(查找表),而不是生成复杂的除法逻辑。这很好,然而,当我想到ASIC时,我想象的是一个物理的微芯片,里面有数字逻辑,我无法想象把一整张桌子放进去进行除法。我可以理解它在FPGA中是有意义的,因为它有很多资源,包括片上内存等,但不是在一个明确的ASIC上。

我的问题是,LUT实际上是可以在ASIC设计中合成的?这就是需要除法运算的芯片,其实是怎么做的吗?

此外,LUT确实比创建除法模块消耗更少的面积??

这方面我还很生疏,谢谢你的指导

一般的整数除法是使用迭代过程进行的,其中每次迭代都会根据减法或表查找生成一定数量的结果位,类似于您在学校时在纸上做除法。特定的整数除法,例如,如果数字很少,则可以使用查找表,或者如果除数是2 ^ n数,则可以使用简单的移位,可能结合加法进行四舍五入。因此,除法的实际实现实际上取决于参数,以及速度/大小要求。

关于FPGA到ASIC的转换,那么FPGA中的LUT只是实现通用组合电路的灵活方式,因为例如4输入LUT可以实现4输入功能的所有输出。当您将逻辑表达式合成到FPGA时,结果将是LUT表示,因为这是FPGA中可用的构建块,但是如果您将逻辑表达式合成到ASIC中,那么结果通常将是离散门表示,因为这是ASIC中可用的构建块。ASIC实现更小,更快(对于相同的技术),因为避免了通用的LUT开销,但是失去了FPGA的灵活性。

合成在FPGA设计者中越来越流行。关于基于LUT的架构,你需要知道的一切都是晶体管级设计技术,这需要一套技能。

我个人使用verilog netlist文件与netgen命令。您可以进入FPGA - LUT架构优化

最新更新