課題1.1

10進同期カウンタを作成してみましょう。

// 10進同期カウンタ記述例
module counter (clk, rst, counter_reg);

// カウンタ回路の入力信号.クロック信号とリセット信号
input       clk,rst;
// カウンタ回路の出力信号.4ビット.
output [3:0] counter_reg;

// カウント値を保持するレジスタ
reg    [3:0] counter_reg;

// クロックの立ち上がりに同期
always @(posedge clk) begin
if(rst) begin
    // リセットが入力されたらカウンタをリセット

    counter_reg <= 0;
  end
  else begin
    // リセットが入力されていなければカウントを続ける
    if(counter_reg < 9) begin
      // カウント値が9未満ならカウントを続ける

      counter_reg <= counter_reg + 1;
    end
    else begin
      // カウント値が9になったらリセット
      counter_reg <= 0;
    end
  end
end
endmodule

課題1.1.1

ISEでプロジェクトを作成し、上記のソースを作成してください。シミュレーションを行い動作確認をしてください。
シミュレーションはWavefromを使用する方法、Verilogでテストベンチを作成し行う方法がありますが、どちらの方法でもかまいません。

課題1.1.2

20進同期カウンタを作成してください。