Menu
Coddy logo textTech

ビットカウンタ

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

challenge icon

チャレンジ

この章では、UART送信機を段階的に構築していきます。UARTUniversal Asynchronous Receiver-Transmitter(汎用非同期受信送信機)の略です。これは、1本のワイヤ(送信用)ともう1本のワイヤ(受信用)だけで2つのデバイスが通信できるようにするシンプルなハードウェアプロトコルです。

これは、2人が電話で話しているようなものだと考えてください。一方が話し(送信)、もう一方が聞き(受信)ます。UARTはデータを一度に1ビットずつ送信し、各バイトの開始と終了を示すスタートビットとストップビットを付加します。

UART送信機は、スタートビット(1)、データビット(8)、ストップビット(1)の計10ビットを送信します。現在どのビットを送信しているかを追跡するために、0から10までカウントするビットカウンタが必要です。
ビットカウンタの仕組み

  • 0から開始する
  • クロックサイクルごとに1を加算する
  • 10に達したら0に戻る
  • これを永遠に繰り返す

このタスクでは、まだリセットは行わず、増加させるだけです。

やるべきこと:

  1. 以下の構成でuart_txという名前のモジュールを作成してください:
    • 1つの入力:clk
    • 1つの出力:cnt(4ビット、reg型)
  2. モジュール内部で:
    • initialブロック内で、開始時にcntを0に設定する
    • always @(posedge clk)ブロックを追加する
    • 各クロックエッジでcntが1ずつ増加するようにする

自分で試してみよう

// TODO: 入力clkと出力cnt(4ビット)を持つモジュールuart_txを作成する

// TODO: initialブロック内で、開始時にcntを0に設定する

// TODO: always @(posedge clk)ブロックを追加する

// TODO: cntをインクリメントする

基礎のすべてのレッスン