VHDL工作沒有模塊。它們被稱爲已聲明組件或直接實例化實體或配置的組件實例。
有了這個測試平臺:
library ieee;
use ieee.std_logic_1164.all;
entity tb_divex is
end entity;
architecture foo of tb_divex is
signal x: std_logic_vector(31 downto 0) :=x"000000FF";
signal y: std_logic_vector(31 downto 0) :=x"00000005";
signal r: std_logic_vector(31 downto 0);
begin
DUT:
entity work.divex
port map (
x => x,
y => y,
r => r
);
STIMULUS:
process
begin
wait for 10 ns; -- so we can see these on a waveform display
y <= x"00000023";
wait for 10 ns;
x <= x"00000123";
y <= x"00000003";
wait for 10 ns;
wait;
end process;
end architecture;
它採用了直接實例化的實體,我們得到:
這表明直接實例您divex
導致一些作品。
您從未迴應Brian Drummond的實際警告/錯誤消息請求,這也阻止某人確定您正在使用哪個供應商的工具。
沒有看到那些和你的測試臺或刺激應用方法,任何人回答都是殘疾人。
您可能正在通過組件聲明使用組件實例,在這種情況下,您可能沒有綁定組件。您可以使用組件聲明來分析VHDL設計規範,但除非實體先前已被分析到設計庫中,其內容通過上下文子句可見,否則可能不會將組件綁定到庫設計單元。
見IEEE標準1076-1993/-2008 12.4.3/14.5.4組件實例聲明:
實例化 組件聲明組件實例聲明的制定沒有影響,除非該組件實例 或者完全綁定到由實體聲明 定義的設計實體和架構主體,或者綁定到實體的這樣的設計配置。如果一個組件實例被如此綁定,那麼對應的組件實例化語句的詳細描述由代表組件 實例和(在該塊內)的隱含塊語句的詳細描述組成,該隱含塊語句表示該設計實體的隱含塊語句 組件實例綁定爲 。
一個組件實例使用默認綁定基於它的名字:
5.2.2/7.3.3默認綁定指示
在某些情況下,默認綁定指示將適用於 的沒有明確的約束指示。默認綁定 指示包含默認實體方面,以及 默認通用映射方面和默認端口映射方面,如 合適。
如果沒有可見的實體聲明具有相同的簡單名稱爲的 實例化的組件,則默認的實體方面是開放....
所以你divex
組件可以是開放。
在某些管理「項目」的工具中,可能會出現這種情況,因爲divex的設計文件未包含在「項目」中。有效地,它不會被分析到當前的工作庫中,並且當它已經被分析到一個庫(一個不同的工程的工作庫)中時,它不會被上下文語句看到,它根本就不存在。
實際錯誤報告或消息? –
它不會阻止模擬我認爲它與位數有關。 – EYx
它可能沒有停止......再給它幾個小時!或者更合理地說,將X和Y都轉換爲整數,以便更快地模擬。 –