红石电路吧 关注:32,307贴子:153,450
  • 6回复贴,共1

局部稀疏化编码可以减少编码器或译码器的元件数量

只看楼主收藏回复

这种想法就是通过一些简单的变换,让编码中的1和0相互靠近,或者改变为期望的编码方式,以降低具体电路使用元件的数目。
比如说01011,表示一根线的编码。可以把第二个数字1与第三个数字0交换,就变成了00111
但是这个编码的输出也被打乱了,原先是abcde,现在是acbde。原因是左到右第二位和第三位被交换了。在具体设计中。第二位和第三位衔接的那根线上所有相关的输入都得交换以保持一致。这可以看作是一个在矩阵上面的初等行变换,每个矩阵元素是一个bit。同理也可以进行列变换。最终是尽可能的让编码更适合电路设计。进行这些基本变换后。需要在输入和输出向量上再分别套两个初等变化交换bit位以修正编码。想象一下在一个二维的位块中,大量的1还有大量的0相互凑拢到了一起,但是这又如何帮助减少元件呢?我们知道mc里的中继器或者红石火把对准方块,就可以对方块进行强冲能,被强冲能的方块可以对周围的红石线进行弱冲能,这样就可以通过一个元件同时激活周围两根线,以降低设计使用元件,在布线上,这为解码器或编码器腾出了大量空间。甚至可以把很多m bits -> n bits的映射电路压缩到4高,并且保持1间隔的输入/输出间距。
另外如果出现较大的区域全部保持为1或0,甚至可以去掉或者合并这些导线。具体的做法上,可以在局部合并然后展开,也可以一直合并后在输出上链接到多个端口。
另外还有复杂的办法,就是用逻辑表达式表示一个映射(被俗称逻辑穷举),在5+3/8-3等电路设计上,表现出了很多优势。但是缺点是通常由于逻辑门使用引入大量电路延迟。初等变化编码也可以帮助逻辑穷举布线。


IP属地:江西来自iPhone客户端1楼2019-06-05 18:23回复
    另外,除了行列交换,还可以给输入或输出端口取反,当然想怎么做具体取决于电路


    IP属地:江西来自iPhone客户端2楼2019-06-05 18:25
    回复
      2026-01-21 22:31:42
      广告
      不感兴趣
      开通SVIP免广告
      不懂 举个栗子呗


      IP属地:北京来自Android客户端3楼2019-06-07 10:06
      收起回复
        从带宽来看,这种方案挺不错,有助于节省带宽
        从性能来看,红石电路比较鸡肋,太慢,但现实里还真的能这么做(极化码似乎就有与这种想法相似的地方)
        从实现难度来看...不提了,这种东西设计起来真的不容易(我又想起了我之前失败的进制压缩算法了...)


        IP属地:江苏来自Android客户端4楼2019-06-28 09:23
        回复