并发语句的多重赋值

时间:2014-07-14 21:59:30

标签: 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;

1 个答案:

答案 0 :(得分:0)

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

您似乎正在尝试使用单热选择来描述多路复用器。这可以在没有生成语句的情况下完成。考虑创建多路复用器所涉及的逻辑,并使用数组并行描述相关的布尔操作。

相关问题