當num改變時,計數器應該增加1,因爲num在靈敏度列表中。但模擬說不。我不知道我的代碼有什麼問題。 上的Quartus 9.0[編輯] VHDL計數器不會運行
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY tmp IS
PORT (
num : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
counter : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
clr : IN STD_LOGIC
);
END tmp;
ARCHITECTURE ar OF tmp IS
SIGNAL c : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(num, clr)
BEGIN
IF clr'EVENT AND clr = '1' THEN
c <= "0000";
END IF;
c <= c + 1;
END PROCESS;
counter <= c;
END;
你只是在模擬工作,或者你希望把這一設計成一個真正的硬件設備?首先,您需要初始化'c',但對於真正的硬件,這個代碼還有其他問題! –
模擬,我只想測試過程是否可以運行,現在c的值是無稽之談:P – Lance6716
10你初始化了'c'嗎? 'SIGNAL c:STD_LOGIC_VECTOR(3 DOWNTO 0):=(others =>'0')?'; –