This commit is contained in:
Polprzewodnikowy 2021-08-16 00:23:10 +02:00
parent 0db5e5c59f
commit 8501b875f9
11 changed files with 49 additions and 34 deletions

View File

@ -19,7 +19,7 @@
# #
# Quartus Prime # Quartus Prime
# Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition # 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 PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL
set_global_assignment -name FLOW_ENABLE_POWER_ANALYZER ON 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 VERILOG_FILE picorv32/picorv32.v
set_global_assignment -name QSYS_FILE rtl/intel/snp/intel_snp.qsys 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 QIP_FILE rtl/intel/pll/intel_pll.qip
set_global_assignment -name SDC_FILE SummerCart64.sdc set_global_assignment -name SDC_FILE SummerCart64.sdc
set_global_assignment -name SIGNALTAP_FILE stp.stp 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_bus.sv
set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_gpio.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_gpio.sv
set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_i2c.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_uart.sv
set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu/cpu_usb.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/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/usb/usb_ft1248.sv
set_global_assignment -name SYSTEMVERILOG_FILE rtl/SummerCart64.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/system/system.sv
set_global_assignment -name SYSTEMVERILOG_FILE rtl/old/usb_ftdi_fsi.sv set_global_assignment -name SLD_FILE db/stp_auto_stripped.stp
set_global_assignment -name SOURCE_FILE sfp.spf
set_global_assignment -name QIP_FILE rtl/intel/fifo/fifo8.qip
# Pin & Location Assignments # 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_8 -to io_usb_miosi[2]
set_location_assignment PIN_10 -to io_usb_miosi[1] set_location_assignment PIN_10 -to io_usb_miosi[1]
set_location_assignment PIN_11 -to io_usb_miosi[0] set_location_assignment PIN_11 -to io_usb_miosi[0]
set_location_assignment PIN_12 -to o_ftdi_si set_location_assignment PIN_12 -to i_uart_rxd
set_location_assignment PIN_13 -to o_ftdi_clk set_location_assignment PIN_13 -to o_uart_txd
set_location_assignment PIN_14 -to i_ftdi_so set_location_assignment PIN_14 -to i_uart_cts
set_location_assignment PIN_15 -to i_ftdi_cts set_location_assignment PIN_15 -to o_uart_rts
set_location_assignment PIN_17 -to o_led set_location_assignment PIN_17 -to o_led
set_location_assignment PIN_21 -to io_rtc_scl set_location_assignment PIN_21 -to io_rtc_scl
set_location_assignment PIN_22 -to io_rtc_sda 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_134 -to o_flash_cs
set_location_assignment PIN_135 -to io_flash_dq[1] set_location_assignment PIN_135 -to io_flash_dq[1]
set_location_assignment PIN_136 -to io_flash_dq[2] 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_140 -to i_usb_miso
set_location_assignment PIN_141 -to o_usb_cs 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) # 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 # Fitter Assignments
# ================== # ==================
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_n64_nmi 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 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 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_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 io_usb_miosi[0]
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to o_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 o_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 o_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 o_usb_miosi[3] set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_usb_miso
# start DESIGN_PARTITION(Top) # 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_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_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -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 DESIGN_PARTITION(Top)
# ------------------------- # -------------------------
# end ENTITY(SummerCart64) # 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

View File

@ -5,11 +5,12 @@ module SummerCart64 (
output o_usb_cs, output o_usb_cs,
input i_usb_miso, input i_usb_miso,
inout [3:0] io_usb_miosi, inout [3:0] io_usb_miosi,
input i_usb_powered,
// output o_ftdi_clk, input i_uart_rxd,
// output o_ftdi_si, output o_uart_txd,
// input i_ftdi_so, input i_uart_cts,
// input i_ftdi_cts, output o_uart_rts,
input i_n64_reset, input i_n64_reset,
input i_n64_nmi, input i_n64_nmi,
@ -37,16 +38,10 @@ module SummerCart64 (
inout io_sd_cmd, inout io_sd_cmd,
inout [3:0] io_sd_dat, 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_scl,
inout io_rtc_sda, inout io_rtc_sda,
output o_led, output o_led
inout [0:0] io_pmod
); );
if_system system_if (.in_clk(i_clk)); 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_led = gpio_oe[0] ? gpio_o[0] : 1'bZ;
assign o_n64_irq = gpio_oe[1] ? gpio_o[1] : 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 ( cpu_soc cpu_soc_inst (
.system_if(system_if), .system_if(system_if),
@ -69,6 +64,7 @@ module SummerCart64 (
.usb_cs(o_usb_cs), .usb_cs(o_usb_cs),
.usb_miso(i_usb_miso), .usb_miso(i_usb_miso),
.usb_miosi(io_usb_miosi), .usb_miosi(io_usb_miosi),
.usb_powered(i_usb_powered),
.i2c_scl(io_rtc_scl), .i2c_scl(io_rtc_scl),
.i2c_sda(io_rtc_sda) .i2c_sda(io_rtc_sda)
); );

View File

@ -9,6 +9,7 @@ module cpu_soc (
output usb_cs, output usb_cs,
input usb_miso, input usb_miso,
inout [3:0] usb_miosi, inout [3:0] usb_miosi,
input usb_powered,
inout i2c_scl, inout i2c_scl,
inout i2c_sda inout i2c_sda
@ -63,7 +64,8 @@ module cpu_soc (
.usb_clk(usb_clk), .usb_clk(usb_clk),
.usb_cs(usb_cs), .usb_cs(usb_cs),
.usb_miso(usb_miso), .usb_miso(usb_miso),
.usb_miosi(usb_miosi) .usb_miosi(usb_miosi),
.usb_powered(usb_powered)
); );
endmodule endmodule

View File

@ -5,7 +5,8 @@ module cpu_usb (
output usb_clk, output usb_clk,
output usb_cs, output usb_cs,
input usb_miso, input usb_miso,
inout [3:0] usb_miosi inout [3:0] usb_miosi,
input usb_powered
); );
reg rx_flush; reg rx_flush;
@ -66,6 +67,7 @@ module cpu_usb (
.usb_cs(usb_cs), .usb_cs(usb_cs),
.usb_miso(usb_miso), .usb_miso(usb_miso),
.usb_miosi(usb_miosi), .usb_miosi(usb_miosi),
.usb_powered(usb_powered),
.rx_flush(rx_flush), .rx_flush(rx_flush),
.rx_empty(rx_empty), .rx_empty(rx_empty),

View File

@ -5,6 +5,7 @@ module usb_ft1248 (
output usb_cs, output usb_cs,
input usb_miso, input usb_miso,
inout [3:0] usb_miosi, inout [3:0] usb_miosi,
input usb_powered,
input rx_flush, input rx_flush,
output rx_empty, output rx_empty,
@ -59,7 +60,6 @@ module usb_ft1248 (
.data(tx_wdata) .data(tx_wdata)
); );
// FT1248 interface controller // FT1248 interface controller
// Constants definition // Constants definition