shiyinjita的个人空间 https://blog.eetop.cn/239461 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

spartan6和spartan3的一点简单区别

已有 3842 次阅读| 2011-9-18 17:53 |个人分类:xilinx

   前两天在论坛上看到了一个兄弟用门级电路实现 A[0] + A[1] +。。。。。+A[255],也就是256个输入相加,
  为了测试的方便,我采用了,总共采用了12个 输入相加
 
 在spartan3下,
         第一种方法是采用RTL级别,采用最简单的方法,也就是采用了11个加法器树形相加,这时候消耗的查找表为24个,查看布局布线的结构,发现走的是
LUT-MUX-DFF的路线。其中每个查找表中DFF用了两个,输出2位

    第二种方法是采用门级电路的形式,通过门级走进位链,采用的原语为 MUXCY 和 XORCY,在这里注意的是XORCY (如果采用名称定为,那么要把进位放在输出后面,XOR的输出放在最后),这样约束后走的就是进位链了 。查看综合消耗的查找表为18个 。其中查找表中DFF用了2个,输出为2+ 1(进位链) ,
 
  通过以上试验可以推断,在SPARTAN3下,做加法器的话,最好走进位链。用RTL级别约束走进位链我不会,哪位兄弟会的话,可以告诉我一下,谢谢了 。

在spartan6下 :

  我采用了A[0] + A[1] + ... +A[11]结构 。
 第一种方法还是RTL级别 ,消耗查找表为12个,其中关于加法的查找表,用的最大DFF为4个。
 第二种方法还是采用门级 MUXCY+XORCY+FiMUX 方式,在这里没有采用carry4原语,这是因为采用carry4原语做这个太复杂了,查看消耗的查找表为 24 个,布局布线后,查看加法计算模块中slice内结果,发现每个slice中只用了一个DFF,

通过上面两个试验,初步了解了spartan3和spartan6的不同,表现在以下方面 :
1: spartan3为4输入查找表,有2个DFF,spartan6为6输入查找表,有4个DFF,
其中进位链在 spartan3中是完全进位链形式,在spartan6中采用的是CRRY4封装的形式 。
 2: 在spartan3中采用进位链,11个加法器消耗了11×2个slice,因为每个slice只有2个dff,而采用进位链,可以理解为3个输出,这样就减少了逻辑。而在spartan6中,因为每个slice有4个DFF,也就是11个加法器消耗了11个slice,而采用进位链的slice中只能使用一个DFF,这是因为进位链是连接在一起的,这样就浪费了3个DFF,所以导致了消耗的资源是RTL级别的2倍 。
 因此,如果是加法,那么在spartan3中,如果可能那么约束走进位链(SLICE
-xor-MUXCY-XORCY-dff)的方式 ,在spartan6中走(SLICE-MUX-DFF) 方式.
  如果是乘法,那么在spartan3和spartan6中都尽量走进位链的方式。



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 2

    好友
  • 1

    获赞
  • 29

    评论
  • 2809

    访问数
关闭

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

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 16:15 , Processed in 0.018757 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部