FPGA Development Board

For some time I had shopped around for such a board to start learning to use VHDL and FPGA chips. In a newsgroup, someone suggested the B3 board from BurchEd in Australia. This has a Xilinx XC2S200 device. It was 5.25 x 5.25" and had two prototyping areas. I supposed the size was chosen to fit in standard disk-drive bays.

I then asked BurchEd about practical considerations. I've come across various board form factors in my time and found various irritating problems with all. Some features were confirmed, but the board was sold out and in the stage of being replaced by the next generation product. By sheer good luck I had the chance to stick my oar in and make totally unrequited suggestions as to what I thought it should be like.

By even better luck, these ideas were taken on board and incorporated in the new design.

The BurchEd B5 FPGA Development Board

Major Features:

All connectors use 0.1" pitch connectors

All connectors on 0.1" grid

Mates with standard Eurocard prototyping board

Good Power and Ground connection

Standard single-Eurocard width (100mm)

Suitable for rack mounting

Mechanical fixing holes on 0.1" grid

Simple mechanical geometry

Careful mechanical design

Careful thermal design

Scope lead ground tags

Clear labelling

Header-programmable Oscillator

Reasonable cost: Introductory Price: US$149.00 (about £102 UK£)


All connectors use 0.1" pitch connectors

This is by far the most convenient pitch for most users. At the time of writing, ribbon cable, IDC sockets and hearers are most widely available in this pitch. All prototyping boards I have seen are drilled in this pitch, since components with pins on any other pitch seem to be surface mount. There may be metric-pitch drilled prototyping boards somewhere, but I'll bet they are pretty expensive.

I/O connections are in groups of 20 pins, convenient for ribbon-cable mounted sockets.

All connectors on 0.1" grid

This allows a board to mate with sockets mounted in common prototyping board holes. This is very useful because it allows the prototyping to be done on boards that are cheaper. Protoboards are generally made with two copper layers making them much cheaper than four-layer construction used in more complex boards such as the B5.

It is also more economical to keep your own prototyping areas detachable from the B5 board, because you can re-use the B5 for new projects simply by unplugging it instead of unsoldering prototyping components.

Mates with standard Eurocard prototyping board

In particular, the square-pad protoboards produced by Vero and readily available. These can provide prototyping areas larger than the B5 board itself, for about a tenth of the cost.

In the UK, the RS components stock number for the Vero 100x160 mm square-pad protoboard is RS 434-605. Along the 100 mm axis, there are 34 holes symmetrically placed with respect to the longitudinal centre line. The inner 32 holes are aligned with the DIN41612 connector holes.

Good Power and Ground connection

The B5 board uses four copper layers, the middle two for power and ground planes. This provides good power distribution and grounding, both of which are essential in modern digital components. Xilinx chips have evolved with this in mind: if you look at the XC3042, you'll find that it cannot always be replaced by the near-equivalent XC4025. The XC4025 belongs to a later generation, which were given more power and ground pins at the expense of I/O pins. They wouldn't have done that if they did not need to, so one can assume that they really did.

Standard single-Eurocard width (100mm)

Of course it makes sense to have a standard width so that it can be mounted in standard enclosures. For example in Eurocard racks, boxes, or the excellent yet reasonably-priced aluminium extrusions boxes
The latter items are of the high quality one has come to expect of German engineering, being robust and having a very professional heavy-duty look when assembled. Good for conducting heat away too.

Suitable for rack mounting

Components on the longer edges have been placed at about 1.5 mm away from the edge, to allow the board to be mounted in Eurocard-width racks and enclosures. I have seen products that have Eurocard sizing but they have placed components in such a way that it would never slide into Eurocard slots. One board I have seen even put D-type connectors on the edges that were supposed to slide, thereby ensuring they could not.

Mechanical fixing holes on 0.1" grid

This allows the pre-drilled holes one prototyping boards to accurately provide a pilot hole for the larger holes that you will need to drill for the 3 mm. This may not sound like much, unless you've tried drilling the holes for mounting a PC104 board on a prototyping board. In which case you'll know how the existing holes try to pull your drill away from the place you intend it to be.

Simple mechanical geometry

A typical Eurocard has a DIN41612 connector at one end, so the protoboards have their 0.1" grid fixed with respect to that. The imperial and metric grids have a common origin on the longitudinal centre line. The B5 board places its common origin right in its centre, underneath the FPGA chip.

Symmetry is a key feature. This makes it simpler to describe mechanically.
The board is a 100 mm x 5.25" rectangle.
The fixing holes are at the corners of a 4.9" x 3.5" rectangle.
The FPGA signal connectors sit on the edges of 2.9" and 2.7" squares.
The squares and rectangles mentioned above have a common centre.

Having fewer critical dimensions means fewer details to make mistakes about.

There is a degree of rotational symmetry as well - the FPGA connectors are aligned in a square, allowing four possible ways to plug into another board. The B5 board is design so that each orientation simply rotates the connections but the power and ground connections stay the same (instead of changing in probably damaging ways).

