如何使用FOR循环生成单个多路复用器。 这是我的意思:
CASE test IS
FOR i IN ... LOOP
WHEN i => ... ;
END LOOP;
END CASE;
我知道可以在CASE之前放置FOR,但在这种情况下它会生成许多多路复用器吗?
答案 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;