File size: 1,842 Bytes
f5498f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Popcount-reformulated 1-parameter person classifier, runtime thresholds.
// Generated by rtl_gen.py; do not edit by hand.
//
// Inputs are the 40 Stage 0 classifier dims as signed INT8, post-LayerNorm and
// post-max-pool. Output is one bit. Combinational, no multipliers, no memory.

module person_classifier_popcount (
    input  signed [7:0] f00, f01, f02, f03, f04, f05, f06, f07, f08, f09,
    input  signed [7:0] f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
    input  signed [7:0] f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
    input  signed [7:0] f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
    input  signed [7:0] t00, t01, t02, t03, t04, t05, t06, t07, t08, t09,
    input  signed [7:0] t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
    input  signed [7:0] t20, t21, t22, t23, t24, t25, t26, t27, t28, t29,
    input  signed [7:0] t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
    input  signed [5:0] final_threshold,
    output person_present
);
    wire [5:0] count_pos =
        (f00 > t00) + (f01 > t01) + (f02 > t02) +
        (f03 > t03) + (f04 > t04) + (f05 > t05) +
        (f06 > t06) + (f07 > t07) + (f08 > t08) +
        (f09 > t09) + (f10 > t10) + (f11 > t11) +
        (f12 > t12) + (f13 > t13) + (f14 > t14) +
        (f15 > t15) + (f16 > t16) + (f17 > t17) +
        (f18 > t18) + (f19 > t19);

    wire [5:0] count_neg =
        (f20 > t20) + (f21 > t21) + (f22 > t22) +
        (f23 > t23) + (f24 > t24) + (f25 > t25) +
        (f26 > t26) + (f27 > t27) + (f28 > t28) +
        (f29 > t29) + (f30 > t30) + (f31 > t31) +
        (f32 > t32) + (f33 > t33) + (f34 > t34) +
        (f35 > t35) + (f36 > t36) + (f37 > t37) +
        (f38 > t38) + (f39 > t39);

    wire signed [6:0] diff = {1'b0, count_pos} - {1'b0, count_neg};
    assign person_present = diff > final_threshold;
endmodule