在VHDL Testcase上運行modelsim時出現以上錯誤,我無法理解它爲什麼是錯誤。轉換函數「To_bit」必須只有一個形式參數
測試用例:
LIBRARY IEEE;
Use ieee.std_logic_1164.all;
entity a is
port (in11 : in std_logic
);
end a;
架構一個的是:
component b_1
port (in1 : in bit);
end component;
begin
inst : b_1 port map (in1=> **to_Bit**(in11));
end a;
如果我在包中編寫一個包裝函數來「to_bit」,然後如果我使用該函數,那麼它就可以工作。 '代碼 程序包: 程序包mgc_package爲 函數mgc_to_Bit(p:std_ulogic)返回位; 封裝; 包體mgc_package是 函數mgc_to_Bit(p:std_ulogic)返回位是 begin return to_bit(p); 結束; 封裝體; VHDL案例: 圖書館工作; use work.mgc_package.all; 架構的是 .... 開始 研究所:B端口映射(IN11 => mgc_to_Bit(IN1)); end a; end a; ' 如果我能夠在portmap中使用實際的函數,那麼爲什麼我不能使用「to_bit」函數本身? – Dharmendra
to_bit在標準包中定義,所以實際上它是相同的情況...不知道爲什麼應該起作用 – BennyBarns
Christian U.答案說明了爲什麼轉換函數可以工作。參見4.3.3.2關聯列表*轉換函數*(2007年的6.5.7.1),問題是在-2008(6.5.6.3端口子句)中通過將隱式聲明的信號與正式的表達式值的併發賦值的目標(例如,針對返回類型標記的全局靜態子類型的函數調用)。 – user1155120