2016-02-29 50 views
2

例如,如果我想使用常量将滤波器系数存储在n抽头FIR滤波器中,那么CONSTANT声明会使用FPGA触发器将我的值存储在Block RAM或寄存器中吗?也可以使用SIGNAL来存储系数而不使用RAM单元?CONSTANT声明是否将值存储在Block-RAM中或FPGA的触发器中?

+2

默认情况下,它们将被转换为逻辑方程,并被烘焙到其他电路中,并隐式存储在目标架构的逻辑基元中。您可以采取措施将常量数据实现为使用分布式内存或块RAM实现的ROM,但这需要您遵循特定的编码风格,以便合成器会推断内存。 –

回答

1

所使用的存储元件:

  • 寄存器
  • 分布式RAM(LUTRAM)
  • 的BlockRAM

...取决于你所选择的VHDL描述和大小。

您应该使用常数而不是信号。此外,使用同步读取操作来推断注册输出可能会有所帮助。

查看综合报告以验证预期的描述。

6

常量本身并不是“存储”在任何地方 - 它们的值只是简单地代入您使用它们的VHL代码中。

它们的存储位置取决于您如何使用它们以及如何优化代码。

例如,如果将信号乘以常数2,则根本不使用任何元素 - 数据总线将以一种有效地将值左移一位的方式进行简单连接。或者,它们最终可能会以硬连线的方式输入到其他元素(如您的情况下的乘法器)。

无论采用哪种方法,您都应该查看综合结果以彻底了解生成的RTL。

4

CONSTANT声明将使用FPGA触发器将我的值存储在Block RAM或寄存器中吗?

无论常量存储在内存块或寄存器,或者如果他们合并到boolen方程取决于具体的实现算法的。让我们在下面的数学公式(不VHDL代码)一看:

y = c_1 * x_1 + c_2 * x_2 + c_3 * x_3 +... + c_N * x_N 

N是系数的数量,x_i是输入值,并c_i是常系数。

可以实现由在VHDL /硬件这个等式:

  1. N并行乘法器和一个加法器树来总结产品;全部在一个时钟周期内完成组合,或者甚至以每个时钟周期一个结果的吞吐量进行流水线处理。

  2. N依次执行乘法 - 累加步骤;每个时钟周期有一个乘法累加。

你甚至可以把两者结合起来。

在情况1中,合成器优化以恒定的各倍增:

    如果系数是二的幂
  • 只是布线,
  • 此外如果系数的二进制表示包含少量的(5 * x = x + 4 * x),
  • 或乘法器硬宏与常数值(VDD,GND)连接到一个输入。

因此,在情况1中不需要存储器或寄存器来存储常量。

在情况2中,合成器将乘法累加步骤映射到硬件乘法器加上加法器。这个乘法器和加法器将被重新用于所有步骤的N,因此必须在存储器中查找系数。如果系数很多,则使用内存块(Block-RAM)。当前迭代步骤i将组成内存地址。如果只有少量系数,则它们也可以存储在分布式存储器(LUT-RAM)中或通过布尔方程计算。但即使在这种情况下,系数将而不是映射到触发器,因为它们的值不随时间而改变。

也可以使用SIGNAL来存储系数而不使用RAM单元吗?

是的,当然。通过适当的同步描述,它们将被映射到触发器。

+0

很好的答案。我认为我们的答案说同样的话,但你的细节比我的细节多。有多种解答以不同的方式解释是很有帮助的。 –

0

建立在Paebbels的答案,这取决于。尽管它们也可以在分布式ROM(LUTROM)中实现。这取决于综合工具。例如,Xilinx的Vivado在其综合指南(UG901)中介绍了如何推断RAM/ROM。

为了您的FIR滤波器的例子,你可能有这样的:

type coeff_array is array(natural range<>) of std_logic_vector(17 downto 0); 
constant coeffs : coeff_array(0 to N-1) := (x"XXXX", x"XXXX", ..., x"XXXX"); 

现在,这是否是一个分布式的ROM或RAM取决于工具。 Vivado的快速测试表明,这种结构可以合成一个门海(只是LUT逻辑)。但是,它可以通过被压入的块RAM(又名方框ROM):

signal coeffs : coeff_array(0 to N-1) := (x"XXXX", x"XXXX", ..., x"XXXX"); 
attribute ROM_STYLE : string; 
attribute ROM_STYLE of coeffs : signal is "block"; 

的装置来推断任何特定类型的结构(LUT中,LUTRAM,LUTROM,块ROM,块RAM)取决于工具有问题。通过综合运行测试来看看你得到了什么。看看你正在使用的合成器的综合指南来弄清楚如何得到你想要的。

相关问题