optimizing a gate level bcm to the end of the earth and back
1// BCD to 7-segment decoder (exact synthesis)
2// 12 gates, 24 total gate inputs
3// Method: exact_12gates
4
5module bcd_to_7seg (
6 input wire [3:0] bcd, // BCD input (0-9 valid)
7 output wire [6:0] seg // 7-segment output (a=seg[6], g=seg[0])
8);
9
10 // Input aliases
11 wire A = bcd[3];
12 wire B = bcd[2];
13 wire C = bcd[1];
14 wire D = bcd[0];
15
16 // Internal gate outputs
17 wire g0 = (A | ~D);
18 wire g1 = (B ^ C);
19 wire g2 = (C | ~g0);
20 wire g3 = (g0 ^ g1);
21 wire g4 = ~(A | g1);
22 wire g5 = ~(B & g3);
23 wire g6 = (C | g3);
24 wire g7 = (~D & g6);
25 wire g8 = ~(g4 & g5);
26 wire g9 = (g3 | g7);
27 wire g10 = ~(g2 & g5);
28 wire g11 = (g3 | ~g9);
29
30 // Segment output assignments
31 assign seg[6] = g6; // a
32 assign seg[5] = g5; // b
33 assign seg[4] = g11; // c
34 assign seg[3] = g9; // d
35 assign seg[2] = g7; // e
36 assign seg[1] = g10; // f
37 assign seg[0] = g8; // g
38
39endmodule