-6
\$\begingroup\$

How can I interface extra switches or buttons for inputs to a Spartan 3E FPGA board? I am using a Spartan 3E XCS500E device in a FG320 package (speed -4).


Original title and question:

HOW TO INCREASE THE NO. OF INPUTS ON SPARTAN 3E XCS5003,FG320 FPGA KIT

how to interface Extra switches or buttons for inputs to spartan 3E fpga board i am using spartan 3e ,, device XCS500E ,package FG320, SPEED -4 PLZ HELP ITS URGENT..

\$\endgroup\$
  • 2
    \$\begingroup\$ That's and exact duplicate actually, seems that the user posted the same question twice. I'm flagging the other since I've answered this. \$\endgroup\$ – Vladimir Cravero May 10 '14 at 9:24
1
\$\begingroup\$

There are tons of ways to do what you need.

The board should be this:

spartan-3E

If you can I would suggest to make a board or use a breadboard with tons of switches on it that connects to the 3E board I/O expansion port, that's the big connector on the right. If you need help on how to wire the switches we would be glad to help you.

That first soultion is good especially in the long run, eventually you will need much more I/O's, but maybe you don't have the time/skills/money required to do such a board. There is another option: you could input the data serially, using only a slide switch and a push button. Imagine that: you set the slide to 0 or to 1, then tap the pushbutton, the first bit is then 0 or 1. You move the slider again, give the PB a tap, and so on. That would be painfully slow and cumbersome, and prone to errors, but:

  • you won't need any external HW
  • you will learn how to sample external data and such (I bet this all thing is for educational purposes)

For the records you might want to use a simulator to test your design, I believe there's a free version of ModelSim, or whatever you want to use. Using simulators is good to test the behaviour of your code in ideal conditions, i.e. no delays or whatever, and for such a simple design it should probably be more than enough.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ sir how to use push button for giving 16 bit input plz explain cleary sir,,, \$\endgroup\$ – user41617 May 10 '14 at 11:03
0
\$\begingroup\$

Assuming you're working with the Digilent Spartan 3E Starter Board that Vladimir shows, the only on-board resources that this board has for direct user input are:

  • 4 slide switches
  • 4 pushbuttons
  • 1 rotary encoder

It also has a 2 line × 16 characater LCD for user feedback.

Creating a user interface from this collection of hardware for testing your designs is actually a non-trivial task, mainly due to the fact that any information you want to display on the LCD needs to be converted from whatever its internal format is to ASCII, and then a very specific protocol needs to be followed to position the ASCII characters properly on the display.

The board also has a PS/2 connector for keyboard or mouse and a VGA output connector, both of which can support standard PC peripherals.

The best recommendataion I can make at this time would be for you to download and get familiar with the reference designs that Digilent provides for this board (scroll down to the bottom of the page). Get them working on your board, and then look for ways in which you can modify them to incorporate the custom logic you want to test. For example, take a close look at the "mouse displayer" project. The X-Y coordinates that it produces could be the inputs to your logic.

| improve this answer | |
\$\endgroup\$
0
\$\begingroup\$

In addition to the two other answers, should you actually be using the board Vladimir shows, there is an FX2 Module Interface Board available from Digilent (FX2 Module Interface Board) which gives 40 pin header footprint access to the 40 pin expansion I/O as well as a set of connectors for running I/O elsewhere.

The documentation for Vladimir's board is available from Digilent or Xilinx

(And if you have an older board, you should be more specific).

| improve this answer | |
\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.