D Flip-Flop met Asynchrone Actieve-Lage Reset: Ontwerp en Testbench
Een D flip-flop is een sequentieel element dat de input pin d volgt op de gegeven flank van een klok.
Ontwerp #1: Met asynchrone actieve-lage reset
module dff (
input d,
input rstn,
input clk,
output reg q
);
always @ (posedge clk or negedge rstn)
if (!rstn) q <= 0;
else q <= d;
endmodule
Hardware Schema
Schema van D flip-flop met asynchrone reset
Testbench
module tb_dff;
reg clk;
reg d;
reg rstn;
reg [2:0] delay;
dff dff0 (
.d(d),
.rstn(rstn),
.clk(clk),
.q(q)
);
// Klok genereren
always #10 clk = ~clk;
// Testcase
initial begin
clk <= 0; d <= 0; rstn <= 0;
#15 d <= 1;
#10 rstn <= 1;
for (int i = 0; i < 5; i = i+1) begin
delay = $random;
#(delay) d <= i;
end
end
endmodule
Ontwerp #2: Met synchrone actieve-lage reset
module dff (
input d,
input rstn,
input clk,
output reg q
);
always @ (posedge clk)
if (!rstn) q <= 0;
else q <= d;
endmodule
Hardware Schema
Schema van D flip-flop met synchrone reset
Testbench
module tb_dff;
reg clk;
reg d;
reg rstn;
reg [2:0] delay;
dff dff0 (
.d(d),
.rstn(rstn),
.clk(clk),
.q(q)
);
// Klok genereren
always #10 clk = ~clk;
// Testcase
initial begin
clk <= 0; d <= 0; rstn <= 0;
#15 d <= 1;
#10 rstn <= 1;
for (int i = 0; i < 5; i = i+1) begin
delay = $random;
#(delay) d <= i;
end
end
endmodule
Verilog
- PID Reset Windup voorkomen: strategieën voor betrouwbare procesregeling
- Een NAND-gebaseerde Set-Reset Flip-Flop Circuit Bouwen
- De 74LS74 Dubbele Flip-Flop: Complete Referentie en Pinout
- De Reset-knop op een CNC-operatorpaneel begrijpen: Functie en Gebruik
- Opladen, Resetten En Herconfigureren Van Uw IT-strategie Voor Zomersucces
- IT/OT-convergentie: een culturele reset voor duurzame digitale transformatie
- Verilog Basics: Uw Eerste AND-poort Ontwerpen
- Verilog beheersen: Complete tutorial voor digitale schakelingontwerp
- 4-bit Teller: Efficiënt Binair Tellen van 0 tot 15
- Verilog Mod-N Teller Ontwerp: Geparametriseerde Module & Testbench
- Verilog Gray-code Teller Module – 4-bit Gray Code Generator