Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * This block chooses max value from inputs
- * and assigns it to the output.
- */
- module poolling_layer_unit(in, out);
- input[7:0] in[0:3];
- output[7:0] out;
- /*
- * 8-digit comparator with only one output b>=a.
- */
- module comparator(a, b, out);
- input[7:0] a;
- input[7:0] b;
- output out;
- assign out = ~a[7]&b[7]|(~(a[7]^b[7]))&
- (~a[6]&b[6]|(~(a[6]^b[6]))&
- (~a[5]&b[5]|(~(a[5]^b[5]))&
- (~a[4]&b[4]|(~(a[4]^b[4]))&
- (~a[3]&b[3]|(~(a[3]^b[3]))&
- (~a[2]&b[2]|(~(a[2]^b[2]))&
- (~a[1]&b[1]|(~(a[1]^b[1]))&
- (~a[0]&b[0]|(~(a[0]^b[0])))))))));
- endmodule //comparator
- wire out_01;
- wire out_23;
- wire out_0123;
- wire[7:0] in_01;
- wire[7:0] in_23;
- comparator cmp01(in[0], in[1], out_01);
- comparator cmp34(in[2], in[3], out_23);
- comparator cmp(in_01, in_23, out_0123);
- always @ (in[0], in[1], in[2], in[3]) begin
- in_01 = in[0] & ~out_01 | in[1] & out_01;
- in_23 = in[2] & ~out_23 | in[3] & out_23;
- out = in[0] & ~out_0123 & ~in_01 |
- in[1] & ~out_0123 & in_01 |
- in[2] & out_0123 & ~in_23 |
- in[3] & out_0123 & in_23;
- end
- endmodule //poolling_layer_unit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement