Skip to content

Commit

Permalink
Add latch test modified from #1363
Browse files Browse the repository at this point in the history
  • Loading branch information
eddiehung committed Sep 27, 2019
1 parent a70c3fc commit 8c2dd51
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
58 changes: 58 additions & 0 deletions tests/xilinx/latches.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
module latchp
( input d, en, output reg q );
always @*
if ( en )
q <= d;
endmodule

module latchn
( input d, en, output reg q );
always @*
if ( !en )
q <= d;
endmodule

module latchsr
( input d, en, clr, pre, output reg q );
always @*
if ( clr )
q <= 1'b0;
else if ( pre )
q <= 1'b1;
else if ( en )
q <= d;
endmodule


module top (
input clk,
input clr,
input pre,
input a,
output b,b1,b2
);


latchp u_latchp (
.en (clk ),
.d (a ),
.q (b )
);


latchn u_latchn (
.en (clk ),
.d (a ),
.q (b1 )
);


latchsr u_latchsr (
.en (clk ),
.clr (clr),
.pre (pre),
.d (a ),
.q (b2 )
);

endmodule
16 changes: 16 additions & 0 deletions tests/xilinx/latches.ys
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
read_verilog latches.v

proc
flatten
equiv_opt -assert -run :prove -map +/xilinx/cells_sim.v synth_xilinx # equivalency check
async2sync
equiv_opt -assert -run prove: -map +/xilinx/cells_sim.v synth_xilinx # equivalency check
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)

design -load preopt
synth_xilinx
cd top
select -assert-count 1 t:LUT1
select -assert-count 2 t:LUT3
select -assert-count 3 t:LDCE
select -assert-none t:LUT1 t:LUT3 t:LDCE %% t:* %D

0 comments on commit 8c2dd51

Please sign in to comment.