Hadir Khan
04/10/2022, 10:27 PMio_ports
test from the fresh caravel_user_project. The pll_clk
from caravel clocking is getting X which then causes the entire chip to get X. I have already diff between the caravel GL netlist from the caravel_user_project and the openram testchip design directory, both are identical. Has anybody else faced similar issues when doing GL simulations of their designs?Dinesh A
04/13/2022, 3:53 PMHadir Khan
04/13/2022, 7:41 PMHadir Khan
04/13/2022, 7:43 PMMatthew Guthaus
04/14/2022, 6:39 PMTim Edwards
04/14/2022, 7:27 PMDinesh A
04/18/2022, 6:58 AMDinesh A
04/18/2022, 8:42 AMTim Edwards
04/18/2022, 12:52 PMspi_is_enabled
bit is a register memory-mapped to the management SoC; its purpose is to decouple the housekeeping SPI from GPIO pins 1 to 4 so that those pins can be used by a user project. Otherwise, the housekeeping SPI will be responding to events on pins 1 to 3, especially 3 which is the CSB, which is tied into the chip's reset network. When the housekeeping SPI is enabled and the CSB line goes undefined, the undefined values propagate through the entire chip.Dinesh A
04/18/2022, 1:44 PMspi_is_enabled = 0
+ without any pull-down to mprj_io[3] RTL simulation passes, But gate level simulation fails. Gatesim passes only with mprj_io[3] pull high.
I see there are additional logic uses mprj_io[3]
assign pad_flash_csb = (pass_thru_mgmt_delay) ? mgmt_gpio_in[3] : spimemio_flash_csb;
In the failure gatesim waveform even through spi_is_enable=0, pass_thru_mgmt_delay goes unknown which makes flash interface to go unknown.Tim Edwards
04/18/2022, 1:48 PMspi_is_enabled = 1
? I'm not sure how the register is implemented in the Litex version of the management SoC, but while the register is named spi_is_enabled
, the actual signal is spi_disable
, and I think that is mapped to the low bit of the register.Dinesh A
04/18/2022, 1:51 PMspi_is_enabled = 1
which fails without pull-up in mgmt_gpio_in[3] in gatelevel sim.Tim Edwards
04/18/2022, 1:54 PMTim Edwards
04/18/2022, 1:56 PMHadir Khan
04/18/2022, 7:52 PMassign mprj_io[3] = 1'b1;
I have noticed their testbenches doing the same: https://github.com/efabless/caravel_user_project/commit/d99dcd5f8a7d6397ae243020a7f143fdc7ad21d9#diff-bb39a373b9f69e0dea0[…]3c0e9d0e37192f8f372dfL42Hadir Khan
04/18/2022, 8:00 PMassign
it to 1 for the entire simulation period?Tim Edwards
04/18/2022, 8:21 PMDinesh A
04/19/2022, 2:40 AM