Some common FPGA I/O port mappings
Clocking on the XESS XSA-50 Protoboard




BACKGROUND:

This section provides a number of ways that can be used on the XESS XSA-50 FPGA protoboard to clock results. This can be used to implement counters and state machines. Clocking can be done internal to the FPGA where some "tricks" via software implementation are used to "slow down" the 50MHz clock from the DS1075 programmable clock residing on the XESS XSA-50 protoboard so results can be displayed on a 7-segment or bar graph LEDs. Since the DS1075 clock is programmable, the 50MHz clock can be divided down. Finally, an external clock can be applied to the XESS XSA-50 or XSTend protoboards.


INDEX
1. Software Techniques
2. Programming the DS1075 Programmable Clock
3. External Clocking


1. Software Techniques

In this section, three techniques are illustrated to effectively "slow down" the clock for the DS1075 programmable clock. All techniques are for the same program implementation, with increasing complexity. The program being illustrated here is a 4-bit binary up counter where the results are displayed on a 7-segment display. The first technique is a simplier design and employs a method where extra bits are used for counting the 50MHz clock counts and then only using the 4 Most Significant Bits (MSBs) for display on the 7-segment display. The second technique is a better design in that it implements a counter to count the clock cycles coming into the FPGA. Once the counter has achieved a pre-determined delay, this counter "clocks" the 4-bit binary up counter. The results are displayed on a 7-segment display. The third technique is a variation of technique 2 (or vice versa).


2. Programming the DS1075 Programmable Clock

The XESS GSXSETCLK is the utility program which programs the programmable clock. A divisor in the range from 1 to 2052 will permit the programmable clock to divide down the 100MHz clock by the divisor. In other words, the programmable clock has a range of 100MHz down to approximately 48.7KHz. Simply enter the desired divisor and press "SET". Even though the DS1075 programmable clock is rated to accomodate 100MHz, The XESS XSA-50 protoboard has set the default (clocking) divisor to be 2. In other words, the FPGA is clocked at 50MHz. Consequently, if a user is using the programmable features of the DS1075 programmable clock via the GXSSETCLK utility, to restore the XSA-50 protoboard to it's default clocking configuration, one must restore the default divisor using the GXSSETCLK utility to 2. This will store 2 as the divisor in the DS1075 programmable clock's EEPROM. Follow the instructions that will "pop-up" when using this feature.


3. External Clocking

The XESS GSXSETCLK is the utility program which also controls whether or not an external clock is used. Simply select a divisor as discussed earlier and check mark the "External Clock" box. If a user opts to use external clocking to the FPGA on the XESS XSA-50 protoboard, the maximum external clock that can be used is 25MHz. After using external clocking on your design, remember to reset the DS1075 programmable clock to it's default clocking configuration as discussed earlier. The clock signal (or "hot lead" from a frequency generator) is applied to the header J4-P64 pin (labeled "clk") on the XSTend board. The ground lead (from the frequency generator) can be applied to the pin labeled "Gnd" of J10 on the XSA-50 protoboard or the pin labeled "Gnd" on JP6 on the XSTend protoboard.




Created by: David M. Sendek, July 2003