[英]Concatenating unbounded signals in Verilog, (Synthesizable)
我想知道您是否知道以下操作的其他逻辑:
给定 7 个信号:
logic [7:0] in0, in1, in2;
logic [2:0] len0, len1, len2;
logic [31:0] out
在信号中执行 3 的串联,使得
out = {0...0, in2[len2:0], in1[len1:0], in0[len0:0]}
0...0 是零填充。 我只能想到out = 31'd0 | in2<<(len1+len0) | in1<<(len0) | in0
out = 31'd0 | in2<<(len1+len0) | in1<<(len0) | in0
out = 31'd0 | in2<<(len1+len0) | in1<<(len0) | in0
但我想知道是否有另一种方法来进行这种连接。 我对多周期方法没问题。 我只是想看看是否有更快/更小的区域作为此操作的实现。
目前唯一可以合成的语法是掩码/移位/或,或一组for
循环。
out = (in2 & (1<<len2)-1) << len0+len1 |
(in1 & (1<<len1)-1) << len0 |
(in0 & (1<<len0)-1);
不管你怎么做,都会导致很多多路复用器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.