Hex to 7 Segment Display on Spartixed


We used the 4 of the 8 bit dip switches on the Spartixed board to test our code for Hex to Seven Segment Display.



// Hex to 7 Segment Example 
//  Program for the Spartixed board
 
module hex_to_7segment(
    in ,select, out 
  );
 
input [3:0] in;    // Input from DIP Switches
output select;  
output [6:0] out;
 
parameter A      = 7'b0000001;
parameter B      = 7'b0000010;
parameter C      = 7'b0000100;
parameter D      = 7'b0001000;
parameter E      = 7'b0010000;
parameter F      = 7'b0100000;
parameter G      = 7'b1000000;
 
 
assign select = 1'b1; // Which of the the 3 seven segments we wish to display
 
assign out =
    (in == 4'h0) ? A|B|C|D|E|F : // Display 0
    (in == 4'h1) ? B|C : // Display 1
    (in == 4'h2) ? A|B|G|E|D : // Display 2
    (in == 4'h3) ? A|B|C|D|G : // Display 3
    (in == 4'h4) ? F|B|G|C : // Display 4
    (in == 4'h5) ? A|F|G|C|D : // Display 5
    (in == 4'h6) ? A|F|G|C|D|E : // Display 6
    (in == 4'h7) ? A|B|C : // Display 7
    (in == 4'h8) ? A|B|C|D|E|F|G : // Display 8
    (in == 4'h9) ? A|B|C|D|F|G : // Display 9
    (in == 4'ha) ? A|F|B|G|E|C : // Display A
    (in == 4'hb) ? F|G|C|D|E : // Display B
    (in == 4'hc) ? G|E|D : // Display C
    (in == 4'hd) ? B|C|G|E|D : // Display D
    (in == 4'he) ? A|F|G|E|D : // Display E
    (in == 4'hf) ? A|F|G|E : // Display F
        4'bz;
 
endmodule


We need a select input to know which of the three seven segment displays need to be turned on.
The video shows the result when it is implemmented on Spartixed board.



Following ucf file is used.



NET "in[3]" LOC = P27;
NET "in[2]" LOC = P26;
NET "in[1]" LOC = P24;
NET "in[0]" LOC = P23;
 
NET "out[0]" LOC = P5;
NET "out[1]" LOC = P141;
NET "out[2]" LOC = P16;
NET "out[3]" LOC = P21;
NET "out[4]" LOC = P22;
NET "out[5]" LOC = P2;
NET "out[6]" LOC = P15;
NET "select" LOC = P12;




Suggested Exercises

1. Modify the code so that it gives output one of the three 7 segment displays using a select on two of the dip switches.