Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Build the counter as a synchronous modulo-1000 circuit: reset it to zero, increment it on a one-cycle clock-enable tick, and explicitly wrap 999 back to 0. A three-digit display adds decimal conversion or BCD counting, seven-segment decoding, and digit multiplexing. The oscillator frequency, reset polarity, display wiring, and FPGA pin assignments depend on your specific board.

Implement the modulo-1000 counter

A 10-bit register is wide enough to represent 0 through 999, but it can also represent 1000 through 1023. Add explicit wrap logic so those unwanted values are never reached during normal counting:

always @(posedge clk) begin
  if (reset)
    count <= 10'd0;
  else if (tick) begin
    if (count == 10'd999)
      count <= 10'd0;
    else
      count <= count + 10'd1;
  end
end

Here, tick is a one-clock-cycle enable, not a separate, slow clock. With reset asserted, the counter loads zero; after reset is released, it advances only when tick is high. Its sequence is 0, 1, …, 998, 999, 0.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Generate a visible count rate

FPGA board oscillators usually run too fast for a human to see each increment. Divide the input clock into a periodic enable pulse. If the board clock is Fclk and the desired count rate is Fcount, choose a divider terminal count near Fclk/Fcount - 1. Confirm the actual oscillator frequency and whether the board already conditions or divides that clock; the ratio alone does not identify a board’s clock setup.

#1 Best Overall
Digilent Basys 3 Artix-7 FPGA Trainer Board: Recommended for Introductory Users
  • Designed for students and beginners looking to understand Digital Logic, fundamentals of FPGAs
  • Features the Xilinx Artix 7 FPGA compatible with Vivado Design Suite WebPACK Edition (free download available from Xilinx)
  • On board user interfaces include 16 user switches, 16 LEDs, 5 user pushbuttons, and a
  • Expansion opportunities with four Pmod ports including 3 standard 12-pin Pmod ports and 1 dual
  • Does NOT ship with micro USB cable

For example, a divider counter can count input-clock cycles, assert tick for one cycle at its terminal value, and return to zero. Keep the modulo-1000 state on the same trusted clock and use the pulse as an enable rather than using a fabric-generated ripple clock. For Spartan-6 clock resources and managed-clock options, consult AMD’s Spartan-6 FPGA Clocking Resources User Guide (UG382). A DCM or PLL-derived clock may be appropriate when the design already uses managed clocks, but adds clocking and timing considerations that a simple enable avoids.

Show 000–999 on three seven-segment digits

The counter value is binary; a three-digit display needs decimal digits. Two common approaches are:

Rank #2
Arty A7: Artix-7 FPGA Development Board for Makers and Hobbyists (Arty A7-100T)
  • Arty A7 comes in two FPGA variants: Arty A7-35T features Xilinx XC7A35TICSG324-1L. Arty A7-100T features the larger Xilinx XC7A100TCSG324-1.
  • Internal clock speeds exceeding 450MHz, On-chip analog-to-digital converter (XADC), Programmable over JTAG and Quad-SPI Flash
  • 256MB DDR3L with a 16-bit bus @ 667MHz, 16MB Quad-SPI Flash, USB-JTAG Programming circuitry, Powered from USB or any 7V-15V source
  • 10/100 Mbps Ethernet, USB-UART Bridge
  • 4 Switches, 4 Buttons, 1 Reset Button, 4 LEDs, 4 RGB LEDs, 4 Pmod connectors, shield connector
Approach How it works Trade-off
Binary counter with decimal conversion Convert the binary count into hundreds, tens, and ones, then decode each decimal digit for the display. Convenient when other logic needs a binary count, but requires conversion logic.
Three BCD digits with carry Increment the ones digit; on 9, clear it and carry into tens; repeat the same rule from tens to hundreds. Wrap the hundreds digit after 9. Digits are ready to display, but the design maintains decimal state rather than a binary count.

For a typical multiplexed three-digit display, scan the digits with a faster refresh enable: select one digit at a time, place that digit’s segment pattern on the shared segment lines, then move to the next digit. The scan must be faster than the visible count update so the display can refresh while the number changes at a readable pace. The board’s circuitry determines the exact segment pattern, anode selection, and signal polarity.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check the board-specific signals before assigning pins

Do not copy pin numbers or display logic from another Spartan-6 board. Use the schematic, board guide, and constraints file for the exact board and FPGA part to identify:

  • Oscillator frequency and clock input pin.
  • Reset source and whether reset is active-high or active-low.
  • Seven-segment line order and whether segment outputs are active-low.
  • Anode or digit-select wiring and its active polarity.
  • The exact XC6SLX device and package used by the design.

AMD’s Spartan-6 FPGA Packaging and Pinout Specifications (UG384) and Spartan-6 FPGA PCB Design Guide (UG524) provide device and implementation references, but the selected board’s own documentation and constraints determine its connections.

Verify behavior before programming the board

  1. Simulate reset: assert reset and confirm the count becomes zero.
  2. Check ordinary increments: confirm a count change occurs only on a one-cycle tick.
  3. Check both boundaries: test 998 to 999 and 999 to 0.
  4. Check display transitions: verify digit extraction or BCD carry at values such as 009 to 010 and 099 to 100.
  5. Build for the target: synthesize and implement for the exact XC6SLX part with the board’s constraints, then program and inspect the display.

If a pushbutton controls reset or counting, synchronize and debounce it before using it in the design; a mechanical button can produce multiple transitions, and an external button signal is not automatically aligned to the FPGA clock.

Rank #4
Digilent Arty S7: Spartan-7 FPGA Board for Makers and Hobbyists (Arty S7-25)
  • Arty S7 comes in two FPGA variants: Arty S7-25 features Xilinx XC7S25-CSGA324. Arty S7-50 features the larger Xilinx XC7S50-CSGA324.
  • Internal clock speeds exceeding 450MHz
  • On-chip analog-to-digital converter (XADC)
  • Programmable over JTAG and Quad-SPI Flash
  • Powered from USB or any 7V-15V source
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Tool and device support

AMD’s Spartan-6 product page lists ISE resources and states that device support is extended until at least 2030. AMD also lists Spartan-6 evaluation platforms, including the Spartan-6 FPGA Connectivity Kit and SP605 Evaluation Kit. Check current AMD documentation and the board vendor’s materials for the tools, files, and hardware applicable to your setup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

Bestseller No. 1
Digilent Basys 3 Artix-7 FPGA Trainer Board: Recommended for Introductory Users
Digilent Basys 3 Artix-7 FPGA Trainer Board: Recommended for Introductory Users
On board user interfaces include 16 user switches, 16 LEDs, 5 user pushbuttons, and a; Does NOT ship with micro USB cable
$219.99
Bestseller No. 2
Bestseller No. 4
Digilent Arty S7: Spartan-7 FPGA Board for Makers and Hobbyists (Arty S7-25)
Digilent Arty S7: Spartan-7 FPGA Board for Makers and Hobbyists (Arty S7-25)
Internal clock speeds exceeding 450MHz; On-chip analog-to-digital converter (XADC); Programmable over JTAG and Quad-SPI Flash
$172.00
Bestseller No. 5
FA2-6/1BEK Power Tool Electric Drill Speed Control Button Switch
FA2-6/1BEK Power Tool Electric Drill Speed Control Button Switch
Perfect for women who want to enhances their everyday look with a fashionable accessory.; Crafted from quality fabric, this badge ensures durability and comfort.
$6.99
Best Value
FA2-6/1BEK Power Tool Electric Drill Speed Control Button Switch
  • Perfect for women who want to enhances their everyday look with a fashionable accessory.
  • Crafted from quality fabric, this badge ensures durability and comfort.
  • the beauty of nature with this floral badge and let your unique personality through.
  • Add a touch of to your outfits with this round badge featuring a flower pattern.
  • Versatile and easy to use, this badge can be pinning on clothes, bags, or accessories for a trendy touch.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.