Cambios en generamcs_multi.bat para facilitar el automatizado

This commit is contained in:
antoniovillena 2016-07-23 21:38:17 +02:00
parent fc34338cbf
commit 48f4ceb985
5 changed files with 70 additions and 6523 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,39 +0,0 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 04:12:52 02/09/2014
// Design Name:
// Module Name: rom
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module rom (
input wire clk,
input wire [13:0] a,
output reg [7:0] dout
);
reg [7:0] mem[0:8191];
integer i;
initial begin // usa $readmemb/$readmemh dependiendo del formato del fichero que contenga la ROM
for (i=0;i<8192;i=i+1) begin
mem[i] = 8'h00;
end
$readmemh ("firmloader_hex.txt", mem, 0);
end
always @(posedge clk) begin
dout <= mem[a[12:0]];
end
endmodule

View File

@ -1,6 +1,6 @@
# Clocks & debug
NET "clk50mhz" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns;
NET "testled" LOC="P2" | IOSTANDARD = LVCMOS33;
#NET "testled" LOC="P2" | IOSTANDARD = LVCMOS33;
# Video output
NET "r<2>" LOC="P97" | IOSTANDARD = LVCMOS33;
@ -12,21 +12,21 @@ NET "g<0>" LOC="P85" | IOSTANDARD = LVCMOS33;
NET "b<2>" LOC="P84" | IOSTANDARD = LVCMOS33;
NET "b<1>" LOC="P83" | IOSTANDARD = LVCMOS33;
NET "b<0>" LOC="P82" | IOSTANDARD = LVCMOS33;
NET "hsync" LOC="P93" | IOSTANDARD = LVCMOS33;
NET "vsync" LOC="P92" | IOSTANDARD = LVCMOS33;
NET "csync" LOC="P93" | IOSTANDARD = LVCMOS33;
#NET "vsync" LOC="P92" | IOSTANDARD = LVCMOS33;
NET "stdn" LOC="P51" | IOSTANDARD = LVCMOS33;
NET "stdnb" LOC="P50" | IOSTANDARD = LVCMOS33;
# Sound input/output
NET "audio_out_left" LOC="P98" | IOSTANDARD = LVCMOS33;
NET "audio_out_right" LOC="P99" | IOSTANDARD = LVCMOS33;
NET "ear" LOC="P1" | IOSTANDARD = LVCMOS33;
#NET "audio_out_left" LOC="P98" | IOSTANDARD = LVCMOS33;
#NET "audio_out_right" LOC="P99" | IOSTANDARD = LVCMOS33;
#NET "ear" LOC="P1" | IOSTANDARD = LVCMOS33;
# Keyboard and mouse
NET "clkps2" LOC="P143" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "dataps2" LOC="P142" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "mouseclk" LOC="P57" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "mousedata" LOC="P56" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "clkps2" LOC="P143" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "dataps2" LOC="P142" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "mouseclk" LOC="P57" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "mousedata" LOC="P56" | IOSTANDARD = LVCMOS33 | PULLUP;
# SRAM
NET "sram_addr<0>" LOC="P115" | IOSTANDARD = LVCMOS33;
@ -63,29 +63,29 @@ NET "sram_data<7>" LOC="P100" | IOSTANDARD = LVCMOS33;
NET "sram_we_n" LOC="P134" | IOSTANDARD = LVCMOS33;
# SPI Flash
NET "flash_cs_n" LOC="P38" | IOSTANDARD = LVCMOS33;
NET "flash_clk" LOC="P70" | IOSTANDARD = LVCMOS33;
NET "flash_mosi" LOC="P64" | IOSTANDARD = LVCMOS33;
NET "flash_miso" LOC="P65" | IOSTANDARD = LVCMOS33;
NET "flash_ext1" LOC="P62" | IOSTANDARD = LVCMOS33;
NET "flash_ext2" LOC="P61" | IOSTANDARD = LVCMOS33;
#NET "flash_cs_n" LOC="P38" | IOSTANDARD = LVCMOS33;
#NET "flash_clk" LOC="P70" | IOSTANDARD = LVCMOS33;
#NET "flash_mosi" LOC="P64" | IOSTANDARD = LVCMOS33;
#NET "flash_miso" LOC="P65" | IOSTANDARD = LVCMOS33;
#NET "flash_ext1" LOC="P62" | IOSTANDARD = LVCMOS33;
#NET "flash_ext2" LOC="P61" | IOSTANDARD = LVCMOS33;
# SD/MMC
NET "sd_cs_n" LOC="P78" | IOSTANDARD = LVCMOS33;
NET "sd_clk" LOC="P80" | IOSTANDARD = LVCMOS33;
NET "sd_mosi" LOC="P79" | IOSTANDARD = LVCMOS33;
NET "sd_miso" LOC="P81" | IOSTANDARD = LVCMOS33;
#NET "sd_cs_n" LOC="P78" | IOSTANDARD = LVCMOS33;
#NET "sd_clk" LOC="P80" | IOSTANDARD = LVCMOS33;
#NET "sd_mosi" LOC="P79" | IOSTANDARD = LVCMOS33;
#NET "sd_miso" LOC="P81" | IOSTANDARD = LVCMOS33;
# JOYSTICK
NET "joyup" LOC="P58" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "joydown" LOC="P59" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "joyleft" LOC="P67" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "joyright" LOC="P74" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "joyfire" LOC="P66" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joyup" LOC="P58" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joydown" LOC="P59" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joyleft" LOC="P67" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joyright" LOC="P74" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joyfire" LOC="P66" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joyfire2" LOC="P75" | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joyfire3" LOC="P39" | IOSTANDARD = LVCMOS33 | PULLUP;
# Otros
NET "sysclk" PERIOD=35 ns;
#NET "sysclk" PERIOD=35 ns;

