Electrical Engineering Asked by Quantum0xE7 on November 6, 2021
When making any prototype PCB it is always a great idea to have features within it that can be used to aid in debug of the design.
A few examples are:
Use the largest FPGA available that has migration path to the one we expect to use in the final product. This means we can have a lot of logic to implement debug modes and internal logic analyzer like signal-tap. This does mean that our power dissipation measurements won’t be accurate since a larger FPGA will have higher static power dissipation.
Embed features into the board that makes it possible to connect certain signal paths to a scope. These could be analogue signals or digital signals. I am not talking about the signals that directly connect to the FPGA. There are different ways to do this, and I am not sure about the best way to do this.
Have 8 or 16 pins exposed via header, that connect to the extra general purpose I/O on the FPGA. These can be used to output internal FPGA signals to the pins which can then be connected to a scope or logic analyzer. The question that arises here is, what type of connector to use since high speed signals require signal integrity to be kept in mind. Certainly we must choose a connector that a scope or logic analyzer can easily connect to.
Have 1ohm resistors on the power supply rails that can be used to accurately measure the power dissipation on all the supply rails, especially the ones connected to the FPGA.
Put in an FTDI chip that can be used to implement USB-UART.
Have an easy method for the prototype to be connected to another FPGA or microcontroller board in case the need arises. One way to do this is to have Arduino shield connectors on the board but then we must be sure that what we intend to connect is compatible before we make the PCB.
I am sure that people that have made many prototype PCBs and then gone to production can give their opinion on this list and suggest some improvements. It is true that the features also depend on what the board actually has been designed to do, so the same techniques can be applicable to every project. So now my questions are:
I would be grateful if someone can put in their two cents. This question is VERY specific and not broad or off topic. I think I have covered most things already.
Thanks.
Always LEDs.
A 3 pin UART header for TTL-232R-RPI.
I usually adds an Ethernet port for debug and programming. FPGA Cores provides an easy way for the customer to update the firmware with the remote programmer tool. If you want there are also an embedded scope that you can use. I really appreciate these cores.
You can find the cores here: https://www.fpga-cores.com/cores/
Answered by Holminge on November 6, 2021
Your prototype should have these features too 8in no order):
Answered by Paebbels on November 6, 2021
If the memory chip is connected with FPGA, like SDRAM or DDR or others, I'd like to allocate some extra sampling memory space for debugging. This is especially useful when you want to sample a large chunk of data, like a frame or a package, which is larger than signaltap's sample capacity. Some more advanced features can also be designed based on this sample memory like sampling only the packages whose header match a specific value.
Answered by Ross on November 6, 2021
I would actually advise against using the largest FPGA available simply due to the extraordinary device cost and implementation challenge of the largest FPGAs.
Don't forget adding some LEDs for debug output indicators.
You might also want to add jumpers to various places (like disconnecting power from certain sections) for debugging in case something goes wrong.
I see little point in an exposed GPIO header for a board that already has a set purpose.
Answered by DKNguyen on November 6, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP