-2

以下代码给了我一个错误,我自己无法弄清楚。错误是因为输出d0有多个赋值

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

1 回答 1

0

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

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

于 2014-07-14T22:28:51.787 回答