Vhdl 多输出FPGA LUT

Vhdl 多输出FPGA LUT,vhdl,fpga,rom,Vhdl,Fpga,Rom,我正在设计mandelbrot查看器,我正在设计用于平方值的硬件。我的平方器是递归构建的,其中4位平方器依赖于2,2位平方器。对于我的16位平方器,它有2个8位的平方器,每个都有2个4位的平方器 正如您所见,递归性开始使设计变得复杂起来。为了加快我的设计速度,我想使用模拟4位平方器的4输入ROM。所以当你在rom中输入3时,它输出9,当你输入15时,它输出225 我知道在逻辑单元ay中实现的普通LUT有3或4个输入变量,只有1个输出,但我需要8位输出,所以我需要更多的ROM,而不是LUT 非常感

我正在设计mandelbrot查看器,我正在设计用于平方值的硬件。我的平方器是递归构建的,其中4位平方器依赖于2,2位平方器。对于我的16位平方器,它有2个8位的平方器,每个都有2个4位的平方器

正如您所见,递归性开始使设计变得复杂起来。为了加快我的设计速度,我想使用模拟4位平方器的4输入ROM。所以当你在rom中输入3时,它输出9,当你输入15时,它输出225

我知道在逻辑单元ay中实现的普通LUT有3或4个输入变量,只有1个输出,但我需要8位输出,所以我需要更多的ROM,而不是LUT

非常感谢您的任何帮助,我很好奇FPGA将如何存储这些ROM,以及将其存储在ROM中是否比计算4input Square更快

-


Jarvi要使用LUT显式地对4位数字求平方,需要使用8个4输入LUT。每个LUT的输出将为您提供一位8位乘积

使用较大的块RAM原语(如ROM)、专用MAC(乘法累加)单元,或者使用普通的多应用运算符
*
并依靠合成工具的优化,可以通过这种方法实现设计的总体大小和fmax性能


例如,您可能还想回顾一些与此主题相关的研究论文。

我很好奇如何将一个N位平方器分解为(仅)两个N/2位平方器。您肯定还需要至少一个乘法器和多个加法器。你能分享你的算法吗?是的,它使用1个乘法器,这也是输入位总数的一半,因此8位平方器需要2个4位平方器和1个4位乘法器:)LUT可以有多位输出,基本上是一个表。您也可以使用ROM,其中对于每个元素ROM[i],内存中的值为i^2。我认为这两种选择都是可行的。它可能比计算快,因为表中只有2^4个值,LUT或ROM将在芯片上推断(本地)