循环案例

时间:2012-01-05 07:28:23

标签: vhdl

如何使用FOR循环生成单个多路复用器。 这是我的意思:

CASE test IS
    FOR i IN ... LOOP
        WHEN i => ... ;
    END LOOP;
END CASE;

我知道可以在CASE之前放置FOR,但在这种情况下它会生成许多多路复用器吗?

2 个答案:

答案 0 :(得分:5)

你不能有这样的循环来生成case语句的表达式。你可以做一些接近你想要的事情,但是,只需使用for循环:

FOR i IN ... LOOP
  IF test = i then
    output <= myarray(i);
  END IF;
END LOOP;

...但如果你所做的只是一个像上面这样的简单多路复用器,你不需要这个循环,你可以直接用你的选择信号索引:< / p>

output <= myarray(to_integer(test));

答案 1 :(得分:1)

这是你的意思吗?

CASE test IS
  WHEN i to j => ...;
END CASE;