54 lines
1.4 KiB
Verilog
54 lines
1.4 KiB
Verilog
|
|
/*
|
|
* This is a post-synthesis test for the blif01a.v test. Run this
|
|
* simulation in these steps:
|
|
*
|
|
* $ iverilog -tblif -o foo.blif blif01a.v
|
|
* $ abc
|
|
* abc 01> read_blif foo.blif
|
|
* abc 02> write_verilog foo.v
|
|
* abc 03> quit
|
|
* $ iverilog -g2009 -o foo.vvp blif02a_tb.v foo.v
|
|
* $ vvp foo.vvp
|
|
*/
|
|
module main;
|
|
|
|
parameter WID = 4;
|
|
reg [WID-1:0] A, B;
|
|
wire QE, QN, QGT, QGE;
|
|
|
|
cmpN ucmp(.\A[3] (A[3]), .\A[2] (A[2]), .\A[1] (A[1]), .\A[0] (A[0]),
|
|
.\B[3] (B[3]), .\B[2] (B[2]), .\B[1] (B[1]), .\B[0] (B[0]),
|
|
.QE(QE), .QN(QN), .QGT(QGT), .QGE(QGE));
|
|
|
|
int adx;
|
|
int bdx;
|
|
initial begin
|
|
for (bdx = 0 ; bdx[WID]==0 ; bdx = bdx+1) begin
|
|
for (adx = 0 ; adx[WID]==0 ; adx = adx+1) begin
|
|
A <= adx[WID-1:0];
|
|
B <= bdx[WID-1:0];
|
|
#1 ;
|
|
if (QE !== (adx[WID-1:0]==bdx[WID-1:0])) begin
|
|
$display("FAILED -- A=%b, B=%b, QE=%b", A, B, QE);
|
|
$finish;
|
|
end
|
|
if (QN !== (adx[WID-1:0]!=bdx[WID-1:0])) begin
|
|
$display("FAILED -- A=%b, B=%b, QN=%b", A, B, QN);
|
|
$finish;
|
|
end
|
|
if (QGT !== (adx[WID-1:0] > bdx[WID-1:0])) begin
|
|
$display("FAILED -- A=%b, B=%b, QGT=%b", A, B, QGT);
|
|
$finish;
|
|
end
|
|
if (QGE !== (adx[WID-1:0] >= bdx[WID-1:0])) begin
|
|
$display("FAILED -- A=%b, B=%b, QGE=%b", A, B, QGE);
|
|
$finish;
|
|
end
|
|
end
|
|
end
|
|
$display("PASSED");
|
|
end
|
|
|
|
endmodule // main
|