Vhdl 并发语句的多重赋值

Vhdl 并发语句的多重赋值,vhdl,digital,register-transfer-level,vlsi,Vhdl,Digital,Register Transfer Level,Vlsi,下面的代码给了我一个错误,我自己也弄不清楚。 错误是因为输出d0有多个赋值 do: for i in 0 to 9 generate d0<=di0(129-i downto 120-i) when f(i)='1'; end generate do; do:0到9中的i生成 d0Afor generate创建可多次复制的并发逻辑。您已经为d0指定了10个赋值。有效地使用generate语句通常需要使用数组类型作为分配的目标来组织不同的并发元素。或者,您可以使用已解析的

下面的代码给了我一个错误,我自己也弄不清楚。 错误是因为输出d0有多个赋值

do: for i in 0 to 9 generate
  d0<=di0(129-i downto 120-i)
       when f(i)='1';
end generate do;
do:0到9中的i生成

d0A
for generate
创建可多次复制的并发逻辑。您已经为
d0
指定了10个赋值。有效地使用generate语句通常需要使用数组类型作为分配的目标来组织不同的并发元素。或者,您可以使用已解析的类型来管理单个信号的多个驱动程序,但这在模拟之外通常不有用

看起来您正试图使用一个热门选择来描述多路复用器。这可以在不使用generate语句的情况下完成。考虑创建mux所涉及的逻辑,并使用数组并行描述相关的布尔运算