Add basic UART device

So far the device only transmits the ASCII set on repeat, but will
become fully featured later.
This commit is contained in:
Byron Lathi
2022-03-13 19:39:59 -05:00
parent 5834f179d2
commit e063e9f6a3
6 changed files with 297 additions and 49 deletions

View File

@@ -140,15 +140,6 @@ set_location_assignment PIN_C16 -to HEX0[3]
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
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_location_assignment PIN_B8 -to rst_n
set_location_assignment PIN_P11 -to clk_50
set_global_assignment -name ENABLE_OCT_DONE OFF
@@ -160,46 +151,45 @@ set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_vpb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[15]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[14]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[13]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[12]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[11]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[10]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[9]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[8]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[7]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[6]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[5]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[4]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[3]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[2]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[1]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[0]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_be
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[7]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[6]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[5]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[4]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[3]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[2]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[1]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[0]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_irqb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_led
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_mlb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_nmib
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_phi2
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_rdy
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_resb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_rwb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_sob
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_sync
set_instance_assignment -name IO_STANDARD "2.5 V" -to clk_50
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_vpb
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[15]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[14]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[13]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[12]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[11]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[10]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[9]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[8]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[7]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_addr[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_be
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_data[7]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_data[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_data[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_data[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_data[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_data[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_data[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_data[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_irqb
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_led
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_mlb
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_nmib
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_phi2
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_rdy
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_resb
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to cpu_rwb
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 SIGNALTAP_FILE output_files/stp1.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]
@@ -214,4 +204,83 @@ set_location_assignment PIN_N19 -to HEX5[5]
set_location_assignment PIN_N20 -to HEX5[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]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to rst_n
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[7]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[8]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[9]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to Run
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[7]
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_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top