VHDL で FPGA プロジェクトに取り組んでいます。
FIFO がいっぱいになるたびに、16 ビット シフト レジスタを FIFO にコピーする必要があります (たとえば、16 個の新しいデータ ビットがシフト レジスタに供給された後、新しく形成された 16 ビット ワードを取り出して FIFO に送信したい)。
私の質問は、FIFO のクロック ラインをアサートする前に、FIFO の入力でデータを設定する必要があるかどうかです。これは実際には一般的な VHDL に関する質問であり、fifo に固有のものではありません。
基本的に、同じ操作でデータを設定してクロックをトグルすることは可能ですか、それとも 1 つのクロック エッジでデータをセットアップし、次のクロック エッジで fifo クロックをトグルする基本的なステート マシンが必要ですか?
例えば:
fifo_d_in( 7 downto 0 ) <= shift_register;
fifo_clk <= '1';
また
if( state = one ) then
fifo_d_in( 7 downto 0 ) <= shift_register;
state <= two;
elsif( state = two ) then
fifo_clk <= '1';
end if;
私の直感は、入力レジスタのセットアップとホールドの要件を満たすために、最初にデータをセットアップする必要があることを教えてくれます。
ありがとう!