ここにザイリンクスのZynqのコードのコードを示します。私はそれが何のために理解できないのですか?奇妙なエッジ検出または他の何か?
Iはpulse_d2が1だけs_axi_resetnの立ち下がりエッジである参照として。
このように立ち下がりエッジを検出する理由は何ですか?
なぜイベントを使用しないのですか。「if(s_axi_resetn'event and s_axi_resetn = '0')」のようなものは使用しないでください。
process(s_axi_clk)
begin
if (s_axi_clk'event and s_axi_clk = '1') then
if (s_axi_resetn = '0') then
pulse <= '0';
else
pulse <= '1';
end if;
end if;
end process;
process(s_axi_clk)
begin
if (s_axi_clk'event and s_axi_clk = '1') then
if (s_axi_resetn = '0') then
pulse_d1 <= '0';
else
pulse_d1 <= pulse;
end if;
end if;
end process;
pulse_d2 <= pulse and (not pulse_d1);
これはザイリンクスの例ですか? Imho彼らはここでいくつかの低品質のコードを作った。奇妙な信号の命名。 'rising_edge'を使用していません。そして、すべてがもっと効率的に書くことができました。 – JHBonarius
はい、このコードはAXI Datamoverの例です。学習の目的で同じ機能を備えた、より効率的なコードやその他のバリアントを提供してください。 – eloiman