From cd088fa8f583ee4601d780e292056b81d1f31695 Mon Sep 17 00:00:00 2001 From: Gehstock Date: Wed, 18 Dec 2019 23:05:33 +0100 Subject: [PATCH] Sync --- .../CraterRaider_MiST/CraterRaider.qsf | 75 +- .../{rtl/rom => Snapshot}/CRATER.ROM | Bin 180224 -> 188416 bytes ...SpyHunter_MiST.sv => CraterRaider_MiST.sv} | 26 +- .../rtl/{spy_hunter.vhd => crater_raider.vhd} | 8 +- .../CraterRaider_MiST/rtl/rom/crater (1).zip | Bin 0 -> 68549 bytes .../rtl/rom/make_crater_raider_proms.bat | 25 + .../win32 => rtl/rom}/make_vhdl_prom.exe | Bin .../rtl/spy_hunter_control.vhd | 160 ----- .../tools/de10_lite/max10_pll_120M_sdram.vhd | 426 ----------- .../tools/de10_lite/spy_hunter_de10_lite.qpf | 31 - .../tools/de10_lite/spy_hunter_de10_lite.qsf | 482 ------------- .../tools/de10_lite/spy_hunter_de10_lite.sdc | 7 - .../tools/rtl_dar/decodeur_7_seg.vhd | 35 - .../tools/rtl_dar/io_ps2_keyboard.vhd | 77 -- .../tools/rtl_dar/kbd_joystick.vhd | 65 -- .../CraterRaider_MiST/tools/rtl_dar/sdram.sv | 150 ---- .../tools/spy_hunter_de10_lite.vhd | 676 ------------------ .../binaries/linux32/duplicate_byte | Bin 7356 -> 0 bytes .../binaries/linux32/make_vhdl_prom | Bin 11712 -> 0 bytes .../binaries/win32/duplicate_byte.exe | Bin 97353 -> 0 bytes .../binaries/win64/duplicate_byte.exe | Bin 117095 -> 0 bytes .../binaries/win64/make_vhdl_prom.exe | Bin 119861 -> 0 bytes .../tools_prom_src/src/doc_compilation.txt | 28 - .../tools/tools_prom_src/src/duplicate_byte.c | 37 - .../tools/tools_prom_src/src/make_vhdl_prom.c | 83 --- 25 files changed, 72 insertions(+), 2319 deletions(-) rename Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/{rtl/rom => Snapshot}/CRATER.ROM (95%) rename Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/{SpyHunter_MiST.sv => CraterRaider_MiST.sv} (94%) rename Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/{spy_hunter.vhd => crater_raider.vhd} (99%) create mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater (1).zip create mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/make_crater_raider_proms.bat rename Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/{tools/tools_prom_src/binaries/win32 => rtl/rom}/make_vhdl_prom.exe (100%) delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/spy_hunter_control.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/max10_pll_120M_sdram.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.qpf delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.qsf delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.sdc delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/decodeur_7_seg.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/io_ps2_keyboard.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/kbd_joystick.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/sdram.sv delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/spy_hunter_de10_lite.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/linux32/duplicate_byte delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/linux32/make_vhdl_prom delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/win32/duplicate_byte.exe delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/win64/duplicate_byte.exe delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/win64/make_vhdl_prom.exe delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/src/doc_compilation.txt delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/src/duplicate_byte.c delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/src/make_vhdl_prom.c diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/CraterRaider.qsf b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/CraterRaider.qsf index b159b062..cc0b5791 100644 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/CraterRaider.qsf +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/CraterRaider.qsf @@ -117,38 +117,7 @@ set_location_assignment PIN_33 -to SDRAM_CKE set_location_assignment PIN_43 -to SDRAM_CLK set_location_assignment PLL_1 -to "pll:pll|altpll:altpll_component" -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQ[*] -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_A[*] -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[0] -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[1] -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQMH -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQML -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nRAS -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCAS -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nWE -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCS -set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM_DQ[*] -set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM_DQ[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_A[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQ[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_BA[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQML -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQMH -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nRAS -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCAS -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nWE -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCS -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CKE -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CLK -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_HS -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_VS -set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_L -set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_R -set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to SPI_DO # Classic Timing Assignments # ========================== @@ -158,7 +127,7 @@ set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 # Analysis & Synthesis Assignments # ================================ set_global_assignment -name FAMILY "Cyclone III" -set_global_assignment -name TOP_LEVEL_ENTITY SpyHunter_MiST +set_global_assignment -name TOP_LEVEL_ENTITY CraterRaider_MiST set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144 set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP @@ -210,9 +179,6 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" - # end ENTITY(Kickman_MiST) # ------------------------ -set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top -set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top -set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top set_global_assignment -name ENABLE_SIGNALTAP OFF set_global_assignment -name USE_SIGNALTAP_FILE output_files/reset.stp set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED @@ -223,8 +189,8 @@ set_global_assignment -name FITTER_EFFORT "STANDARD FIT" set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON set_global_assignment -name SMART_RECOMPILE ON set_global_assignment -name ALLOW_SYNCH_CTRL_USAGE ON -set_global_assignment -name SYSTEMVERILOG_FILE rtl/SpyHunter_MiST.sv -set_global_assignment -name VHDL_FILE rtl/spy_hunter.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/CraterRaider_MiST.sv +set_global_assignment -name VHDL_FILE rtl/crater_raider.vhd set_global_assignment -name VHDL_FILE rtl/ctc_counter.vhd set_global_assignment -name VHDL_FILE rtl/ctc_controler.vhd set_global_assignment -name VHDL_FILE rtl/spy_hunter_sound_board.vhd @@ -239,5 +205,38 @@ set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip -set_global_assignment -name VHDL_FILE rtl/spy_hunter_control.vhd +set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top +set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top +set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_A[*] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[0] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[1] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQMH +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQML +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nRAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nWE +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCS +set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_A[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQ[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_BA[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQML +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQMH +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nRAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nWE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CKE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CLK +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_HS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_VS +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_L +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_R +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to SPI_DO set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/CRATER.ROM b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/Snapshot/CRATER.ROM similarity index 95% rename from Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/CRATER.ROM rename to Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/Snapshot/CRATER.ROM index 2bc98cf3ae3769e58c0ff2d90c9f2fc889e38679..f4012b49600d92163ce4236304440f2afc1b236a 100644 GIT binary patch delta 1468 zcmY*ZK~ED=5S~Q}NC9nux-EhxHTCei7qMe19Q-~00}p1a2UE`^L_O4%JKq798BP1OgQxDH}iHkWt!~nH*em&Z@!t=!Js<$QH=&+W{H`I_9@NUahl;Xw~R)~ z41{-lQmnc6@j0<2pXjh{^A(;(WO!OYfn{$V?F)|%{=I30liYdgJ|^eiPA6CJO#-@_eEROQnV8|{FImtFmhR)x z>t@nG@bT`}njnByi80SD*IT|c&l%sTu5W=P_^I*y%ErSd9WZwhTxlR6^oMY$M+0ij zA#&RY9az0SD8?IrdTD?iqVU5ePL~Lr!#{!zF)3KAh=!@K#`qaX`rHJF%xz!T;8q^ zhbYSGt#TD10s5(ux{AaBj7MG()D<|*XQpHHPldSyg_v8WAZSIQwoZ_wD`%!4z@aiW znA-dZ>8VUlDiehbg@oCSR#i&4N0BC!c-g8q8}V}BtRmR2>kDA+!Q89==3yT@ delta 17 YcmZoTz}?Wmy`Z6KLE8exWeb=b07TaZNB{r; diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/SpyHunter_MiST.sv b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/CraterRaider_MiST.sv similarity index 94% rename from Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/SpyHunter_MiST.sv rename to Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/CraterRaider_MiST.sv index 500132eb..a5e09eb8 100644 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/SpyHunter_MiST.sv +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/CraterRaider_MiST.sv @@ -16,7 +16,7 @@ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. //============================================================================ -module SpyHunter_MiST( +module CraterRaider_MiST( output LED, output [5:0] VGA_R, output [5:0] VGA_G, @@ -83,7 +83,7 @@ wire [15:0] audio_l, audio_r; wire hs, vs, cs; wire blankn; wire [2:0] g, r, b; -wire [14:0] rom_addr; +wire [15:0] rom_addr; wire [15:0] rom_do; wire [13:0] snd_addr; wire [15:0] snd_do; @@ -94,8 +94,6 @@ wire [7:0] ioctl_index; wire ioctl_wr; wire [24:0] ioctl_addr; wire [7:0] ioctl_dout; -wire [7:0] steering; -wire [7:0] gas; data_io data_io( .clk_sys ( clk_sys ), @@ -126,9 +124,9 @@ sdram sdram( .port1_d ( {ioctl_dout, ioctl_dout} ), .port1_q ( ), - .cpu1_addr ( ioctl_downl ? 16'hffff : {1'b0, rom_addr[14:1]} ), + .cpu1_addr ( ioctl_downl ? 16'hffff : {1'b0, rom_addr[15:1]} ), .cpu1_q ( rom_do ), - .cpu2_addr ( ioctl_downl ? 16'hffff : (16'h4000 + snd_addr[13:1]) ), + .cpu2_addr ( ioctl_downl ? 16'hffff : (16'h5000 + snd_addr[13:1]) ), .cpu2_q ( snd_do ), // port2 for sprite graphics @@ -174,19 +172,7 @@ always @(posedge clk_sys) begin end -spy_hunter_control spy_hunter_control( - .clock_40(clk_sys), - .reset(reset), - .vsync(vs), - .gas_plus(m_up), - .gas_minus(m_down), - .steering_plus(m_right), - .steering_minus(m_left), - .steering(steering), - .gas(gas) - ); - -spy_hunter spy_hunter( +Crater_Raider Crater_Raider( .clock_40(clk_sys), .reset(reset), .video_r(r), @@ -208,7 +194,7 @@ spy_hunter spy_hunter( .down(m_down), .fire1(m_fire1), .fire2(m_fire2), - .fire3(m_fire3), + .fire3(m_fire3),//not working .service(status[6]), .cpu_rom_addr ( rom_addr ), .cpu_rom_do ( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ), diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/spy_hunter.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/crater_raider.vhd similarity index 99% rename from Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/spy_hunter.vhd rename to Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/crater_raider.vhd index 6d7ea9e4..e88dd412 100644 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/spy_hunter.vhd +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/crater_raider.vhd @@ -1,5 +1,5 @@ --------------------------------------------------------------------------------- --- Spy hunter by Dar (darfpga@aol.fr) (06/12/2019) +-- Crater Raider by Dar (darfpga@aol.fr) (06/12/2019) -- http://darfpga.blogspot.fr --------------------------------------------------------------------------------- -- @@ -134,7 +134,7 @@ use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.numeric_std.all; -entity spy_hunter is +entity crater_raider is port( clock_40 : in std_logic; reset : in std_logic; @@ -172,9 +172,9 @@ port( sp_graphx32_do : in std_logic_vector(31 downto 0); dbg_cpu_addr : out std_logic_vector(15 downto 0) ); -end spy_hunter; +end crater_raider; -architecture struct of spy_hunter is +architecture struct of crater_raider is signal reset_n : std_logic; signal clock_vid : std_logic; diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater (1).zip b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater (1).zip new file mode 100644 index 0000000000000000000000000000000000000000..c0672bac2638569f0490967611021a65ebe6a485 GIT binary patch literal 68549 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 z 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 lK4D>C*viJpAjS~l9~9*37ZT+e5a8;fYiQ '0'); - else - if vsync_r ='0' and vsync = '1' then - if (gas_timer >= 5 and (gas_minus_r = '1' or gas_plus_r = '1')) then --tune inc/dec rate - gas_timer <= (others => '0'); - else - gas_timer <= gas_timer + 1; - end if; - end if; - end if; - - if vsync_r ='0' and vsync = '1' and gas_timer = 0 then - if gas_plus = '1' then - if gas_r >= x"FC" then gas_r <= x"FF"; else gas_r <= gas_r + 5; end if; - elsif gas_minus = '1' then - if gas_r <= x"3E" then gas_r <= x"39"; else gas_r <= gas_r - 5; end if; - end if; - end if; - - end if; - - -- steering increase/decrease as long as btn is pushed - -- return to center value when no btn is pushed - if steering_r < x"30" then - steering_r <= x"30"; - elsif steering_r > x"B0" then - steering_r <= x"B0"; - else - if (steering_plus_r = not steering_plus) or - (steering_minus_r = not steering_minus) then - steering_timer <= (others => '0'); - else - if vsync_r ='0' and vsync = '1' then - if (steering_timer >= 7 and (steering_minus_r = '1' or steering_plus_r = '1')) or -- tune btn pushed rate - (steering_timer >= 3 and (steering_minus_r = '0' and steering_plus_r = '0')) then -- tune btn released rate - steering_timer <= (others => '0'); - else - steering_timer <= steering_timer + 1; - end if; - end if; - end if; - - if vsync_r ='0' and vsync = '1' and steering_timer = 0 then - if steering_plus = '1' then - if steering_r >= x"A8" then steering_r <= x"B0"; else steering_r <= steering_r + 8; end if; - elsif steering_minus = '1' then - if steering_r <= x"38" then steering_r <= x"30"; else steering_r <= steering_r - 8; end if; - else - if steering_r <= x"68" then steering_r <= steering_r + 8; end if; - if steering_r >= x"78" then steering_r <= steering_r - 8; end if; - if (steering_r > x"68") and (steering_r < x"78") then steering_r <= x"70"; end if; - end if; - end if; - - end if; - - end if; - - end if; -end process; - -end struct; diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/max10_pll_120M_sdram.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/max10_pll_120M_sdram.vhd deleted file mode 100644 index 130d3048..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/max10_pll_120M_sdram.vhd +++ /dev/null @@ -1,426 +0,0 @@ --- megafunction wizard: %ALTPLL% --- GENERATION: STANDARD --- VERSION: WM1.0 --- MODULE: altpll - --- ============================================================ --- File Name: max10_pll_120M_sdram.vhd --- Megafunction Name(s): --- altpll --- --- Simulation Library Files(s): --- altera_mf --- ============================================================ --- ************************************************************ --- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! --- --- 18.1.0 Build 625 09/12/2018 SJ Lite Edition --- ************************************************************ - - ---Copyright (C) 2018 Intel Corporation. All rights reserved. ---Your use of Intel Corporation's design tools, logic functions ---and other software and tools, and its AMPP partner logic ---functions, and any output files from any of the foregoing ---(including device programming or simulation files), and any ---associated documentation or information are expressly subject ---to the terms and conditions of the Intel Program License ---Subscription Agreement, the Intel Quartus Prime License Agreement, ---the Intel FPGA IP License Agreement, or other applicable license ---agreement, including, without limitation, that your use is for ---the sole purpose of programming logic devices manufactured by ---Intel and sold by Intel or its authorized distributors. Please ---refer to the applicable agreement for further details. - - -LIBRARY ieee; -USE ieee.std_logic_1164.all; - -LIBRARY altera_mf; -USE altera_mf.all; - -ENTITY max10_pll_120M_sdram IS - PORT - ( - inclk0 : IN STD_LOGIC := '0'; - c0 : OUT STD_LOGIC ; - c1 : OUT STD_LOGIC ; - c2 : OUT STD_LOGIC ; - locked : OUT STD_LOGIC - ); -END max10_pll_120M_sdram; - - -ARCHITECTURE SYN OF max10_pll_120m_sdram IS - - SIGNAL sub_wire0 : STD_LOGIC ; - SIGNAL sub_wire1 : STD_LOGIC_VECTOR (1 DOWNTO 0); - SIGNAL sub_wire2_bv : BIT_VECTOR (0 DOWNTO 0); - SIGNAL sub_wire2 : STD_LOGIC_VECTOR (0 DOWNTO 0); - SIGNAL sub_wire3 : STD_LOGIC_VECTOR (4 DOWNTO 0); - SIGNAL sub_wire4 : STD_LOGIC ; - SIGNAL sub_wire5 : STD_LOGIC ; - SIGNAL sub_wire6 : STD_LOGIC ; - SIGNAL sub_wire7 : STD_LOGIC ; - - - - COMPONENT altpll - GENERIC ( - bandwidth_type : STRING; - clk0_divide_by : NATURAL; - clk0_duty_cycle : NATURAL; - clk0_multiply_by : NATURAL; - clk0_phase_shift : STRING; - clk1_divide_by : NATURAL; - clk1_duty_cycle : NATURAL; - clk1_multiply_by : NATURAL; - clk1_phase_shift : STRING; - clk2_divide_by : NATURAL; - clk2_duty_cycle : NATURAL; - clk2_multiply_by : NATURAL; - clk2_phase_shift : STRING; - compensate_clock : STRING; - inclk0_input_frequency : NATURAL; - intended_device_family : STRING; - lpm_hint : STRING; - lpm_type : STRING; - operation_mode : STRING; - pll_type : STRING; - port_activeclock : STRING; - port_areset : STRING; - port_clkbad0 : STRING; - port_clkbad1 : STRING; - port_clkloss : STRING; - port_clkswitch : STRING; - port_configupdate : STRING; - port_fbin : STRING; - port_inclk0 : STRING; - port_inclk1 : STRING; - port_locked : STRING; - port_pfdena : STRING; - port_phasecounterselect : STRING; - port_phasedone : STRING; - port_phasestep : STRING; - port_phaseupdown : STRING; - port_pllena : STRING; - port_scanaclr : STRING; - port_scanclk : STRING; - port_scanclkena : STRING; - port_scandata : STRING; - port_scandataout : STRING; - port_scandone : STRING; - port_scanread : STRING; - port_scanwrite : STRING; - port_clk0 : STRING; - port_clk1 : STRING; - port_clk2 : STRING; - port_clk3 : STRING; - port_clk4 : STRING; - port_clk5 : STRING; - port_clkena0 : STRING; - port_clkena1 : STRING; - port_clkena2 : STRING; - port_clkena3 : STRING; - port_clkena4 : STRING; - port_clkena5 : STRING; - port_extclk0 : STRING; - port_extclk1 : STRING; - port_extclk2 : STRING; - port_extclk3 : STRING; - self_reset_on_loss_lock : STRING; - width_clock : NATURAL - ); - PORT ( - inclk : IN STD_LOGIC_VECTOR (1 DOWNTO 0); - clk : OUT STD_LOGIC_VECTOR (4 DOWNTO 0); - locked : OUT STD_LOGIC - ); - END COMPONENT; - -BEGIN - sub_wire2_bv(0 DOWNTO 0) <= "0"; - sub_wire2 <= To_stdlogicvector(sub_wire2_bv); - sub_wire0 <= inclk0; - sub_wire1 <= sub_wire2(0 DOWNTO 0) & sub_wire0; - sub_wire6 <= sub_wire3(2); - sub_wire5 <= sub_wire3(1); - sub_wire4 <= sub_wire3(0); - c0 <= sub_wire4; - c1 <= sub_wire5; - c2 <= sub_wire6; - locked <= sub_wire7; - - altpll_component : altpll - GENERIC MAP ( - bandwidth_type => "AUTO", - clk0_divide_by => 5, - clk0_duty_cycle => 50, - clk0_multiply_by => 12, - clk0_phase_shift => "0", - clk1_divide_by => 5, - clk1_duty_cycle => 50, - clk1_multiply_by => 12, - clk1_phase_shift => "-2000", - clk2_divide_by => 5, - clk2_duty_cycle => 50, - clk2_multiply_by => 4, - clk2_phase_shift => "0", - compensate_clock => "CLK0", - inclk0_input_frequency => 20000, - intended_device_family => "MAX 10", - lpm_hint => "CBX_MODULE_PREFIX=max10_pll_120M_sdram", - lpm_type => "altpll", - operation_mode => "NORMAL", - pll_type => "AUTO", - port_activeclock => "PORT_UNUSED", - port_areset => "PORT_UNUSED", - port_clkbad0 => "PORT_UNUSED", - port_clkbad1 => "PORT_UNUSED", - port_clkloss => "PORT_UNUSED", - port_clkswitch => "PORT_UNUSED", - port_configupdate => "PORT_UNUSED", - port_fbin => "PORT_UNUSED", - port_inclk0 => "PORT_USED", - port_inclk1 => "PORT_UNUSED", - port_locked => "PORT_USED", - port_pfdena => "PORT_UNUSED", - port_phasecounterselect => "PORT_UNUSED", - port_phasedone => "PORT_UNUSED", - port_phasestep => "PORT_UNUSED", - port_phaseupdown => "PORT_UNUSED", - port_pllena => "PORT_UNUSED", - port_scanaclr => "PORT_UNUSED", - port_scanclk => "PORT_UNUSED", - port_scanclkena => "PORT_UNUSED", - port_scandata => "PORT_UNUSED", - port_scandataout => "PORT_UNUSED", - port_scandone => "PORT_UNUSED", - port_scanread => "PORT_UNUSED", - port_scanwrite => "PORT_UNUSED", - port_clk0 => "PORT_USED", - port_clk1 => "PORT_USED", - port_clk2 => "PORT_USED", - port_clk3 => "PORT_UNUSED", - port_clk4 => "PORT_UNUSED", - port_clk5 => "PORT_UNUSED", - port_clkena0 => "PORT_UNUSED", - port_clkena1 => "PORT_UNUSED", - port_clkena2 => "PORT_UNUSED", - port_clkena3 => "PORT_UNUSED", - port_clkena4 => "PORT_UNUSED", - port_clkena5 => "PORT_UNUSED", - port_extclk0 => "PORT_UNUSED", - port_extclk1 => "PORT_UNUSED", - port_extclk2 => "PORT_UNUSED", - port_extclk3 => "PORT_UNUSED", - self_reset_on_loss_lock => "OFF", - width_clock => 5 - ) - PORT MAP ( - inclk => sub_wire1, - clk => sub_wire3, - locked => sub_wire7 - ); - - - -END SYN; - --- ============================================================ --- CNX file retrieval info --- ============================================================ --- Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0" --- Retrieval info: PRIVATE: BANDWIDTH STRING "1.000" --- Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "1" --- Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz" --- Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low" --- Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1" --- Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0" --- Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0" --- Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0" --- Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0" --- Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0" --- Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0" --- Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0" --- Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0" --- Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0" --- Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "Any" --- Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "5" --- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "5" --- Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "5" --- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" --- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" --- Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "120.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "120.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "40.000000" --- Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0" --- Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" --- Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" --- Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0" --- Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0" --- Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575" --- Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1" --- Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "50.000" --- Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz" --- Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000" --- Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1" --- Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1" --- Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz" --- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "MAX 10" --- Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1" --- Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "1" --- Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1" --- Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available" --- Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0" --- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg" --- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "deg" --- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT2 STRING "deg" --- Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any" --- Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" --- Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0" --- Retrieval info: PRIVATE: MIRROR_CLK2 STRING "0" --- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "12" --- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "12" --- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "4" --- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" --- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "120.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "120.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "40.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" --- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" --- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0" --- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" --- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz" --- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT2 STRING "MHz" --- Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "1" --- Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0" --- Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000" --- Retrieval info: PRIVATE: PHASE_SHIFT1 STRING "-2.00000000" --- Retrieval info: PRIVATE: PHASE_SHIFT2 STRING "0.00000000" --- Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0" --- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg" --- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT1 STRING "ns" --- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT2 STRING "deg" --- Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0" --- Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0" --- Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1" --- Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0" --- Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0" --- Retrieval info: PRIVATE: PLL_FBMIMIC_CHECK STRING "0" --- Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0" --- Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0" --- Retrieval info: PRIVATE: PLL_TARGET_HARCOPY_CHECK NUMERIC "0" --- Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0" --- Retrieval info: PRIVATE: RECONFIG_FILE STRING "max10_pll_120M_sdram.mif" --- Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0" --- Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "1" --- Retrieval info: PRIVATE: SELF_RESET_LOCK_LOSS STRING "0" --- Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0" --- Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0" --- Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000" --- Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz" --- Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500" --- Retrieval info: PRIVATE: SPREAD_USE STRING "0" --- Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0" --- Retrieval info: PRIVATE: STICKY_CLK0 STRING "1" --- Retrieval info: PRIVATE: STICKY_CLK1 STRING "1" --- Retrieval info: PRIVATE: STICKY_CLK2 STRING "1" --- Retrieval info: PRIVATE: STICKY_CLK3 STRING "0" --- Retrieval info: PRIVATE: STICKY_CLK4 STRING "0" --- Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1" --- Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "1" --- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" --- Retrieval info: PRIVATE: USE_CLK0 STRING "1" --- Retrieval info: PRIVATE: USE_CLK1 STRING "1" --- Retrieval info: PRIVATE: USE_CLK2 STRING "1" --- Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" --- Retrieval info: PRIVATE: USE_CLKENA1 STRING "0" --- Retrieval info: PRIVATE: USE_CLKENA2 STRING "0" --- Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0" --- Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" --- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all --- Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO" --- Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "5" --- Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "12" --- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "5" --- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "12" --- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "-2000" --- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "5" --- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "4" --- Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" --- Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "20000" --- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "MAX 10" --- Retrieval info: CONSTANT: LPM_TYPE STRING "altpll" --- Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL" --- Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO" --- Retrieval info: CONSTANT: PORT_ACTIVECLOCK STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_ARESET STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_CLKBAD0 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_CLKBAD1 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_CLKLOSS STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_CLKSWITCH STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_CONFIGUPDATE STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED" --- Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_USED" --- Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_PHASESTEP STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_PHASEUPDOWN STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_PLLENA STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_SCANACLR STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_SCANCLK STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_SCANCLKENA STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_SCANDATA STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_SCANDATAOUT STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_SCANDONE STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_SCANREAD STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED" --- Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_USED" --- Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_USED" --- Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clkena1 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clkena2 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clkena3 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clkena4 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_clkena5 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_extclk0 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED" --- Retrieval info: CONSTANT: SELF_RESET_ON_LOSS_LOCK STRING "OFF" --- Retrieval info: CONSTANT: WIDTH_CLOCK NUMERIC "5" --- Retrieval info: USED_PORT: @clk 0 0 5 0 OUTPUT_CLK_EXT VCC "@clk[4..0]" --- Retrieval info: USED_PORT: @inclk 0 0 2 0 INPUT_CLK_EXT VCC "@inclk[1..0]" --- Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0" --- Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT_CLK_EXT VCC "c1" --- Retrieval info: USED_PORT: c2 0 0 0 0 OUTPUT_CLK_EXT VCC "c2" --- Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0" --- Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked" --- Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0 --- Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0 --- Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0 --- Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1 --- Retrieval info: CONNECT: c2 0 0 0 0 @clk 0 0 1 2 --- Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0 --- Retrieval info: GEN_FILE: TYPE_NORMAL max10_pll_120M_sdram.vhd TRUE --- Retrieval info: GEN_FILE: TYPE_NORMAL max10_pll_120M_sdram.ppf TRUE --- Retrieval info: GEN_FILE: TYPE_NORMAL max10_pll_120M_sdram.inc FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL max10_pll_120M_sdram.cmp FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL max10_pll_120M_sdram.bsf FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL max10_pll_120M_sdram_inst.vhd FALSE --- Retrieval info: LIB_FILE: altera_mf --- Retrieval info: CBX_MODULE_PREFIX: ON diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.qpf b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.qpf deleted file mode 100644 index da91b0c7..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.qpf +++ /dev/null @@ -1,31 +0,0 @@ -# -------------------------------------------------------------------------- # -# -# Copyright (C) 2018 Intel Corporation. All rights reserved. -# Your use of Intel Corporation's design tools, logic functions -# and other software and tools, and its AMPP partner logic -# functions, and any output files from any of the foregoing -# (including device programming or simulation files), and any -# associated documentation or information are expressly subject -# to the terms and conditions of the Intel Program License -# Subscription Agreement, the Intel Quartus Prime License Agreement, -# the Intel FPGA IP License Agreement, or other applicable license -# agreement, including, without limitation, that your use is for -# the sole purpose of programming logic devices manufactured by -# Intel and sold by Intel or its authorized distributors. Please -# refer to the applicable agreement for further details. -# -# -------------------------------------------------------------------------- # -# -# Quartus Prime -# Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition -# Date created = 08:31:19 December 08, 2019 -# -# -------------------------------------------------------------------------- # - -QUARTUS_VERSION = "18.1" -DATE = "08:31:19 December 08, 2019" - -# Revisions - -PROJECT_REVISION = "spy_hunter_de10_lite" -PROJECT_REVISION = "spy_hunter_de10_lite" diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.qsf b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.qsf deleted file mode 100644 index eb6c1029..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.qsf +++ /dev/null @@ -1,482 +0,0 @@ -# -------------------------------------------------------------------------- # -# -# Copyright (C) 2018 Intel Corporation. All rights reserved. -# Your use of Intel Corporation's design tools, logic functions -# and other software and tools, and its AMPP partner logic -# functions, and any output files from any of the foregoing -# (including device programming or simulation files), and any -# associated documentation or information are expressly subject -# to the terms and conditions of the Intel Program License -# Subscription Agreement, the Intel Quartus Prime License Agreement, -# the Intel FPGA IP License Agreement, or other applicable license -# agreement, including, without limitation, that your use is for -# the sole purpose of programming logic devices manufactured by -# Intel and sold by Intel or its authorized distributors. Please -# refer to the applicable agreement for further details. -# -# -------------------------------------------------------------------------- # -# -# Quartus Prime -# Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition -# Date created = 18:26:07 November 15, 2019 -# -# -------------------------------------------------------------------------- # -# -# Notes: -# -# 1) The default values for assignments are stored in the file: -# spy_hunter_de10_lite_assignment_defaults.qdf -# If this file doesn't exist, see file: -# assignment_defaults.qdf -# -# 2) Altera recommends that you do not modify this file. This -# file is updated automatically by the Quartus Prime software -# and any changes you make may be lost or overwritten. -# -# -------------------------------------------------------------------------- # - - -set_global_assignment -name FAMILY "MAX 10" -set_global_assignment -name DEVICE 10M50DAF484C6GES -set_global_assignment -name TOP_LEVEL_ENTITY spy_hunter_de10_lite -set_global_assignment -name ORIGINAL_QUARTUS_VERSION 15.1.0 -set_global_assignment -name PROJECT_CREATION_TIME_DATE "17:45:13 JUNE 17,2016" -set_global_assignment -name LAST_QUARTUS_VERSION "18.1.0 Lite Edition" -set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files -set_global_assignment -name DEVICE_FILTER_PACKAGE FBGA -set_global_assignment -name DEVICE_FILTER_PIN_COUNT 484 -set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 6 -set_location_assignment PIN_N5 -to ADC_CLK_10 -set_location_assignment PIN_P11 -to MAX10_CLK1_50 -set_location_assignment PIN_N14 -to MAX10_CLK2_50 -set_location_assignment PIN_U17 -to DRAM_ADDR[0] -set_location_assignment PIN_W19 -to DRAM_ADDR[1] -set_location_assignment PIN_V18 -to DRAM_ADDR[2] -set_location_assignment PIN_U18 -to DRAM_ADDR[3] -set_location_assignment PIN_U19 -to DRAM_ADDR[4] -set_location_assignment PIN_T18 -to DRAM_ADDR[5] -set_location_assignment PIN_T19 -to DRAM_ADDR[6] -set_location_assignment PIN_R18 -to DRAM_ADDR[7] -set_location_assignment PIN_P18 -to DRAM_ADDR[8] -set_location_assignment PIN_P19 -to DRAM_ADDR[9] -set_location_assignment PIN_T20 -to DRAM_ADDR[10] -set_location_assignment PIN_P20 -to DRAM_ADDR[11] -set_location_assignment PIN_R20 -to DRAM_ADDR[12] -set_location_assignment PIN_T21 -to DRAM_BA[0] -set_location_assignment PIN_T22 -to DRAM_BA[1] -set_location_assignment PIN_U21 -to DRAM_CAS_N -set_location_assignment PIN_N22 -to DRAM_CKE -set_location_assignment PIN_L14 -to DRAM_CLK -set_location_assignment PIN_U20 -to DRAM_CS_N -set_location_assignment PIN_Y21 -to DRAM_DQ[0] -set_location_assignment PIN_Y20 -to DRAM_DQ[1] -set_location_assignment PIN_AA22 -to DRAM_DQ[2] -set_location_assignment PIN_AA21 -to DRAM_DQ[3] -set_location_assignment PIN_Y22 -to DRAM_DQ[4] -set_location_assignment PIN_W22 -to DRAM_DQ[5] -set_location_assignment PIN_W20 -to DRAM_DQ[6] -set_location_assignment PIN_V21 -to DRAM_DQ[7] -set_location_assignment PIN_P21 -to DRAM_DQ[8] -set_location_assignment PIN_J22 -to DRAM_DQ[9] -set_location_assignment PIN_H21 -to DRAM_DQ[10] -set_location_assignment PIN_H22 -to DRAM_DQ[11] -set_location_assignment PIN_G22 -to DRAM_DQ[12] -set_location_assignment PIN_G20 -to DRAM_DQ[13] -set_location_assignment PIN_G19 -to DRAM_DQ[14] -set_location_assignment PIN_F22 -to DRAM_DQ[15] -set_location_assignment PIN_V22 -to DRAM_LDQM -set_location_assignment PIN_U22 -to DRAM_RAS_N -set_location_assignment PIN_J21 -to DRAM_UDQM -set_location_assignment PIN_V20 -to DRAM_WE_N -set_location_assignment PIN_C14 -to HEX0[0] -set_location_assignment PIN_E15 -to HEX0[1] -set_location_assignment PIN_C15 -to HEX0[2] -set_location_assignment PIN_C16 -to HEX0[3] -set_location_assignment PIN_E16 -to HEX0[4] -set_location_assignment PIN_D17 -to HEX0[5] -set_location_assignment PIN_C17 -to HEX0[6] -set_location_assignment PIN_D15 -to HEX0[7] -set_location_assignment PIN_C18 -to HEX1[0] -set_location_assignment PIN_D18 -to HEX1[1] -set_location_assignment PIN_E18 -to HEX1[2] -set_location_assignment PIN_B16 -to HEX1[3] -set_location_assignment PIN_A17 -to HEX1[4] -set_location_assignment PIN_A18 -to HEX1[5] -set_location_assignment PIN_B17 -to HEX1[6] -set_location_assignment PIN_A16 -to HEX1[7] -set_location_assignment PIN_B20 -to HEX2[0] -set_location_assignment PIN_A20 -to HEX2[1] -set_location_assignment PIN_B19 -to HEX2[2] -set_location_assignment PIN_A21 -to HEX2[3] -set_location_assignment PIN_B21 -to HEX2[4] -set_location_assignment PIN_C22 -to HEX2[5] -set_location_assignment PIN_B22 -to HEX2[6] -set_location_assignment PIN_A19 -to HEX2[7] -set_location_assignment PIN_F21 -to HEX3[0] -set_location_assignment PIN_E22 -to HEX3[1] -set_location_assignment PIN_E21 -to HEX3[2] -set_location_assignment PIN_C19 -to HEX3[3] -set_location_assignment PIN_C20 -to HEX3[4] -set_location_assignment PIN_D19 -to HEX3[5] -set_location_assignment PIN_E17 -to HEX3[6] -set_location_assignment PIN_D22 -to HEX3[7] -set_location_assignment PIN_F18 -to HEX4[0] -set_location_assignment PIN_E20 -to HEX4[1] -set_location_assignment PIN_E19 -to HEX4[2] -set_location_assignment PIN_J18 -to HEX4[3] -set_location_assignment PIN_H19 -to HEX4[4] -set_location_assignment PIN_F19 -to HEX4[5] -set_location_assignment PIN_F20 -to HEX4[6] -set_location_assignment PIN_F17 -to HEX4[7] -set_location_assignment PIN_J20 -to HEX5[0] -set_location_assignment PIN_K20 -to HEX5[1] -set_location_assignment PIN_L18 -to HEX5[2] -set_location_assignment PIN_N18 -to HEX5[3] -set_location_assignment PIN_M20 -to HEX5[4] -set_location_assignment PIN_N19 -to HEX5[5] -set_location_assignment PIN_N20 -to HEX5[6] -set_location_assignment PIN_L19 -to HEX5[7] -set_location_assignment PIN_B8 -to KEY[0] -set_location_assignment PIN_A7 -to KEY[1] -set_location_assignment PIN_A8 -to LEDR[0] -set_location_assignment PIN_A9 -to LEDR[1] -set_location_assignment PIN_A10 -to LEDR[2] -set_location_assignment PIN_B10 -to LEDR[3] -set_location_assignment PIN_D13 -to LEDR[4] -set_location_assignment PIN_C13 -to LEDR[5] -set_location_assignment PIN_E14 -to LEDR[6] -set_location_assignment PIN_D14 -to LEDR[7] -set_location_assignment PIN_A11 -to LEDR[8] -set_location_assignment PIN_B11 -to LEDR[9] -set_location_assignment PIN_C10 -to SW[0] -set_location_assignment PIN_C11 -to SW[1] -set_location_assignment PIN_D12 -to SW[2] -set_location_assignment PIN_C12 -to SW[3] -set_location_assignment PIN_A12 -to SW[4] -set_location_assignment PIN_B12 -to SW[5] -set_location_assignment PIN_A13 -to SW[6] -set_location_assignment PIN_A14 -to SW[7] -set_location_assignment PIN_B14 -to SW[8] -set_location_assignment PIN_F15 -to SW[9] -set_location_assignment PIN_P1 -to VGA_B[0] -set_location_assignment PIN_T1 -to VGA_B[1] -set_location_assignment PIN_P4 -to VGA_B[2] -set_location_assignment PIN_N2 -to VGA_B[3] -set_location_assignment PIN_W1 -to VGA_G[0] -set_location_assignment PIN_T2 -to VGA_G[1] -set_location_assignment PIN_R2 -to VGA_G[2] -set_location_assignment PIN_R1 -to VGA_G[3] -set_location_assignment PIN_N3 -to VGA_HS -set_location_assignment PIN_AA1 -to VGA_R[0] -set_location_assignment PIN_V1 -to VGA_R[1] -set_location_assignment PIN_Y2 -to VGA_R[2] -set_location_assignment PIN_Y1 -to VGA_R[3] -set_location_assignment PIN_N1 -to VGA_VS -set_location_assignment PIN_AB16 -to GSENSOR_CS_N -set_location_assignment PIN_Y14 -to GSENSOR_INT[1] -set_location_assignment PIN_Y13 -to GSENSOR_INT[2] -set_location_assignment PIN_AB15 -to GSENSOR_SCLK -set_location_assignment PIN_V11 -to GSENSOR_SDI -set_location_assignment PIN_V12 -to GSENSOR_SDO -set_location_assignment PIN_AB5 -to ARDUINO_IO[0] -set_location_assignment PIN_AB6 -to ARDUINO_IO[1] -set_location_assignment PIN_AB7 -to ARDUINO_IO[2] -set_location_assignment PIN_AB8 -to ARDUINO_IO[3] -set_location_assignment PIN_AB9 -to ARDUINO_IO[4] -set_location_assignment PIN_Y10 -to ARDUINO_IO[5] -set_location_assignment PIN_AA11 -to ARDUINO_IO[6] -set_location_assignment PIN_AA12 -to ARDUINO_IO[7] -set_location_assignment PIN_AB17 -to ARDUINO_IO[8] -set_location_assignment PIN_AA17 -to ARDUINO_IO[9] -set_location_assignment PIN_AB19 -to ARDUINO_IO[10] -set_location_assignment PIN_AA19 -to ARDUINO_IO[11] -set_location_assignment PIN_Y19 -to ARDUINO_IO[12] -set_location_assignment PIN_AB20 -to ARDUINO_IO[13] -set_location_assignment PIN_AB21 -to ARDUINO_IO[14] -set_location_assignment PIN_AA20 -to ARDUINO_IO[15] -set_location_assignment PIN_F16 -to ARDUINO_RESET_N -set_location_assignment PIN_V10 -to GPIO[0] -set_location_assignment PIN_W10 -to GPIO[1] -set_location_assignment PIN_V9 -to GPIO[2] -set_location_assignment PIN_W9 -to GPIO[3] -set_location_assignment PIN_V8 -to GPIO[4] -set_location_assignment PIN_W8 -to GPIO[5] -set_location_assignment PIN_V7 -to GPIO[6] -set_location_assignment PIN_W7 -to GPIO[7] -set_location_assignment PIN_W6 -to GPIO[8] -set_location_assignment PIN_V5 -to GPIO[9] -set_location_assignment PIN_W5 -to GPIO[10] -set_location_assignment PIN_AA15 -to GPIO[11] -set_location_assignment PIN_AA14 -to GPIO[12] -set_location_assignment PIN_W13 -to GPIO[13] -set_location_assignment PIN_W12 -to GPIO[14] -set_location_assignment PIN_AB13 -to GPIO[15] -set_location_assignment PIN_AB12 -to GPIO[16] -set_location_assignment PIN_Y11 -to GPIO[17] -set_location_assignment PIN_AB11 -to GPIO[18] -set_location_assignment PIN_W11 -to GPIO[19] -set_location_assignment PIN_AB10 -to GPIO[20] -set_location_assignment PIN_AA10 -to GPIO[21] -set_location_assignment PIN_AA9 -to GPIO[22] -set_location_assignment PIN_Y8 -to GPIO[23] -set_location_assignment PIN_AA8 -to GPIO[24] -set_location_assignment PIN_Y7 -to GPIO[25] -set_location_assignment PIN_AA7 -to GPIO[26] -set_location_assignment PIN_Y6 -to GPIO[27] -set_location_assignment PIN_AA6 -to GPIO[28] -set_location_assignment PIN_Y5 -to GPIO[29] -set_location_assignment PIN_AA5 -to GPIO[30] -set_location_assignment PIN_Y4 -to GPIO[31] -set_location_assignment PIN_AB3 -to GPIO[32] -set_location_assignment PIN_Y3 -to GPIO[33] -set_location_assignment PIN_AB2 -to GPIO[34] -set_location_assignment PIN_AA2 -to GPIO[35] -set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 -set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 -set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" -set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" -set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (VHDL)" -set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id eda_simulation -set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation -set_global_assignment -name ENABLE_OCT_DONE ON -set_global_assignment -name EXTERNAL_FLASH_FALLBACK_ADDRESS 00000000 -set_global_assignment -name USE_CONFIGURATION_DEVICE OFF -set_global_assignment -name INTERNAL_FLASH_UPDATE_MODE "SINGLE COMP IMAGE WITH ERAM" -set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF -set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise -set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall -set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise -set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall -set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top -set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top -set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_CLK_10 -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to MAX10_CLK1_50 -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to MAX10_CLK2_50 -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[8] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[9] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[10] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[11] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[12] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_BA[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_BA[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CAS_N -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CKE -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CLK -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CS_N -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[8] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[9] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[10] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[11] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[12] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[13] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[14] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[15] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_LDQM -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_RAS_N -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_UDQM -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_WE_N -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[7] -set_instance_assignment -name IO_STANDARD "3.3 V SCHMITT TRIGGER" -to KEY[0] -set_instance_assignment -name IO_STANDARD "3.3 V SCHMITT TRIGGER" -to KEY[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[8] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[9] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[8] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[9] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_HS -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_VS -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GSENSOR_CS_N -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GSENSOR_INT[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GSENSOR_INT[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GSENSOR_SCLK -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GSENSOR_SDI -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GSENSOR_SDO -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[8] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[9] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[10] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[11] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[12] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[13] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[14] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[15] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_RESET_N -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[7] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[8] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[9] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[10] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[11] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[12] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[13] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[14] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[15] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[16] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[17] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[18] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[19] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[20] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[21] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[22] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[23] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[24] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[25] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[26] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[27] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[28] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[29] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[30] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[31] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[32] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[33] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[34] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[35] -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_cke -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_clk -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_cs_n -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_ldqm -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_ras_n -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_udqm -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_we_n -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_addr -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_ba -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_cas_n -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dram_dq -set_instance_assignment -name FAST_INPUT_REGISTER ON -to dram_dq -set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to dram_dq -set_global_assignment -name ENABLE_SIGNALTAP OFF -set_global_assignment -name USE_SIGNALTAP_FILE cpu.stp -set_global_assignment -name VHDL_FILE ../rtl_dar/test_char_ram.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/proms/spy_hunter_sound_cpu.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/spy_hunter_sound_board.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/proms/spy_hunter_ch_bits.vhd -set_global_assignment -name QIP_FILE max10_pll_120M_sdram.qip -set_global_assignment -name SYSTEMVERILOG_FILE ../rtl_dar/sdram.sv -set_global_assignment -name SDC_FILE spy_hunter_de10_lite.sdc -set_global_assignment -name VHDL_FILE ../rtl_t80_304/T80se.vhd -set_global_assignment -name VHDL_FILE ../rtl_t80_304/T80_Reg.vhd -set_global_assignment -name VHDL_FILE ../rtl_t80_304/T80_Pack.vhd -set_global_assignment -name VHDL_FILE ../rtl_t80_304/T80_MCode.vhd -set_global_assignment -name VHDL_FILE ../rtl_t80_304/T80_ALU.vhd -set_global_assignment -name VHDL_FILE ../rtl_t80_304/T80.vhd -set_global_assignment -name VHDL_FILE ../rtl_mikej/YM2149_linmix_sep.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/proms/midssio_82s123.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/proms/spy_hunter_cpu.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/proms/spy_hunter_bg_bits_2.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/proms/spy_hunter_bg_bits_1.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/kbd_joystick.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/io_ps2_keyboard.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/gen_ram.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/spy_hunter_de10_lite.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/spy_hunter.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/decodeur_7_seg.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/ctc_counter.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/ctc_controler.vhd -set_global_assignment -name VHDL_FILE ../rtl_dar/cmos_ram.vhd -set_global_assignment -name SIGNALTAP_FILE output_files/sdram_sprites.stp -set_global_assignment -name SIGNALTAP_FILE cpu.stp -set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.sdc b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.sdc deleted file mode 100644 index e8a946f4..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/de10_lite/spy_hunter_de10_lite.sdc +++ /dev/null @@ -1,7 +0,0 @@ -create_clock -name clk1_50 -period 20 [get_ports {max10_clk1_50}] - - -derive_pll_clocks -create_base_clocks - -derive_clock_uncertainty - diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/decodeur_7_seg.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/decodeur_7_seg.vhd deleted file mode 100644 index 05d15d50..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/decodeur_7_seg.vhd +++ /dev/null @@ -1,35 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - - -entity decodeur_7_seg is -port( - di : in std_logic_vector(3 downto 0); - do : out std_logic_vector(7 downto 0) -); -end decodeur_7_seg; - -architecture struct of decodeur_7_seg is - -begin - -with di select - do <= - "11000000" when "0000", - "11111001" when "0001", - "10100100" when "0010", - "10110000" when "0011", - "10011001" when "0100", - "10010010" when "0101", - "10000010" when "0110", - "11111000" when "0111", - "10000000" when "1000", - "10010000" when "1001", - "10001000" when "1010", - "10000011" when "1011", - "11000110" when "1100", - "10100001" when "1101", - "10000110" when "1110", - "10001110" when others; - -end architecture; \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/io_ps2_keyboard.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/io_ps2_keyboard.vhd deleted file mode 100644 index f2ffa462..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/io_ps2_keyboard.vhd +++ /dev/null @@ -1,77 +0,0 @@ --- ----------------------------------------------------------------------- --- --- FPGA 64 --- --- A fully functional commodore 64 implementation in a single FPGA --- --- ----------------------------------------------------------------------- --- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com) --- http://www.syntiac.com/fpga64.html --- ----------------------------------------------------------------------- - -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.numeric_std.ALL; - -entity io_ps2_keyboard is - port ( - clk: in std_logic; - kbd_clk: in std_logic; - kbd_dat: in std_logic; - - interrupt: out std_logic; - scanCode: out std_logic_vector(7 downto 0) - ); -end io_ps2_keyboard; - -architecture Behavioral of io_ps2_keyboard is - signal clk_reg: std_logic; - signal clk_waitNextBit: std_logic; - signal clk_filter: integer range 0 to 15; - signal shift_reg: std_logic_vector(10 downto 0) := (others => '0'); - - signal bitsCount: integer range 0 to 10 := 0; - signal timeout: integer range 0 to 5000 := 0; -- 2* 50 us at 50 Mhz -begin - process(clk) - begin - if rising_edge(clk) then - -- Interrupt is edge triggered. Only 1 clock high. - interrupt <= '0'; - - -- Timeout if keyboard does not send anymore. - if timeout /= 0 then - timeout <= timeout - 1; - else - bitsCount <= 0; - end if; - - -- Filter glitches on the clock - if (clk_reg /= kbd_clk) then - clk_filter <= 15; -- Wait 15 ticks - clk_reg <= kbd_clk; -- Store clock edge to detect changes - clk_waitNextBit <= '0'; -- Next bit comming up... - elsif (clk_filter /= 0) then - -- Wait for clock to stabilise - -- Clock must be stable before we sample the data line. - clk_filter <= clk_filter - 1; - elsif (clk_reg = '1') and (clk_waitNextBit = '0') then - -- We have a stable clock, so assume stable data too. - clk_waitNextBit <= '1'; - - -- Move data into shift register - shift_reg <= kbd_dat & shift_reg(10 downto 1); - timeout <= 5000; - if bitsCount < 10 then - bitsCount <= bitsCount + 1; - else - -- 10 bits received. Output new scancode - bitsCount <= 0; - interrupt <= '1'; - scanCode <= shift_reg(9 downto 2); - end if; - end if; - end if; - end process; - -end Behavioral; diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/kbd_joystick.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/kbd_joystick.vhd deleted file mode 100644 index d9255e90..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/kbd_joystick.vhd +++ /dev/null @@ -1,65 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.numeric_std.ALL; - -entity Kbd_Joystick is -port ( - Clk : in std_logic; - KbdInt : in std_logic; - KbdScanCode : in std_logic_vector(7 downto 0); - joy_BBBBFRLDU : out std_logic_vector(8 downto 0); - fn_pulse : inout std_logic_vector(7 downto 0); - fn_toggle : inout std_logic_vector(7 downto 0) -); -end Kbd_Joystick; - -architecture Behavioral of Kbd_Joystick is - -signal IsReleased : std_logic; -signal fn_pulse_r : std_logic_vector(7 downto 0); - -begin - -process(Clk) -begin - if rising_edge(Clk) then - - fn_pulse_r <= fn_pulse; - - if KbdInt = '1' then - if KbdScanCode = x"F0" then IsReleased <= '1'; else IsReleased <= '0'; end if; - if KbdScanCode = x"75" then joy_BBBBFRLDU(0) <= not(IsReleased); end if; -- up - if KbdScanCode = x"72" then joy_BBBBFRLDU(1) <= not(IsReleased); end if; -- down - if KbdScanCode = x"6B" then joy_BBBBFRLDU(2) <= not(IsReleased); end if; -- left - if KbdScanCode = x"74" then joy_BBBBFRLDU(3) <= not(IsReleased); end if; -- right - if KbdScanCode = x"29" then joy_BBBBFRLDU(4) <= not(IsReleased); end if; -- space - if KbdScanCode = x"2B" then joy_BBBBFRLDU(5) <= not(IsReleased); end if; -- f - if KbdScanCode = x"34" then joy_BBBBFRLDU(6) <= not(IsReleased); end if; -- g - if KbdScanCode = x"2C" then joy_BBBBFRLDU(7) <= not(IsReleased); end if; -- t - if KbdScanCode = x"2A" then joy_BBBBFRLDU(8) <= not(IsReleased); end if; -- v - - if KbdScanCode = x"05" then fn_pulse(0) <= not(IsReleased); end if; -- F1 - if KbdScanCode = x"06" then fn_pulse(1) <= not(IsReleased); end if; -- F2 - if KbdScanCode = x"04" then fn_pulse(2) <= not(IsReleased); end if; -- F3 - if KbdScanCode = x"0C" then fn_pulse(3) <= not(IsReleased); end if; -- F4 - if KbdScanCode = x"03" then fn_pulse(4) <= not(IsReleased); end if; -- F5 - if KbdScanCode = x"0B" then fn_pulse(5) <= not(IsReleased); end if; -- F6 - if KbdScanCode = x"83" then fn_pulse(6) <= not(IsReleased); end if; -- F7 - if KbdScanCode = x"0A" then fn_pulse(7) <= not(IsReleased); end if; -- F8 - end if; - - if fn_pulse_r(0) = '1' and fn_pulse(0) = '0' then fn_toggle(0) <= not fn_toggle(0); end if; - if fn_pulse_r(1) = '1' and fn_pulse(1) = '0' then fn_toggle(1) <= not fn_toggle(1); end if; - if fn_pulse_r(2) = '1' and fn_pulse(2) = '0' then fn_toggle(2) <= not fn_toggle(2); end if; - if fn_pulse_r(3) = '1' and fn_pulse(3) = '0' then fn_toggle(3) <= not fn_toggle(3); end if; - if fn_pulse_r(4) = '1' and fn_pulse(4) = '0' then fn_toggle(4) <= not fn_toggle(4); end if; - if fn_pulse_r(5) = '1' and fn_pulse(5) = '0' then fn_toggle(5) <= not fn_toggle(5); end if; - if fn_pulse_r(6) = '1' and fn_pulse(6) = '0' then fn_toggle(6) <= not fn_toggle(6); end if; - if fn_pulse_r(7) = '1' and fn_pulse(7) = '0' then fn_toggle(7) <= not fn_toggle(7); end if; - - end if; -end process; - -end Behavioral; - - diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/sdram.sv b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/sdram.sv deleted file mode 100644 index de815a55..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/rtl_dar/sdram.sv +++ /dev/null @@ -1,150 +0,0 @@ -// -// sdram.v -// -// (Darfpga configuration for 1x8bits write / 8x16bits read - 01/12/2019) -// -// sdram controller implementation for the MiST board adaptation -// of Luddes NES core -// http://code.google.com/p/mist-board/ -// -// Copyright (c) 2013 Till Harbaum -// -// This source file is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This source file is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -// - -module sdram ( - - // interface to the MT48LC16M16 chip - inout [15:0] sd_data, // 16 bit bidirectional data bus - output [12:0] sd_addr, // 13 bit multiplexed address bus - output [1:0] sd_dqm, // two byte masks - output [1:0] sd_ba, // two banks - output sd_cs, // a single chip select - output sd_we, // write enable - output sd_ras, // row address select - output sd_cas, // columns address select - - // cpu/chipset interface - input init, // init signal after FPGA config to initialize RAM - input clk, // sdram is accessed at up to 128MHz - - input [24:0] addr, // 25 bit byte address - input we, // requests write - input [7:0] di, // data input - input rd, // requests data - output[4:0] sm_cycle // state machine cycle - -); - -// burst 8 data configured -localparam RASCAS_DELAY = 3'd3; // tRCD=20ns -> 3 cycles@130MHz -localparam BURST_LENGTH = 3'b011; // 000=1, 001=2, 010=4, 011=8 -localparam ACCESS_TYPE = 1'b0; // 0=sequential, 1=interleaved -localparam CAS_LATENCY = 3'd2; // 2/3 allowed -localparam OP_MODE = 2'b00; // only 00 (standard operation) allowed -localparam NO_WRITE_BURST = 1'b1; // 0= write burst enabled, 1=only single access write - -localparam MODE = { 3'b000, NO_WRITE_BURST, OP_MODE, CAS_LATENCY, ACCESS_TYPE, BURST_LENGTH}; - -// --------------------------------------------------------------------- -// ------------------------ cycle state machine ------------------------ -// --------------------------------------------------------------------- - -localparam STATE_FIRST = 5'd0; // first state in cycle -localparam STATE_CMD_START = 5'd1; // state in which a new command can be started -localparam STATE_CMD_CONT = STATE_CMD_START + RASCAS_DELAY; // 4 command can be continued -localparam STATE_CMD_REF1 = 5'd17; // last state in cycle -localparam STATE_CMD_REF2 = 5'd22; // last state in cycle -localparam STATE_LAST = 5'd31; // last state in cycle - -reg [4:0] q; -always @(posedge clk) begin - // SDRAM (state machine) - // wait for read or write to start cycle - if (q == STATE_LAST) q <= STATE_FIRST; - else if ((q == STATE_FIRST) && (we || rd) || (q != STATE_FIRST)) q <= q + 5'd1; -end - -assign sm_cycle = q; - -// --------------------------------------------------------------------- -// --------------------------- startup/reset --------------------------- -// --------------------------------------------------------------------- - -// wait 700us (85000 cycles) after FPGA config is done before going -// into normal operation. Initialize the ram in the last 16 reset cycles (cycles 15-0) -reg [16:0] reset; -always @(posedge clk) begin - if(init) reset <= 17'h14c08; - else if((q == STATE_LAST) && (reset != 0)) - reset <= reset - 17'd1; -end - -// --------------------------------------------------------------------- -// ------------------ generate ram control signals --------------------- -// --------------------------------------------------------------------- - -// all possible commands -localparam CMD_INHIBIT = 4'b1111; -localparam CMD_NOP = 4'b0111; -localparam CMD_ACTIVE = 4'b0011; -localparam CMD_READ = 4'b0101; -localparam CMD_WRITE = 4'b0100; -localparam CMD_BURST_TERMINATE = 4'b0110; -localparam CMD_PRECHARGE = 4'b0010; -localparam CMD_AUTO_REFRESH = 4'b0001; -localparam CMD_LOAD_MODE = 4'b0000; - -wire [3:0] sd_cmd; // current command sent to sd ram - -// drive control signals according to current command -assign sd_cs = sd_cmd[3]; -assign sd_ras = sd_cmd[2]; -assign sd_cas = sd_cmd[1]; -assign sd_we = sd_cmd[0]; - -// drive ram data lines when writing, set them as inputs otherwise -// the eight bits are sent on both bytes ports. Which one's actually -// written depends on the state of dqm of which only one is active -// at a time when writing -assign sd_data = we?{di, di}:16'bZZZZZZZZZZZZZZZZ; - -wire [3:0] reset_cmd = - ((q == STATE_CMD_START) && (reset == 13))?CMD_PRECHARGE: - ((q == STATE_CMD_START) && (reset == 2))?CMD_LOAD_MODE: - CMD_INHIBIT; - -wire [3:0] run_cmd = - ((we || rd) && (q == STATE_CMD_START))?CMD_ACTIVE: - (we && (q == STATE_CMD_CONT ))?CMD_WRITE: - (!we && rd && (q == STATE_CMD_CONT ))?CMD_READ: -// (!we && !rd && (q == STATE_CMD_START))?CMD_AUTO_REFRESH: - ((q == STATE_CMD_REF1))?CMD_AUTO_REFRESH: - ((q == STATE_CMD_REF2))?CMD_AUTO_REFRESH: - CMD_INHIBIT; - -assign sd_cmd = (reset != 0)?reset_cmd:run_cmd; - -wire [12:0] reset_addr = (reset == 13)?13'b0010000000000:MODE; - -wire [12:0] run_addr = - (q == STATE_CMD_START)?addr[21:9]:{ 4'b0010, addr[24], addr[8:1]}; - -assign sd_addr = (reset != 0)?reset_addr:run_addr; - -assign sd_ba = addr[23:22]; - -assign sd_dqm = we?{ addr[0], ~addr[0] }:2'b00; - -endmodule diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/spy_hunter_de10_lite.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/spy_hunter_de10_lite.vhd deleted file mode 100644 index 80f58d48..00000000 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/spy_hunter_de10_lite.vhd +++ /dev/null @@ -1,676 +0,0 @@ ---------------------------------------------------------------------------------- --- DE10_lite Top level for Spy hunter (Midway MCR) by Dar (darfpga@aol.fr) (06/12/2019) --- http://darfpga.blogspot.fr ---------------------------------------------------------------------------------- --- --- release rev 00 : initial release --- (06/12/2019) --- --- fit de10_lite OK : --- - use sdram loader to load sprites data first then load spy hunter core - ---------------------------------------------------------------------------------- --- Educational use only --- Do not redistribute synthetized file with roms --- Do not redistribute roms whatever the form --- Use at your own risk ---------------------------------------------------------------------------------- --- Use spy_hunter_de10_lite.sdc to compile (Timequest constraints) --- /!\ --- Don't forget to set device configuration mode with memory initialization --- (Assignments/Device/Pin options/Configuration mode) ---------------------------------------------------------------------------------- --- --- Main features : --- PS2 keyboard input @gpio pins 35/34 (beware voltage translation/protection) --- Audio pwm output @gpio pins 1/3 (beware voltage translation/protection) --- --- Video : VGA 31kHz/60Hz progressive and TV 15kHz interlaced --- Cocktail mode : NO --- Sound : OK - missing Chip/cheap squeak deluxe board --- --- For hardware schematic see my other project : NES --- --- Uses 1 pll 40MHz from 50MHz to make 20MHz and 8Mhz --- --- Board key : --- 0 : reset game --- --- Keyboard players inputs : --- --- F1 : Add coin --- F3 : toggle lamp text display on screen --- F4 : Demo sound --- F5 : Separate audio --- F7 : Service mode --- F8 : 15kHz interlaced / 31 kHz progressive - --- F2 : toggle hi/low gear shift --- SPACE : oil --- f key : missile --- g key : van --- t key : smoke --- v key : gun - --- RIGHT arrow : turn right side (auto center when released) --- LEFT arrow : tirn left side (auto center when released) --- UP arrow : gas increase --- DOWN arrow : gas decrease --- --- Other details : see timber.vhd --- For USB inputs and SGT5000 audio output see my other project: xevious_de10_lite ---------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_unsigned.all; -use ieee.numeric_std.all; - -library work; ---use work.usb_report_pkg.all; - -entity spy_hunter_de10_lite is -port( - max10_clk1_50 : in std_logic; --- max10_clk2_50 : in std_logic; --- adc_clk_10 : in std_logic; - ledr : out std_logic_vector(9 downto 0); - key : in std_logic_vector(1 downto 0); - sw : in std_logic_vector(9 downto 0); - - dram_ba : out std_logic_vector(1 downto 0); - dram_ldqm : out std_logic; - dram_udqm : out std_logic; - dram_ras_n : out std_logic; - dram_cas_n : out std_logic; - dram_cke : out std_logic; - dram_clk : out std_logic; - dram_we_n : out std_logic; - dram_cs_n : out std_logic; - dram_dq : inout std_logic_vector(15 downto 0); - dram_addr : out std_logic_vector(12 downto 0); - - hex0 : out std_logic_vector(7 downto 0); - hex1 : out std_logic_vector(7 downto 0); - hex2 : out std_logic_vector(7 downto 0); - hex3 : out std_logic_vector(7 downto 0); - hex4 : out std_logic_vector(7 downto 0); - hex5 : out std_logic_vector(7 downto 0); - - vga_r : out std_logic_vector(3 downto 0); - vga_g : out std_logic_vector(3 downto 0); - vga_b : out std_logic_vector(3 downto 0); - vga_hs : inout std_logic; - vga_vs : inout std_logic; - --- gsensor_cs_n : out std_logic; --- gsensor_int : in std_logic_vector(2 downto 0); --- gsensor_sdi : inout std_logic; --- gsensor_sdo : inout std_logic; --- gsensor_sclk : out std_logic; - --- arduino_io : inout std_logic_vector(15 downto 0); --- arduino_reset_n : inout std_logic; - - gpio : inout std_logic_vector(35 downto 0) -); -end spy_hunter_de10_lite; - -architecture struct of spy_hunter_de10_lite is - -component sdram is -port ( - - sd_data : inout std_logic_vector(15 downto 0); - sd_addr : out std_logic_vector(12 downto 0); - sd_dqm : out std_logic_vector(1 downto 0); - sd_ba : out std_logic_vector(1 downto 0); - sd_cs : out std_logic; - sd_we : out std_logic; - sd_ras : out std_logic; - sd_cas : out std_logic; - - init : in std_logic; - clk : in std_logic; - - addr : in std_logic_vector(24 downto 0); - - we : in std_logic; - di : in std_logic_vector(7 downto 0); - - rd : in std_logic; - sm_cycle: out std_logic_vector( 4 downto 0) - -); end component sdram; - - signal pll_locked: std_logic; - signal clock_40 : std_logic; - signal clock_kbd : std_logic; - signal reset : std_logic; - - signal clock_div : std_logic_vector(3 downto 0); - - signal clock_120 : std_logic; - signal clock_120_sdram : std_logic; -- (-2ns w.r.t clock_120) - signal dram_dqm : std_logic_vector(1 downto 0); - --- signal max3421e_clk : std_logic; - - signal r : std_logic_vector(2 downto 0); - signal g : std_logic_vector(2 downto 0); - signal b : std_logic_vector(2 downto 0); - signal hsync : std_logic; - signal vsync : std_logic; - signal csync : std_logic; - signal blankn : std_logic; - signal tv15Khz_mode : std_logic; - - signal audio_l : std_logic_vector(15 downto 0); - signal audio_r : std_logic_vector(15 downto 0); - signal pwm_accumulator_l : std_logic_vector(17 downto 0); - signal pwm_accumulator_r : std_logic_vector(17 downto 0); - - alias reset_n : std_logic is key(0); - alias ps2_clk : std_logic is gpio(35); --gpio(0); - alias ps2_dat : std_logic is gpio(34); --gpio(1); - alias pwm_audio_out_l : std_logic is gpio(1); --gpio(2); - alias pwm_audio_out_r : std_logic is gpio(3); --gpio(3); - - signal kbd_intr : std_logic; - signal kbd_scancode : std_logic_vector(7 downto 0); - signal joy_BBBBFRLDU : std_logic_vector(8 downto 0); - signal fn_pulse : std_logic_vector(7 downto 0); - signal fn_toggle : std_logic_vector(7 downto 0); - - signal vsync_r : std_logic; - - signal sp_rom_addr : std_logic_vector(17 downto 0); - signal sp_rom_rd : std_logic; - - signal sp_rom_cycle : std_logic_vector( 4 downto 0); - signal sp_rom_data : std_logic_vector(15 downto 0); - signal sp_graphx0 : std_logic_vector(31 downto 0); - signal sp_graphx1 : std_logic_vector(31 downto 0); - signal sp_graphx2 : std_logic_vector(31 downto 0); - signal sp_graphx3 : std_logic_vector(31 downto 0); - - signal steering : std_logic_vector(7 downto 0); - signal steering_plus : std_logic; - signal steering_plus_r : std_logic; - signal steering_minus : std_logic; - signal steering_minus_r : std_logic; - signal steering_timer : std_logic_vector(5 downto 0); - - signal gas : std_logic_vector(7 downto 0); - signal gas_plus : std_logic; - signal gas_plus_r : std_logic; - signal gas_minus : std_logic; - signal gas_minus_r : std_logic; - signal gas_timer : std_logic_vector(5 downto 0); - --- signal start : std_logic := '0'; --- signal usb_report : usb_report_t; --- signal new_usb_report : std_logic := '0'; - -signal dbg_cpu_addr : std_logic_vector(15 downto 0); - -begin - -reset <= not reset_n; - -tv15Khz_mode <= not fn_toggle(7); -- F8 - ---arduino_io not used pins ---arduino_io(7) <= '1'; -- to usb host shield max3421e RESET ---arduino_io(8) <= 'Z'; -- from usb host shield max3421e GPX ---arduino_io(9) <= 'Z'; -- from usb host shield max3421e INT ---arduino_io(13) <= 'Z'; -- not used ---arduino_io(14) <= 'Z'; -- not used - --- Clock 40MHz for kick core and sound_board ---clocks : entity work.max10_pll_40M ---port map( --- inclk0 => max10_clk1_50, --- c0 => clock_40, --- locked => pll_locked ---); - -clocks : entity work.max10_pll_120M_sdram -port map( - inclk0 => max10_clk1_50, - c0 => clock_120, - c1 => clock_120_sdram, - c2 => clock_40, - locked => pll_locked -); - --- Timber -spy_hunter : entity work.spy_hunter -port map( - clock_40 => clock_40, - reset => reset, - - tv15Khz_mode => tv15Khz_mode, - video_r => r, - video_g => g, - video_b => b, - video_csync => csync, - video_blankn => blankn, - video_hs => hsync, - video_vs => vsync, - - separate_audio => fn_toggle(4), -- F5 - audio_out_l => audio_l, - audio_out_r => audio_r, - - coin1 => fn_pulse(0), -- F1 - coin2 => '0', - - shift => fn_toggle(1), -- F2 - oil => joy_BBBBFRLDU(4), -- space - missile => joy_BBBBFRLDU(5), -- f - van => joy_BBBBFRLDU(6), -- g - smoke => joy_BBBBFRLDU(7), -- t - gun => joy_BBBBFRLDU(8), -- v - --- lamp_oil => ledr(0), --- lamp_missile => ledr(1), --- lamp_van => ledr(2), --- lamp_smoke => ledr(3), --- lamp_gun => ledr(4), - show_lamps => fn_toggle(2), -- F3 - - steering => steering, - gas => gas, - - timer => '1', - demo_sound => fn_toggle(3), -- F4 - service => fn_toggle(6), -- F7 -- (allow machine settings access) - - -- external sprite roms - sp_rom_addr => sp_rom_addr, -- highest bit tell direct or reverse order - sp_rom_rd => sp_rom_rd, -- read trigger should last enough for sdram.v - --- External (sd)ram has 4cycles @ 40MHz = 100ns to deliver sp_rom_data_0 --- then sp_rom_data_1 4 cycles later and so on. --- Code may be adapted to slower ram with the risk of having not all sprites --- displayed. --- --- direct ordrer : --- sp_graphx0, bytes# 1 of rom1 & rom2 & rom3 & rom4 --- sp_graphx1, bytes# 2 of rom1 & rom2 & rom3 & rom4 --- sp_graphx2, bytes# 3 of rom1 & rom2 & rom3 & rom4 --- sp_graphx3, bytes# 4 of rom1 & rom2 & rom3 & rom4 - --- reverse ordrer : --- sp_graphx0, bytes# 4 of rom4 & rom3 & rom2 & rom1 --- sp_graphx1, bytes# 3 of rom4 & rom3 & rom2 & rom1 --- sp_graphx2, bytes# 2 of rom4 & rom3 & rom2 & rom1 --- sp_graphx3, bytes# 1 of rom4 & rom3 & rom2 & rom1 - - sp_graphx0 => sp_graphx0, - sp_graphx1 => sp_graphx1, - sp_graphx2 => sp_graphx2, - sp_graphx3 => sp_graphx3, - - dbg_cpu_addr => dbg_cpu_addr -); - -dram_ldqm <= dram_dqm(0); -dram_udqm <= dram_dqm(1); -dram_cke <= '1'; -dram_clk <= clock_120_sdram; - -sdram_if : sdram -port map( - -- sdram interface - sd_data => dram_dq, -- 16 bit bidirectional data bus - sd_addr => dram_addr, -- 13 bit multiplexed address bus - sd_dqm => dram_dqm, -- two byte masks - sd_ba => dram_ba, -- two banks - sd_cs => dram_cs_n, -- a single chip select - sd_we => dram_we_n, -- write enable - sd_ras => dram_ras_n, -- row address select - sd_cas => dram_cas_n, -- columns address select - - -- cpu/chipset interface - init => not pll_locked, -- init signal after FPGA config to initialize RAM - clk => clock_120, -- sdram is accessed at up to 128MHz - - addr => "0000000"& sp_rom_addr, -- 25 bit byte address - - we => '0', -- requests write - di => x"FF", -- data input - - rd => sp_rom_rd, -- requests data - sm_cycle => sp_rom_cycle -- state machine cycle -); - -process (clock_120) -begin - if falling_edge(clock_120) then - sp_rom_data <= dram_dq; - if sp_rom_cycle = 8 then sp_graphx0(31 downto 16) <= sp_rom_data; end if; - if sp_rom_cycle = 9 then sp_graphx0(15 downto 0) <= sp_rom_data; end if; - if sp_rom_cycle = 10 then sp_graphx1(31 downto 16) <= sp_rom_data; end if; - if sp_rom_cycle = 11 then sp_graphx1(15 downto 0) <= sp_rom_data; end if; - if sp_rom_cycle = 12 then sp_graphx2(31 downto 16) <= sp_rom_data; end if; - if sp_rom_cycle = 13 then sp_graphx2(15 downto 0) <= sp_rom_data; end if; - if sp_rom_cycle = 14 then sp_graphx3(31 downto 16) <= sp_rom_data; end if; - if sp_rom_cycle = 15 then sp_graphx3(15 downto 0) <= sp_rom_data; end if; - end if; -end process; - --- absolute position decoder simulation --- --- steering : --- thresholds median --- F5 < left 8 < 34 30 --- 35 < left 7 < 3C 38 --- 3D < left 6 < 44 40 --- 45 < left 5 < 4C 48 --- 4D < left 4 < 54 50 --- 45 < left 3 < 5C 58 --- 5D < left 2 < 64 60 --- 65 < left 1 < 6C 68 --- 6D < centrered < 74 70 --- 75 < right 1 < 7C 78 --- 7D < right 2 < 84 80 --- 85 < right 3 < 8C 88 --- 8D < right 4 < 94 90 --- 95 < right 5 < 9C 98 --- 9D < right 6 < A4 A0 --- A5 < right 7 < AC A8 --- AD < right 8 < F4 BO - --- gas : --- threshold median --- 00 < gas pedal 00 < 3B (39) 3E-5 --- 3C < gas pedal 01 < 40 3E --- 41 < gas pedal 02 < 45 43 --- 46 < gas pedal 03 < 4A 48 --- 4B < gas pedal 04 < 4F 4D --- 50 < gas pedal 05 < 54 52 --- 55 < gas pedal 06 < 59 57 --- 5A < gas pedal 07 < 5E 5C --- 5F < gas pedal 08 < 63 61 --- ... --- FA < gas pedal 27 < FE FC --- FF = gas pedal 28 (FF) FC+4 - - -gas_plus <= joy_BBBBFRLDU(0); -gas_minus <= joy_BBBBFRLDU(1); -steering_plus <= joy_BBBBFRLDU(3); -steering_minus <= joy_BBBBFRLDU(2); - -process (clock_40) -begin - if reset = '1' then - gas <= x"39"; - steering <= x"70"; - else - - if rising_edge(clock_40) then - gas_plus_r <= gas_plus; - gas_minus_r <= gas_minus; - steering_plus_r <= steering_plus; - steering_minus_r <= steering_minus; - vsync_r <= vsync; - - -- gas increase/decrease as long as btn is pushed - -- keep current value when no btn is pushed - if gas < x"39" then - gas <= x"39"; - else - if (gas_plus_r = not gas_plus) or - (gas_minus_r = not gas_minus) then - gas_timer <= (others => '0'); - else - if vsync_r ='0' and vsync = '1' then - if (gas_timer >= 5 and (gas_minus_r = '1' or gas_plus_r = '1')) then --tune inc/dec rate - gas_timer <= (others => '0'); - else - gas_timer <= gas_timer + 1; - end if; - end if; - end if; - - if vsync_r ='0' and vsync = '1' and gas_timer = 0 then - if gas_plus = '1' then - if gas >= x"FC" then gas <= x"FF"; else gas <= gas + 5; end if; - elsif gas_minus = '1' then - if gas <= x"3E" then gas <= x"39"; else gas <= gas - 5; end if; - end if; - end if; - - end if; - - -- steering increase/decrease as long as btn is pushed - -- return to center value when no btn is pushed - if steering < x"30" then - steering <= x"30"; - elsif steering > x"B0" then - steering <= x"B0"; - else - if (steering_plus_r = not steering_plus) or - (steering_minus_r = not steering_minus) then - steering_timer <= (others => '0'); - else - if vsync_r ='0' and vsync = '1' then - if (steering_timer >= 7 and (steering_minus_r = '1' or steering_plus_r = '1')) or -- tune btn pushed rate - (steering_timer >= 3 and (steering_minus_r = '0' and steering_plus_r = '0')) then -- tune btn released rate - steering_timer <= (others => '0'); - else - steering_timer <= steering_timer + 1; - end if; - end if; - end if; - - if vsync_r ='0' and vsync = '1' and steering_timer = 0 then - if steering_plus = '1' then - if steering >= x"A8" then steering <= x"B0"; else steering <= steering + 8; end if; - elsif steering_minus = '1' then - if steering <= x"38" then steering <= x"30"; else steering <= steering - 8; end if; - else - if steering <= x"68" then steering <= steering + 8; end if; - if steering >= x"78" then steering <= steering - 8; end if; - if (steering > x"68") and (steering < x"78") then steering <= x"70"; end if; - end if; - end if; - - end if; - - end if; - - end if; -end process; - - --- adapt video to 4bits/color only and blank -vga_r <= r & '0' when blankn = '1' else "0000"; -vga_g <= g & '0' when blankn = '1' else "0000"; -vga_b <= b & '0' when blankn = '1' else "0000"; - --- synchro composite/ synchro horizontale --- vga_hs <= csync; --- vga_hs <= hsync; -vga_hs <= csync when tv15Khz_mode = '1' else hsync; --- commutation rapide / synchro verticale --- vga_vs <= '1'; --- vga_vs <= vsync; -vga_vs <= '1' when tv15Khz_mode = '1' else vsync; - ---sound_string <= "00" & audio & "000" & "00" & audio & "000"; - --- get scancode from keyboard -process (reset, clock_40) -begin - if reset='1' then - clock_div <= (others => '0'); - clock_kbd <= '0'; - else - if rising_edge(clock_40) then - if clock_div = "1001" then - clock_div <= (others => '0'); - clock_kbd <= not clock_kbd; - else - clock_div <= clock_div + '1'; - end if; - end if; - end if; -end process; - -keyboard : entity work.io_ps2_keyboard -port map ( - clk => clock_kbd, -- synchrounous clock with core - kbd_clk => ps2_clk, - kbd_dat => ps2_dat, - interrupt => kbd_intr, - scancode => kbd_scancode -); - --- translate scancode to joystick -joystick : entity work.kbd_joystick -port map ( - clk => clock_kbd, -- synchrounous clock with core - kbdint => kbd_intr, - kbdscancode => std_logic_vector(kbd_scancode), - joy_BBBBFRLDU => joy_BBBBFRLDU, - fn_pulse => fn_pulse, - fn_toggle => fn_toggle -); - - --- usb host for max3421e arduino shield (modified) ---max3421e_clk <= clock_11; ---usb_host : entity work.usb_host_max3421e ---port map( --- clk => max3421e_clk, --- reset => reset, --- start => start, --- --- usb_report => usb_report, --- new_usb_report => new_usb_report, --- --- spi_cs_n => arduino_io(10), --- spi_clk => arduino_io(13), --- spi_mosi => arduino_io(11), --- spi_miso => arduino_io(12) ---); - --- usb keyboard report decoder - ---keyboard_decoder : entity work.usb_keyboard_decoder ---port map( --- clk => max3421e_clk, --- --- usb_report => usb_report, --- new_usb_report => new_usb_report, --- --- joyBCPPFRLDU => joyBCPPFRLDU ---); - --- usb joystick decoder (konix drakkar wireless) - ---joystick_decoder : entity work.usb_joystick_decoder ---port map( --- clk => max3421e_clk, --- --- usb_report => usb_report, --- new_usb_report => new_usb_report, --- --- joyBCPPFRLDU => open --joyBCPPFRLDU ---); - --- debug display - ---ledr(8 downto 0) <= joyBCPPFRLDU; --- ---h0 : entity work.decodeur_7_seg port map(kbd_scancode(3 downto 0), hex0); ---h1 : entity work.decodeur_7_seg port map(kbd_scancode(7 downto 4), hex1); -h0 : entity work.decodeur_7_seg port map(dbg_cpu_addr( 3 downto 0),hex0); -h1 : entity work.decodeur_7_seg port map(dbg_cpu_addr( 7 downto 4),hex1); -h2 : entity work.decodeur_7_seg port map(dbg_cpu_addr(11 downto 8),hex2); -h3 : entity work.decodeur_7_seg port map(dbg_cpu_addr(15 downto 12),hex3); - --- HI / LOW gear shift display - --- 7 segment bits: --- --0-- --- 5 1 --- |-6-| --- 4 2 --- --3-- .7 (dot) - -hex5 <= not "01110110" when fn_toggle(1) = '1' else not "00111000"; -- H or L -hex4 <= not "00110000" when fn_toggle(1) = '1' else not "00111111"; -- I or O - ---h4 : entity work.decodeur_7_seg port map(sp_rom_cycle(3 downto 0),hex4); ---h5 : entity work.decodeur_7_seg port map(dummy3,hex5); - --- audio for sgtl5000 - ---sample_data <= "00" & audio & "000" & "00" & audio & "000"; - --- Clock 1us for ym_8910 - ---p_clk_1us_p : process(max10_clk1_50) ---begin --- if rising_edge(max10_clk1_50) then --- if cnt_1us = 0 then --- cnt_1us <= 49; --- clk_1us <= '1'; --- else --- cnt_1us <= cnt_1us - 1; --- clk_1us <= '0'; --- end if; --- end if; ---end process; - --- sgtl5000 (teensy audio shield on top of usb host shield) - ---e_sgtl5000 : entity work.sgtl5000_dac ---port map( --- clock_18 => clock_18, --- reset => reset, --- i2c_clock => clk_1us, --- --- sample_data => sample_data, --- --- i2c_sda => arduino_io(0), -- i2c_sda, --- i2c_scl => arduino_io(1), -- i2c_scl, --- --- tx_data => arduino_io(2), -- sgtl5000 tx --- mclk => arduino_io(4), -- sgtl5000 mclk --- --- lrclk => arduino_io(3), -- sgtl5000 lrclk --- bclk => arduino_io(6), -- sgtl5000 bclk --- --- -- debug --- hex0_di => open, -- hex0_di, --- hex1_di => open, -- hex1_di, --- hex2_di => open, -- hex2_di, --- hex3_di => open, -- hex3_di, --- --- sw => sw(7 downto 0) ---); - --- pwm sound output -process(clock_40) -- use same clock as kick_sound_board -begin - if rising_edge(clock_40) then - - if clock_div = "0000" then - pwm_accumulator_l <= ('0'&pwm_accumulator_l(16 downto 0)) + ('0'&audio_l&'0'); - pwm_accumulator_r <= ('0'&pwm_accumulator_r(16 downto 0)) + ('0'&audio_r&'0'); - end if; - - end if; -end process; - -pwm_audio_out_l <= pwm_accumulator_l(17); -pwm_audio_out_r <= pwm_accumulator_r(17); - - -end struct; diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/linux32/duplicate_byte b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/linux32/duplicate_byte deleted file mode 100644 index f1dff2e906d91aa6738603764f875c8ed747b330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7356 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 diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/win64/duplicate_byte.exe b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/win64/duplicate_byte.exe deleted file mode 100644 index 425e90822b2f57da8560b09b172694a3f60cc33b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117095 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 lpY(m?GR)K7P}>N1s;ft6^%!9m$`Dil~% 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 diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/win64/make_vhdl_prom.exe b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/tools/tools_prom_src/binaries/win64/make_vhdl_prom.exe deleted file mode 100644 index 1e5618bf9417eaeb90556e3021a78e9860a815e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119861 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 H%=`ZUgl -#include -#include -#include -main (int argc, char **argv) -{ -unsigned char byte; -int data_len,nb_byte,first_byte; -char *end_file_name; -FILE *fid_in,*fid_out; - -if (argc != 3) -{ - printf("Syntax : %s file_in file_out\n",argv[0]); - exit(0); -} - -fid_in = fopen(argv[1],"rb"); -if (fid_in == NULL) -{ - printf("can't open %s\n",argv[1]); - exit(0); -} - -fid_out = fopen(argv[2],"wt"); -if (fid_out == NULL) -{ - printf("can't open %s\n",argv[2]); - fclose(fid_in); - exit(0); -} - -end_file_name = strstr(argv[2],".vhd"); -if (end_file_name!=NULL) *end_file_name='\0'; - -fseek(fid_in,0,SEEK_END); -data_len = ftell(fid_in); -fseek(fid_in,0,SEEK_SET); - -fprintf(fid_out,"library ieee;\n"); -fprintf(fid_out,"use ieee.std_logic_1164.all,ieee.numeric_std.all;\n\n"); -fprintf(fid_out,"entity %s is\n",argv[2]); -fprintf(fid_out,"port (\n"); -fprintf(fid_out,"\tclk : in std_logic;\n"); -fprintf(fid_out,"\taddr : in std_logic_vector(%d downto 0);\n",(int)ceil(log2((double)data_len))-1); -fprintf(fid_out,"\tdata : out std_logic_vector(7 downto 0)\n"); -fprintf(fid_out,");\n"); -fprintf(fid_out,"end entity;\n\n"); -fprintf(fid_out,"architecture prom of %s is\n",argv[2]); -fprintf(fid_out,"\ttype rom is array(0 to %d) of std_logic_vector(7 downto 0);\n",data_len-1); -fprintf(fid_out,"\tsignal rom_data: rom := ("); - -nb_byte = 0; -first_byte = 1; -while(fread(&byte,1,1,fid_in)==1) -{ - if (nb_byte==0) - { - if (first_byte==0) fprintf(fid_out,","); - fprintf(fid_out,"\n\t\t"); - } - else - { fprintf(fid_out,","); } - first_byte = 0; - - fprintf(fid_out,"X\"%02X\"",byte); - nb_byte++; - if (nb_byte==16) nb_byte=0; -} -fprintf(fid_out,");\n"); - -fprintf(fid_out,"begin\n"); -fprintf(fid_out,"process(clk)\n"); -fprintf(fid_out,"begin\n"); -fprintf(fid_out,"\tif rising_edge(clk) then\n"); -fprintf(fid_out,"\t\tdata <= rom_data(to_integer(unsigned(addr)));\n"); -fprintf(fid_out,"\tend if;\n"); -fprintf(fid_out,"end process;\n"); -fprintf(fid_out,"end architecture;\n"); - -fclose(fid_in); -fclose(fid_out); -}