Closed mczerski closed 8 months ago
WTF indeed! That's very weird. Is it definitely pressing F12 that causes the keyboard to lock up, or is it just the first keypress?
You may be suffering build-to-build stability issues here because the FPGA is pretty much completely full. (I can't build my current working tree for de0-nano because it no longer fits). You mentioned seeing lots of timing violations - are they in the order of half a nanosecond, or much larger? If much larger then the constraints file may be incorrect.
(Hardcoding dblscan to 1 is OK for regular PAL and NTSC modes, but it will mess up screenmodes like DblPAL / DblNTSC, and any RTG screenmodes.)
WTF^2 ... now it is working :) timing violations are on two clocks:
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Slow 1200mV 85C Model Setup: 'virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1]'
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Slack ; From Node
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; -1.799 ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1]
; -1.181 ; hybrid_pwm_sd:audiosd|q_l
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Slow 1200mV 85C Model Setup: 'clk_sdram'
+--------+----------------------------------------------------------------+---------------+-------------------------------------------------------------------------------+-------------+--------------+---
; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Cl
+--------+----------------------------------------------------------------+---------------+-------------------------------------------------------------------------------+-------------+--------------+---
; -1.727 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sd_cmd[3] ; DRAM_CS_N ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.393 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|ba[1] ; DRAM_BA_1 ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.392 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[5] ; DRAM_DQ[5] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.376 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|dqm[1] ; DRAM_UDQM ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.315 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[2] ; DRAM_DQ[2] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.262 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdaddr[3] ; DRAM_ADDR[3] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.251 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdaddr[10] ; DRAM_ADDR[10] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.232 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdaddr[6] ; DRAM_ADDR[6] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.224 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[4] ; DRAM_DQ[4] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.189 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|ba[0] ; DRAM_BA_0 ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.153 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|dqm[0] ; DRAM_LDQM ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.129 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[15] ; DRAM_DQ[15] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.125 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[12] ; DRAM_DQ[12] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.120 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[11] ; DRAM_DQ[11] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.113 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdaddr[2] ; DRAM_ADDR[2] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.110 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[13] ; DRAM_DQ[13] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.090 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[6] ; DRAM_DQ[6] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.075 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[8] ; DRAM_DQ[8] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.071 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_oe ; DRAM_DQ[7] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.069 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdaddr[7] ; DRAM_ADDR[7] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.066 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[0] ; DRAM_DQ[0] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.055 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_oe ; DRAM_DQ[12] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.051 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[9] ; DRAM_DQ[9] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.043 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_out[7] ; DRAM_DQ[7] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.036 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdata_oe ; DRAM_DQ[2] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.034 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdaddr[9] ; DRAM_ADDR[9] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
; -0.011 ; minimig_virtual_top:virtual_top|sdram_ctrl:sdram|sdaddr[8] ; DRAM_ADDR[8] ; virtual_top|amiga_clk|amiga_clk_i|altpll_component|auto_generated|pll1|clk[1] ; clk_sdram ; 5.294 ; 0.
I tryied couple more compilations and it works every time now ... so I guess the issue may be closed
I'm using current master with de0-nano board. I have two changes in code. First is just a pin mapping change. Second one is to force scandoubler for video output:
The other change should not be necessary since I can hold F1 during power-on forcing 60Hz NTSC and saving setting to sd card for next power cycles. But ! And here starts fun part. If I remove the change in minimig.v everything boots as expected until I open the OSD. After OSD shows up keyboard seems to stop working. I cannot move in the OSD, cannot turn off the OSD. But I can see text sliding on the bottom of the OSD ... WTF ?