ビット文字列で特定のパターンを検出する vhdl を作成しようとしています。入力ストリームにパターン "110" が見つかった場合、回路は 1 を出力する必要があります。私の入力は「X」で、出力は「Z」です。
「110」の入力パターンを確認する方法がわかりません。
これは私がこれまでに持っているものです:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity checker is
Port ( clk : in STD_LOGIC;
x : in STD_LOGIC;
z : out STD_LOGIC);
end checker;
architecture Behavioral of checker is
type state_type is (S0, S1, S2);
signal pr_state: state_type := S0;
signal nx_state: state_type := S0;
begin
process(clk) begin
if (rising_edge(clk)) then
pr_state <= nx_state;
end if;
end process;
process(pr_state, nx_state) begin
case (pr_state) is
when S0 =>
z <= '0';
nx_state <= S1;
when S1 =>
z <= '0';
nx_state <= S2;
when S2 =>
z <= '1';
nx_state <= S0;
end case;
end process;
end Behavioral;
何かご意見は?フィードバックをお待ちしております。