包括 Stratix® V、Arria® V 和 Cyclone® V 在内的所有 28 纳米设备家族都可以使用 3 个精度可调 DSP 模块支持 25x18 复杂乘法器结构。
使用 Megacore®使用 4 个 DSP 模块实施此结构时,Quartus® II 软件存在局限性。
为解决这一限制问题,请使用 Quartus II 软件模板中的 复杂 25x18 乘法代码模板推断您复杂的乘法器。 要使用此代码模板,您首先需要打开一个新的设计文件,然后从 Quartus II 软件中可用的模板中选择此模板。 该模板位于 Verilog 或 VHDL 模板下的完整设计>算法> DSP 功能(Stratix-V、Arria-V 和 Cyclone-V)。
为了方便您,此面向 Verilog 的代码模板如下:
Quartus® II Verilog 模板
复杂的 25x18 乘法
适用于 Stratix V、Arria-V、Cyclone-V 和更高版本的设备家族
模块complex_25x18(x_r,x_i,y_r,y_i,时钟,ena1,ena0,重置,p_r,p_i);
此模板适用于 Stratix-V 上的复杂 25x18 模式
输入 [24:0] x_r;
输入 [24:0] x_i;
输入 [17:0] y_r;
输入 [17:0] y_i;
Stratix-V DSP 支持多达 3 个时钟/ena 对和 2 个 async 重置信号
输入时钟;
输入 ena1;
输入 ena0;
输入重置;
输出 [43:0] p_r;
输出 [43:0] p_i;
必须签署所有输入/输出。
所有输入寄存器必须使用相同的 {clock, ena, reset}
所有输出寄存器必须使用相同的 {clock, ena, reset}
reg 签署 [24:0] x_r_reg,x_i_reg;
reg 签署 [17:0] y_r_reg,y_i_reg;
reg 签署 [43:0] p_r,p_i;
电线签名 [25:0] a1;
电线签名 [18:0] a2;
电线签名 [18:0] a3;
电线签名 [43:0] p1;
电线签名 [43:0] p2;
电线签名 [43:0] p3;
分配 a1 = x_r_reg - x_i_reg;
分配 p1 = a1* y_i_reg;
分配 a2 = y_r_reg - y_i_reg;
分配 p2 = a2* x_r_reg;
分配 a3 = y_r_reg y_i_reg;
分配 p3 = a3* x_i_reg;
始终 @(修饰时钟或修饰重置)
开始
如果(重置 == 1\'b1)
开始
x_r_reg x_i_reg y_r_reg y_i_reg p_r p_i 结束
还
开始
如果 (ena0 == 1\'b1)
开始
x_r_reg x_i_reg y_r_reg y_i_reg 结束
如果 (ena1 == 1\'b1)
开始
p_r p_i 结束
结束
结束
endmodule