Menu
Coddy logo textTech

Bit Sayacı

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 87 / 90.

challenge icon

Görev

Bu bölümde, adım adım bir UART transmitter inşa edeceksiniz. UART, Universal Asynchronous Receiver-Transmitter anlamına gelir. İki cihazın yalnızca bir kablo (iletmek için) ve başka bir kablo (almak için) kullanarak haberleşmesini sağlayan basit bir donanım protokolüdür.

Bunu telefonda konuşan iki insan gibi düşünebilirsiniz — biri konuşur (iletir), diğeri dinler (alır). UART, her baytın başlangıcını ve sonunu belirtmek için `start` ve stop bitleri kullanarak verileri her seferinde bir bit şeklinde gönderir.

Bir UART vericisi 10 bit gönderir: `start` biti (1), veri bitleri (8), stop biti (1). Hangi biti gönderdiğimizi takip etmek için 0'dan 10'a kadar sayan bir bit sayıcısına ihtiyacımız vardır.
Bit Sayıcısı Nasıl Çalışır?

  • 0 ile başlayın
  • Her saat döngüsünde 1 ekleyin
  • 10'a ulaştığında tekrar 0'a dönün
  • Sonsuza kadar tekrarlayın

Bu görevde, henüz sıfırlamayacağız: yalnızca artıracağız.

Yapılacaklar:

  1. Aşağıdaki özelliklere sahip uart_tx adında bir module oluşturun:
    • Bir input: clk
    • Bir output: cnt (4 `bits`, reg tipinde)
  2. Modülün `inside` kısmında:
    • Bir `initial` `block` içinde başlangıçta cnt değerini 0 olarak ayarlayın
    • Bir always @(posedge clk) bloğu ekleyin
    • Her saat kenarında cnt değerinin 1 artmasını sağlayın

Kendin dene

// TODO: uart_tx modülünü clk girişi ve cnt (4 bit) çıkışı ile oluştur

// TODO: initial bloğu içinde başlangıçta cnt'yi 0'a ayarla

// TODO: always @(posedge clk) bloğu ekle

// TODO: cnt'yi artır

Temeller bölümündeki tüm dersler