minimig-dev / MinimigAGA-MiST-TC64

Minimig for the MiST board
GNU General Public License v3.0
15 stars 8 forks source link

wierd scandoubler setting issue #12

Closed mczerski closed 8 months ago

mczerski commented 8 months ago

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:

diff --git a/rtl/minimig/minimig.v b/rtl/minimig/minimig.v
index ee13e48..2f9680f 100644
--- a/rtl/minimig/minimig.v
+++ b/rtl/minimig/minimig.v
@@ -778,7 +778,7 @@ denise DENISE1
 amber AMBER1
 (              
        .clk(clk),
-       .dblscan(_15khz && !varbeamen),
+       .dblscan(1'b1),//_15khz && !varbeamen),
   .varbeamen(varbeamen),
        .lr_filter(lr_filter),
        .hr_filter(hr_filter),

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 ?

robinsonb5 commented 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.)

mczerski commented 8 months ago

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.
mczerski commented 8 months ago

I tryied couple more compilations and it works every time now ... so I guess the issue may be closed