Shift Register
Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 86 sur 90.
Défi
Un registre à décalage shift les données de gauche à droite à chaque front d’horloge. Chaque bit se déplace vers la position suivante.
Fonctionnement d’un registre à décalage de 4 bits
Initial: q0=0, q1=0, q2=0, q3=0
Clock 1: q0 = d, q1 = old q0, q2 = old q1, q3 = old q2
Clock 2: q0 = d, q1 = old q0, q2 = old q1, q3 = old q2Après 4 cycles d’horloge, le premier bit d’input atteint q3.
Interface du module
| Port | Direction | Largeur | Description |
|---|---|---|---|
clk | input | 1 bit | Signal d’horloge |
reset | input | 1 bit | Réinitialiser toutes les sorties à 0 |
d | input | 1 bit | Entrée de data |
q0 | output | 1 bit | Sortie de la première bascule |
q1 | output | 1 bit | Sortie de la deuxième bascule |
q2 | output | 1 bit | Sortie de la troisième bascule |
q3 | output | 1 bit | Sortie de la quatrième bascule |
Votre tâche consiste à compléter le module ci-dessous.
À faire :
- Sur
reset, définir toutes les sorties à 0 - À chaque front montant de l’horloge, shift les données de gauche à droite :
q0reçoitdq1reçoit oldq0q2reçoit oldq1q3reçoit oldq2
Essayez vous-même
module shift_register (
input clk,
input reset,
input d,
output reg q0,
output reg q1,
output reg q2,
output reg q3
);
// TODO: Ajouter always @(posedge clk or posedge reset)
// Sur reset : q0<=0, q1<=0, q2<=0, q3<=0
// Sinon : décalage des données : q0 <= d, q1 <= q0, q2 <= q1, q3 <= q2
endmodule
Toutes les leçons de Fondamentaux
1Introduction
Qu’est-ce que VerilogMatériel vs logicielVotre premier moduleCommentairesNiveaux d’abstraction de conception4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicEntraînez-vous par vous-même : Compilateur Verilog en ligne