Menu
Coddy logo textTech

復習 - ALUの設計

CoddyのVerilogジャーニー「基礎」セクションの一部 — レッスン 57/90。

challenge icon

チャレンジ

ALU(算術論理演算装置)は、2つの入力を受け取り、それらに対して演算を行い、1つの出力を生成するデジタル回路です。選択信号に基づいて、2つの入力に対して算術演算および論理演算を実行します。select信号は、実行する1つの演算を選択します。

仕組み

select演算出力
2'b00加算a + b
2'b01減算a - b
2'b10ビット単位の論理積 (AND)a & b
2'b11ビット単位の論理和 (OR)a | b

case文を使用してシンプルなALUを構築しましょう。

手順:

  1. aluという名前のモジュールを作成します
  2. 入力:a(4ビット)、b(4ビット)、select(2ビット)を追加します
  3. 出力:result(4ビット、reg型)を追加します
  4. always @(*)ブロックを追加します
  5. その中に、case (select)文を追加します
  6. 2'b002'b012'b102'b11の4つのケースを追加します
  7. defaultケースを追加して、result = 0を設定します
  8. endcaseendmoduleで閉じます

自分で試してみよう

// TODO: aluモジュールを作成する 

  // TODO: 入力(a, b, select)を追加する
  
  // TODO: 出力(result)を追加する

  // TODO: always @(*) ブロックを追加する
  
  // TODO: case (select) を追加する
  
  // TODO: case 2'b00: result = a + b; を追加する
  
  // TODO: case 2'b01: result = a - b; を追加する
  
  // TODO: case 2'b10: result = a & b; を追加する
  
  // TODO: case 2'b11: result = a | b; を追加する
  
  // TODO: default: result = 0; を追加する
  
  // TODO: endcase を追加する

// TODO: endmodule を追加する

基礎のすべてのレッスン