查看: 2962|回复: 0

Xilinx与Altera FPGA比较系列之二 DSP速度(2)

[复制链接]

该用户从未签到

发表于 2008-4-22 21:46:09 | 显示全部楼层 |阅读模式
分享到:
随着FPGA在信号处理领域应用越来越广泛, 其内部的DSP资源越来越受到了开发者的重视. 本文对XilinxAltera FPGA的固定乘法器(DSP)做一个比较深入的分析, 以对今后的设计提供参考.
 首先, XilinxAlteraFPGA DSP功能基本相同, 两者基本上可以实现相近的功能. 比较小的差别是,XilinxDSP模块可以在模块内做乘累加运算, Altera的必须借助逻辑资源实现. 另外, 两者的速度有所区别, Xilinx V4标称最高速度为500MHz, Altera S2标称最高速率为450MHz.  在实际使用过程当中, 厂商的参数固然重要, 然而用户的使用对性能的影响也是非常大的. 我在AlteraS2C3上用综合工具自动识别 *, 以及调用 IP core, 发现两者的结果一致, 对于16X16的乘法器速度是367.65MHz, 对于8X8乘法器的速度是375.94MHz. AlteraIP core对流水线的支持相对较少, 只有2. Xilinx综合工具似乎并没有那么智能, 只能把 * 识别出来, IP core0级流水线替代, 而不能将乘法后跟随的一级流水线自己吸收到IP core. 不过Xilinx的乘法器提供了18级流水线选择, 因而采用IP core例化实现的乘法器速度大大的提升. 我做的一个结果(V4-12), 采用综合工具infer出乘法器的速度是189MHz, 而采用IP core例化的方法实现的为260MHz611MHz, 分别对应一级流水线和两级流水线结构.   从以上实验结果以及笔者的使用经验来看, 似乎Altera的软件的智能程度稍高一些, 然而Xilinx的硬件功能更强. 在本例子当中, 通过例化IP core, 可以大大提高乘法器的速度. 如果采用XilinxFPGA, 在项目前期时可以采用综合工具infer, 留两级流水线待将来例化IP core使用, 这样一方面可以达到原型平台的快速开发, 用可以保证以后性能的改进和提高. 而采用alteraFPGA, 似乎软件已经解决了以上问题, 利用IP core例化的效果并不明显.

下面是代码
module SyncMult (areset, clk, a, b, prod);


<span style="color: #333333"><span style="font-family: Calibri">  parameter kinsize=16;
 
  input clk, areset;
  input [kinsize-1:0] a, b;
  output [kinsize*2-1:0] prod;
 
  reg [kinsize-1:0] a_ms, a_db_sync;
  reg [kinsize-1:0] b_ms, b_db_sync;
  reg [kinsize*2-1:0] pi, pj;
 
  assign prod = pj;
 
  always @(posedge clk or posedge areset)
  begin
    if (areset)
      begin
        a_ms
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-9 04:43 , Processed in 0.111640 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.