Added test_mode_low benchmark
This commit is contained in:
parent
3c781b18d3
commit
f6cea1e17c
|
@ -0,0 +1,23 @@
|
||||||
|
a 0.5 0.2
|
||||||
|
b 0.5 0.2
|
||||||
|
clk 0.5 0.2
|
||||||
|
out_0 0.5 0.2
|
||||||
|
out_1 0.5 0.2
|
||||||
|
out_2 0.5 0.2
|
||||||
|
out_3 0.5 0.2
|
||||||
|
sum_0 0.5 0.2
|
||||||
|
sum_1 0.5 0.2
|
||||||
|
sum_2 0.5 0.2
|
||||||
|
sum_3 0.5 0.2
|
||||||
|
sum_4 0.5 0.2
|
||||||
|
sum_5 0.5 0.2
|
||||||
|
sum_6 0.5 0.2
|
||||||
|
sum_7 0.5 0.2
|
||||||
|
pipe_a_0 0.5 0.2
|
||||||
|
pipe_a_1 0.5 0.2
|
||||||
|
pipe_b_0 0.5 0.2
|
||||||
|
pipe_b_1 0.5 0.2
|
||||||
|
pipe_sum_0 0.5 0.2
|
||||||
|
pipe_sum_1 0.5 0.2
|
||||||
|
pipe_sum_2 0.5 0.2
|
||||||
|
pipe_sum_3 0.5 0.2
|
|
@ -0,0 +1,35 @@
|
||||||
|
.model test_mode_low
|
||||||
|
.inputs a b clk
|
||||||
|
.outputs out_0 out_1 out_2 out_3
|
||||||
|
|
||||||
|
#.subckt shift D=a clk=clk Q=pipe_a_0
|
||||||
|
#.subckt shift D=pipe_a_0 clk=clk Q=pipe_a_1
|
||||||
|
#.subckt shift D=b clk=clk Q=pipe_b_0
|
||||||
|
#.subckt shift D=pipe_b_0 clk=clk Q=pipe_b_1
|
||||||
|
|
||||||
|
|
||||||
|
.latch a pipe_a_0 re clk 0
|
||||||
|
.latch pipe_a_0 pipe_a_1 re clk 0
|
||||||
|
.latch b pipe_b_0 re clk 0
|
||||||
|
.latch pipe_b_0 pipe_b_1 re clk 0
|
||||||
|
|
||||||
|
.latch sum_0 pipe_sum_0 re clk 0
|
||||||
|
.latch sum_2 pipe_sum_1 re clk 0
|
||||||
|
.latch sum_4 pipe_sum_2 re clk 0
|
||||||
|
.latch sum_6 pipe_sum_3 re clk 0
|
||||||
|
|
||||||
|
.subckt adder a=pipe_a_1 b=pipe_b_1 cin=pipe_sum_3 cout=sum_1 sumout=sum_0
|
||||||
|
.subckt adder a=pipe_sum_0 b=pipe_sum_2 cin=sum_1 cout=sum_3 sumout=sum_2
|
||||||
|
.subckt adder a=pipe_sum_1 b=pipe_sum_3 cin=sum_3 cout=sum_5 sumout=sum_4
|
||||||
|
.subckt adder a=pipe_sum_2 b=pipe_sum_0 cin=sum_5 cout=sum_7 sumout=sum_6
|
||||||
|
|
||||||
|
.names pipe_sum_0 out_0
|
||||||
|
1 1
|
||||||
|
.names pipe_sum_1 out_1
|
||||||
|
1 1
|
||||||
|
.names pipe_sum_2 out_2
|
||||||
|
1 1
|
||||||
|
.names pipe_sum_3 out_3
|
||||||
|
1 1
|
||||||
|
|
||||||
|
.end
|
|
@ -0,0 +1,52 @@
|
||||||
|
//////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// 2x2 Test-modes Low density //
|
||||||
|
// //
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
module test_mode_low (
|
||||||
|
a,
|
||||||
|
b,
|
||||||
|
clk,
|
||||||
|
reset,
|
||||||
|
out );
|
||||||
|
|
||||||
|
input wire a;
|
||||||
|
input wire b;
|
||||||
|
input wire clk;
|
||||||
|
input wire reset;
|
||||||
|
output wire[3:0] out;
|
||||||
|
|
||||||
|
reg[1:0] pipe_a;
|
||||||
|
reg[1:0] pipe_b;
|
||||||
|
reg[3:0] pipe_sum;
|
||||||
|
wire[7:0] sum;
|
||||||
|
|
||||||
|
assign sum[1:0] = pipe_a[1] + pipe_b[1] + pipe_sum[3];
|
||||||
|
assign sum[3:2] = pipe_sum[0] + sum[1] + pipe_sum[2];
|
||||||
|
assign sum[5:4] = pipe_sum[1] + sum[3] + pipe_sum[3];
|
||||||
|
assign sum[7:6] = pipe_sum[2] + sum[5] + pipe_sum[0];
|
||||||
|
assign out = pipe_sum;
|
||||||
|
|
||||||
|
initial begin
|
||||||
|
pipe_a <= 2'b00;
|
||||||
|
pipe_b <= 2'b00;
|
||||||
|
pipe_sum <= 4'b0000;
|
||||||
|
end
|
||||||
|
|
||||||
|
always @(posedge clk or posedge reset) begin
|
||||||
|
if(reset) begin
|
||||||
|
pipe_a <= 2'b00;
|
||||||
|
pipe_b <= 2'b00;
|
||||||
|
pipe_sum <= 4'b0000;
|
||||||
|
end else begin
|
||||||
|
pipe_a[0] <= a;
|
||||||
|
pipe_a[1] <= pipe_a[0];
|
||||||
|
pipe_b[0] <= b;
|
||||||
|
pipe_b[1] <= pipe_b[0];
|
||||||
|
pipe_sum <= {sum[6], sum[4], sum[2], sum[0]};
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
endmodule
|
Loading…
Reference in New Issue