私は、(FPGA上で)16ビットのデジタル信号を読み込み、何らかの処理を行い、16ビットの処理済み信号を書き出すために使用されるいくつかのVHDLコードに取り組んでいます。現在のところ、10クロックサイクルごとに入力を読み込み、次のクロックサイクルで何らかの処理を行うように設定されています(現在は何もせず、入力を出力するだけです)。残りの8クロックサイクルでカウンタを増分します。使い方条件が10クロックサイクルに1回「何か」を行う場合。 「何か」に1クロックサイクル以上かかる場合はどうなりますか?
処理が完了するまでに1クロックサイクル以上の時間がかかる場合はどうなりますか?終了するまでカウンタをインクリメントして停止するまで続行しますか?または、カウンタが信号を処理している間に、カウンタが同時にインクリメントし続けますか?
8クロックサイクルが上がる前に(出力に書き込むために)プロセスが完了するように設定します。
擬似コードは次のようなものになります。それはすべてあなたがコードを書く方法によって異なり
Do (on rising clock edge):
if (n = 10) then
n <= 1;
Output <= ProcessedSignal;
InputSignal <= Input;
elsif (n = 1) then
n <= n + 1
Output <= Output;
-- do some signal processing here (e.g. a filter)
ProcessedSignal <= InputSignal;
else
n <= n + 1;
Output <= Output;
ProcessedSignal <= ProcessedSignal;
end if;
あなたの質問は時期尚早です。 [良い質問をするにはどうすればいいですか?](http://stackoverflow.com/help/how-to-ask)を参照してください。実際のVHDLコードを記述してシミュレートすると、複製可能な問題について特定の質問をすることができます[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)を参照してください。 – user1155120