optimizing a gate level bcm to the end of the earth and back
at main 39 lines 946 B view raw
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