我在寫一個順序計數器,它由一系列使用D觸發器組件的單計數器組件組成。在單個計數器中,我需要從的初始值q
開始,但我在初始化時遇到問題。VHDL初始化std_logic
q
是STD_LOGIC
信號,我試圖按如下初始化:
signal q : STD_LOGIC := '0';
然而,當我運行使用的ModelSim程序它顯示的U
一個值,好象它是未分配的。如果我在ModelSim中運行時強制凍結'0'
到q
的信號,那麼它就起作用。
是否只有這樣才能在行爲描述開始時檢查值並將其設置爲'0'
(如果未指定)?
如果我使用BIT
而不是STD_LOGIC
,則一切正常。
我會發布我的代碼,但我不想冒學術誠信違規,因爲這是一個學校項目。
別的什麼東西開車Q?請注意,如果初始值爲'0'並且有驅動器驅動'U',則這兩個值將解析爲'U'。 (如果你不明白,請閱讀有關解析功能)。 –
那麼,我將一個D觸發器組件的輸出'q'映射到問題中指定的'q'。你是這個意思嗎? –
是的,那是你的問題。您需要清除觸發器中的'U',可以通過重置或'0'或'1'計時。 –