VHDLの増分:( こんにちは!私はしばらくの間、この問題に取り組んできました。私はそれが私はかなり理解していないから始まる問題だ気持ちを持っている。問題をコーディングする内部信号
--I」 m内部メモリへのアクセス、それぞれ2ビット数の4行。私はメモリに読み書きできました。問題は次のデータセットを格納するアドレスをインクリメントすることです。
- 私ユニットは、3つの状態を持つFSMによって制御される。私は3つの内部信号addressin:次に読み取られるべきアドレスへのポインタaddressout:次に書き込まれるアドレスへのポインタaddressall、アドレスそれはtに入る彼は実際の記憶段階です。
PROCESS (y)
BEGIN
CASE y IS
WHEN I=>
enable<='0';
WHEN reed=>
enable<='0';
IF (addressin="00" OR addressin="01" OR addressin="10") THEN
addressin<=addressin+"01";
ELSE
addressin<="00";
END IF;
addressall<=addressin;
WHEN rite=>
enable<='1';
IF (addressout="00" OR addressout="01" OR addressout="10") THEN
addressout<=addressout+1;
ELSE
addressout<="00";
END IF;
addressall<=addressout;
END CASE;
END PROCESS;
memorystage: memory PORT MAP (clck, NOT reset, NOT enable, addressall, datain, dataout);
yが変化したときにプロセスがアクティブになりますが(状態が変化するコードは見ていないです。)私の問題があり、アドレシンが変更されます、アドレスを変更しないだろう、とそうaddressallはなります...しかし、決して1つだけで決して決して連続的なロジックではありません。(私はこれを16進表示で見ることができます)例えば、私はaddressinを得るでしょう:3 3 1 0 3 0 3 0 2 0 2 1 0 ....と同じ他の2つのアドレス信号。私は何が間違っているのか分かりません。これは大規模なプロジェクトの一部に過ぎないので、私はそれを取り上げてそれに取り組んだ。 :(私は間違っている?ありがとうをやって何をしています。-jenn
もう少しコードを投稿できますか?どのライブラリを使用していますか?あなたの信号はどんなタイプですか?また、「リード」と「ライト」のような綴りがある理由はありますか? –