汇总/分配Verilog中的位

时间:2019-02-26 14:52:40

标签: verilog bit

我是Verilog编码的初学者,正在寻找一种巧妙的方法来按顺序排列位。

我有60个音符(5个八度音阶+ 12个音符):

double

应该只分配给一辆公交车 long double

但以正确的顺序:c [4],cs [4],d [4],ds [4],e [4] ... a [0],as [0],b [0] < / p>

将感谢您的建议。

1 个答案:

答案 0 :(得分:2)

这是一个串联,而不是求和。

notes = {c[4], cs[4], d[4], ds[4], e[4] ... a[0],as[0],b[0]};

请参阅IEEE SystemVerilog 1800-2017 LRM中的11.4.12级联运算符。

您可以使用for循环稍微简化一下。

logic [59:0] notes;
for (int ii=0;ii<5;ii++)
     notes[ii+:5] = {c[ii], cs[ii], d[ii], ds[ii], e[ii]};

要这样做,notes必须是变量而不是导线。