OpenSTA/verilog/test/verilog_coverage_out.vok

82 lines
1.6 KiB
Plaintext

module verilog_coverage_test (clk,
data_in,
ctrl,
data_out,
valid);
input clk;
input [7:0] data_in;
input [3:0] ctrl;
output [7:0] data_out;
output valid;
wire n1;
wire [3:0] hi_result;
wire [3:0] lo_result;
wire [7:0] w1;
AND2_X1 and_const (.A1(lo_result[0]),
.A2(one_),
.ZN(n1));
AND2_X1 and_dec (.A1(lo_result[1]),
.A2(one_),
.ZN(hi_result[3]));
BUF_X1 b0 (.A(data_in[0]),
.Z(w1[0]));
BUF_X1 b1 (.A(data_in[1]),
.Z(w1[1]));
BUF_X1 b2 (.A(data_in[2]),
.Z(w1[2]));
BUF_X1 b3 (.A(data_in[3]),
.Z(w1[3]));
BUF_X1 b4 (.A(data_in[4]),
.Z(w1[4]));
BUF_X1 b5 (.A(data_in[5]),
.Z(w1[5]));
BUF_X1 b6 (.A(data_in[6]),
.Z(w1[6]));
BUF_X1 b7 (.A(data_in[7]),
.Z(w1[7]));
sub4 hi_proc (.d({w1[7],
w1[6],
w1[5],
w1[4]}),
.q({hi_result[3],
hi_result[2],
hi_result[1],
hi_result[0]}));
sub4 lo_proc (.d({w1[3],
w1[2],
w1[1],
w1[0]}),
.q({lo_result[3],
lo_result[2],
lo_result[1],
lo_result[0]}));
OR2_X1 or_valid (.A1(n1),
.A2(hi_result[0]),
.ZN(valid));
assign data_out[7] = hi_result[3];
assign data_out[6] = hi_result[2];
assign data_out[5] = hi_result[1];
assign data_out[4] = hi_result[0];
assign data_out[3] = lo_result[3];
assign data_out[2] = lo_result[2];
assign data_out[1] = lo_result[1];
assign data_out[0] = lo_result[0];
endmodule
module sub4 (d,
q);
input [3:0] d;
output [3:0] q;
BUF_X1 b0 (.A(d[0]),
.Z(q[0]));
BUF_X1 b1 (.A(d[1]),
.Z(q[1]));
BUF_X1 b2 (.A(d[2]),
.Z(q[2]));
BUF_X1 b3 (.A(d[3]),
.Z(q[3]));
endmodule