diff --git a/cores/JupiterAce/jupiter_ace_zxuno_Ap.ucf b/cores/JupiterAce/jupiter_ace_zxuno_Ap.ucf index a5f6e18..14a1b53 100644 --- a/cores/JupiterAce/jupiter_ace_zxuno_Ap.ucf +++ b/cores/JupiterAce/jupiter_ace_zxuno_Ap.ucf @@ -48,6 +48,8 @@ NET "dataps2" LOC="P142" | IOSTANDARD = LVCMOS33 | PULLUP; #NET "sram_addr<16>" LOC="P139" | IOSTANDARD = LVCMOS33; #NET "sram_addr<17>" LOC="P141" | IOSTANDARD = LVCMOS33; #NET "sram_addr<18>" LOC="P138" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<19>" LOC="P105" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<20>" LOC="P143" | IOSTANDARD = LVCMOS33; #NET "sram_data<0>" LOC="P114" | IOSTANDARD = LVCMOS33; #NET "sram_data<1>" LOC="P112" | IOSTANDARD = LVCMOS33; diff --git a/cores/JupiterAce/jupiter_ace_zxuno_v4.ucf b/cores/JupiterAce/jupiter_ace_zxuno_v4.ucf index 1fe1cb8..20a16ad 100644 --- a/cores/JupiterAce/jupiter_ace_zxuno_v4.ucf +++ b/cores/JupiterAce/jupiter_ace_zxuno_v4.ucf @@ -1,6 +1,6 @@ # Clocks & debug NET "clk50mhz" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns; -#NET "testled" LOC="P10" | IOSTANDARD = LVCMOS33; +#NET "testled" LOC="P10" | IOSTANDARD = LVCMOS33; # Video output NET "r<2>" LOC="P81" | IOSTANDARD = LVCMOS33; diff --git a/cores/Oric/FPGAOric.xise b/cores/Oric/FPGAOric.xise deleted file mode 100644 index 717d0ab..0000000 --- a/cores/Oric/FPGAOric.xise +++ /dev/null @@ -1,429 +0,0 @@ - - - -
- - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/cores/Oric/build/ORIC.prj b/cores/Oric/build/ORIC.prj new file mode 100644 index 0000000..fec8463 --- /dev/null +++ b/cores/Oric/build/ORIC.prj @@ -0,0 +1,17 @@ +vhdl work "../source/T65/T65_Pack.vhd" +vhdl work "../source/T65/T65_MCode.vhd" +vhdl work "../source/T65/T65_ALU.vhd" +vhdl work "../source/ram16k.vhd" +vhdl work "../source/keyboard/ps2key.vhd" +vhdl work "../source/keyboard/keymatrix.vhd" +vhdl work "../source/keyboard/keymap.vhd" +vhdl work "../source/YM2149_linmix.vhd" +vhdl work "../source/ula.vhd" +vhdl work "../source/T65/T65.vhd" +vhdl work "../source/scan_converter.vhd" +vhdl work "../source/rom_oa.vhd" +vhdl work "../source/ram48k.vhd" +vhdl work "../source/m6522.vhd" +vhdl work "../source/keyboard/keyboard.vhd" +vhdl work "../source/dac.vhd" +vhdl work "../source/oricatmos.vhd" diff --git a/cores/Oric/build/ORIC.ut b/cores/Oric/build/ORIC.ut new file mode 100644 index 0000000..a9facca --- /dev/null +++ b/cores/Oric/build/ORIC.ut @@ -0,0 +1,30 @@ +-w +-g Binary:no +-g Compress +-g CRC:Enable +-g Reset_on_err:No +-g ConfigRate:2 +-g ProgPin:PullUp +-g TckPin:PullUp +-g TdiPin:PullUp +-g TdoPin:PullUp +-g TmsPin:PullUp +-g UnusedPin:PullDown +-g UserID:0xFFFFFFFF +-g ExtMasterCclk_en:No +-g SPI_buswidth:1 +-g TIMER_CFG:0xFFFF +-g multipin_wakeup:No +-g StartUpClk:CClk +-g DONE_cycle:4 +-g GTS_cycle:5 +-g GWE_cycle:6 +-g LCK_cycle:NoWait +-g Security:None +-g DonePipe:No +-g DriveDone:No +-g en_sw_gsr:No +-g drive_awake:No +-g sw_clk:Startupclk +-g sw_gwe_cycle:5 +-g sw_gts_cycle:4 diff --git a/cores/Oric/build/ORIC.xst b/cores/Oric/build/ORIC.xst new file mode 100644 index 0000000..234a811 --- /dev/null +++ b/cores/Oric/build/ORIC.xst @@ -0,0 +1,52 @@ +set -tmpdir "projnav.tmp" +set -xsthdpdir "xst" +run +-ifn ORIC.prj +-ofn ORIC +-ofmt NGC +-p xc6slx9-3-tqg144 +-top ORIC +-opt_mode Speed +-opt_level 1 +-power NO +-iuc NO +-keep_hierarchy No +-netlist_hierarchy As_Optimized +-rtlview Yes +-glob_opt AllClockNets +-read_cores YES +-write_timing_constraints NO +-cross_clock_analysis NO +-hierarchy_separator / +-bus_delimiter <> +-case Maintain +-slice_utilization_ratio 100 +-bram_utilization_ratio 100 +-dsp_utilization_ratio 100 +-lc Auto +-reduce_control_sets Auto +-fsm_extract YES -fsm_encoding Auto +-safe_implementation No +-fsm_style LUT +-ram_extract Yes +-ram_style Auto +-rom_extract Yes +-shreg_extract YES +-rom_style Auto +-auto_bram_packing NO +-resource_sharing YES +-async_to_sync NO +-shreg_min_size 2 +-use_dsp48 Auto +-iobuf YES +-max_fanout 100000 +-bufg 16 +-register_duplication YES +-register_balancing No +-optimize_primitives NO +-use_clock_enable Auto +-use_sync_set Auto +-use_sync_reset Auto +-iob Auto +-equivalent_register_removal YES +-slice_utilization_ratio_maxmargin 5 diff --git a/cores/Oric/build/make.bat b/cores/Oric/build/make.bat new file mode 100644 index 0000000..23280c9 --- /dev/null +++ b/cores/Oric/build/make.bat @@ -0,0 +1,7 @@ +SET machine=oric +SET ruta_ucf=..\source\oric +SET ruta_bat=..\..\ +call %ruta_bat%genxst.bat +call %ruta_bat%generar.bat v2_v3 +call %ruta_bat%generar.bat v4 +call %ruta_bat%generar.bat Ap diff --git a/cores/Oric/source/oric_zxuno.ucf b/cores/Oric/source/oric_zxuno.ucf deleted file mode 100644 index 60e7f5f..0000000 --- a/cores/Oric/source/oric_zxuno.ucf +++ /dev/null @@ -1,35 +0,0 @@ -#UCF for ZX-UNO - -NET "CLK_50" LOC = "P55" | IOSTANDARD = LVCMOS33 | PERIOD=20ns ; -NET "CLK_50" TNM_NET = "CLK_50" ; -TIMESPEC "TS_CLK_50" = PERIOD "CLK_50" 20 ns HIGH 50 %; - -# Audio -NET "AUDIO_OUT" LOC = "P8" | IOSTANDARD = LVCMOS33 ; -NET "K7_TAPEOUT" LOC = "P9" | IOSTANDARD = LVCMOS33 ; - -# Switch -NET "I_RESET" LOC = "P51" | IOSTANDARD = LVCMOS33 | PULLDOWN; - -NET "PS2DAT1" LOC = "P97" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "PS2CLK1" LOC = "P98" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; - -NET "K7_TAPEIN" LOC = "P105" | IOSTANDARD = LVCMOS33; - -NET O_HSYNC LOC = "P87" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; -NET O_VSYNC LOC = "P85" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; - -NET O_VIDEO_B(2) LOC = "P81" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; -NET O_VIDEO_B(1) LOC = "P80" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; -NET O_VIDEO_B(0) LOC = "P79" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; - -NET O_VIDEO_G(2) LOC = "P84" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; -NET O_VIDEO_G(1) LOC = "P83" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; -NET O_VIDEO_G(0) LOC = "P82" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; - -NET O_VIDEO_R(2) LOC = "P93" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; -NET O_VIDEO_R(1) LOC = "P92" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; -NET O_VIDEO_R(0) LOC = "P88" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; - -NET O_NTSC LOC = "P67" | IOSTANDARD = LVCMOS33; -NET O_PAL LOC = "P66" | IOSTANDARD = LVCMOS33; diff --git a/cores/Oric/source/oric_zxuno_Ap.ucf b/cores/Oric/source/oric_zxuno_Ap.ucf new file mode 100644 index 0000000..06cfe87 --- /dev/null +++ b/cores/Oric/source/oric_zxuno_Ap.ucf @@ -0,0 +1,93 @@ +#UCF for ZX-UNO +NET "CLK_50" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns; +#NET "testled" LOC="P2" | IOSTANDARD = LVCMOS33; + +# Video output +NET O_VIDEO_R(2) LOC="P97" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_R(1) LOC="P95" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_R(0) LOC="P94" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(2) LOC="P88" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(1) LOC="P87" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(0) LOC="P85" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(2) LOC="P84" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(1) LOC="P83" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(0) LOC="P82" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_HSYNC LOC="P93" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VSYNC LOC="P92" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_NTSC LOC="P51" | IOSTANDARD = LVCMOS33; +NET O_PAL LOC="P50" | IOSTANDARD = LVCMOS33; + +# Audio +NET "AUDIO_OUT" LOC="P98" | IOSTANDARD = LVCMOS33; +NET "K7_TAPEOUT" LOC="P99" | IOSTANDARD = LVCMOS33; +NET "K7_TAPEIN" LOC="P1" | IOSTANDARD = LVCMOS33; + +# Keyboard and mouse +NET "PS2CLK1" LOC="P143" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8; +NET "PS2DAT1" LOC="P142" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8; +#NET "mouseclk" LOC="P57" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "mousedata" LOC="P56" | IOSTANDARD = LVCMOS33 | PULLUP; + +# SRAM +#NET "sram_addr<0>" LOC="P115" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<1>" LOC="P116" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<2>" LOC="P117" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<3>" LOC="P119" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<4>" LOC="P120" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<5>" LOC="P123" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<6>" LOC="P126" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<7>" LOC="P131" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<8>" LOC="P127" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<9>" LOC="P124" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<10>" LOC="P118" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<11>" LOC="P121" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<12>" LOC="P133" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<13>" LOC="P132" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<14>" LOC="P137" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<15>" LOC="P140" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<16>" LOC="P139" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<17>" LOC="P141" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<18>" LOC="P138" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<19>" LOC="P105" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<20>" LOC="P143" | IOSTANDARD = LVCMOS33; + +#NET "sram_data<0>" LOC="P114" | IOSTANDARD = LVCMOS33; +#NET "sram_data<1>" LOC="P112" | IOSTANDARD = LVCMOS33; +#NET "sram_data<2>" LOC="P111" | IOSTANDARD = LVCMOS33; +#NET "sram_data<3>" LOC="P105" | IOSTANDARD = LVCMOS33; +#NET "sram_data<4>" LOC="P104" | IOSTANDARD = LVCMOS33; +#NET "sram_data<5>" LOC="P102" | IOSTANDARD = LVCMOS33; +#NET "sram_data<6>" LOC="P101" | IOSTANDARD = LVCMOS33; +#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; + +# 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; + +# JOYSTICK +#NET "joyup" LOC="P74" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joydown" LOC="P67" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyleft" LOC="P59" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyright" LOC="P58" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire" LOC="P75" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire2" LOC="P8" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire3" LOC="P39" | IOSTANDARD = LVCMOS33 | PULLUP; + + + +# Switch +NET "I_RESET" LOC="P51" | IOSTANDARD = LVCMOS33 | PULLDOWN; +NET "CLK_50" TNM_NET = "CLK_50"; +TIMESPEC "TS_CLK_50" = PERIOD "CLK_50" 20 ns HIGH 50 %; diff --git a/cores/Oric/source/oric_zxuno_v2_v3.ucf b/cores/Oric/source/oric_zxuno_v2_v3.ucf new file mode 100644 index 0000000..b9a31b4 --- /dev/null +++ b/cores/Oric/source/oric_zxuno_v2_v3.ucf @@ -0,0 +1,93 @@ +#UCF for ZX-UNO +NET "CLK_50" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns; +#NET "testled" LOC="P10" | IOSTANDARD = LVCMOS33; + +# Video output +NET O_VIDEO_R(2) LOC="P93" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_R(1) LOC="P92" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_R(0) LOC="P88" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(2) LOC="P84" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(1) LOC="P83" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(0) LOC="P82" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(2) LOC="P81" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(1) LOC="P80" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(0) LOC="P79" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_HSYNC LOC="P87" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VSYNC LOC="P85" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_NTSC LOC="P67" | IOSTANDARD = LVCMOS33; +NET O_PAL LOC="P66" | IOSTANDARD = LVCMOS33; + +# Audio +NET "AUDIO_OUT" LOC="P8" | IOSTANDARD = LVCMOS33; +NET "K7_TAPEOUT" LOC="P9" | IOSTANDARD = LVCMOS33; +NET "K7_TAPEIN" LOC="P105" | IOSTANDARD = LVCMOS33; + +# Keyboard and mouse +NET "PS2CLK1" LOC="P98" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8; +NET "PS2DAT1" LOC="P97" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8; +#NET "mouseclk" LOC="P94" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "mousedata" LOC="P95" | IOSTANDARD = LVCMOS33 | PULLUP; + +# SRAM +#NET "sram_addr<0>" LOC="P115" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<1>" LOC="P116" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<2>" LOC="P117" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<3>" LOC="P119" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<4>" LOC="P120" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<5>" LOC="P123" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<6>" LOC="P126" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<7>" LOC="P131" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<8>" LOC="P127" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<9>" LOC="P124" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<10>" LOC="P118" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<11>" LOC="P121" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<12>" LOC="P133" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<13>" LOC="P132" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<14>" LOC="P137" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<15>" LOC="P140" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<16>" LOC="P139" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<17>" LOC="P141" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<18>" LOC="P138" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<19>" LOC="P111" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<20>" LOC="P138" | IOSTANDARD = LVCMOS33; + +#NET "sram_data<0>" LOC="P114" | IOSTANDARD = LVCMOS33; +#NET "sram_data<1>" LOC="P112" | IOSTANDARD = LVCMOS33; +#NET "sram_data<2>" LOC="P111" | IOSTANDARD = LVCMOS33; +#NET "sram_data<3>" LOC="P99" | IOSTANDARD = LVCMOS33; +#NET "sram_data<4>" LOC="P100" | IOSTANDARD = LVCMOS33; +#NET "sram_data<5>" LOC="P101" | IOSTANDARD = LVCMOS33; +#NET "sram_data<6>" LOC="P102" | IOSTANDARD = LVCMOS33; +#NET "sram_data<7>" LOC="P104" | 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; + +# SD/MMC +#NET "sd_cs_n" LOC="P59" | IOSTANDARD = LVCMOS33; +#NET "sd_clk" LOC="P75" | IOSTANDARD = LVCMOS33; +#NET "sd_mosi" LOC="P74" | IOSTANDARD = LVCMOS33; +#NET "sd_miso" LOC="P78" | IOSTANDARD = LVCMOS33; + +# JOYSTICK +#NET "joyup" LOC="P142" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joydown" LOC="P1" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyleft" LOC="P2" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyright" LOC="P5" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire" LOC="P143" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire2" LOC="P6" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire3" LOC="P7" | IOSTANDARD = LVCMOS33 | PULLUP; + + + +# Switch +NET "I_RESET" LOC="P51" | IOSTANDARD = LVCMOS33 | PULLDOWN; +NET "CLK_50" TNM_NET = "CLK_50"; +TIMESPEC "TS_CLK_50" = PERIOD "CLK_50" 20 ns HIGH 50 %; diff --git a/cores/Oric/source/oric_zxuno_v4.ucf b/cores/Oric/source/oric_zxuno_v4.ucf new file mode 100644 index 0000000..646b37b --- /dev/null +++ b/cores/Oric/source/oric_zxuno_v4.ucf @@ -0,0 +1,93 @@ +#UCF for ZX-UNO +NET "CLK_50" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns; +#NET "testled" LOC="P10" | IOSTANDARD = LVCMOS33; + +# Video output +NET O_VIDEO_R(2) LOC="P81" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_R(1) LOC="P80" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_R(0) LOC="P79" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(2) LOC="P84" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(1) LOC="P83" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_G(0) LOC="P82" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(2) LOC="P93" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(1) LOC="P92" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VIDEO_B(0) LOC="P88" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_HSYNC LOC="P87" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_VSYNC LOC="P85" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = FAST; +NET O_NTSC LOC="P66" | IOSTANDARD = LVCMOS33; +NET O_PAL LOC="P67" | IOSTANDARD = LVCMOS33; + +# Audio +NET "AUDIO_OUT" LOC="P10" | IOSTANDARD = LVCMOS33; +NET "K7_TAPEOUT" LOC="P9" | IOSTANDARD = LVCMOS33; +NET "K7_TAPEIN" LOC="P94" | IOSTANDARD = LVCMOS33; + +# Keyboard and mouse +NET "PS2CLK1" LOC="P99" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8; +NET "PS2DAT1" LOC="P98" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8; +#NET "mouseclk" LOC="P95" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "mousedata" LOC="P97" | IOSTANDARD = LVCMOS33 | PULLUP; + +# SRAM +#NET "sram_addr<0>" LOC="P141" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<1>" LOC="P139" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<2>" LOC="P137" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<3>" LOC="P134" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<4>" LOC="P133" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<5>" LOC="P120" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<6>" LOC="P118" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<7>" LOC="P116" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<8>" LOC="P114" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<9>" LOC="P112" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<10>" LOC="P104" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<11>" LOC="P102" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<12>" LOC="P101" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<13>" LOC="P100" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<14>" LOC="P111" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<15>" LOC="P131" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<16>" LOC="P138" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<17>" LOC="P140" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<18>" LOC="P142" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<19>" LOC="P105" | IOSTANDARD = LVCMOS33; +#NET "sram_addr<20>" LOC="P143" | IOSTANDARD = LVCMOS33; + +#NET "sram_data<0>" LOC="P132" | IOSTANDARD = LVCMOS33; +#NET "sram_data<1>" LOC="P127" | IOSTANDARD = LVCMOS33; +#NET "sram_data<2>" LOC="P124" | IOSTANDARD = LVCMOS33; +#NET "sram_data<3>" LOC="P123 | IOSTANDARD = LVCMOS33; +#NET "sram_data<4>" LOC="P115" | IOSTANDARD = LVCMOS33; +#NET "sram_data<5>" LOC="P117" | IOSTANDARD = LVCMOS33; +#NET "sram_data<6>" LOC="P119" | IOSTANDARD = LVCMOS33; +#NET "sram_data<7>" LOC="P126" | IOSTANDARD = LVCMOS33; + +#NET "sram_we_n" LOC="P121" | 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; + +# SD/MMC +#NET "sd_cs_n" LOC="P59" | IOSTANDARD = LVCMOS33; +#NET "sd_clk" LOC="P75" | IOSTANDARD = LVCMOS33; +#NET "sd_mosi" LOC="P74" | IOSTANDARD = LVCMOS33; +#NET "sd_miso" LOC="P78" | IOSTANDARD = LVCMOS33; + +# JOYSTICK +#NET "joyup" LOC="P1" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joydown" LOC="P5" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyleft" LOC="P6" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyright" LOC="P7" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire" LOC="P2" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire2" LOC="P8" | IOSTANDARD = LVCMOS33 | PULLUP; +#NET "joyfire3" LOC="P39" | IOSTANDARD = LVCMOS33 | PULLUP; + + + +# Switch +NET "I_RESET" LOC="P51" | IOSTANDARD = LVCMOS33 | PULLDOWN; +NET "CLK_50" TNM_NET = "CLK_50"; +TIMESPEC "TS_CLK_50" = PERIOD "CLK_50" 20 ns HIGH 50 %;