There is some complications around changing the clock. It seems to have to do with the complexity of the hdl you load into the FPGA. Many of the boards shipping with 50mhz crystal can easily do over 100mhz.
There is some complications around changing the clock. It seems to have to do with the complexity of the hdl you load into the FPGA. Many of the boards shipping with 50mhz crystal can easily do over 100mhz.
And you are essentially correct, there is a maximum clock speed for any design, and it has to do with how complex your design is. Essentially, what’s the longest path in your design? Your clock must be slow enough to allow a change to propagate through that path. Pipelining shortens this path by creating registers along it, which are clocked by your clock. When a register is clocked, it stores the value in its input side, and outputs that value on the output side.
Let's imagine you design a CPU on an FPGA. One way to measure the speed of that design is to look at the speed of the slowest operation of that CPU. The clock needs to be set at the speed at which the slowest (most complex) operation can reliably run at.
0. https://www.xilinx.com/support/documentation/user_guides/ug3...