在Verilog中连接无界信号,可综合

问题描述

我想知道您是否知道以下操作的其他逻辑:

给出7个信号:

label

button

span

在信号中执行3的串联,这样

logic [7:0] in0,in1,in2;

0 ... 0为零填充。我只能想到 logic [2:0] len0,len1,len2; 但我想知道是否还有另一种方式来进行此串联。我可以采用多周期方法。我只是想看看是否有一个更快/更小的区域作为此操作的实现。

解决方法

目前唯一可综合用于执行此操作的语法是mask / shift / or或一组for循环。

out = (in2 & (1<<len2)-1) << len0+len1 |
      (in1 & (1<<len1)-1) << len0 |
      (in0 & (1<<len0)-1);

任何方法都会导致大量的多路复用器。