diff --git a/fw/SummerCart64.qsf b/fw/SummerCart64.qsf index 3b2cc96..ea90ada 100644 --- a/fw/SummerCart64.qsf +++ b/fw/SummerCart64.qsf @@ -19,7 +19,7 @@ # # Quartus Prime # Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition -# Date created = 18:00:40 August 15, 2021 +# Date created = 00:18:46 August 16, 2021 # # -------------------------------------------------------------------------- # # @@ -46,12 +46,13 @@ set_global_assignment -name LAST_QUARTUS_VERSION "20.1.1 Lite Edition" set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL set_global_assignment -name FLOW_ENABLE_POWER_ANALYZER ON -set_global_assignment -name VERILOG_FILE btldr/btldr.sv set_global_assignment -name VERILOG_FILE picorv32/picorv32.v set_global_assignment -name QSYS_FILE rtl/intel/snp/intel_snp.qsys +set_global_assignment -name QIP_FILE rtl/intel/fifo/fifo8.qip set_global_assignment -name QIP_FILE rtl/intel/pll/intel_pll.qip set_global_assignment -name SDC_FILE SummerCart64.sdc set_global_assignment -name SIGNALTAP_FILE stp.stp +set_global_assignment -name SYSTEMVERILOG_FILE btldr/btldr.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_bus.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_gpio.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_i2c.sv @@ -60,13 +61,10 @@ set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_soc.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_uart.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_usb.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_wrapper.sv -set_global_assignment -name SYSTEMVERILOG_FILE rtl/usb/usb_fifo.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/usb/usb_ft1248.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/SummerCart64.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/system/system.sv -set_global_assignment -name SYSTEMVERILOG_FILE rtl/old/usb_ftdi_fsi.sv -set_global_assignment -name SOURCE_FILE sfp.spf -set_global_assignment -name QIP_FILE rtl/intel/fifo/fifo8.qip +set_global_assignment -name SLD_FILE db/stp_auto_stripped.stp # Pin & Location Assignments # ========================== @@ -75,10 +73,10 @@ set_location_assignment PIN_7 -to io_usb_miosi[3] set_location_assignment PIN_8 -to io_usb_miosi[2] set_location_assignment PIN_10 -to io_usb_miosi[1] set_location_assignment PIN_11 -to io_usb_miosi[0] -set_location_assignment PIN_12 -to o_ftdi_si -set_location_assignment PIN_13 -to o_ftdi_clk -set_location_assignment PIN_14 -to i_ftdi_so -set_location_assignment PIN_15 -to i_ftdi_cts +set_location_assignment PIN_12 -to i_uart_rxd +set_location_assignment PIN_13 -to o_uart_txd +set_location_assignment PIN_14 -to i_uart_cts +set_location_assignment PIN_15 -to o_uart_rts set_location_assignment PIN_17 -to o_led set_location_assignment PIN_21 -to io_rtc_scl set_location_assignment PIN_22 -to io_rtc_sda @@ -159,7 +157,7 @@ set_location_assignment PIN_132 -to io_flash_dq[3] set_location_assignment PIN_134 -to o_flash_cs set_location_assignment PIN_135 -to io_flash_dq[1] set_location_assignment PIN_136 -to io_flash_dq[2] -set_location_assignment PIN_138 -to io_pmod[0] +set_location_assignment PIN_138 -to i_usb_powered set_location_assignment PIN_140 -to i_usb_miso set_location_assignment PIN_141 -to o_usb_cs @@ -223,6 +221,24 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" - # -------------------------- # start ENTITY(SummerCart64) + # Pin & Location Assignments + # ========================== + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to o_usb_clk + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to o_usb_cs + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to io_usb_miosi[0] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to io_usb_miosi[1] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to io_usb_miosi[2] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to io_usb_miosi[3] + set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to io_usb_miosi[0] + set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to io_usb_miosi[1] + set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to io_usb_miosi[2] + set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to io_usb_miosi[3] + set_instance_assignment -name FAST_INPUT_REGISTER ON -to io_usb_miosi[0] + set_instance_assignment -name FAST_INPUT_REGISTER ON -to io_usb_miosi[1] + set_instance_assignment -name FAST_INPUT_REGISTER ON -to io_usb_miosi[2] + set_instance_assignment -name FAST_INPUT_REGISTER ON -to io_usb_miosi[3] + set_instance_assignment -name FAST_INPUT_REGISTER ON -to i_usb_miso + # Fitter Assignments # ================== set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_n64_nmi @@ -234,11 +250,11 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" - set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_n64_si_clk set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to io_n64_si_dq set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to o_n64_irq - set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to o_usb_cs - set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to o_usb_miosi[0] - set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to o_usb_miosi[1] - set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to o_usb_miosi[2] - set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to o_usb_miosi[3] + set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to io_usb_miosi[0] + set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to io_usb_miosi[1] + set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to io_usb_miosi[2] + set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to io_usb_miosi[3] + set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_usb_miso # start DESIGN_PARTITION(Top) # --------------------------- @@ -248,11 +264,10 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" - 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 PARTITION_HIERARCHY root_partition -to | -section_id Top # end DESIGN_PARTITION(Top) # ------------------------- # end ENTITY(SummerCart64) -# ------------------------ -set_global_assignment -name SLD_FILE db/stp_auto_stripped.stp -set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file +# ------------------------ \ No newline at end of file diff --git a/fw/rtl/SummerCart64.sv b/fw/rtl/SummerCart64.sv index 5b48a06..b4ee080 100644 --- a/fw/rtl/SummerCart64.sv +++ b/fw/rtl/SummerCart64.sv @@ -5,11 +5,12 @@ module SummerCart64 ( output o_usb_cs, input i_usb_miso, inout [3:0] io_usb_miosi, + input i_usb_powered, - // output o_ftdi_clk, - // output o_ftdi_si, - // input i_ftdi_so, - // input i_ftdi_cts, + input i_uart_rxd, + output o_uart_txd, + input i_uart_cts, + output o_uart_rts, input i_n64_reset, input i_n64_nmi, @@ -37,16 +38,10 @@ module SummerCart64 ( inout io_sd_cmd, inout [3:0] io_sd_dat, - // output o_flash_clk, - // output o_flash_cs, - // inout io_flash_dq[3:0], - inout io_rtc_scl, inout io_rtc_sda, - output o_led, - - inout [0:0] io_pmod + output o_led ); if_system system_if (.in_clk(i_clk)); @@ -58,7 +53,7 @@ module SummerCart64 ( assign o_led = gpio_oe[0] ? gpio_o[0] : 1'bZ; assign o_n64_irq = gpio_oe[1] ? gpio_o[1] : 1'bZ; - assign gpio_i = {io_pmod[0], 3'b000, i_n64_nmi, i_n64_reset, o_n64_irq, o_led}; + assign gpio_i = {4'b0000, i_n64_nmi, i_n64_reset, o_n64_irq, o_led}; cpu_soc cpu_soc_inst ( .system_if(system_if), @@ -69,6 +64,7 @@ module SummerCart64 ( .usb_cs(o_usb_cs), .usb_miso(i_usb_miso), .usb_miosi(io_usb_miosi), + .usb_powered(i_usb_powered), .i2c_scl(io_rtc_scl), .i2c_sda(io_rtc_sda) ); diff --git a/fw/rtl/cpu/cpu_soc.sv b/fw/rtl/cpu/cpu_soc.sv index 45f1706..88ef2c0 100644 --- a/fw/rtl/cpu/cpu_soc.sv +++ b/fw/rtl/cpu/cpu_soc.sv @@ -9,6 +9,7 @@ module cpu_soc ( output usb_cs, input usb_miso, inout [3:0] usb_miosi, + input usb_powered, inout i2c_scl, inout i2c_sda @@ -63,7 +64,8 @@ module cpu_soc ( .usb_clk(usb_clk), .usb_cs(usb_cs), .usb_miso(usb_miso), - .usb_miosi(usb_miosi) + .usb_miosi(usb_miosi), + .usb_powered(usb_powered) ); endmodule diff --git a/fw/rtl/cpu/cpu_usb.sv b/fw/rtl/cpu/cpu_usb.sv index 838f0ab..1d4fccf 100644 --- a/fw/rtl/cpu/cpu_usb.sv +++ b/fw/rtl/cpu/cpu_usb.sv @@ -5,7 +5,8 @@ module cpu_usb ( output usb_clk, output usb_cs, input usb_miso, - inout [3:0] usb_miosi + inout [3:0] usb_miosi, + input usb_powered ); reg rx_flush; @@ -66,6 +67,7 @@ module cpu_usb ( .usb_cs(usb_cs), .usb_miso(usb_miso), .usb_miosi(usb_miosi), + .usb_powered(usb_powered), .rx_flush(rx_flush), .rx_empty(rx_empty), diff --git a/fw/rtl/usb/usb_ft1248.sv b/fw/rtl/usb/usb_ft1248.sv index c320dd5..e2c9acb 100644 --- a/fw/rtl/usb/usb_ft1248.sv +++ b/fw/rtl/usb/usb_ft1248.sv @@ -5,6 +5,7 @@ module usb_ft1248 ( output usb_cs, input usb_miso, inout [3:0] usb_miosi, + input usb_powered, input rx_flush, output rx_empty, @@ -59,7 +60,6 @@ module usb_ft1248 ( .data(tx_wdata) ); - // FT1248 interface controller // Constants definition diff --git a/fw/rtl/unused/cpu_rom.sv b/fw/unused/cpu_rom.sv similarity index 100% rename from fw/rtl/unused/cpu_rom.sv rename to fw/unused/cpu_rom.sv diff --git a/fw/rtl/unused/glue/device_arbiter.v b/fw/unused/glue/device_arbiter.v similarity index 100% rename from fw/rtl/unused/glue/device_arbiter.v rename to fw/unused/glue/device_arbiter.v diff --git a/fw/rtl/unused/memory/memory_embedded_flash.v b/fw/unused/memory/memory_embedded_flash.v similarity index 100% rename from fw/rtl/unused/memory/memory_embedded_flash.v rename to fw/unused/memory/memory_embedded_flash.v diff --git a/fw/rtl/unused/memory/memory_sdram.v b/fw/unused/memory/memory_sdram.v similarity index 100% rename from fw/rtl/unused/memory/memory_sdram.v rename to fw/unused/memory/memory_sdram.v diff --git a/fw/rtl/old/usb_ftdi_fsi.sv b/fw/unused/old/usb_ftdi_fsi.sv similarity index 100% rename from fw/rtl/old/usb_ftdi_fsi.sv rename to fw/unused/old/usb_ftdi_fsi.sv diff --git a/fw/rtl/usb/usb_fifo.sv b/fw/unused/usb_fifo.sv similarity index 100% rename from fw/rtl/usb/usb_fifo.sv rename to fw/unused/usb_fifo.sv