PCB and FPGA versioning system

Guest #5826117
Hi all,
i can't figure out a good versioning system that ties a PCB version 
number (containing an fpga) and the fpga image version to be used on 
that board.

To explain a bit better, a pcb board version X with fpga image version A

 - pcb will go to version Y with a power supply component change (fpga 
image version A still compatible)
 - pcb will go to version Z with a new LED (fpga image version B needed 
to control the LED)
 - firmware upgrade, fpga version C with no board change

how to relate the two? i am using the fpga rom to store data like 
timestamps and device serials, but i am in need of a good versioning 
system to track compatibility between pcb and fpga firmware.
any suggestions?
#5826204
Hello,
I would use a few I/O-pins (e.g. 4) of the FPGA which are tied to Vcc 
and GND with external pull-up and pull-down resistors. This allows you 
to define 16 hardware revisions by omitting resistors.
Guest #5826965
Hi
thanks for the reply,
let me see if i get it correctly,

very much like the idea of hardcoding a 4-bit number onto the board,
by defining it with populated resistors.

does this mean that as the board progresses through versions, the 
resistor 4-bit number will increment only when an fpga change is 
required?

pcb v1.00  works with image 0000
    v1.15
    v2.01
    v2.10  works with image 0001
and so on...(?)

that takes care of scenario A and B.
what about scenario C? no board change?
Guest #5827001
You can define this by yourself.

If you need more versions or version paths, you can place a small and 
cheapy eeprom, and make it unwritable by hard wiring. Example: if your 
eeprom has an SPI, you does'nt connect the masters data out line. So 
your FPGA can read the eeprom, but not write.

For changing data, you can route an extra SPI link from the eeprom (pin 
header or something similar).
#5827032
> does this mean that as the board progresses through versions, the
resistor 4-bit number will increment only when an fpga change is
required?

My idea was to code the hardware revision with these 4 inputs. If you 
spend more inputs, you can additionally code the FPGA revision, but I 
wouldn't do that, because often you have many FPGA versions for the same 
hardware revision. The FPGA revison can be easily coded within the FPGA.
Guest #5828531
I was also thinking of a 4bit number within the fpga,
and try to relate the resistor number to the fabric number,
in some way. There is something there but I can't see it yet.
Thanks for the discussion, really like the resistor idea.

Reply

A question of your own? This thread is over 7 years old. Ask it in a thread of its own – more people read along there, and it gets answered more often and sooner.

Start a new thread

A fix, an addition or feedback on this thread? Then reply here.

Formatting
  • [c]C-Code[/c]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.