Altera内部结构(四):Cyclone IV芯片结构之嵌入式乘法器
在我们进行高速大量的信号处理的时候,我们常用到乘法器,比如说做数字信号处理,常常会用到FFT等,这时候就需要用乘法器构建FFT。
当然是用逻辑资源也可以实现乘法运算,但是,当需要高速运算和大量数据运算时,乘法运算就会很慢,并且很浪费逻辑资源,使用乘法器会更好。
在Cyclone IV中,乘法器和LAB交错分布,一行LAB,就会有一个1818的乘法器
嵌入式乘法器可以配置成一个1818的乘法器或者两个99 的乘法器。对于那些大于1818的乘法运算,Quartus II软件会将多个嵌入式乘法器模块级联在一起,虽然没有乘法器数据宽度的限制,但是数据位宽越大,乘法运算就会越大。
可以看到,在Cyclone IV EP4CE10E10中,乘法器数量有23个,可以配置成23个1818的乘法器,也可以配置成46个99的乘法器。
当然,除了 Cyclone IV 器件中的嵌入式乘法器,可以通过将 M9K 存储器模块用作查找表 (LUT) 实现软乘法器。LUT 中存储了输入数据同系数乘积的部分结果,针对低成本、高性能的 DSP 应用,实现了可变深度与宽度的高性能软乘法器。软乘法器的可用性增加了器件中可用乘法器的数量。
可以看到,输入寄存器除了数据输入,还有时钟输入、时钟使能和异步清零;
输出寄存器除了数据输出,还有时钟输入、时钟使能和异步清零;
乘法器级就是中间那个 ×
控制信号的signa和signb是控制输入数据Data A和Data B的符号位,高电平代表有符号,低电平代表无符号
1、可以看到,乘法器输入有两条路径,一条是直接输入到乘法器,还有一条是通过寄存器打一拍输输入到乘法器, 具体怎么输入,可以配置输入寄存器后的多路选择器来设置。
2、可以看到,乘法器输出也有两条路径,一条是1,直接输出,还有一条是2,通过寄存器打一拍输出,这个在配置有关乘法器IP的时候可以看到,如果配置了2,那么在IP核的可视化界面就会看到在IP核输出端口会多加一个寄存器。 具体怎么输出,可以配置输出寄存器后的多路选择器来设置。
这两种配置就可以实现组合逻辑或者时序逻辑,与LE类似
乘法器的每一个操作数都是一个唯一的有符号或者无符号数。 signa 与 signb 信号控制乘法器的输入,并决定值是有符号的还是无符号的。如果 signa 信号为高电平,则Data A 操作数是一个有符号数值。反之, Data A 操作数便是一个无符号数值。
注意:每一个嵌入式乘法器模块只有一个 signa 信号和一个 signb 信号,用于控制模块输入数据的符号表示。如果嵌入式乘法器有两个 9 × 9 乘法器,那么这两个乘法器的Data A输入与Data B输入将分别共享同一个signa信号和同一个signb信号。可以在运行时动态改变 signa 和 signb 信号,以修改输入操作数的符号表示。
嵌入式乘法器有两种模式,18 * 18模式和两个9 * 9模式
18bit 乘法器模式
2*9bit 乘法器