Add SDRAM controller (controller)
Turns out there are some issues with holding the chip select for the SDRAM controller high for too long, so there is a simple 2-state fsm which ensures that the chip select is only held for 1 clock cycle for writes and for as long as it takes to read the data from sdram for reads.
This commit is contained in:
@@ -188,7 +188,7 @@ set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_sob
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_sync
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to clk_50
|
||||
set_global_assignment -name ENABLE_SIGNALTAP OFF
|
||||
set_global_assignment -name USE_SIGNALTAP_FILE output_files/stp1.stp
|
||||
set_global_assignment -name USE_SIGNALTAP_FILE output_files/stp2.stp
|
||||
set_location_assignment PIN_F20 -to HEX4[6]
|
||||
set_location_assignment PIN_F19 -to HEX4[5]
|
||||
set_location_assignment PIN_H19 -to HEX4[4]
|
||||
@@ -205,17 +205,6 @@ set_location_assignment PIN_F18 -to HEX4[0]
|
||||
set_location_assignment PIN_E20 -to HEX4[1]
|
||||
set_location_assignment PIN_AB5 -to UART_RXD
|
||||
set_location_assignment PIN_AB6 -to UART_TXD
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE uart.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE addr_decode.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE bb_spi_controller.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE super6502.sv
|
||||
set_global_assignment -name QIP_FILE ram.qip
|
||||
set_global_assignment -name SDC_FILE super6502.sdc
|
||||
set_global_assignment -name QIP_FILE rom.qip
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE HexDriver.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE SevenSeg.sv
|
||||
set_global_assignment -name QIP_FILE cpu_clk.qip
|
||||
set_global_assignment -name SIGNALTAP_FILE output_files/stp1.stp
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to UART_RXD
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to UART_TXD
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[6]
|
||||
@@ -283,4 +272,95 @@ set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[8]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[9]
|
||||
set_location_assignment PIN_A7 -to button_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to button_1
|
||||
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[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_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_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[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_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_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_location_assignment PIN_U17 -to DRAM_ADDR[0]
|
||||
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_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_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_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_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_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_global_assignment -name QIP_FILE sdram_platform/synthesis/sdram_platform.qip
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE uart.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE addr_decode.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE bb_spi_controller.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE super6502.sv
|
||||
set_global_assignment -name QIP_FILE ram.qip
|
||||
set_global_assignment -name SDC_FILE super6502.sdc
|
||||
set_global_assignment -name QIP_FILE rom.qip
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE HexDriver.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE SevenSeg.sv
|
||||
set_global_assignment -name QIP_FILE cpu_clk.qip
|
||||
set_global_assignment -name SIGNALTAP_FILE output_files/stp1.stp
|
||||
set_global_assignment -name SIGNALTAP_FILE output_files/stp2.stp
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
||||
Reference in New Issue
Block a user