tag 标签: dsp48e1,fpga

相关博文
  • 热度 19
    2012-8-22 09:21
    4846 次阅读|
    0 个评论
    专题三:乘法器(二)          在 乘法器( 一) 中介绍了采用逻辑实现乘法器的方法,但是在一般情况下,建议使用FPGA中的DSP硬核资源,在项目初期,DSP硬核资源的多少可以作为FPGA芯片选型的标准之一。下面首先看一下DSP硬核资源的使用,以Xlinx FPGA为例,在Kintex-7系列中含有DSP48E1。使用如以下代码: module multipler_dsp(     input clk,     input rst,     input a,     input b,     output reg p     ); reg a_in,b_in; always @( posedge clk)     if (rst)     begin         a_in=16'd0;         b_in=16'd0;     end     else     begin          a_in=a;          b_in=b;     end always @( posedge clk)     if (rst)         p=32'd0;     else         p=a * b;         endmodule          程序中首先对输入a和b寄存,然后采用直接使用乘法符号“*”执行乘法操作,综合器会自动将此操作综合成使用DSP48E1的乘法器,不过为了确保,需要设置综合选项,如图1所示,将-use_dsp48设置成yes;如果设置成no,综合器就会使用LUTs实现这个乘法操作。 图1          如图2所示为综合结果,综合报告中资源就使用了1个DSP48E1,而Fmax可以达到650.195MHz,相比于使用逻辑实现的乘法器性能上提高了不少,特别是集成在复杂的FPGA设计中,可以跟容易满足时序要求。 图2          既然提到了DSP48E1,就简单介绍一下吧, 信号去直流方法 就是 DSP48E1 的一个很好应用。如图 3 所示为 DSP48E1 的内部结构,包括输入输出接口、预加器 (Pre-adder) 、乘法器 (MULT) 、逻辑运算单元 (ALU) 和模式检测控制 5 个部分。输入输出接口最大支持输入 A : 30-bit 、 B : 18-bit 、 C : 48-bit 、 D : 25-bit 和输出 P : 48-bit ;预加器中可实现 A 和 D 的加 / 减操作;乘法器可实现最大 18*25 的有符号数据的乘法操作;而逻辑运算单元可实现加 / 减、逻辑控制,一般可用于乘累加;模式检测控制主要通过检测 OPMODE 输入口,控制 DSP48E1 内部模块功能。 图3