The Alchitry Io Element Board is the perfect way to get your feet wet with digital design. The Io features four 7-segment LEDs, five momentary push buttons, 24 basic LEDs, and 24 DIP switches that all lend themselves to fantastic beginner tutorials that will walk you through all the basics of FPGAs.
Alchitry Elements are expansion boards similar to shields for an Arduino or HATs for a Raspberry Pi but these are meant for your Au and Cu FPGA Development Boards. This Element is equipped with four connectors on the underside of the board that snap to an Au or Cu board. Be aware that the Io does not feature any connection points on the top of the board so you won't be able to stack any additional Elements on top of it.
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 2 ratings:
3 of 3 found this helpful:
The Lattice iCE40 HX FPGA used on the Alchitry Cu has internal pull-up (but not pull-down) resistors. Any input switches should therefore be connected between the FPGA I/O pins and the 0V line, with no external resistors required.
This board instead chooses to connect the switches between the FPGA I/O pins and +5V, thereby rendering the internal pull-up resistors unusable. This design choice would then require external pull-down resistors connected between the FPGA I/O pins and 0V, to ensure that the input is never left floating. However, this board instead pointlessly places its resistors in series between the switch and +5V.
The upshot is that the FPGA I/O pin is either at a logic high (weakly tied to +5V) when the switch is on, or undefined (left floating) when the switch is off. There is no physical state of the switch that will lead to a defined logic low input.
It is possible to work around this design flaw in Verilog by occasionally driving the input pin low, but this introduces an insanely unnecessary complexity into what should be a very basic function.
1 of 1 found this helpful:
Great build quality. The only issue is figuring out how to use it. Finding out the constraints is a major headache.
The LED groups and switches are backwards using io element base. Not sure about the led segments yet.
It is nice to have a board with switches and LEDs ready to go for this FPGA.
BUT seriously, the switches are teensy tiny. I have to have my cheaters on, bright lights, and a specialized sharp switch flipper pointy device to flip them.
The push buttons and dip switches on the Io board aren't compatible with the Cu main board when stacked directly. The Io board switches and buttons connect the FPGA pin to VCC (through a resistor). The ice40 on the Cu main board doesn't have a pulldown option for the I/O buffer. Therefor, the state of the FPGA pins is either VCC or floating.
There is a post on the Alchitry forums about this and they recommend swapping the pin between output low and input right before sampling it and hint that it might be fixed in a future revision.
Another option is to use a Br board and some pulldown resistors, but it would be hard to fit them for all of the dip switches.
I realized I was looking at the schematic on the Alchitry website, which is for the old version of the board. However, on the new Sparkfun version, the pulldowns for the pushbuttons are in the wrong part of the circuit, and don't actually pull down the FPGA pin.
We'll look into this ASAP. Thanks for the heads up!