入力sel = '1'のたびにstd_logicベクトル '1'と '0'をトグルしたいと思います。 次の方法でこれを試しましたが、両方の行でエラーが発生します。 1と0の間でstd_logicを切り替える方法
selected <= ~selected when sel='1';
ERROR: Syntax error near "~"
ERROR: This construct is only supported in VHDL 1076-2008
selected <= not selected when sel='1';
がトグルするためのより良い方法はありますか、何ではない '関数のための正しい構文です。ここで
は、全体のアーキテクチャのためのコードです:
architecture Behavioral of selWeerg is
signal selected : std_logic;
begin
process(sel,digl,sysclk)
begin
if rising_edge(sysclk) then
selected <= ~selected when sel='1';
if selected = '0' then
digO1<=digl(3 downto 0);
else
digO2<=digl(3 downto 0);
end if;
end if;
end process;
end Behavioral;
信号を割り当てたのと同じプロセスで信号を読み取ることはできません。選択したトグルコードを別のプロセスに分離して、それをテストするコードにする必要があります。 –
'〜'はVHDLの演算子ではありません。あなたは 'not'が必要です。 –