大学の中間プロジェクトでは、構成可能なプロセッサを設計し、VHDL でコードを記述してから、Digilent の Spartan 3E FPGA ボードで合成する必要があります。私は初心者なので、コンフィギュラブル プロセッサに関する情報や、コンセプトに関連するアイデアを教えていただけますか?
3 に答える
関連する質問については、私の回答をご覧ください。FPGA ボード用に VHDL で CPU を構築して、ほぼ同じことを行いました。
私は同様のプロジェクトを行い、VHDLで5ステージパイプラインを備えたプロセッサを実装しました。
まず最初に、プロセッサがどのように機能するかのアーキテクチャを理解する必要があります。各スタンジが何をしているのか、どのような種類の制御信号が必要なのかを理解していなければ、実際にVHDLで作成することはできません。
次に、命令とデータがプロセッサをどのように流れるか(つまり、各ステージを通過するか)の図を描き始めます。各ステージはどのように相互に接続されていますか?制御信号はどこに行きますか?入力はどこから来て、出力はどこに行きますか?
しっかりとした図ができたら、VHDLでの実際の実装は比較的簡単です。VHDLのビヘイビアモデリングを使用して、ダイアグラムに表示されている内容を本質的に正確に説明できます。
これは単なる
モックアップなので
、クリーンアップすることに注意して
ください
。store2 datas1
fetch instruct6、fetch datas5、process data4、store3 datas1
fetch instruct7、fetch datas6、process datas5、store4 datas1
fetch instruct8、fetch datas7、process datas6、store5 datas1
基本的に、これらはプロセッサの主要コンポーネントです。 パート 1 ALU: 算術論理ユニット (ここで draeing が役立ちます) AN ALU には 2 つの入力ポートと 1 つの出力ポートがあります。2 つの入力ポートが操作され、結果が出力されます。ALU がどの命令を実行する必要があるかを知るために、制御ポートがあります。基本的にこれはコマンドの名前です。したがって、制御ポートが 4 ビットの場合、16 の可能な命令があります。
Part 2 REGISTER UNIT: メモリセル(キャッシュメモリ)の集合です。このメモリの内容は、多くの場合、ALU の入力ポートに転送されます。
Part3 Control Unit: これは、CPU のオーケストラ マスターのようなものです。その仕事は、1データをALU入力に送信することです2命令レジスタで発生する必要がある命令を読み取り、それらのコードをALU制御ポートに送信します
インターフェース。これは、RAM およびその他の周辺機器が CPU と通信する方法です。
命令が結果を出力するたびに、それを保存する必要があります。これは RAM に格納できるため、結果が準備できたら RAM 書き込みの準備ができている必要があります。同時に、次の命令の入力の RAM 読み取りが発生する可能性があります。また、同時に、次の次の命令を RAM からフェッチすることもできます。
1 つの命令を生成するには、通常、1 クロック サイクル以上が必要です。命令の処理は、工業生産に似ています。というわけでチェーン作業完了。
VLIW 私たちが書くプログラミングは直線的です。つまり、命令が次々と発生します。しかし、今日の CPU (ただし ARM ではありません) には複数の ALU があるため、複数の命令が同時に処理されます。
したがって、複数の命令を同時に処理する処理ユニット チェーン (パイプライン) があり、それらのユニットがたくさんあります (スーパースカラー)。
次に、CPUアーキテクチャを調整するために何ができるか、または何をする必要があるかという問題になります。