Chargement…
Chargement…
Le module expose deux canaux indépendants qui partagent la même horloge.
Comportement
i_send est actif pendant un cycle, i_data est verrouillé puis transmis sur o_txd au format 8N1 : start bit à '0', 8 bits LSB first, stop bit à '1'.o_busy reste à '1' pendant toute la transmission.i_rxd, échantillonne au centre de chaque bit, puis capture 8 bits LSB first.o_data présente l'octet reçu et o_valid pulse pendant un cycle.Le reset i_rst est synchrone actif haut. Pas de parité, pas de contrôle de flux.
| Generic | Type | Défaut | Rôle |
|---|---|---|---|
g_CLK_FREQ | integer | 50_000_000 | Fréquence de i_clk en Hz |
g_BAUD_RATE | integer | 3_125_000 | Débit série cible |
La durée d'un bit vaut g_CLK_FREQ / g_BAUD_RATE cycles. Pour le testbench, ce ratio vaut 16 cycles.
| Signal | Direction | Largeur | Description |
|---|---|---|---|
i_clk | Entrée | 1 bit | Horloge système |
i_rst | Entrée | 1 bit | Reset synchrone actif haut |
i_rxd | Entrée | 1 bit | Ligne RX série, idle à '1' |
o_txd | Sortie | 1 bit | Ligne TX série, idle à '1' |
i_data | Entrée | 8 bits | Octet à transmettre |
i_send | Entrée | 1 bit | Requête de transmission pendant un cycle |
o_busy | Sortie | 1 bit | Transmission TX en cours |
o_data | Sortie | 8 bits | Octet reçu |
o_valid | Sortie | 1 bit | Pulse de validation de o_data |
TX_IDLE, TX_START, TX_DATA, TX_STOP.RX_IDLE, RX_START, RX_DATA, RX_STOP.i_, o_, r_, c_, g_, t_, P_.rtl doit rester synthétisable et ne pas inférer de latch.