ISIM D FLIP FLOP TEST BENCH
`timescale 1ns / 1ps
module Dff_test_fixture;
localparam T=20;
// Inputs
reg clk;
reg reset;
reg preset;
reg d;
// Outputs
wire q;
wire qnot;
// Instantiate the Unit Under Test (UUT)
d_ff_reset uut (
.clk(clk),
.reset(reset),
.preset(preset),
.d(d),
.q(q),
.qnot(qnot)
);
//////////////////////////////////////////////
always begin
clk = 1'b1;
#(T/2);
clk = 1'b0;
#(T/2);
end
//////////////////////////////////////////////
initial begin
// Initialize Inputs
clk = 0;
reset = 0;
preset = 0;
d = 0;
///////////////////////////////////////////////
reset = 0;
preset = 0;
d = 0;
#200 reset = 0;
preset = 0;
d = 1;
#200 reset = 1;
preset = 0;
d = 1;
#200 reset = 0;
preset = 1;
d = 1;
#200 reset = 0;
preset = 0;
d = 0;
////////////////////////////////////////////////
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
end
endmodule
---------------------------------------------------------------
D FLIP FLOP VERILOG MODULE
module d_ff_reset
(
input wire clk, reset,preset,
input wire d,
output reg q,qnot
);
// body
always @(posedge clk, posedge reset,posedge preset)
if (reset)begin
q <= 1'b0;
qnot <= 1'b1;
end
else if (preset)begin
q <= 1'b1;
qnot <= 1'b0;
end
else
begin
q <= d;
qnot <= ~d;
end
endmodule
// clk D Preset Reset Q Qnot
// rising 0 0 0 0 1
// rising 1 0 0 1 0
// 0 - 0 0 last Q last Qnot
// 1 - 0 0 last Q last Qnot
// - - 1 0 1 0
// - - - 1 0 1
TUTORIAL ON HOW TO ADD CLOCK TIMING CONSTRAINTS IN A VERILOG MODULE
TUTORIAL TO ADD A CLOCK SIGNAL TO A FPGA BOARD 555 TIMER APPROACH
No comments:
Post a Comment