ماشین حالت (FSM) در VHDL
ماشین حالت متناهی (FSM) یک مدل ریاضی برای طراحی سیستمهای دیجیتال است که شامل مجموعهای از حالتها است که بر اساس ورودیها بین آنها جابجا میشود.
اجزای FSM
- حالتها (States): وضعیتهای ممکن سیستم.
- ورودیها (Inputs): سیگنالهایی که باعث تغییر حالت میشوند.
- خروجیها (Outputs): مشخصکننده رفتار سیستم در هر حالت.
- تابع انتقال حالت (State Transition): تعیین نحوه جابجایی بین حالتها.
انواع FSM
- ماشین حالت Moore: خروجی فقط به حالت فعلی بستگی دارد.
- ماشین حالت Mealy: خروجی علاوه بر حالت، به ورودی نیز بستگی دارد.
مثال: FSM سه حالته در VHDL
تعریف حالات
type state_type is (IDLE, LOAD, PROCESS);signal current_state, next_state : state_type
فرآیند تغییر حالت
process (clk, rst)beginif rst = '1' thencurrent_state <= IDLE;elsif rising_edge(clk) thencurrent_state <= next_state;end if;end process;
فرآیند انتقال بین حالتها
process (current_state, input_signal)begincase current_state is whenIDLE =>if input_signal = '1' thennext_state <= LOAD;elsenext_state <= IDLE;end if;when LOAD =>next_state <= PROCESS;when PROCESS =>next_state <= IDLE;when others =>next_state <= IDLE;end case;end process;
فرآیند تولید خروجی
process (current_state)begincasecurrent_state iswhen IDLE =>output_signal <= '0';when LOAD =>output_signal <= '1';when PROCESS =>output_signal <= '1';when others =>output_signal <= '0';end case;end process;
جمعبندی
FSM یکی از روشهای مهم در طراحی مدارهای دیجیتال ترتیبی است که شامل تعریف حالتها، انتقال بین آنها و تولید خروجی میباشد.