为什么我选择的信号分配不起作用?

时间:2018-11-21 15:34:12

标签: vhdl vivado

我在VHDL代码中选择的信号分配有什么问题?

with s select x <= a when (s = '1')
         else y <= a when (s = '0');

我也尝试过:

with s select x <= a when '1';
with s select y <= a when '0';

1 个答案:

答案 0 :(得分:0)

尚不清楚您要做什么。从您展示给我们看,在我看来,您想要创建一个由信号s(1个输入,2个输出)控制的多路分配器,其中当s ='1'时x <= a,当s ='0时y <= a '

在要创建多路复用器(n个输入,1个输出)的情况​​下,应使用select。也就是说,与多路分配相反!

我建议您使用简单的if语句创建多路分配器。

示例:

if s='1' then x <= a; else y <= a; end if;