soc_reset: Use counters, add synchronizers
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 15 May 2020 03:15:48 +0000 (13:15 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sat, 16 May 2020 02:42:58 +0000 (12:42 +1000)
commit3b603402d2f454ad3084956e50d9430d7b373ed1
tree954daddd59b254d8237d8429fc682b7fd6676100
parent30fd9aa298056def2eb08d6fb66702cb05f2f421
soc_reset: Use counters, add synchronizers

In some cases we need to keep the reset held for much longer,
so use counters rather than shift registers.

Additionally, some signals such as ext_rst and pll_locked
or signals going from the ext_clk domain to the pll_clk
domain need to be treated as async, and testing them without
synchronizers is asking for trouble.

Finally, make the external reset also reset the PLL.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
fpga/soc_reset.vhdl
fpga/soc_reset_tb.vhdl