From b1b750a858f9b3bd998fa840b570c6bd269764fd Mon Sep 17 00:00:00 2001
From: Stefan Voss <75468830+vossstef@users.noreply.github.com>
Date: Sun, 1 Dec 2024 20:50:34 +0100
Subject: [PATCH] tm60 fix (#115)
---
README.md | 2 +-
simulation/sim.bat | 3 ++
src/tang_nano_20k_c64_top_138k.vhd | 47 ++++++++++++++++++++--------
src/tang_nano_20k_c64_top_25k.cst | 50 +++++++++++++-----------------
src/tang_nano_20k_c64_top_60k.cst | 47 +++++++++++++++++-----------
src/tang_nano_20k_c64_top_60k.vhd | 47 ++++++++++++++++++++--------
6 files changed, 122 insertions(+), 74 deletions(-)
create mode 100644 simulation/sim.bat
diff --git a/README.md b/README.md
index fe1ffff..ad19dbc 100644
--- a/README.md
+++ b/README.md
@@ -166,7 +166,7 @@ Enable REU, select c1541 CBM DOS ROM and load the PRG.
## Push Button / DIP Switch utilization
* Nano 20k S2 keep pressed during power-up for FLASH programming of FPGA bitstream
-* Mega 60k NEO ```SW1 ON``` ```SW6 ON``` + Press & **Hold** ```RECONFIG``` + Power the Board + connect USB programmer cable + release ```RECONFIG``` and perform programming.
+* Mega 60k NEO ```SW1 ON``` ```SW6 ON``` + Unplug 12V Power + Unplug USB Programmer + Disconnect HDMI + Press & **Hold** ```RECONFIG``` + Power the Board + connect USB programmer cable + release ```RECONFIG``` and perform programming. + Reconnect cables.
> [!CAUTION]
A FLASH programm attempt without keeping the board in reset may lead to corruption of the C1541 DOS images stored in FLASH requiring re-programming.
* S1 swap the Joystick Ports if OSD **Swap Joys** is set to Off mode.
diff --git a/simulation/sim.bat b/simulation/sim.bat
new file mode 100644
index 0000000..73cb269
--- /dev/null
+++ b/simulation/sim.bat
@@ -0,0 +1,3 @@
+rmdir /s /q sim
+if not exist sim\ mkdir sim
+vsim -do sim_dualshock.do
diff --git a/src/tang_nano_20k_c64_top_138k.vhd b/src/tang_nano_20k_c64_top_138k.vhd
index 795b899..0fb267e 100644
--- a/src/tang_nano_20k_c64_top_138k.vhd
+++ b/src/tang_nano_20k_c64_top_138k.vhd
@@ -456,6 +456,7 @@ signal detach_reset_d : std_logic;
signal detach_reset : std_logic;
signal detach : std_logic;
signal coldboot : std_logic;
+signal disk_pause : std_logic;
-- 64k core ram 0x000000
-- cartridge RAM banks are mapped to 0x010000
@@ -595,7 +596,27 @@ gamepad_p2: entity work.dualshock2
end if;
end process;
-disk_reset <= c1541_osd_reset or not reset_n or c1541_reset or not flash_lock;
+-- delay disk start to keep loader at power-up intact
+process(clk32, por)
+variable pause_cnt : integer range 0 to 2147483647;
+ begin
+ if por = '1' then
+ disk_pause <= '1';
+ pause_cnt := 34000000;
+ elsif rising_edge(clk32) then
+ if pause_cnt /= 0 then
+ pause_cnt := pause_cnt - 1;
+ end if;
+ end if;
+
+ if pause_cnt = 0 then
+ disk_pause <= '0';
+ else
+ disk_pause <= '1';
+ end if;
+end process;
+
+disk_reset <= '1' when disk_pause or c1541_osd_reset or not reset_n or por or c1541_reset else '0';
-- rising edge sd_change triggers detection of new disk
process(clk32, pll_locked)
@@ -645,7 +666,7 @@ port map
(
clk32 => clk32,
reset => disk_reset,
- pause => c64_pause or loader_busy,
+ pause => loader_busy,
ce => '0',
disk_num => (others =>'0'),
@@ -685,9 +706,9 @@ port map
c1541rom_data => c1541rom_data
);
-sd_lba <= loader_lba when loader_busy = '1' else loader_lba when img_present = '0' else disk_lba;
-sd_rd(0) <= c1541_sd_rd when img_present = '1' else '0';
-sd_wr(0) <= c1541_sd_wr when img_present = '1' else '0';
+sd_lba <= loader_lba when loader_busy = '1' else disk_lba;
+sd_rd(0) <= c1541_sd_rd;
+sd_wr(0) <= c1541_sd_wr;
ext_en <= '1' when dos_sel(0) = '0' else '0'; -- dolphindos, speeddos
sdc_iack <= int_ack(3);
@@ -833,7 +854,7 @@ clk_switch_2: DCS
CLKOUT => clk64 -- switched clock
);
-pll_locked <= pll_locked_pal and pll_locked_ntsc;
+pll_locked <= pll_locked_pal and pll_locked_ntsc and flash_lock;
dcsclksel <= "0001" when ntscMode = '0' else "0010";
clk_switch_1: DCS
@@ -984,28 +1005,28 @@ pot4 <= pd2 when joyswap = '1' else pd4;
-- paddle - mouse - GS controller 2nd button and 3rd button
pd1 <= not paddle_1 when port_1_sel = "0110" else
- not paddle_1 when port_1_sel = "1011" else
+ not paddle_3 when port_1_sel = "1011" else
joystick1_x_pos(7 downto 0) when port_1_sel = "0111" else
('0' & std_logic_vector(mouse_x_pos(6 downto 1)) & '0') when port_1_sel = "0101" else
x"ff" when unsigned(port_1_sel) < 5 and joyA(5) = '1' else
x"ff" when unsigned(port_1_sel) = "1010" and joyA(5) = '1' else
x"00";
pd2 <= not paddle_2 when port_1_sel = "0110" else
- not paddle_2 when port_1_sel = "1011" else
+ not paddle_4 when port_1_sel = "1011" else
joystick1_y_pos(7 downto 0) when port_1_sel = "0111" else
('0' & std_logic_vector(mouse_y_pos(6 downto 1)) & '0') when port_1_sel = "0101" else
x"ff" when unsigned(port_1_sel) < 5 and joyA(6) = '1' else
x"ff" when unsigned(port_1_sel) = "1010" and joyA(6) = '1' else
x"00";
pd3 <= not paddle_3 when port_2_sel = "1011" else
- not paddle_3 when port_2_sel = "0110" else
+ not paddle_1 when port_2_sel = "0110" else
joystick2_x_pos(7 downto 0) when port_2_sel = "1000" else
('0' & std_logic_vector(mouse_x_pos(6 downto 1)) & '0') when port_2_sel = "0101" else
x"ff" when unsigned(port_2_sel) < 5 and joyB(5) = '1' else
x"ff" when unsigned(port_2_sel) = "1010" and joyB(5) = '1' else
x"00";
pd4 <= not paddle_4 when port_2_sel = "1011" else
- not paddle_4 when port_2_sel = "0110" else
+ not paddle_2 when port_2_sel = "0110" else
joystick2_y_pos(7 downto 0) when port_2_sel = "1000" else
('0' & std_logic_vector(mouse_y_pos(6 downto 1)) & '0') when port_2_sel = "0101" else
x"ff" when unsigned(port_2_sel) < 5 and joyB(6) = '1' else
@@ -1186,7 +1207,7 @@ fpga64_sid_iec_inst: entity work.fpga64_sid_iec
port map
(
clk32 => clk32,
- reset_n => reset_n and pll_locked and ram_ready,
+ reset_n => reset_n,
bios => "00",
pause => '0',
pause_out => c64_pause,
@@ -1435,7 +1456,7 @@ end generate;
crt_inst : entity work.loader_sd_card
port map (
clk => clk32,
- system_reset => system_reset,
+ system_reset => unsigned'(por & por),
sd_lba => loader_lba,
sd_rd => sd_rd(5 downto 1),
@@ -1456,7 +1477,7 @@ port map (
load_flt => load_flt,
sd_img_size => sd_img_size,
leds => leds(5 downto 1),
- img_select => img_select,
+ img_select => open,
ioctl_download => ioctl_download,
ioctl_addr => ioctl_addr,
diff --git a/src/tang_nano_20k_c64_top_25k.cst b/src/tang_nano_20k_c64_top_25k.cst
index a6953ce..63c7bf8 100644
--- a/src/tang_nano_20k_c64_top_25k.cst
+++ b/src/tang_nano_20k_c64_top_25k.cst
@@ -1,11 +1,3 @@
-//Copyright (C)2014-2023 Gowin Semiconductor Corporation.
-//All rights reserved.
-//File Title: Physical Constraints file
-//GOWIN Version: 1.9.8.11 Education
-//Part Number: GW2AR-LV18QN88C8/I7
-//Device: GW2AR-18
-//Device Version: C
-//Created Time: Wed 10 25 23:26:16 2023
// tang onboard bl616 µc uart
IO_LOC "uart_rx" B3;
@@ -45,13 +37,13 @@ IO_PORT "mspi_clk" PULL_MODE=NONE IO_TYPE=LVCMOS33;
// M0S PMOD
IO_LOC "m0s[0]" A10;
-IO_PORT "m0s[0]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
+IO_PORT "m0s[0]" PULL_MODE=UP IO_TYPE=LVCMOS33;
IO_LOC "m0s[1]" A11;
-IO_PORT "m0s[1]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
+IO_PORT "m0s[1]" PULL_MODE=UP IO_TYPE=LVCMOS33;
IO_LOC "m0s[2]" E10;
-IO_PORT "m0s[2]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
+IO_PORT "m0s[2]" PULL_MODE=UP IO_TYPE=LVCMOS33;
IO_LOC "m0s[3]" E11;
-IO_PORT "m0s[3]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
+IO_PORT "m0s[3]" PULL_MODE=UP IO_TYPE=LVCMOS33;
IO_LOC "m0s[4]" L11;
IO_PORT "m0s[4]" PULL_MODE=UP IO_TYPE=LVCMOS33;
//IO_LOC "m0s[5]" K11; // spare
@@ -73,33 +65,33 @@ IO_PORT "clk" IO_TYPE=LVCMOS33 PULL_MODE=NONE DRIVE=OFF BANK_VCCIO=3.3;
// SDCard sipeed PMOD TFCARD v2 (newer)
IO_LOC "sd_clk" C11;
-IO_PORT "sd_clk" PULL_MODE=NONE IO_TYPE=LVCMOS33;
-IO_LOC "sd_cmd" D11; // MOSI
-IO_PORT "sd_cmd" PULL_MODE=NONE IO_TYPE=LVCMOS33;
-IO_LOC "sd_dat[0]" B11; // MISO or SD card DO, needs pull-up
+IO_PORT "sd_clk" PULL_MODE=UP IO_TYPE=LVCMOS33;
+IO_LOC "sd_cmd" D11;
+IO_PORT "sd_cmd" PULL_MODE=UP IO_TYPE=LVCMOS33;
+IO_LOC "sd_dat[0]" B11;
IO_PORT "sd_dat[0]" PULL_MODE=UP IO_TYPE=LVCMOS33;
-IO_LOC "sd_dat[1]" G10; // 1
-IO_PORT "sd_dat[1]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
-IO_LOC "sd_dat[2]" D10; // 1
-IO_PORT "sd_dat[2]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
-IO_LOC "sd_dat[3]" G11; // 1
-IO_PORT "sd_dat[3]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
+IO_LOC "sd_dat[1]" G10;
+IO_PORT "sd_dat[1]" PULL_MODE=UP IO_TYPE=LVCMOS33;
+IO_LOC "sd_dat[2]" D10;
+IO_PORT "sd_dat[2]" PULL_MODE=UP IO_TYPE=LVCMOS33;
+IO_LOC "sd_dat[3]" G11;
+IO_PORT "sd_dat[3]" PULL_MODE=UP IO_TYPE=LVCMOS33;
// SDCard Sipeed PMOD TFCARD v1 (old outdated version)
// not working !
//
//IO_LOC "sd_clk" D10;
-//IO_PORT "sd_clk" PULL_MODE=NONE IO_TYPE=LVCMOS33;
-//IO_LOC "sd_cmd" D11; // MOSI
-//IO_PORT "sd_cmd" PULL_MODE=NONE IO_TYPE=LVCMOS33;
-//IO_LOC "sd_dat[0]" B11; // MISO or SD card DO, needs pull-up
+//IO_PORT "sd_clk" PULL_MODE=UP IO_TYPE=LVCMOS33;
+//IO_LOC "sd_cmd" D11;
+//IO_PORT "sd_cmd" PULL_MODE=UP IO_TYPE=LVCMOS33;
+//IO_LOC "sd_dat[0]" B11;
//IO_PORT "sd_dat[0]" PULL_MODE=UP IO_TYPE=LVCMOS33;
//IO_LOC "sd_dat[1]" C11;
-//IO_PORT "sd_dat[1]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
+//IO_PORT "sd_dat[1]" PULL_MODE=UP IO_TYPE=LVCMOS33;
//IO_LOC "sd_dat[2]" G11;
-//IO_PORT "sd_dat[2]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
+//IO_PORT "sd_dat[2]" PULL_MODE=UP IO_TYPE=LVCMOS33;
//IO_LOC "sd_dat[3]" G10;
-//IO_PORT "sd_dat[3]" PULL_MODE=NONE IO_TYPE=LVCMOS33;
+//IO_PORT "sd_dat[3]" PULL_MODE=UP IO_TYPE=LVCMOS33;
// Mister SDRAM v3.0 connected through 40-pin port
IO_LOC "IO_sdram_dq[0]" K2;
diff --git a/src/tang_nano_20k_c64_top_60k.cst b/src/tang_nano_20k_c64_top_60k.cst
index 578d046..9036150 100644
--- a/src/tang_nano_20k_c64_top_60k.cst
+++ b/src/tang_nano_20k_c64_top_60k.cst
@@ -14,7 +14,7 @@ IO_LOC "reset" Y12;
IO_PORT "reset" IO_TYPE=LVCMOS15 PULL_MODE=UP DRIVE=OFF BANK_VCCIO=1.5;
IO_LOC "ws2812" J16;
-IO_PORT "ws2812" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "ws2812" PULL_MODE=NONE BANK_VCCIO=3.3;
//========================== MS5351 ==============================
//For dock board version V31005 or later:
@@ -37,13 +37,15 @@ IO_PORT "uart_rx" IO_TYPE=LVCMOS33;
IO_LOC "uart_tx" U15;
IO_PORT "uart_tx" IO_TYPE=LVCMOS33;
-// USB-A host port
-//IO_LOC "usb_dp" H13;
-//IO_LOC "usb_dp" B15;
-//IO_LOC "usb_dm" G13;
-//IO_LOC "usb_dm" B16;
-//IO_PORT "usb_dp" IO_TYPE=LVCMOS33 PULL_MODE=NONE;
-//IO_PORT "usb_dm" IO_TYPE=LVCMOS33 PULL_MODE=NONE;
+//====== USBA ======
+//IO_LOC "USB_1_P" M15;
+//IO_LOC "USB_1_N" M16;
+//IO_LOC "USB_2_P" H13;
+//IO_LOC "USB_2_N" G13;
+//IO_PORT "USB_1_P" IO_TYPE=LVCMOS33 PULL_MODE=NONE BANK_VCCIO=3.3;
+//IO_PORT "USB_1_N" IO_TYPE=LVCMOS33 PULL_MODE=NONE BANK_VCCIO=3.3;
+//IO_PORT "USB_2_P" IO_TYPE=LVCMOS33 PULL_MODE=NONE BANK_VCCIO=3.3;
+//IO_PORT "USB_2_N" IO_TYPE=LVCMOS33 PULL_MODE=NONE BANK_VCCIO=3.3;
// HDMI
IO_LOC "tmds_clk_p" G15,G16;
@@ -54,23 +56,32 @@ IO_LOC "tmds_d_p[1]" J15,H15;
IO_PORT "tmds_d_p[1]" PULL_MODE=NONE DRIVE=8 IO_TYPE=LVCMOS33D;
IO_LOC "tmds_d_p[2]" K17,J17
IO_PORT "tmds_d_p[2]" PULL_MODE=NONE DRIVE=8 IO_TYPE=LVCMOS33D;
-
IO_LOC "hpd_en" K13;
-IO_PORT "hpd_en" PULL_MODE=UP DRIVE=12 BANK_VCCIO=3.3;
+IO_PORT "hpd_en" PULL_MODE=UP BANK_VCCIO=3.3;
// SDCard
IO_LOC "sd_clk" V15;
-IO_PORT "sd_clk" PULL_MODE=NONE DRIVE=8 IO_TYPE=LVCMOS33;
-IO_LOC "sd_cmd" Y16; // MOSI
-IO_PORT "sd_cmd" PULL_MODE=NONE DRIVE=8 IO_TYPE=LVCMOS33;
-IO_LOC "sd_dat[0]" AA15; // MISO or SD card DO, needs pull-up
-IO_PORT "sd_dat[0]" PULL_MODE=UP DRIVE=8 IO_TYPE=LVCMOS33;
+IO_PORT "sd_clk" IO_TYPE=LVCMOS33 SLEW_RATE=FAST PULL_MODE=UP DRIVE=8 PULL_STRENGTH=STRONG BANK_VCCIO=3.3
+IO_LOC "sd_cmd" Y16;
+IO_PORT "sd_cmd" IO_TYPE=LVCMOS33 SLEW_RATE=FAST PULL_MODE=UP DRIVE=8 PULL_STRENGTH=STRONG BANK_VCCIO=3.3
+IO_LOC "sd_dat[0]" AA15;
+IO_PORT "sd_dat[0]" IO_TYPE=LVCMOS33 SLEW_RATE=FAST PULL_MODE=UP DRIVE=8 PULL_STRENGTH=STRONG BANK_VCCIO=3.3;
IO_LOC "sd_dat[1]" AB15;
-IO_PORT "sd_dat[1]" PULL_MODE=NONE DRIVE=8 IO_TYPE=LVCMOS33;
+IO_PORT "sd_dat[1]" IO_TYPE=LVCMOS33 SLEW_RATE=FAST PULL_MODE=UP DRIVE=8 PULL_STRENGTH=STRONG BANK_VCCIO=3.3
IO_LOC "sd_dat[2]" W14;
-IO_PORT "sd_dat[2]" PULL_MODE=NONE DRIVE=8 IO_TYPE=LVCMOS33;
+IO_PORT "sd_dat[2]" IO_TYPE=LVCMOS33 SLEW_RATE=FAST PULL_MODE=UP DRIVE=8 PULL_STRENGTH=STRONG BANK_VCCIO=3.3;
IO_LOC "sd_dat[3]" W15;
-IO_PORT "sd_dat[3]" PULL_MODE=NONE DRIVE=8 IO_TYPE=LVCMOS33;
+IO_PORT "sd_dat[3]" IO_TYPE=LVCMOS33 SLEW_RATE=FAST PULL_MODE=UP DRIVE=8 PULL_STRENGTH=STRONG BANK_VCCIO=3.3
+
+// PMOD mostleft for testing TFcard v2
+//IO_LOC "sd_clk" R18;
+//IO_LOC "sd_cmd" T21; // MOSI
+//IO_LOC "sd_dat[0]" P16; // MISO
+//IO_LOC "sd_dat[1]" R19;
+//IO_LOC "sd_dat[2]" U21;
+//IO_LOC "sd_dat[3]" P19;
+// CDn R17;
+// WPn T18;
// 128Mbit NOR Flash (MSPI pins)
// W25Q64
diff --git a/src/tang_nano_20k_c64_top_60k.vhd b/src/tang_nano_20k_c64_top_60k.vhd
index bbfae94..f252f7b 100644
--- a/src/tang_nano_20k_c64_top_60k.vhd
+++ b/src/tang_nano_20k_c64_top_60k.vhd
@@ -458,6 +458,7 @@ signal detach_reset_d : std_logic;
signal detach_reset : std_logic;
signal detach : std_logic;
signal coldboot : std_logic;
+signal disk_pause : std_logic;
-- 64k core ram 0x000000
-- cartridge RAM banks are mapped to 0x010000
@@ -600,7 +601,27 @@ gamepad_p2: entity work.dualshock2
end if;
end process;
-disk_reset <= c1541_osd_reset or not reset_n or c1541_reset or not flash_lock;
+-- delay disk start to keep loader at power-up intact
+process(clk32, por)
+variable pause_cnt : integer range 0 to 2147483647;
+ begin
+ if por = '1' then
+ disk_pause <= '1';
+ pause_cnt := 34000000;
+ elsif rising_edge(clk32) then
+ if pause_cnt /= 0 then
+ pause_cnt := pause_cnt - 1;
+ end if;
+ end if;
+
+ if pause_cnt = 0 then
+ disk_pause <= '0';
+ else
+ disk_pause <= '1';
+ end if;
+end process;
+
+disk_reset <= '1' when disk_pause or c1541_osd_reset or not reset_n or por or c1541_reset else '0';
-- rising edge sd_change triggers detection of new disk
process(clk32, pll_locked)
@@ -650,7 +671,7 @@ port map
(
clk32 => clk32,
reset => disk_reset,
- pause => c64_pause or loader_busy,
+ pause => loader_busy,
ce => '0',
disk_num => (others =>'0'),
@@ -690,9 +711,9 @@ port map
c1541rom_data => c1541rom_data
);
-sd_lba <= loader_lba when loader_busy = '1' else loader_lba when img_present = '0' else disk_lba;
-sd_rd(0) <= c1541_sd_rd when img_present = '1' else '0';
-sd_wr(0) <= c1541_sd_wr when img_present = '1' else '0';
+sd_lba <= loader_lba when loader_busy = '1' else disk_lba;
+sd_rd(0) <= c1541_sd_rd;
+sd_wr(0) <= c1541_sd_wr;
ext_en <= '1' when dos_sel(0) = '0' else '0'; -- dolphindos, speeddos
sdc_iack <= int_ack(3);
@@ -838,7 +859,7 @@ clk_switch_2: DCS
CLKOUT => clk64 -- switched clock
);
-pll_locked <= pll_locked_pal and pll_locked_ntsc;
+pll_locked <= pll_locked_pal and pll_locked_ntsc and flash_lock;
dcsclksel <= "0001" when ntscMode = '0' else "0010";
clk_switch_1: DCS
@@ -989,28 +1010,28 @@ pot4 <= pd2 when joyswap = '1' else pd4;
-- paddle - mouse - GS controller 2nd button and 3rd button
pd1 <= not paddle_1 when port_1_sel = "0110" else
- not paddle_1 when port_1_sel = "1011" else
+ not paddle_3 when port_1_sel = "1011" else
joystick1_x_pos(7 downto 0) when port_1_sel = "0111" else
('0' & std_logic_vector(mouse_x_pos(6 downto 1)) & '0') when port_1_sel = "0101" else
x"ff" when unsigned(port_1_sel) < 5 and joyA(5) = '1' else
x"ff" when unsigned(port_1_sel) = "1010" and joyA(5) = '1' else
x"00";
pd2 <= not paddle_2 when port_1_sel = "0110" else
- not paddle_2 when port_1_sel = "1011" else
+ not paddle_4 when port_1_sel = "1011" else
joystick1_y_pos(7 downto 0) when port_1_sel = "0111" else
('0' & std_logic_vector(mouse_y_pos(6 downto 1)) & '0') when port_1_sel = "0101" else
x"ff" when unsigned(port_1_sel) < 5 and joyA(6) = '1' else
x"ff" when unsigned(port_1_sel) = "1010" and joyA(6) = '1' else
x"00";
pd3 <= not paddle_3 when port_2_sel = "1011" else
- not paddle_3 when port_2_sel = "0110" else
+ not paddle_1 when port_2_sel = "0110" else
joystick2_x_pos(7 downto 0) when port_2_sel = "1000" else
('0' & std_logic_vector(mouse_x_pos(6 downto 1)) & '0') when port_2_sel = "0101" else
x"ff" when unsigned(port_2_sel) < 5 and joyB(5) = '1' else
x"ff" when unsigned(port_2_sel) = "1010" and joyB(5) = '1' else
x"00";
pd4 <= not paddle_4 when port_2_sel = "1011" else
- not paddle_4 when port_2_sel = "0110" else
+ not paddle_2 when port_2_sel = "0110" else
joystick2_y_pos(7 downto 0) when port_2_sel = "1000" else
('0' & std_logic_vector(mouse_y_pos(6 downto 1)) & '0') when port_2_sel = "0101" else
x"ff" when unsigned(port_2_sel) < 5 and joyB(6) = '1' else
@@ -1191,7 +1212,7 @@ fpga64_sid_iec_inst: entity work.fpga64_sid_iec
port map
(
clk32 => clk32,
- reset_n => reset_n and pll_locked and ram_ready,
+ reset_n => reset_n,
bios => "00",
pause => '0',
pause_out => c64_pause,
@@ -1440,7 +1461,7 @@ end generate;
crt_inst : entity work.loader_sd_card
port map (
clk => clk32,
- system_reset => system_reset,
+ system_reset => unsigned'(por & por),
sd_lba => loader_lba,
sd_rd => sd_rd(5 downto 1),
@@ -1461,7 +1482,7 @@ port map (
load_flt => load_flt,
sd_img_size => sd_img_size,
leds => leds(5 downto 1),
- img_select => img_select,
+ img_select => open,
ioctl_download => ioctl_download,
ioctl_addr => ioctl_addr,