You can download a pdf of the mechanical details, print it at full scale, cut it out and see how neatly the B5 connections and mounting holes align with a standard grid. You can also stick it to some thin cardboard and experiment with how you would like to fit it in your target system. The pdf file does not include the silk-screen legend but this and other useful details may be forthcoming from BurchEd as time

Careful mechanical design

The board has connectors on all sides, so it can connect to others and often not need further mechanical support such as pillars. The mounting holes accept the common M3 size bolts and tapped pillars.

Compare that with the PC104 form factor, which has the signal bus on one side only and so PC104 boards sag to one side without support pillars.

The B5 board length is slightly shorter than a standard 160 mm long Eurocard.
This is deliberately done so that the B5 board sits only over the prototyping area and not the area used by DIN41612 connectors. Thus the mounting holes and pillars do not conflict with DIN41612 connectors. However, you should not that if your board will not be able to accommodate a large connector such as a 50-way Berg header with ejector tabs on the front-panel side of a 160 mm Eurocard as well, because the mechanical mounting holes would conflict with the B5. You would have to use the tabless form or omit the front pillars for the B5.

If you do design your board to plug to the B5 with component-sides facing, remember that:

  1. The positions and orientation of all connectors is flipped.
    Where connector pin 1 is normally at the top-left, will now be bottom-right
  2. Make sure your components will not mechanically conflict with the B5's.
    You can check by printing a flipped image of the B5 from your pdf viewer,
    then placing it over your own board's layout sketches.

Careful thermal design

I'm told that the FPGA does not get noticeably warm, even when clocked around 60 MHz and most of the latches changing. This is worth checking because when mated with another board, the components will be on facing sides of the board sandwich. There will be restricted airflow inside the square formed by the FPGA signal headers, so make sure you don't put anything in that area if it is likely to need significant airflow.

Scope lead ground tags

Once you've cobbled your design together and it needs debugging, you'll probably need to apply scope probes. Every wished they'd design things with ground tags for probe ground croc-clips? On the B5, that wish is granted!

Clear labelling

As you can see from the picture, everything is well labelled on the board.

Header-programmable Oscillator

This is very convenient as it allows you to have many clock frequencies from the 20 MHz quartz crystal. No more rummaging around in your junk box for crystals you haven't got! There's an on-line calculator to work out the appropriate header links at: www.icst.com/products/ics525inputForm.html.

Reasonable cost

I avoid getting things unless they are exactly what I want or they are not good enough value. In the first case I can't argue because all the features I said it should have are there. As for price a rule of thumb is that the cost of products is typically split 3 ways roughly equally between parts, labour and sales. So out of the price of about £102, you'd have to pay at least £34 for parts and £68 for your own labour to make it yourself. It's just not worth quibbling about. And as you can re-cycle the board by detaching it from the prototyping board, it becomes even better value.

Yes, I did buy one! The delivery lady charged me £35.29 for UK customs. This was comprised of £2.74 Import Duty, £21.30 VAT, and £11.25 ParcelForce Clearance Fee. If you do decide to buy one, be prepared for these surcharges. You may be able to avoid them if you are exempt from VAT.


Connector pinouts

The outermost numbers are the pin numbers of the FPGA chip. You will need to know these when assigning pins in your FPGA design.

J12: JTAG Port

Everyone has their own JTAG connector and pinout, and this is no exception. In its favour are the fact that 10-way ribbon cable and headers are readily available.

159 TDI 01 2 TDO 157
207 TCLK 3 4 TMS 2
  NC 5 6 NC  
  GND 7 8 3V3  
  NC 9 10 NC  
J7: Serial Download Port

The pinout is conveniently arranged so that it can connect via IDC sockets and D-type connectors. A small detail that avoids having to hand solder inconvenient signal orderings to solder-bucket D-type connectors.

153 DIN 01 2 D/P 104
155 CCLK 3 4 PROG 106
  NC 5 6 NC  
  GND 7 8 3V3  
  NC 9 10 NC  
J13: Alternative Power Connector