View File

@ -88,3 +88,4 @@ NET "sram_we_n" LOC="P121" | IOSTANDARD = LVCMOS33;
# Otros
#NET "cpuclk" PERIOD=71.111 ns;

View File

@ -1,3 +1,4 @@
set output=\Google Drive\Proyecto ZX-Uno\cores_%2\
echo define version %1 > version.asm
call make.bat
Bit2Bin ..\cores\Spectrum\tld_zxuno.%2.bit tmp.bin
@ -8,22 +9,22 @@ fpoke FLASH.ZX1 00000 file:header.bin ^
07044 g0203020202 ^
08000 file:firmware.rom ^
58000 file:tmp.bin
fcut tmp.bin 0 53f00 sd_binaries\SPECTRUM.%3
GenRom sm12a Machine tmp.bin core_taps\SPECTRUM.TAP
rem CgLeches core_taps\SPECTRUM.TAP core_wavs\SPECTRUM.WAV 3
call :CreateMachine set1 CORE2 "Sam Coupe" %2 SamCoupe\tld_sam.%2.bit 0 %3
call :CreateMachine set1 CORE3 "Jupiter ACE" %2 JupiterAce\jupiter_ace.%2.bit JupiterAce\jupiter_ace.v2_v3.bit %3
call :CreateMachine set1 CORE4 "Master System" %2 MasterSystem\sms.%2.bit 0 %3
call :CreateMachine set1 CORE5 "BBC Micro" %2 BBCMicro\working\bbc_micro.%2.bit BBCMicro\working\bbc_micro.v2_v3.bit %3
call :CreateMachine set1 CORE6 "Acorn Electron" %2 AcornElectron\working\ElectronFpga.%2.bit AcornElectron\working\ElectronFpga.v2_v3.bit %3
call :CreateMachine set1 CORE7 "Oric Atmos" %2 Oric\build\oric.%2.bit Oric\build\oric.v2_v3.bit %3
call :CreateMachine set1 CORE8 "Test PAL/NTSC" %2 test\test_pal_ntsc\tld_test_pal_ntsc.%2.bit test\test_pal_ntsc\tld_test_pal_ntsc.v2_v3.bit %3
call :CreateMachine set1 CORE9 "Test Color Bars" %2 test\barras_de_color\tld_zxuno.%2.bit test\barras_de_color\tld_zxuno.v2_v3.bit %3
copy /y rom_binaries\esxdos.rom sd_binaries\ESXDOS.%3
copy /y firmware.rom "\Google Drive\Proyecto ZX-Uno\cores_%2\sd_binaries\FIRMWARE.%3"
GenRom sm12 BIOS firmware.rom "\Google Drive\Proyecto ZX-Uno\cores_%2\core_taps\FIRMWARE.TAP"
rem CgLeches core_taps\FIRMWARE.TAP core_wavs\FIRMWARE.WAV 3
GenRom 0 ESXDOS rom_binaries\esxdos.rom core_taps\ESXDOS.TAP
fcut tmp.bin 0 53f00 "%output%sd_binaries\SPECTRUM.%3"
GenRom sm12a Machine tmp.bin "%output%core_taps\SPECTRUM.TAP"
rem CgLeches "%output%core_taps\SPECTRUM.TAP" "%output%core_wavs\SPECTRUM.WAV" 3
call :CreateMachine set1 CORE2 "Sam Coupe" SamCoupe\tld_sam.%2.bit 0 %3
call :CreateMachine set1 CORE3 "Jupiter ACE" JupiterAce\jupiter_ace.%2.bit JupiterAce\jupiter_ace.v2_v3.bit %3
call :CreateMachine set1 CORE4 "Master System" MasterSystem\sms.%2.bit 0 %3
call :CreateMachine set1 CORE5 "BBC Micro" BBCMicro\working\bbc_micro.%2.bit BBCMicro\working\bbc_micro.v2_v3.bit %3
call :CreateMachine set1 CORE6 "Acorn Electron" AcornElectron\working\ElectronFpga.%2.bit AcornElectron\working\ElectronFpga.v2_v3.bit %3
call :CreateMachine set1 CORE7 "Oric Atmos" Oric\build\oric.%2.bit Oric\build\oric.v2_v3.bit %3
call :CreateMachine set1 CORE8 "Test PAL/NTSC" test\test_pal_ntsc\tld_test_pal_ntsc.%2.bit test\test_pal_ntsc\tld_test_pal_ntsc.v2_v3.bit %3
call :CreateMachine set1 CORE9 "Test Color Bars" test\barras_de_color\tld_zxuno.%2.bit test\barras_de_color\tld_zxuno.v2_v3.bit %3
copy /y rom_binaries\esxdos.rom "%output%sd_binaries\ESXDOS.%3"
copy /y firmware.rom "%output%sd_binaries\FIRMWARE.%3"
GenRom sm12 BIOS firmware.rom "%output%core_taps\FIRMWARE.TAP"
rem CgLeches "%output%core_taps\FIRMWARE.TAP" "%output%core_wavs\FIRMWARE.WAV" 3
GenRom 0 ESXDOS rom_binaries\esxdos.rom "%output%core_taps\ESXDOS.TAP"
call :CreateRom 0 "ZX Spectrum 48K" 48 dnlh17
call :CreateRom 1 "ZX +2A 4.1" plus3en41 t
call :CreateRom 5 "SE Basic IV 4.0 Anya" se dh1
@ -50,46 +51,46 @@ call :CreateRom 28 "Lala Prologue (2010)" LalaPrologue lh17
fcut FLASH.ZX1 006000 001041 tmp.bin
fcut FLASH.ZX1 00c000 04c000 tmp1.bin
fcut FLASH.ZX1 34c000 0b4000 tmp2.bin
copy /by tmp.bin+tmp1.bin+tmp2.bin sd_binaries\ROMS.%3
copy /by tmp.bin+tmp1.bin+tmp2.bin "%output%sd_binaries\ROMS.%3"
rem cambiar el 400000 siguiente línea por 100000 si 25Q80
fcut FLASH.ZX1 0 400000 tmp.bin
srec_cat tmp.bin -binary ^
-o "\Google Drive\Proyecto ZX-Uno\cores_%2\flash_set1.%2.mcs" -Intel ^
-line-length=44 ^
-line-termination=nl
rem srec_cat tmp.bin -binary ^
rem -o "%output%flash_set1.%2.mcs" -Intel ^
rem -line-length=44 ^
rem -line-termination=nl
del tmp1.bin tmp2.bin
copy /y tmp.bin "\Google Drive\Proyecto ZX-Uno\cores_%2\sd_binaries\set1\FLASH.%3"
call :CreateMachine set2 CORE2 "NES (VGA)" %2 NES\xilinx\NES_ZXUNO.%2.bit 0 %3
call :CreateMachine set2 CORE3 "Atari 2600 (VGA)" %2 Atari2600\zxuno\zxuno_a2601.%2.bit 0 %3
call :CreateMachine set2 CORE4 "Acorn Atom (VGA)" %2 AcornAtom\working\Atomic_top_zxuno.%2.bit 0 %3
call :CreateMachine set2 CORE5 "Apple 2 (VGA)" %2 Apple2\build\apple2_top.%2.bit 0 %3
call :CreateMachine set2 CORE6 "VIC-20 (VGA)" %2 VIC20\ise\VIC20.%2.bit VIC20\ise\VIC20.v2_v3.bit %3
call :CreateMachine set2 CORE7 "Master System" %2 MasterSystem\sms.%2.bit 0 %3
call :CreateMachine set2 CORE8 "Test Interlaced" %2 test\test_pal_interlaced_progressive\tld_test_pal_intprog.%2.bit test\test_pal_interlaced_progressive\tld_test_pal_intprog.v2_v3.bit %3
call :CreateMachine set2 CORE9 "Test SRAM-Video" %2 test\test_sram_y_video\tld_zxuno.%2.bit test\test_sram_y_video\tld_zxuno.v2_v3.bit %3
copy /y tmp.bin "%output%sd_binaries\set1\FLASH.%3"
call :CreateMachine set2 CORE2 "NES (VGA)" NES\xilinx\NES_ZXUNO.%2.bit 0 %3
call :CreateMachine set2 CORE3 "Atari 2600 (VGA)" Atari2600\zxuno\zxuno_a2601.%2.bit 0 %3
call :CreateMachine set2 CORE4 "Acorn Atom (VGA)" AcornAtom\working\Atomic_top_zxuno.%2.bit 0 %3
call :CreateMachine set2 CORE5 "Apple 2 (VGA)" Apple2\build\apple2_top.%2.bit 0 %3
call :CreateMachine set2 CORE6 "VIC-20 (VGA)" VIC20\ise\VIC20.%2.bit VIC20\ise\VIC20.v2_v3.bit %3
call :CreateMachine set2 CORE7 "Master System" MasterSystem\sms.%2.bit 0 %3
call :CreateMachine set2 CORE8 "Test Interlaced" test\test_pal_interlaced_progressive\tld_test_pal_intprog.%2.bit test\test_pal_interlaced_progressive\tld_test_pal_intprog.v2_v3.bit %3
call :CreateMachine set2 CORE9 "Test SRAM-Video" test\test_sram_y_video\tld_zxuno.%2.bit test\test_sram_y_video\tld_zxuno.v2_v3.bit %3
fpoke FLASH.ZX1 07044 g020302020200000002
rem cambiar el 400000 siguiente línea por 100000 si 25Q80
fcut FLASH.ZX1 0 400000 tmp.bin
srec_cat tmp.bin -binary ^
-o "\Google Drive\Proyecto ZX-Uno\cores_%2\flash_set2.%2.mcs" -Intel ^
-line-length=44 ^
-line-termination=nl
copy /y tmp.bin "\Google Drive\Proyecto ZX-Uno\cores_%2\sd_binaries\set2\FLASH.%3"
rem srec_cat tmp.bin -binary ^
rem -o "%output%flash_set2.%2.mcs" -Intel ^
rem -line-length=44 ^
rem -line-termination=nl
copy /y tmp.bin "%output%sd_binaries\set2\FLASH.%3"
goto :eof
:CreateMachine
IF EXIST ..\cores\%5 (
Bit2Bin ..\cores\%5 "\Google Drive\Proyecto ZX-Uno\cores_%4\sd_binaries\%1\%2.%7"
IF EXIST ..\cores\%4 (
Bit2Bin ..\cores\%4 "%output%sd_binaries\%1\%2.%6"
) ELSE (
Bit2Bin ..\cores\%6 "\Google Drive\Proyecto ZX-Uno\cores_%4\sd_binaries\%1\%2.%7"
Bit2Bin ..\cores\%5 "%output%sd_binaries\%1\%2.%6"
)
GenRom 0 %3 "\Google Drive\Proyecto ZX-Uno\cores_%4\sd_binaries\%1\%2.%7" "\Google Drive\Proyecto ZX-Uno\cores_%4\core_taps\%1\%2.TAP"
AddItem %2 "\Google Drive\Proyecto ZX-Uno\cores_%4\core_taps\%1\%2.tap"
rem CgLeches core_taps\%1.TAP core_wavs\%1.WAV 3
GenRom 0 %3 "%output%sd_binaries\%1\%2.%6" "%output%core_taps\%1\%2.TAP"
AddItem %2 "%output%core_taps\%1\%2.tap"
rem CgLeches "%output%core_taps\%2.TAP" "%output%core_wavs\%2.WAV" 3
goto :eof
:CreateRom
GenRom %4 %2 rom_binaries\%3.rom rom_taps\%3.tap
AddItem ROM %1 rom_taps\%3.tap
rem CgLeches rom_taps\%3.tap rom_wavs\%3.wav 3
rem CgLeches rom_taps\%3.TAP rom_wavs\%3.WAV 3
:eof