请教下面逻辑的实现
这个“查表法”其实是一个好方法。
就现在这个例子来说,4bit组或8bit组是不错的选择,我觉得用4bit的组更合适。实现的
时候不用寄存器,用逻辑搭rom来实现。
对64bit来说,4-4-4,128bit的话4-4-4-2。
就本质上来说,这是prefix-tree的一种实现,就是常见的CLA的方式,一般来说,kooge-
stone这类tree是更优化的选择。
用寄存器不用纯组合逻辑的目的是,只会有地址选择的delay,这个基本是最快的。
前面有一个逻辑实现的方法,根据那个提供一个思路:
a = in & (in-1) //cancel the last 1
b = a & (a-1) //cancel the 2nd last 1
out = a ^ b //get the 2nd last 1
critical path是:
counter -> & -> counter -> & -> ^
只要优化counter路径即可。
如果就算地址选择delay,256选1,相当于8个2选1级联,而2选1和xor在电路级别基本是
一样的。
8级xor的delay基本可以干太多事了。在prefix迭代式中,Wij的表达式就是一个2选1,用
最普通的radix-2的koggle-stone也只是需要7级而已,这时已经得到最终结果了。
细想一下,其实不是256选一啦。
输出不是三个域吗?
第一个域是,三选一,一共才3个结果,0,1,2
第二,第三个域,都是8选一,0000_0001, 0000_0010, ..... 1000_0000
做地址decoder的时候,注意一下归类。每个域独立写一个case。
我只是让大家换一个角度的思路而已。你们继续
学术版面,讨论学术问题不是老正常的吗?
我们屌丝的学术追求不是你这样的有钱人所能理解的。话说,你这个月又挣了几百万啊h