如何使用FOR迴路生成單個多路複用器。 這裏有一個片段我的意思:案例迴路
CASE test IS
FOR i IN ... LOOP
WHEN i => ... ;
END LOOP;
END CASE;
據我所知,一個能放在前CASE,但在這種情況下它會產生很多多路複用器?
如何使用FOR迴路生成單個多路複用器。 這裏有一個片段我的意思:案例迴路
CASE test IS
FOR i IN ... LOOP
WHEN i => ... ;
END LOOP;
END CASE;
據我所知,一個能放在前CASE,但在這種情況下它會產生很多多路複用器?
您不能像這樣產生循環來生成case語句的表達式。你也許可以做一些接近你想要的東西沒有的情況下,但是,只要使用for循環:
FOR i IN ... LOOP
IF test = i then
output <= myarray(i);
END IF;
END LOOP;
...但如果你正在做的是像上面的,你不要簡單多路複用器「T需要的情況下或循環,你可以直接與您的選擇信號指標:
output <= myarray(to_integer(test));
我認爲我可以使用第一個片段。我總是連接IF與優先解碼器而不是多路複用器(但是當存在elsif和else語句時就是這種情況)。 – user1131562 2012-01-06 06:57:13
我剛纔發現,當你想要覆蓋整個範圍的值時,很難使用IF。當測試是std_logic時,你需要有「當其他人」;或「if ... else {}」。 – user1131562 2012-01-06 07:09:02
如果您提供了更多關於您想要做什麼的更多細節,而不是列出一些VHDL的碎片並詢問「爲什麼我不能這樣做」,您可能會得到更好的答案! :) – 2012-01-06 13:31:13
如果你在'when I =>'後面說了要放什麼,問題會更清楚。這可能不是你想要的結構。 – 2012-01-05 14:46:33
我不同意。我故意這樣寫。 – user1131562 2012-01-06 06:58:10