yosys/tests/ice40/adffs.v

88 lines
1.3 KiB
Coq
Raw Normal View History

2019-08-21 13:52:07 -05:00
module adff
( input d, clk, clr, output reg q );
initial begin
q = 0;
end
always @( posedge clk, posedge clr )
if ( clr )
q <= 1'b0;
else
q <= d;
endmodule
module adffn
( input d, clk, clr, output reg q );
initial begin
q = 0;
end
always @( posedge clk, negedge clr )
if ( !clr )
q <= 1'b0;
else
q <= d;
endmodule
module dffs
2019-08-21 13:52:07 -05:00
( input d, clk, pre, clr, output reg q );
initial begin
q = 0;
end
2019-09-25 06:43:26 -05:00
always @( posedge clk, posedge pre )
if ( pre )
2019-08-21 13:52:07 -05:00
q <= 1'b1;
else
q <= d;
endmodule
module ndffnr
2019-08-21 13:52:07 -05:00
( input d, clk, pre, clr, output reg q );
initial begin
q = 0;
end
2019-09-25 06:43:26 -05:00
always @( negedge clk, negedge pre )
if ( !pre )
q <= 1'b1;
2019-08-21 13:52:07 -05:00
else
q <= d;
endmodule
module top (
input clk,
input clr,
input pre,
input a,
2019-08-22 15:57:11 -05:00
output b,b1,b2,b3
2019-08-21 13:52:07 -05:00
);
dffs u_dffs (
2019-08-21 13:52:07 -05:00
.clk (clk ),
.clr (clr),
.pre (pre),
.d (a ),
.q (b )
);
ndffnr u_ndffnr (
2019-08-21 13:52:07 -05:00
.clk (clk ),
.clr (clr),
.pre (pre),
.d (a ),
.q (b1 )
);
adff u_adff (
.clk (clk ),
.clr (clr),
.d (a ),
.q (b2 )
);
adffn u_adffn (
.clk (clk ),
.clr (clr),
.d (a ),
.q (b3 )
);
endmodule