This provides access to the power rails. The +5V connection allows the B5 to power boards to which it connects (if the B5 is itself powered from the co-axial inlet J1. Alternatively the B5 can take power in from a mated board. The 3V3 and 2V5 pins are always power outlets, allowing a mated board to use or sense these power rails, if that is an advantage for a particular application.

Boards are shipped with a headers across pins 5 and 6, so that users won't accidentally plug the configuration cable into this header.

2V5 01 2 2V5
GND 3 4 GND
GND 5 6 GND
5V 7 8 5V
3V3 9 10 3V3
Mode Configuration

This sets how the device is configured.
Serial mode: All open (default setting)
JTAG mode: All shorted
Serial PROM: M0 open, M1 shorted, M2 open

GND 01 02 M0
GND 3 4 M1
GND 5 6 M2
JP6, JP8: Clock Frequency Selection

This is set to 48MHz by default.

 
JP12: Clock Selection

This is not linked by default.

 

I/O Connectors

PWR is either 3V3 or 2V5, as per the link corresponding to each I/O connector.
I'm told these are compatible with HP logic analysers too, which could be convenient.

J5
  PWR 1 2 I/O 3
4 I/O 3 4 I/O 5
6 I/O 5 6 I/O 7
8 I/O 7 8 I/O 9
10 I/O 9 10 I/O 14
15 I/O 11 12 I/O 16
17 I/O 13 14 I/O 18
20 I/O 15 16 I/O 21
22 I/O 17 18 I/O 23
24 I/O 19 20 GND  
J8
  PWR 1 2 I/O 27
29 I/O 3 4 I/O 30
31 I/O 5 6 I/O 33
34 I/O 7 8 I/O 35
36 I/O 9 10 I/O 37
41 I/O 11 12 I/O 42
43 I/O 13 14 I/O 44
45 I/O 15 16 I/O 46
47 I/O 17 18 I/O 48
49 I/O 19 20 GND  
J10
  PWR 1 2 CLOCKC  
  NC 3 4 I/O 57
58 I/O 5 6 I/O 59
60 I/O 7 8 I/O 61
62 I/O 9 10 I/O 63
67 I/O 11 12 I/O 68
69 I/O 13 14 I/O 70
71 I/O 15 16 I/O 73
74 I/O 17 18 I/O 75
81 I/O 19 20 GND  
J11
  PWR 1 2 I/O 80
82 I/O 3 4 I/O 83
84 I/O 5 6 I/O 86
87 I/O 7 8 I/O 88
89 I/O 9 10 I/O 90
94 I/O 11 12 I/O 95
96 I/O 13 14 I/O 97
98 I/O 15 16 I/O 99
100 I/O 17 18 I/O 101
102 I/O 19 20 GND  
J9
  PWR 1 2 I/O 108
109 I/O 3 4 I/O 110
111 I/O 5 6 I/O 112
113 I/O 7 8 I/O 114
115 I/O 9 10 I/O 119
120 I/O 11 12 I/O 121
122 I/O 13 14 I/O 123
125 I/O 15 16 I/O 126
127 I/O 17 18 I/O 129
132 I/O 19 20 GND  
J6
  PWR 1 2 I/O 133
134 I/O 3 4 I/O 135
136 I/O 5 6 I/O 138
139 I/O 7 8 I/O 140
141 I/O 9 10 I/O 142
146 I/O 11 12 I/O 147
148 I/O 13 14 I/O 149
150 I/O 15 16 I/O 151
152 I/O 17 18 I/O 153
154 I/O 19 20 GND  
J4
  PWR 1 2 I/O 182
160 I/O 3 4 I/O 161
162 I/O 5 6 I/O 163
164 I/O 7 8 I/O 165
166 I/O 9 10 I/O 167
168 I/O 11 12 I/O 172
173 I/O 13 14 I/O 174
175 I/O 15 16 I/O 176
178 I/O 17 18 I/O 179
180 I/O 19 20 GND  
J3
  PWR 1 2 I/O 185
181 I/O 3 4 I/O 187
188 I/O 5 6 I/O 189
191 I/O 7 8 I/O 192
193 I/O 9 10 I/O 194
195 I/O 11 12 I/O 199
200 I/O 13 14 I/O 201
202 I/O 15 16 I/O 203
204 I/O 17 18 I/O 205
206 I/O 19 20 GND  

Example connections to 128K x 16-bit Static RAM

These are the connections used by the BurchEd RAM boards. These have two 150ns 3V3 CMOS RAM chips providing a quarter megabyte of RAM in total.

Address bus
  PWR 1 2 CE -->
<-- A16 3 4 A15 -->
<-- A14 5 6 A13 -->
<-- A12 7 8 A11 -->
<-- A10 9 10 A9 -->
<-- A8 11 12 A7 -->
<-- A6 13 14 A5 -->
<-- A4 15 16 A3 -->
<-- A2 17 18 A1 -->
<-- A0 19 20 GND  
Data Bus
  PWR 1 2 /WEH -->
<-- /WEL 3 4 D15 <->
<-> D14 5 6 D13 <->
<-> D12 7 8 D11 <->
<-> D10 9 10 D9 <->
<-> D8 11 12 D7 <->
<-> D6 13 14 D5 <->
<-> D4 15 16 D3 <->
<-> D2 17 18 D1 <->
<-> D0 19 20 GND  

Pillar Bases

The metal lands around the mounting holes are all directly connected to 0V on the board.
These will contact guide rails if rack-mounted. This is no problem in plastic casings.
However, in metal casings it will mean that the case is electrically connected to you local power supply GND. Even if they are nominally the same voltage (e.g. 0V) it is generally avoided so that if a PSU fails by going 'live' there is not a low resistance to the case and thence to people.

Good practice is to connect cases and local GND through a parallel RC network. A small cap to short RF, and a large R to drain static charge imbalances. This may not be a problem in non-extreme environments: I've noticed my PC has the case connected to the power supply GND. However, in hostile environments or where several devices are connected via communication buses, you do not want their local GND and VCC rails connected. This can give rise to grounds loops, which are highly undesirable.

If you do need to isolate the B5 from a slide-in metal case, you may want to file away the offending contact areas. But for almost all R&D work this won't be needed.