VHDLによるCPUアーキテクチャ 学習支援ソフトの開発 研究者名 サデック モハメド ハニフ 指導教官 青山 義弘 パソコンの普及とともに… 。。。。… 学習ソフト 。。。。。。。 CPUの動作と構造の理解は学生にとって少し難しく感じる場合 が多い。 CPU等のアーキテクチャの学習をテーマに学習支援ソフトの 開発を行う。 1.本学科4,5年生 対象となる学生 2.情報系以外の生産 システム工学科1~2年生 CPUアーキテクチャと動作 HTML VHDLツール ・プログラム ・シミュレーション ・シンセサイザ 学生に分かりやすく説明 VHDLとは HDL : Hardware Descriptive Language (ハードウェア記述言語) VHDL: VHSIC HDL VHSIC :Very High Speed Integrated Circuit (高速集積回路) VHDL の特徴 ・ 設計期間の短縮 ・ 完成度の高いシステムが構築可能 ・ 設計の再利用が容易 このため、集積論理回路の設計に多くの研究期 間や企業に幅広く使われているハードウェア記 述言語である。 今回ツールとしてVHDLを利用 した理由: VHDLは、難しいハードウェア記述言語である が 高級言語であるため、その記述から動作を理解 しやすい。 記述内の変数名を実際の素子や信号とその動 作に合わせて考えることが出来る。 難しい論理式を考えず、動作だけ分かればよい 。 例えば、ADDER…FAなんて考えなくても VHDL記述(8bit add): ….… port ( A , B :in….(7 downto 0); C :in Z :out..(7 downto 0)); 論理合成 シミュレーション …… Z <= A+B+C; FPGAボードに実装 CPU コントローラ ALU等の 演算器 レジスタ ・学生がCPUの構造を部分的に、ハードウェア記述言語での記述 とシミュレーションにより動作を確かめる。 ・そして、それらの組み合わせることによって、CPU 構造と動作を 全体的にシミュレーションし、その理解を深める。 研究の進め方 VHDLの学習 HTMLで教材開発 シミュレーションと 合成方法の学習 VHDLで書かれたCPU動作 を分かりやすく説明する 方法を考察 HTMLの使い方の学習 現在の状況: VHDLの文法の学習。 VHDLで16ビットアダー、16ビット加減算器、 カウンタ、ALU、自動販売機などの設計。 シミュレーションと論理合成。 シミュレータ、FPGAボードで動作の 確認 。 今後の課題: HTMLを学習し、目標である教材開発に取り組みたい 。 これまで作成したVHDLの記述をもとに、簡単なハードウェア の理解を支援する教材を作成。 ALU :組合せ論理回路のVHDL記述の例 カウンタ :順序回路のVHDL記述の例 自動販売機 :順序回路のVHDL記述の例 1997年度卒研のCPUの仕様で教材開発。 記述の読みやすさを重視したVHDL記述の再コーディング。 8bitCPU概略図 IM DM IA ID IC DA DD DC IMC PC DMC ALU Decoder、 State Machine & Controller IR Shifter FR Reg. File 8bit × 16 命令仕様(12bit固定長) OPコード 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ニモニック NOP LD ST MV JMP JNZ JPZ SET ADD SUB SRL SLL AND OR XOR NOT オペランド -reg1 reg2 reg1 reg2 reg1 reg2 ADDRESS ADDRESS ADDRESS Imm reg1 reg2 reg1 reg2 reg1 reg2 reg1 reg2 reg1 reg2 reg1 reg2 reg1 reg2 reg1 reg2 意味 NO OPERATION REGF[reg1]<=M [reg2] M [reg1]<=REGF[reg2] REGF[reg1]<=REGF[reg2] アドレス値へジャンプ ゼロでないならJMP 正 or ゼロならJMP REGF[reg0] <= Imm REGF[reg1]<=REGF[reg1] + REGF[reg2] REGF[reg1]<=REGF[reg1] - REGF[reg2] REGF[reg1]<=REGF[reg2]の論理右シフト REGF[reg1]<=REGF[reg2]の論理左シフト REGF[reg1]<=REGF[reg1] AND REGF[reg2] REGF[reg1]<=REGF[reg1] OR REGF[reg2] REGF[reg1]<=REGF[reg1] XOR REGF[reg2] REGF[reg1] <= NOT REGF[reg2]
© Copyright 2024 ExpyDoc