-1
我試圖在VHDL中實現電梯,但是在我做出狀態圖後卡住了。 這是一個13層(包括地下)的電梯。它有一個重量senzor,門senzor。它必須像現代電梯一樣行事。 我不知道該如何開始。 我認爲我的狀態圖不好,因爲我無法編碼狀態。 我試圖創建下一個狀態卡諾圖,但我沒有成功。 你能幫我嗎?電梯設計難點與狀態圖
我試圖在VHDL中實現電梯,但是在我做出狀態圖後卡住了。 這是一個13層(包括地下)的電梯。它有一個重量senzor,門senzor。它必須像現代電梯一樣行事。 我不知道該如何開始。 我認爲我的狀態圖不好,因爲我無法編碼狀態。 我試圖創建下一個狀態卡諾圖,但我沒有成功。 你能幫我嗎?電梯設計難點與狀態圖
VHDL中的典型狀態機可能如下所示。使用卡諾圖不是必需的,因爲這些工具會爲你做到這一點。
例如,如果這是你的狀態機:
然後,你可能會開始寫的VHDL此爲:
architecture rtl of state_machine is
type state_t is (state_0, state_1, state_2);
begin
process (clk)
begin
if rising_edge(clk) then
case state is
when state_0 =>
-- calculate the next state.
-- do something else.
when state_1 =>
-- calculate the next state.
-- do something else.
when state_2 =>
-- calculate the next state.
-- do something else.
when others =>
-- bad state. reset or something like that.
end case;
end if;
end process;
end architecture;
明確了作業類型的問題。請分享你的得分。 你的問題不在於VHDL。你首先需要弄清楚確切的規格。你可以使用_any_形式表示:泡泡圖表,卡諾或其他。 我會強烈建議將地板編碼爲一個單獨的變量,而不是將狀態數乘以十三。 當你有正式的規範後,你可以想到VHDL代碼。 – Philippe
是的,我同意。我的問題與vhdl沒有關係,因爲我還沒有到達那裏。直到現在我製作了狀態圖,但是當我嘗試編碼我的狀態時,我不能。 – user3426060
對於你來說,編碼狀態不是必要的,至少在設計之初不是這樣。如果您使用枚舉類型來列出從您的圖派生的狀態,VHDL將爲您創建編碼。在你把基本的東西整理出來之後,你可以考慮一下狀態編碼,如果這對你來說真的很重要(也許這是一個作業要求)。但請注意,在現實世界中,您可以設計和實現控制器,而無需考慮位級狀態編碼。 – rick