以下代码给了我一个错误,我无法弄清楚自己。 该错误是因为输出d0有多个赋值
do: for i in 0 to 9 generate
d0<=di0(129-i downto 120-i)
when f(i)='1';
end generate do;
答案 0 :(得分:0)
for-generate
创建多次复制的并发逻辑。您已为d0
指定了10个作业。有效使用generate语句通常需要使用数组类型作为分配的目标来组织不同的并发元素。或者,您可以使用已解析的类型来管理单个信号的多个驱动程序,但在模拟之外通常无用。
您似乎正在尝试使用单热选择来描述多路复用器。这可以在没有生成语句的情况下完成。考虑创建多路复用器所涉及的逻辑,并使用数组并行描述相关的布尔操作。