如何實現具有「不關心」輸入並具有「無所謂」直接表示的VHDL功能?的Free Range VHDL具有無關輸入功能
練習4.8-2a問我:
...編寫實現用...選擇的信號分配這些功能的VHDL模型。
一個)F(A,B,C,d)= A'CD '+ B'C + BCD'
此代碼的工作:
library ieee;
use ieee.std_logic_1164.all;
entity funca_selected is
port (
a: in std_ulogic;
b: in std_ulogic;
c: in std_ulogic;
d: in std_ulogic;
x: out std_ulogic);
end entity;
architecture rtl of funca_selected is
signal s: std_ulogic_vector(3 downto 0);
begin
s <= a & b & c & d;
with s select x <=
'1' when "0010" | "0110" | "0011" | "1010" | "1011" | "1110",
'0' when others;
end architecture;
它是,但是,函數定義的表示很差。我想使用「不關心」輸入對其進行編碼,以便代碼更接近地匹配定義。這會減少工作,並且更容易得到正確的結果。我嘗試這樣做:
with s select x <=
'1' when "0-10" | "-01-" | "-110",
'0' when others;
這不起作用:當我的試驗檯行使此項功能,結果始終是「0」。
我使用GHDL版本0.29 + gcc4.3.i386。
VHDL函數如何表示「不關心」輸入?
其實修復是允許使用重載的預定義的操作符。 IEEE Std 1076-2008,9.2.3關係運算符第3和第4節告訴我們,除了需要與某些軟件包相反的匹配元素之外,進行平等是非法的。爲了元匹配平等,需要新的運營商。平等不能被重新定義。 – user1155120
@DavidKoontz - 我不確定我說我有什麼不同嗎?如果您可以建議改寫我的答案,請修改它。 –