質問

大学の中期プロジェクトでは、構成可能なプロセッサを設計し、VHDLでコードを記述し、DigilentのSpartan 3E FPGAボードで合成する必要があります。私は初心者ですので、構成可能なプロセッサーに関するいくつかの情報、コンセプトに関連するいくつかのアイデアを教えていただけますか?

役に立ちましたか?

解決

関連する質問の回答。 FPGAボード用にVHDLでCPUを構築することもほぼ同じでした。

他のヒント

これは単なるモックアップなので、クリーンアップすることに注意してください

instruct1、
を取得します instruct2をフェッチし、datas1をフェッチします
instruct3を取得、datas2を取得、datas1を処理
instruct4をフェッチし、datas3をフェッチし、datas2を処理し、store1 datas1
instruct5をフェッチし、datas4をフェッチし、datas3を処理し、store2 datas1
instruct6を取得、datas5を取得、datas4を処理、store3 datas1
instruct7を取得、datas6を取得、datas5を処理、store4 datas1
instruct8を取得、datas7を取得、datas6を処理、store5 datas1

基本的に、これらはプロセッサの主要なコンポーネントです パート1 ALU:算術論理ユニット(これがドレーイングが役立つ場所です) AN ALUには2つの入力ポートと1つの出力ポートがあります。 2つの入力ポートが操作され、結果が出力されます。 ALUがどの命令を実行する必要があるかを知るために、制御ポートがあります。 基本的に、これはコマンドの名前です。したがって、制御ポートに4ビットがある場合、16の可能な命令があります。

パート2 レジスタユニット:これは一連のメモリセル(キャッシュメモリ)です。このメモリの内容は、しばしばALUの入力ポートに転送されます。

パート3 コントロールユニット:これはCPUのオーケストラマスターのようなものです。その仕事は 1ALU入力にデータを送信します 2命令レジスタでどの命令を実行する必要があるかを読み取り、それらのコードをALU制御ポートに送信します

インターフェース。これは、RAMやその他の周辺機器がCPUと通信する方法です

命令が結果を出力するたびに、保存する必要があります。 RAMに保存できるため、結果の準備ができたらRAM書き込みを準備する必要があります。同時に、次の命令の入力のRAM読み取りが発生し、同時に、次の次の命令がRAMからフェッチされます。

通常、1つの命令を生成するには1クロックサイクル以上必要です。命令の処理は、工業生産に類似しています。チェーン作業は完了です。

VLIW私たちが書いているプログラミングは線形です。つまり、命令は次々に発生します。しかし、現在のCPU(ただし、ARMではない)には複数のALUがあるため、複数の命令が同時に処理されます。

複数の命令を同時に処理する処理ユニットチェーンがあります(パイプライン) そして、あなたはそれらのユニットをたくさん持っています(スーパースカラー)

それは、CPUアーキテクチャをテイラーするために何ができる/必要なのかという問題になります。

同様のプロジェクトを行い、VHDLで5ステージパイプラインを持つプロセッサを実装しました。

まず最初に、プロセッサの動作のアーキテクチャを理解する必要があります。各系統が何をしているのか、どのような制御信号が必要なのかを理解しなければ、実際にVHDLで記述することは望めません。

次に、プロセッサを介して(つまり、各ステージを介して)命令とデータがどのように流れるかの図の描画を開始します。各ステージはどのように相互に接続されていますか?制御信号はどこに行きますか?入力はどこから来て、出力はどこに行きますか?

図が完成したら、VHDLでの実際の実装は比較的簡単です。 VHDLのビヘイビアモデリングを使用して、ダイアグラムに表示されている内容を正確に説明することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top