用spart6内部原语设计一个加法器,输入255bit,输出8bit
时间:10-02
整理:3721RD
点击:
最近这几天的一个小任务,看了1一天spartan3和spartan6的内部结构PDF文档。现在还没有完全想通,特来求教
问题:
用spart6设计一个加法器,输入255bit,输出8bit。(输出的8bit是对255bit数据中的1的总个数)
input clk;
input grst_n;
input [254:0] data_i;(输入是任意的255bit的数据)
input ce;(数据输出的使能)
output [7:0] data_o;(输出是对输入的255bit数据中所有1的和)
原来的设计思路:
采用spartan3时,直接用RTL写的全加器来设计占用的LUT资源明显要比用门级电路(原语)设计的资源占用量多。
所以采用用门级电路的方法来设计,spartan3中的设计用到了这些原语: LUT2_L XORCY(异或门) MUXCY(选择器) LUT3_L LUT4_L FDE(寄存器),
先将data_i的前[224:0]分成16个14bit的数,通过原语设计的电路结构计算出16的3bit的数据(因为7bit的数据计算出来最多可用3bit的的数据表示,如7个1,之和最多等于7)
[13:0] → [2:0] 、 [5:2]
[27:14] → [8:6] 、 [11:9]
...... 依次类推
[224:211] →
然后把剩余的[254:225]中的前16bit作为进位,与前一步计算出来的16对3bit的数据用LUT2_L XORCY(异或门) MUXCY(选择器)构成的全加器进行计算变为16个4bit的数据,然后依据此种方法类推,最后算出一个8bit数据。
现在的设计思路:
因为原来的器件是spartan3,现在想要用spartan6,也要用尽可能少的资源,我看了spartan6的文档,里面的结构与spartan3的差别比较大,里面有个直接的4位全加器CARRY4 ,但是我一下还是没有想到怎样设计,请教各位大侠了,过两天就要上交任务了。十万火急啊,可能很多方面不是说得很清楚。要是哪位大侠知道怎样设计,麻烦您说的详尽浅显,感谢了
问题:
用spart6设计一个加法器,输入255bit,输出8bit。(输出的8bit是对255bit数据中的1的总个数)
input clk;
input grst_n;
input [254:0] data_i;(输入是任意的255bit的数据)
input ce;(数据输出的使能)
output [7:0] data_o;(输出是对输入的255bit数据中所有1的和)
原来的设计思路:
采用spartan3时,直接用RTL写的全加器来设计占用的LUT资源明显要比用门级电路(原语)设计的资源占用量多。
所以采用用门级电路的方法来设计,spartan3中的设计用到了这些原语: LUT2_L XORCY(异或门) MUXCY(选择器) LUT3_L LUT4_L FDE(寄存器),
先将data_i的前[224:0]分成16个14bit的数,通过原语设计的电路结构计算出16的3bit的数据(因为7bit的数据计算出来最多可用3bit的的数据表示,如7个1,之和最多等于7)
[13:0] → [2:0] 、 [5:2]
[27:14] → [8:6] 、 [11:9]
...... 依次类推
[224:211] →
然后把剩余的[254:225]中的前16bit作为进位,与前一步计算出来的16对3bit的数据用LUT2_L XORCY(异或门) MUXCY(选择器)构成的全加器进行计算变为16个4bit的数据,然后依据此种方法类推,最后算出一个8bit数据。
现在的设计思路:
因为原来的器件是spartan3,现在想要用spartan6,也要用尽可能少的资源,我看了spartan6的文档,里面的结构与spartan3的差别比较大,里面有个直接的4位全加器CARRY4 ,但是我一下还是没有想到怎样设计,请教各位大侠了,过两天就要上交任务了。十万火急啊,可能很多方面不是说得很清楚。要是哪位大侠知道怎样设计,麻烦您说的详尽浅显,感谢了
