mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-04-20 03:47:20 -04:00
Setup to run with both the vcu108 and vcu118 boards. Set the parameters in the Makefile.
This commit is contained in:
parent
92ace4d8f7
commit
9ba487c323
16 changed files with 715 additions and 24 deletions
263
fpga/constraints/constraints-vcu108.xdc
Normal file
263
fpga/constraints/constraints-vcu108.xdc
Normal file
|
@ -0,0 +1,263 @@
|
|||
# The main clocks are all autogenerated by the Xilinx IP
|
||||
# mmcm_clkout1 is the 22Mhz clock from the DDR4 IP used to drive wally and the AHBLite Bus.
|
||||
# mmcm_clkout0 is the clock output of the DDR4 memory interface / 4.
|
||||
# This clock is not used by wally or the AHBLite Bus. However it is used by the AXI BUS on the DD4 IP.
|
||||
|
||||
create_generated_clock -name CLKDiv64_Gen -source [get_pins wallypipelinedsoc/uncore.uncore/sdc.SDC/sd_top/slow_clk_divider/clkMux/I0] -multiply_by 1 -divide_by 2 [get_pins wallypipelinedsoc/uncore.uncore/sdc.SDC/sd_top/slow_clk_divider/clkMux/O]
|
||||
|
||||
##### GPI ####
|
||||
set_property PACKAGE_PIN E34 [get_ports {GPI[0]}]
|
||||
set_property PACKAGE_PIN M22 [get_ports {GPI[1]}]
|
||||
set_property PACKAGE_PIN AW27 [get_ports {GPI[2]}]
|
||||
set_property PACKAGE_PIN A10 [get_ports {GPI[3]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPI[3]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPI[2]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPI[1]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPI[0]}]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 2.000 [get_ports {GPI[*]}]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 2.000 [get_ports {GPI[*]}]
|
||||
set_max_delay -from [get_ports {GPI[*]}] 10.000
|
||||
|
||||
##### GPO ####
|
||||
set_property PACKAGE_PIN AT32 [get_ports {GPO[0]}]
|
||||
set_property PACKAGE_PIN AV34 [get_ports {GPO[1]}]
|
||||
set_property PACKAGE_PIN AY30 [get_ports {GPO[2]}]
|
||||
set_property PACKAGE_PIN BF32 [get_ports {GPO[4]}]
|
||||
set_property PACKAGE_PIN BB32 [get_ports {GPO[3]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPO[4]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPO[3]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPO[2]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPO[1]}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {GPO[0]}]
|
||||
set_max_delay -to [get_ports {GPO[*]}] 10.000
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 0.000 [get_ports {GPO[*]}]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 0.000 [get_ports {GPO[*]}]
|
||||
|
||||
|
||||
##### UART #####
|
||||
set_property PACKAGE_PIN BC24 [get_ports UARTSin]
|
||||
set_property PACKAGE_PIN BE24 [get_ports UARTSout]
|
||||
set_max_delay -from [get_ports UARTSin] 10.000
|
||||
set_max_delay -to [get_ports UARTSout] 10.000
|
||||
set_property IOSTANDARD LVCMOS18 [get_ports UARTSin]
|
||||
set_property IOSTANDARD LVCMOS18 [get_ports UARTSout]
|
||||
# set_property DRIVE 6 [get_ports UARTSout]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 2.000 [get_ports UARTSin]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 2.000 [get_ports UARTSin]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 0.000 [get_ports UARTSout]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 0.000 [get_ports UARTSout]
|
||||
|
||||
|
||||
##### reset #####
|
||||
set_input_delay -clock [get_clocks default_250mhz_clk1_0_p] -min -add_delay 2.000 [get_ports reset]
|
||||
set_input_delay -clock [get_clocks default_250mhz_clk1_0_p] -max -add_delay 2.000 [get_ports reset]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout0] -min -add_delay 0.000 [get_ports reset]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout0] -max -add_delay 0.000 [get_ports reset]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 0.000 [get_ports reset]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 0.000 [get_ports reset]
|
||||
set_max_delay -from [get_ports reset] 15.000
|
||||
set_false_path -from [get_ports reset]
|
||||
set_property PACKAGE_PIN E34 [get_ports {reset}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {reset}]
|
||||
|
||||
|
||||
|
||||
##### cpu_reset #####
|
||||
set_property PACKAGE_PIN AY35 [get_ports {cpu_reset}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {cpu_reset}]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 0.000 [get_ports {cpu_reset}]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 0.000 [get_ports {cpu_reset}]
|
||||
|
||||
|
||||
##### calib #####
|
||||
set_property PACKAGE_PIN BA37 [get_ports calib]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports calib]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 0.000 [get_ports calib]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 20.000 [get_ports calib]
|
||||
set_max_delay -from [get_pins xlnx_ddr4_c0/inst/u_ddr4_mem_intfc/u_ddr_cal_top/calDone_gated_reg/C] -to [get_ports calib] 50.000
|
||||
|
||||
|
||||
##### ahblite_resetn #####
|
||||
set_property PACKAGE_PIN AV36 [get_ports {ahblite_resetn}]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports {ahblite_resetn}]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 0.000 [get_ports {ahblite_resetn}]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 0.000 [get_ports {ahblite_resetn}]
|
||||
|
||||
|
||||
##### south_rst #####
|
||||
set_property PACKAGE_PIN D9 [get_ports south_rst]
|
||||
set_property IOSTANDARD LVCMOS12 [get_ports south_rst]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 2.000 [get_ports south_rst]
|
||||
set_input_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 2.000 [get_ports south_rst]
|
||||
|
||||
|
||||
##### SD Card I/O #####
|
||||
set_property PACKAGE_PIN BC14 [get_ports {SDCDat[3]}]
|
||||
set_property IOSTANDARD LVCMOS18 [get_ports {SDCDat[3]}]
|
||||
set_property IOSTANDARD LVCMOS18 [get_ports {SDCDat[2]}]
|
||||
set_property IOSTANDARD LVCMOS18 [get_ports {SDCDat[1]}]
|
||||
set_property IOSTANDARD LVCMOS18 [get_ports {SDCDat[0]}]
|
||||
set_property PACKAGE_PIN BF7 [get_ports {SDCDat[2]}]
|
||||
set_property PACKAGE_PIN BC13 [get_ports {SDCDat[1]}]
|
||||
set_property PACKAGE_PIN AW16 [get_ports {SDCDat[0]}]
|
||||
set_property IOSTANDARD LVCMOS18 [get_ports SDCCLK]
|
||||
set_property IOSTANDARD LVCMOS18 [get_ports {SDCCmd}]
|
||||
set_property PACKAGE_PIN BB16 [get_ports SDCCLK]
|
||||
set_property PACKAGE_PIN BA10 [get_ports {SDCCmd}]
|
||||
set_property PULLUP true [get_ports {SDCDat[3]}]
|
||||
set_property PULLUP true [get_ports {SDCDat[2]}]
|
||||
set_property PULLUP true [get_ports {SDCDat[1]}]
|
||||
set_property PULLUP true [get_ports {SDCDat[0]}]
|
||||
set_property PULLUP true [get_ports {SDCCmd}]
|
||||
|
||||
|
||||
set_input_delay -clock [get_clocks CLKDiv64_Gen] -min -add_delay 2.500 [get_ports {SDCDat[*]}]
|
||||
set_input_delay -clock [get_clocks CLKDiv64_Gen] -max -add_delay 21.000 [get_ports {SDCDat[*]}]
|
||||
|
||||
set_input_delay -clock [get_clocks CLKDiv64_Gen] -min -add_delay 2.500 [get_ports {SDCCmd}]
|
||||
set_input_delay -clock [get_clocks CLKDiv64_Gen] -max -add_delay 14.000 [get_ports {SDCCmd}]
|
||||
|
||||
|
||||
set_output_delay -clock [get_clocks CLKDiv64_Gen] -min -add_delay 2.000 [get_ports {SDCCmd}]
|
||||
set_output_delay -clock [get_clocks CLKDiv64_Gen] -max -add_delay 6.000 [get_ports {SDCCmd}]
|
||||
|
||||
set_output_delay -clock [get_clocks CLKDiv64_Gen] 0.000 [get_ports SDCCLK]
|
||||
|
||||
|
||||
|
||||
set_property DCI_CASCADE {64} [get_iobanks 65]
|
||||
set_property INTERNAL_VREF 0.9 [get_iobanks 65]
|
||||
|
||||
|
||||
set_property PACKAGE_PIN E33 [get_ports c0_ddr4_act_n]
|
||||
set_property PACKAGE_PIN C30 [get_ports {c0_ddr4_adr[0]}]
|
||||
set_property PACKAGE_PIN A31 [get_ports {c0_ddr4_adr[10]}]
|
||||
set_property PACKAGE_PIN A33 [get_ports {c0_ddr4_adr[11]}]
|
||||
set_property PACKAGE_PIN F29 [get_ports {c0_ddr4_adr[12]}]
|
||||
set_property PACKAGE_PIN B32 [get_ports {c0_ddr4_adr[13]}]
|
||||
set_property PACKAGE_PIN D29 [get_ports {c0_ddr4_adr[14]}]
|
||||
set_property PACKAGE_PIN B31 [get_ports {c0_ddr4_adr[15]}]
|
||||
set_property PACKAGE_PIN B33 [get_ports {c0_ddr4_adr[16]}]
|
||||
set_property PACKAGE_PIN D32 [get_ports {c0_ddr4_adr[1]}]
|
||||
set_property PACKAGE_PIN B30 [get_ports {c0_ddr4_adr[2]}]
|
||||
set_property PACKAGE_PIN C33 [get_ports {c0_ddr4_adr[3]}]
|
||||
set_property PACKAGE_PIN E32 [get_ports {c0_ddr4_adr[4]}]
|
||||
set_property PACKAGE_PIN A29 [get_ports {c0_ddr4_adr[5]}]
|
||||
set_property PACKAGE_PIN C29 [get_ports {c0_ddr4_adr[6]}]
|
||||
set_property PACKAGE_PIN E29 [get_ports {c0_ddr4_adr[7]}]
|
||||
set_property PACKAGE_PIN A30 [get_ports {c0_ddr4_adr[8]}]
|
||||
set_property PACKAGE_PIN C32 [get_ports {c0_ddr4_adr[9]}]
|
||||
set_property PACKAGE_PIN G30 [get_ports {c0_ddr4_ba[0]}]
|
||||
set_property PACKAGE_PIN F30 [get_ports {c0_ddr4_ba[1]}]
|
||||
set_property PACKAGE_PIN F33 [get_ports {c0_ddr4_bg[0]}]
|
||||
set_property PACKAGE_PIN E31 [get_ports {c0_ddr4_ck_t[0]}]
|
||||
set_property PACKAGE_PIN D31 [get_ports {c0_ddr4_ck_c[0]}]
|
||||
set_property PACKAGE_PIN K29 [get_ports {c0_ddr4_cke[0]}]
|
||||
set_property PACKAGE_PIN D30 [get_ports {c0_ddr4_cs_n[0]}]
|
||||
set_property PACKAGE_PIN J37 [get_ports {c0_ddr4_dq[0]}]
|
||||
set_property PACKAGE_PIN F35 [get_ports {c0_ddr4_dq[10]}]
|
||||
set_property PACKAGE_PIN J35 [get_ports {c0_ddr4_dq[11]}]
|
||||
set_property PACKAGE_PIN G37 [get_ports {c0_ddr4_dq[12]}]
|
||||
set_property PACKAGE_PIN H35 [get_ports {c0_ddr4_dq[13]}]
|
||||
set_property PACKAGE_PIN G36 [get_ports {c0_ddr4_dq[14]}]
|
||||
set_property PACKAGE_PIN H37 [get_ports {c0_ddr4_dq[15]}]
|
||||
set_property PACKAGE_PIN C39 [get_ports {c0_ddr4_dq[16]}]
|
||||
set_property PACKAGE_PIN A38 [get_ports {c0_ddr4_dq[17]}]
|
||||
set_property PACKAGE_PIN B40 [get_ports {c0_ddr4_dq[18]}]
|
||||
set_property PACKAGE_PIN D40 [get_ports {c0_ddr4_dq[19]}]
|
||||
set_property PACKAGE_PIN H40 [get_ports {c0_ddr4_dq[1]}]
|
||||
set_property PACKAGE_PIN E38 [get_ports {c0_ddr4_dq[20]}]
|
||||
set_property PACKAGE_PIN B38 [get_ports {c0_ddr4_dq[21]}]
|
||||
set_property PACKAGE_PIN E37 [get_ports {c0_ddr4_dq[22]}]
|
||||
set_property PACKAGE_PIN C40 [get_ports {c0_ddr4_dq[23]}]
|
||||
set_property PACKAGE_PIN C34 [get_ports {c0_ddr4_dq[24]}]
|
||||
set_property PACKAGE_PIN A34 [get_ports {c0_ddr4_dq[25]}]
|
||||
set_property PACKAGE_PIN D34 [get_ports {c0_ddr4_dq[26]}]
|
||||
set_property PACKAGE_PIN A35 [get_ports {c0_ddr4_dq[27]}]
|
||||
set_property PACKAGE_PIN A36 [get_ports {c0_ddr4_dq[28]}]
|
||||
set_property PACKAGE_PIN C35 [get_ports {c0_ddr4_dq[29]}]
|
||||
set_property PACKAGE_PIN F38 [get_ports {c0_ddr4_dq[2]}]
|
||||
set_property PACKAGE_PIN B35 [get_ports {c0_ddr4_dq[30]}]
|
||||
set_property PACKAGE_PIN D35 [get_ports {c0_ddr4_dq[31]}]
|
||||
set_property PACKAGE_PIN N27 [get_ports {c0_ddr4_dq[32]}]
|
||||
set_property PACKAGE_PIN R27 [get_ports {c0_ddr4_dq[33]}]
|
||||
set_property PACKAGE_PIN N24 [get_ports {c0_ddr4_dq[34]}]
|
||||
set_property PACKAGE_PIN R24 [get_ports {c0_ddr4_dq[35]}]
|
||||
set_property PACKAGE_PIN P24 [get_ports {c0_ddr4_dq[36]}]
|
||||
set_property PACKAGE_PIN P26 [get_ports {c0_ddr4_dq[37]}]
|
||||
set_property PACKAGE_PIN P27 [get_ports {c0_ddr4_dq[38]}]
|
||||
set_property PACKAGE_PIN T24 [get_ports {c0_ddr4_dq[39]}]
|
||||
set_property PACKAGE_PIN H39 [get_ports {c0_ddr4_dq[3]}]
|
||||
set_property PACKAGE_PIN K27 [get_ports {c0_ddr4_dq[40]}]
|
||||
set_property PACKAGE_PIN L26 [get_ports {c0_ddr4_dq[41]}]
|
||||
set_property PACKAGE_PIN J27 [get_ports {c0_ddr4_dq[42]}]
|
||||
set_property PACKAGE_PIN K28 [get_ports {c0_ddr4_dq[43]}]
|
||||
set_property PACKAGE_PIN K26 [get_ports {c0_ddr4_dq[44]}]
|
||||
set_property PACKAGE_PIN M25 [get_ports {c0_ddr4_dq[45]}]
|
||||
set_property PACKAGE_PIN J26 [get_ports {c0_ddr4_dq[46]}]
|
||||
set_property PACKAGE_PIN L28 [get_ports {c0_ddr4_dq[47]}]
|
||||
set_property PACKAGE_PIN E27 [get_ports {c0_ddr4_dq[48]}]
|
||||
set_property PACKAGE_PIN E28 [get_ports {c0_ddr4_dq[49]}]
|
||||
set_property PACKAGE_PIN K37 [get_ports {c0_ddr4_dq[4]}]
|
||||
set_property PACKAGE_PIN E26 [get_ports {c0_ddr4_dq[50]}]
|
||||
set_property PACKAGE_PIN H27 [get_ports {c0_ddr4_dq[51]}]
|
||||
set_property PACKAGE_PIN F25 [get_ports {c0_ddr4_dq[52]}]
|
||||
set_property PACKAGE_PIN F28 [get_ports {c0_ddr4_dq[53]}]
|
||||
set_property PACKAGE_PIN G25 [get_ports {c0_ddr4_dq[54]}]
|
||||
set_property PACKAGE_PIN G27 [get_ports {c0_ddr4_dq[55]}]
|
||||
set_property PACKAGE_PIN B28 [get_ports {c0_ddr4_dq[56]}]
|
||||
set_property PACKAGE_PIN A28 [get_ports {c0_ddr4_dq[57]}]
|
||||
set_property PACKAGE_PIN B25 [get_ports {c0_ddr4_dq[58]}]
|
||||
set_property PACKAGE_PIN B27 [get_ports {c0_ddr4_dq[59]}]
|
||||
set_property PACKAGE_PIN G40 [get_ports {c0_ddr4_dq[5]}]
|
||||
set_property PACKAGE_PIN D25 [get_ports {c0_ddr4_dq[60]}]
|
||||
set_property PACKAGE_PIN C27 [get_ports {c0_ddr4_dq[61]}]
|
||||
set_property PACKAGE_PIN C25 [get_ports {c0_ddr4_dq[62]}]
|
||||
set_property PACKAGE_PIN D26 [get_ports {c0_ddr4_dq[63]}]
|
||||
set_property PACKAGE_PIN F39 [get_ports {c0_ddr4_dq[6]}]
|
||||
set_property PACKAGE_PIN F40 [get_ports {c0_ddr4_dq[7]}]
|
||||
set_property PACKAGE_PIN F36 [get_ports {c0_ddr4_dq[8]}]
|
||||
set_property PACKAGE_PIN J36 [get_ports {c0_ddr4_dq[9]}]
|
||||
set_property PACKAGE_PIN H38 [get_ports {c0_ddr4_dqs_t[0]}]
|
||||
set_property PACKAGE_PIN G38 [get_ports {c0_ddr4_dqs_c[0]}]
|
||||
set_property PACKAGE_PIN H34 [get_ports {c0_ddr4_dqs_t[1]}]
|
||||
set_property PACKAGE_PIN G35 [get_ports {c0_ddr4_dqs_c[1]}]
|
||||
set_property PACKAGE_PIN A39 [get_ports {c0_ddr4_dqs_t[2]}]
|
||||
set_property PACKAGE_PIN A40 [get_ports {c0_ddr4_dqs_c[2]}]
|
||||
set_property PACKAGE_PIN B36 [get_ports {c0_ddr4_dqs_t[3]}]
|
||||
set_property PACKAGE_PIN B37 [get_ports {c0_ddr4_dqs_c[3]}]
|
||||
set_property PACKAGE_PIN P25 [get_ports {c0_ddr4_dqs_t[4]}]
|
||||
set_property PACKAGE_PIN N25 [get_ports {c0_ddr4_dqs_c[4]}]
|
||||
set_property PACKAGE_PIN L24 [get_ports {c0_ddr4_dqs_t[5]}]
|
||||
set_property PACKAGE_PIN L25 [get_ports {c0_ddr4_dqs_c[5]}]
|
||||
set_property PACKAGE_PIN H28 [get_ports {c0_ddr4_dqs_t[6]}]
|
||||
set_property PACKAGE_PIN G28 [get_ports {c0_ddr4_dqs_c[6]}]
|
||||
set_property PACKAGE_PIN B26 [get_ports {c0_ddr4_dqs_t[7]}]
|
||||
set_property PACKAGE_PIN A26 [get_ports {c0_ddr4_dqs_c[7]}]
|
||||
set_property PACKAGE_PIN J31 [get_ports {c0_ddr4_odt[0]}]
|
||||
set_property PACKAGE_PIN M28 [get_ports c0_ddr4_reset_n]
|
||||
|
||||
|
||||
set_property PACKAGE_PIN J39 [get_ports {c0_ddr4_dm_dbi_n[0]}]
|
||||
set_property PACKAGE_PIN F34 [get_ports {c0_ddr4_dm_dbi_n[1]}]
|
||||
set_property PACKAGE_PIN E39 [get_ports {c0_ddr4_dm_dbi_n[2]}]
|
||||
set_property PACKAGE_PIN D37 [get_ports {c0_ddr4_dm_dbi_n[3]}]
|
||||
set_property PACKAGE_PIN T26 [get_ports {c0_ddr4_dm_dbi_n[4]}]
|
||||
set_property PACKAGE_PIN M27 [get_ports {c0_ddr4_dm_dbi_n[5]}]
|
||||
set_property PACKAGE_PIN G26 [get_ports {c0_ddr4_dm_dbi_n[6]}]
|
||||
set_property PACKAGE_PIN D27 [get_ports {c0_ddr4_dm_dbi_n[7]}]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
set_max_delay -datapath_only -from [get_pins xlnx_ddr4_c0/inst/u_ddr4_mem_intfc/u_ddr_cal_top/calDone_gated_reg/C] -to [get_pins xlnx_proc_sys_reset_0/U0/EXT_LPF/lpf_int_reg/D] 10.000
|
||||
|
||||
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -min -add_delay 0.000 [get_ports c0_ddr4_reset_n]
|
||||
set_output_delay -clock [get_clocks mmcm_clkout1] -max -add_delay 20.000 [get_ports c0_ddr4_reset_n]
|
||||
|
||||
|
||||
|
||||
set_max_delay -from [get_pins {xlnx_ddr4_c0/inst/u_ddr4_mem_intfc/u_ddr_cal_top/cal_RESET_n_reg[0]/C}] -to [get_ports c0_ddr4_reset_n] 50.000
|
||||
|
|
@ -1,4 +1,14 @@
|
|||
dst := IP
|
||||
# vcu118
|
||||
#export XILINX_PART := xcvu9p-flga2104-2L-e
|
||||
#export XILINX_BOARD := xilinx.com:vcu118:part0:2.4
|
||||
#export FREQ := 30
|
||||
|
||||
# vcu108
|
||||
export XILINX_PART := xcvu095-ffva2104-2-e
|
||||
export XILINX_BOARD := xilinx.com:vcu108:part0:1.2
|
||||
export board := vcu108
|
||||
|
||||
|
||||
all: FPGA
|
||||
|
||||
|
@ -6,7 +16,7 @@ FPGA: IP
|
|||
vivado -mode batch -source wally.tcl 2>&1 | tee wally.log
|
||||
|
||||
IP: $(dst)/xlnx_proc_sys_reset.log \
|
||||
$(dst)/xlnx_ddr4.log \
|
||||
$(dst)/xlnx_ddr4-$(board).log \
|
||||
$(dst)/xlnx_axi_clock_converter.log \
|
||||
$(dst)/xlnx_ahblite_axi_bridge.log
|
||||
|
||||
|
|
37
fpga/generator/debug/miss-fetch-deadlock.tsm
Normal file
37
fpga/generator/debug/miss-fetch-deadlock.tsm
Normal file
|
@ -0,0 +1,37 @@
|
|||
##################################################
|
||||
#
|
||||
# For info on creating trigger state machines:
|
||||
# 1) In the main Vivado menu bar, select
|
||||
# Window > Language Templates
|
||||
# 2) In the Templates window, select
|
||||
# Debug > Trigger State Machine
|
||||
# 3) Refer to the entry 'Info' for an overview
|
||||
# of the trigger state machine language.
|
||||
#
|
||||
# More information can be found in this document:
|
||||
#
|
||||
# Vivado Design Suite User Guide: Programming
|
||||
# and Debugging (UG908)
|
||||
#
|
||||
##################################################
|
||||
state state_reset:
|
||||
if(wallypipelinedsoc/core/lsu/bus.dcache.dcache/cachefsm/CurrState == 4'h1) then
|
||||
reset_counter $counter0;
|
||||
goto state_begin_count;
|
||||
#goto state_trigger;
|
||||
else
|
||||
goto state_reset;
|
||||
endif
|
||||
|
||||
state state_begin_count:
|
||||
if($counter0 == 16'h0164) then
|
||||
goto state_trigger;
|
||||
elseif(wallypipelinedsoc/core/lsu/bus.dcache.dcache/cachefsm/CurrState == 4'h1) then
|
||||
increment_counter $counter0;
|
||||
goto state_begin_count;
|
||||
else
|
||||
goto state_reset;
|
||||
endif
|
||||
|
||||
state state_trigger:
|
||||
trigger;
|
49
fpga/generator/debug/uart-stuck.tsm
Normal file
49
fpga/generator/debug/uart-stuck.tsm
Normal file
|
@ -0,0 +1,49 @@
|
|||
##################################################
|
||||
#
|
||||
# For info on creating trigger state machines:
|
||||
# 1) In the main Vivado menu bar, select
|
||||
# Window > Language Templates
|
||||
# 2) In the Templates window, select
|
||||
# Debug > Trigger State Machine
|
||||
# 3) Refer to the entry 'Info' for an overview
|
||||
# of the trigger state machine language.
|
||||
#
|
||||
# More information can be found in this document:
|
||||
#
|
||||
# Vivado Design Suite User Guide: Programming
|
||||
# and Debugging (UG908)
|
||||
#
|
||||
##################################################
|
||||
state state_reset:
|
||||
if(wallypipelinedsoc/uncore.uncore/uart.uart/INTR == 1'b1) then
|
||||
reset_counter $counter0;
|
||||
reset_counter $counter1;
|
||||
goto state_begin_count;
|
||||
else
|
||||
goto state_reset;
|
||||
endif
|
||||
|
||||
state state_begin_count:
|
||||
if(wallypipelinedsoc/uncore.uncore/uart.uart/INTR == 1'b0) then
|
||||
reset_counter $counter0;
|
||||
reset_counter $counter1;
|
||||
goto state_reset;
|
||||
elseif($counter0 == 16'hFFFF && wallypipelinedsoc/uncore.uncore/uart.uart/INTR == 1'b1) then
|
||||
goto state_count1;
|
||||
else
|
||||
increment_counter $counter0;
|
||||
goto state_begin_count;
|
||||
#endif
|
||||
endif
|
||||
|
||||
state state_count1:
|
||||
if($counter1 == 16'h000F && wallypipelinedsoc/uncore.uncore/uart.uart/INTR == 1'b1) then
|
||||
goto state_trigger;
|
||||
else
|
||||
increment_counter $counter1;
|
||||
reset_counter $counter0;
|
||||
goto state_begin_count;
|
||||
endif
|
||||
|
||||
state state_trigger:
|
||||
trigger;
|
|
@ -1,7 +1,8 @@
|
|||
# start by reading in all the IP blocks generated by vivado
|
||||
|
||||
set partNumber xcvu9p-flga2104-2L-e
|
||||
set boardName xilinx.com:vcu118:part0:2.4
|
||||
set partNumber $::env(XILINX_PART)
|
||||
set boardName $::env(XILINX_BOARD)
|
||||
set boardSubName [lindex [split ${boardName} :] 1]
|
||||
|
||||
set ipName WallyFPGA
|
||||
|
||||
|
@ -19,8 +20,9 @@ read_verilog {../src/fpgaTop.v}
|
|||
|
||||
set_property include_dirs {../../pipelined/config/fpga ../../pipelined/config/shared} [current_fileset]
|
||||
|
||||
add_files -fileset constrs_1 -norecurse ../constraints/constraints.xdc
|
||||
set_property PROCESSING_ORDER NORMAL [get_files ../constraints/constraints.xdc]
|
||||
|
||||
add_files -fileset constrs_1 -norecurse ../constraints/constraints-$boardSubName.xdc
|
||||
set_property PROCESSING_ORDER NORMAL [get_files ../constraints/constraints-$boardSubName.xdc]
|
||||
|
||||
# define top level
|
||||
set_property top fpgaTop [current_fileset]
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
|
||||
#set partNumber $::env(XILINX_PART)
|
||||
#set boardNmae $::env(XILINX_BOARD)
|
||||
set partNumber $::env(XILINX_PART)
|
||||
set boardName $::env(XILINX_BOARD)
|
||||
|
||||
# vcu118 board
|
||||
set partNumber xcvu9p-flga2104-2L-e
|
||||
set boardName xilinx.com:vcu118:part0:2.4
|
||||
#set partNumber xcvu9p-flga2104-2L-e
|
||||
#set boardName xilinx.com:vcu118:part0:2.4
|
||||
|
||||
# kcu105 board
|
||||
#set partNumber xcku040-ffva1156-2-e
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
|
||||
#set partNumber $::env(XILINX_PART)
|
||||
#set boardNmae $::env(XILINX_BOARD)
|
||||
set partNumber xcvu9p-flga2104-2L-e
|
||||
set boardName xilinx.com:vcu118:part0:2.4
|
||||
set partNumber $::env(XILINX_PART)
|
||||
set boardName $::env(XILINX_BOARD)
|
||||
#set partNumber xcvu9p-flga2104-2L-e
|
||||
#set boardName xilinx.com:vcu118:part0:2.4
|
||||
|
||||
set ipName xlnx_axi_clock_converter
|
||||
|
||||
|
|
164
fpga/generator/xlnx_ddr4-vcu108.tcl
Normal file
164
fpga/generator/xlnx_ddr4-vcu108.tcl
Normal file
|
@ -0,0 +1,164 @@
|
|||
|
||||
set partNumber $::env(XILINX_PART)
|
||||
set boardName $::env(XILINX_BOARD)
|
||||
#set partNumber xcvu9p-flga2104-2L-e
|
||||
#set boardName xilinx.com:vcu118:part0:2.4
|
||||
|
||||
set ipName xlnx_ddr4
|
||||
|
||||
create_project $ipName . -force -part $partNumber
|
||||
set_property board_part $boardName [current_project]
|
||||
|
||||
# really just these two lines which change
|
||||
create_ip -name ddr4 -vendor xilinx.com -library ip -module_name $ipName
|
||||
set_property -dict [list CONFIG.C0.ControllerType {DDR4_SDRAM} \
|
||||
CONFIG.No_Controller {1} \
|
||||
CONFIG.Phy_Only {Complete_Memory_Controller} \
|
||||
CONFIG.C0.DDR4_PhyClockRatio {4:1} \
|
||||
CONFIG.C0.DDR4_TimePeriod {1200} \
|
||||
CONFIG.C0.DDR4_MemoryPart {MT40A256M16GE-083E} \
|
||||
CONFIG.C0.DDR4_BurstLength {8} \
|
||||
CONFIG.C0.DDR4_BurstType {Sequential} \
|
||||
CONFIG.C0.DDR4_CasLatency {13} \
|
||||
CONFIG.C0.DDR4_CasWriteLatency {10} \
|
||||
CONFIG.C0.DDR4_Slot {Single} \
|
||||
CONFIG.C0.DDR4_MemoryVoltage {1.2V} \
|
||||
CONFIG.C0.DDR4_DataWidth {64} \
|
||||
CONFIG.C0.DDR4_DataMask {DM_NO_DBI} \
|
||||
CONFIG.C0.DDR4_Mem_Add_Map {ROW_COLUMN_BANK} \
|
||||
CONFIG.C0.DDR4_Ordering {Normal} \
|
||||
CONFIG.C0.DDR4_Ecc {false} \
|
||||
CONFIG.C0.DDR4_AUTO_AP_COL_A3 {false} \
|
||||
CONFIG.C0.DDR4_AutoPrecharge {false} \
|
||||
CONFIG.C0.DDR4_UserRefresh_ZQCS {false} \
|
||||
CONFIG.C0.DDR4_AxiDataWidth {64} \
|
||||
CONFIG.C0.DDR4_AxiArbitrationScheme {RD_PRI_REG} \
|
||||
CONFIG.C0.DDR4_AxiIDWidth {4} \
|
||||
CONFIG.C0.DDR4_AxiAddressWidth {31} \
|
||||
CONFIG.C0.DDR4_AxiNarrowBurst {false} \
|
||||
CONFIG.C0.DDR4_CLKFBOUT_MULT {5} \
|
||||
CONFIG.C0.DDR4_DIVCLK_DIVIDE {1} \
|
||||
CONFIG.C0.DDR4_CLKOUT0_DIVIDE {6} \
|
||||
CONFIG.Reference_Clock {Differential} \
|
||||
CONFIG.ADDN_UI_CLKOUT1.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT1_FREQ_HZ {22} \
|
||||
CONFIG.ADDN_UI_CLKOUT2.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT2_FREQ_HZ {208} \
|
||||
CONFIG.ADDN_UI_CLKOUT3.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT3_FREQ_HZ {None} \
|
||||
CONFIG.ADDN_UI_CLKOUT4.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT4_FREQ_HZ {None} \
|
||||
CONFIG.Debug_Signal {Disable} \
|
||||
CONFIG.MCS_DBG_EN {false} \
|
||||
CONFIG.C0.DDR4_MCS_ECC {false} \
|
||||
CONFIG.Simulation_Mode {BFM} \
|
||||
CONFIG.Example_TG {SIMPLE_TG} \
|
||||
CONFIG.C0.DDR4_SELF_REFRESH {false} \
|
||||
CONFIG.RECONFIG_XSDB_SAVE_RESTORE {false} \
|
||||
CONFIG.C0.DDR4_SAVE_RESTORE {false} \
|
||||
CONFIG.C0.DDR4_RESTORE_CRC {false} \
|
||||
CONFIG.C0.MIGRATION {false} \
|
||||
CONFIG.AL_SEL {0} \
|
||||
CONFIG.C0.ADDR_WIDTH {17} \
|
||||
CONFIG.C0.BANK_GROUP_WIDTH {1} \
|
||||
CONFIG.C0.CKE_WIDTH {1} \
|
||||
CONFIG.C0.CK_WIDTH {1} \
|
||||
CONFIG.C0.CS_WIDTH {1} \
|
||||
CONFIG.C0.DDR4_ACT_SKEW {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_4 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_5 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_6 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_7 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_8 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_9 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_10 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_11 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_12 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_13 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_14 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_15 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_16 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_17 {0} \
|
||||
CONFIG.C0.DDR4_AxiSelection {true} \
|
||||
CONFIG.C0.DDR4_BA_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_BA_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_BG_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_BG_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_CKE_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_CKE_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_CKE_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_CKE_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_CK_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_CK_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_CK_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_CK_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_CS_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_CS_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_CS_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_CS_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_Capacity {512} \
|
||||
CONFIG.C0.DDR4_ChipSelect {true} \
|
||||
CONFIG.C0.DDR4_Clamshell {false} \
|
||||
CONFIG.C0.DDR4_CustomParts {no_file_loaded} \
|
||||
CONFIG.C0.DDR4_EN_PARITY {false} \
|
||||
CONFIG.C0.DDR4_Enable_LVAUX {false} \
|
||||
CONFIG.C0.DDR4_InputClockPeriod {3359} \
|
||||
CONFIG.C0.DDR4_LR_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_LR_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_MemoryName {MainMemory} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_OnDieTermination {RZQ/6} \
|
||||
CONFIG.C0.DDR4_PAR_SKEW {0} \
|
||||
CONFIG.C0.DDR4_Specify_MandD {false} \
|
||||
CONFIG.C0.DDR4_TREFI {0} \
|
||||
CONFIG.C0.DDR4_TRFC {0} \
|
||||
CONFIG.C0.DDR4_TRFC_DLR {0} \
|
||||
CONFIG.C0.DDR4_TXPR {0} \
|
||||
CONFIG.C0.DDR4_isCKEShared {false} \
|
||||
CONFIG.C0.DDR4_isCustom {false} \
|
||||
CONFIG.C0.DDR4_nCK_TREFI {0} \
|
||||
CONFIG.C0.DDR4_nCK_TRFC {0} \
|
||||
CONFIG.C0.DDR4_nCK_TRFC_DLR {0} \
|
||||
CONFIG.C0.DDR4_nCK_TXPR {5} \
|
||||
CONFIG.C0.LR_WIDTH {1} \
|
||||
CONFIG.C0.ODT_WIDTH {1} \
|
||||
CONFIG.C0.StackHeight {1} \
|
||||
CONFIG.C0_CLOCK_BOARD_INTERFACE {default_sysclk1_300} \
|
||||
CONFIG.C0_DDR4_ARESETN.INSERT_VIP {0} \
|
||||
CONFIG.C0_DDR4_BOARD_INTERFACE {Custom} \
|
||||
CONFIG.C0_DDR4_CLOCK.INSERT_VIP {0} \
|
||||
CONFIG.C0_DDR4_RESET.INSERT_VIP {0} \
|
||||
CONFIG.C0_DDR4_S_AXI.INSERT_VIP {0} \
|
||||
CONFIG.C0_SYS_CLK_I.INSERT_VIP {0} \
|
||||
CONFIG.CLKOUT6 {0} \
|
||||
CONFIG.DCI_Cascade {false} \
|
||||
CONFIG.DIFF_TERM_SYSCLK {false} \
|
||||
CONFIG.Default_Bank_Selections {false} \
|
||||
CONFIG.EN_PP_4R_MIR {false} \
|
||||
CONFIG.Enable_SysPorts {true} \
|
||||
CONFIG.IOPowerReduction {OFF} \
|
||||
CONFIG.IO_Power_Reduction {false} \
|
||||
CONFIG.IS_FROM_PHY {1} \
|
||||
CONFIG.PARTIAL_RECONFIG_FLOW_MIG {false} \
|
||||
CONFIG.PING_PONG_PHY {1} \
|
||||
CONFIG.RESET_BOARD_INTERFACE {reset} \
|
||||
CONFIG.SET_DW_TO_40 {false} \
|
||||
CONFIG.SYSTEM_RESET.INSERT_VIP {0} \
|
||||
CONFIG.System_Clock {Differential} \
|
||||
CONFIG.TIMING_3DS {false} \
|
||||
CONFIG.TIMING_OP1 {false} \
|
||||
CONFIG.TIMING_OP2 {false} \
|
||||
] [get_ips $ipName]
|
||||
|
||||
generate_target {instantiation_template} [get_files ./$ipName.srcs/sources_1/ip/$ipName/$ipName.xci]
|
||||
generate_target all [get_files ./$ipName.srcs/sources_1/ip/$ipName/$ipName.xci]
|
||||
create_ip_run [get_files -of_objects [get_fileset sources_1] ./$ipName.srcs/sources_1/ip/$ipName/$ipName.xci]
|
||||
launch_run -jobs 8 ${ipName}_synth_1
|
||||
wait_on_run ${ipName}_synth_1
|
165
fpga/generator/xlnx_ddr4-vcu118.tcl
Normal file
165
fpga/generator/xlnx_ddr4-vcu118.tcl
Normal file
|
@ -0,0 +1,165 @@
|
|||
|
||||
set partNumber $::env(XILINX_PART)
|
||||
set boardName $::env(XILINX_BOARD)
|
||||
#set partNumber xcvu9p-flga2104-2L-e
|
||||
#set boardName xilinx.com:vcu118:part0:2.4
|
||||
|
||||
set ipName xlnx_ddr4
|
||||
|
||||
create_project $ipName . -force -part $partNumber
|
||||
set_property board_part $boardName [current_project]
|
||||
|
||||
# really just these two lines which change
|
||||
create_ip -name ddr4 -vendor xilinx.com -library ip -module_name $ipName
|
||||
set_property -dict [list CONFIG.C0.ControllerType {DDR4_SDRAM} \
|
||||
CONFIG.No_Controller {1} \
|
||||
CONFIG.Phy_Only {Complete_Memory_Controller} \
|
||||
CONFIG.C0.DDR4_PhyClockRatio {4:1} \
|
||||
CONFIG.C0.DDR4_TimePeriod {1200} \
|
||||
CONFIG.C0.DDR4_MemoryPart {MT40A256M16GE-083E} \
|
||||
CONFIG.C0.DDR4_BurstLength {8} \
|
||||
CONFIG.C0.DDR4_BurstType {Sequential} \
|
||||
CONFIG.C0.DDR4_CasLatency {13} \
|
||||
CONFIG.C0.DDR4_CasWriteLatency {10} \
|
||||
CONFIG.C0.DDR4_Slot {Single} \
|
||||
CONFIG.C0.DDR4_MemoryVoltage {1.2V} \
|
||||
CONFIG.C0.DDR4_DataWidth {64} \
|
||||
CONFIG.C0.DDR4_DataMask {DM_NO_DBI} \
|
||||
CONFIG.C0.DDR4_Mem_Add_Map {ROW_COLUMN_BANK} \
|
||||
CONFIG.C0.DDR4_Ordering {Normal} \
|
||||
CONFIG.C0.DDR4_Ecc {false} \
|
||||
CONFIG.C0.DDR4_AUTO_AP_COL_A3 {false} \
|
||||
CONFIG.C0.DDR4_AutoPrecharge {false} \
|
||||
CONFIG.C0.DDR4_UserRefresh_ZQCS {false} \
|
||||
CONFIG.C0.DDR4_AxiDataWidth {64} \
|
||||
CONFIG.C0.DDR4_AxiArbitrationScheme {RD_PRI_REG} \
|
||||
CONFIG.C0.DDR4_AxiIDWidth {4} \
|
||||
CONFIG.C0.DDR4_AxiAddressWidth {31} \
|
||||
CONFIG.C0.DDR4_AxiNarrowBurst {false} \
|
||||
CONFIG.C0.DDR4_CLKFBOUT_MULT {5} \
|
||||
CONFIG.C0.DDR4_DIVCLK_DIVIDE {1} \
|
||||
CONFIG.C0.DDR4_CLKOUT0_DIVIDE {6} \
|
||||
CONFIG.Reference_Clock {Differential} \
|
||||
CONFIG.ADDN_UI_CLKOUT1.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT1_FREQ_HZ {30} \
|
||||
CONFIG.ADDN_UI_CLKOUT2.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT2_FREQ_HZ {208} \
|
||||
CONFIG.ADDN_UI_CLKOUT3.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT3_FREQ_HZ {None} \
|
||||
CONFIG.ADDN_UI_CLKOUT4.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT4_FREQ_HZ {None} \
|
||||
CONFIG.Debug_Signal {Disable} \
|
||||
CONFIG.MCS_DBG_EN {false} \
|
||||
CONFIG.C0.DDR4_MCS_ECC {false} \
|
||||
CONFIG.Simulation_Mode {BFM} \
|
||||
CONFIG.Example_TG {SIMPLE_TG} \
|
||||
CONFIG.C0.DDR4_SELF_REFRESH {false} \
|
||||
CONFIG.RECONFIG_XSDB_SAVE_RESTORE {false} \
|
||||
CONFIG.C0.DDR4_SAVE_RESTORE {false} \
|
||||
CONFIG.C0.DDR4_RESTORE_CRC {false} \
|
||||
CONFIG.C0.MIGRATION {false} \
|
||||
CONFIG.AL_SEL {0} \
|
||||
CONFIG.C0.ADDR_WIDTH {17} \
|
||||
CONFIG.C0.BANK_GROUP_WIDTH {1} \
|
||||
CONFIG.C0.CKE_WIDTH {1} \
|
||||
CONFIG.C0.CK_WIDTH {1} \
|
||||
CONFIG.C0.CS_WIDTH {1} \
|
||||
CONFIG.C0.DDR4_ACT_SKEW {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_4 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_5 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_6 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_7 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_8 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_9 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_10 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_11 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_12 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_13 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_14 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_15 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_16 {0} \
|
||||
CONFIG.C0.DDR4_ADDR_SKEW_17 {0} \
|
||||
CONFIG.C0.DDR4_AxiSelection {true} \
|
||||
CONFIG.C0.DDR4_BA_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_BA_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_BG_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_BG_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_CKE_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_CKE_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_CKE_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_CKE_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_CK_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_CK_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_CK_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_CK_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_CS_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_CS_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_CS_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_CS_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_Capacity {512} \
|
||||
CONFIG.C0.DDR4_ChipSelect {true} \
|
||||
CONFIG.C0.DDR4_Clamshell {false} \
|
||||
CONFIG.C0.DDR4_CustomParts {no_file_loaded} \
|
||||
CONFIG.C0.DDR4_EN_PARITY {false} \
|
||||
CONFIG.C0.DDR4_Enable_LVAUX {false} \
|
||||
CONFIG.C0.DDR4_InputClockPeriod {4000} \
|
||||
CONFIG.C0.DDR4_LR_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_LR_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_MemoryName {MainMemory} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_OnDieTermination {RZQ/6} \
|
||||
CONFIG.C0.DDR4_OutputDriverImpedenceControl {RZQ/7} \
|
||||
CONFIG.C0.DDR4_PAR_SKEW {0} \
|
||||
CONFIG.C0.DDR4_Specify_MandD {false} \
|
||||
CONFIG.C0.DDR4_TREFI {0} \
|
||||
CONFIG.C0.DDR4_TRFC {0} \
|
||||
CONFIG.C0.DDR4_TRFC_DLR {0} \
|
||||
CONFIG.C0.DDR4_TXPR {0} \
|
||||
CONFIG.C0.DDR4_isCKEShared {false} \
|
||||
CONFIG.C0.DDR4_isCustom {false} \
|
||||
CONFIG.C0.DDR4_nCK_TREFI {0} \
|
||||
CONFIG.C0.DDR4_nCK_TRFC {0} \
|
||||
CONFIG.C0.DDR4_nCK_TRFC_DLR {0} \
|
||||
CONFIG.C0.DDR4_nCK_TXPR {5} \
|
||||
CONFIG.C0.LR_WIDTH {1} \
|
||||
CONFIG.C0.ODT_WIDTH {1} \
|
||||
CONFIG.C0.StackHeight {1} \
|
||||
CONFIG.C0_CLOCK_BOARD_INTERFACE {default_250mhz_clk1} \
|
||||
CONFIG.C0_DDR4_ARESETN.INSERT_VIP {0} \
|
||||
CONFIG.C0_DDR4_BOARD_INTERFACE {Custom} \
|
||||
CONFIG.C0_DDR4_CLOCK.INSERT_VIP {0} \
|
||||
CONFIG.C0_DDR4_RESET.INSERT_VIP {0} \
|
||||
CONFIG.C0_DDR4_S_AXI.INSERT_VIP {0} \
|
||||
CONFIG.C0_SYS_CLK_I.INSERT_VIP {0} \
|
||||
CONFIG.CLKOUT6 {0} \
|
||||
CONFIG.DCI_Cascade {false} \
|
||||
CONFIG.DIFF_TERM_SYSCLK {false} \
|
||||
CONFIG.Default_Bank_Selections {false} \
|
||||
CONFIG.EN_PP_4R_MIR {false} \
|
||||
CONFIG.Enable_SysPorts {true} \
|
||||
CONFIG.IOPowerReduction {OFF} \
|
||||
CONFIG.IO_Power_Reduction {false} \
|
||||
CONFIG.IS_FROM_PHY {1} \
|
||||
CONFIG.PARTIAL_RECONFIG_FLOW_MIG {false} \
|
||||
CONFIG.PING_PONG_PHY {1} \
|
||||
CONFIG.RESET_BOARD_INTERFACE {reset} \
|
||||
CONFIG.SET_DW_TO_40 {false} \
|
||||
CONFIG.SYSTEM_RESET.INSERT_VIP {0} \
|
||||
CONFIG.System_Clock {Differential} \
|
||||
CONFIG.TIMING_3DS {false} \
|
||||
CONFIG.TIMING_OP1 {false} \
|
||||
CONFIG.TIMING_OP2 {false} \
|
||||
] [get_ips $ipName]
|
||||
|
||||
generate_target {instantiation_template} [get_files ./$ipName.srcs/sources_1/ip/$ipName/$ipName.xci]
|
||||
generate_target all [get_files ./$ipName.srcs/sources_1/ip/$ipName/$ipName.xci]
|
||||
create_ip_run [get_files -of_objects [get_fileset sources_1] ./$ipName.srcs/sources_1/ip/$ipName/$ipName.xci]
|
||||
launch_run -jobs 8 ${ipName}_synth_1
|
||||
wait_on_run ${ipName}_synth_1
|
|
@ -1,8 +1,9 @@
|
|||
|
||||
#set partNumber $::env(XILINX_PART)
|
||||
#set boardNmae $::env(XILINX_BOARD)
|
||||
set partNumber xcvu9p-flga2104-2L-e
|
||||
set boardName xilinx.com:vcu118:part0:2.4
|
||||
set partNumber xcvu095-ffva2104-2-e
|
||||
set boardName xilinx.com:vcu108:part0:1.2
|
||||
|
||||
|
||||
set ipName xlnx_ddr4
|
||||
|
||||
|
@ -41,7 +42,7 @@ set_property -dict [list CONFIG.C0.ControllerType {DDR4_SDRAM} \
|
|||
CONFIG.C0.DDR4_CLKOUT0_DIVIDE {6} \
|
||||
CONFIG.Reference_Clock {Differential} \
|
||||
CONFIG.ADDN_UI_CLKOUT1.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT1_FREQ_HZ {30} \
|
||||
CONFIG.ADDN_UI_CLKOUT1_FREQ_HZ {22} \
|
||||
CONFIG.ADDN_UI_CLKOUT2.INSERT_VIP {0} \
|
||||
CONFIG.ADDN_UI_CLKOUT2_FREQ_HZ {208} \
|
||||
CONFIG.ADDN_UI_CLKOUT3.INSERT_VIP {0} \
|
||||
|
@ -106,7 +107,7 @@ set_property -dict [list CONFIG.C0.ControllerType {DDR4_SDRAM} \
|
|||
CONFIG.C0.DDR4_CustomParts {no_file_loaded} \
|
||||
CONFIG.C0.DDR4_EN_PARITY {false} \
|
||||
CONFIG.C0.DDR4_Enable_LVAUX {false} \
|
||||
CONFIG.C0.DDR4_InputClockPeriod {4000} \
|
||||
CONFIG.C0.DDR4_InputClockPeriod {3359} \
|
||||
CONFIG.C0.DDR4_LR_SKEW_0 {0} \
|
||||
CONFIG.C0.DDR4_LR_SKEW_1 {0} \
|
||||
CONFIG.C0.DDR4_MemoryName {MainMemory} \
|
||||
|
@ -115,7 +116,6 @@ set_property -dict [list CONFIG.C0.ControllerType {DDR4_SDRAM} \
|
|||
CONFIG.C0.DDR4_ODT_SKEW_2 {0} \
|
||||
CONFIG.C0.DDR4_ODT_SKEW_3 {0} \
|
||||
CONFIG.C0.DDR4_OnDieTermination {RZQ/6} \
|
||||
CONFIG.C0.DDR4_OutputDriverImpedenceControl {RZQ/7} \
|
||||
CONFIG.C0.DDR4_PAR_SKEW {0} \
|
||||
CONFIG.C0.DDR4_Specify_MandD {false} \
|
||||
CONFIG.C0.DDR4_TREFI {0} \
|
||||
|
@ -131,7 +131,7 @@ set_property -dict [list CONFIG.C0.ControllerType {DDR4_SDRAM} \
|
|||
CONFIG.C0.LR_WIDTH {1} \
|
||||
CONFIG.C0.ODT_WIDTH {1} \
|
||||
CONFIG.C0.StackHeight {1} \
|
||||
CONFIG.C0_CLOCK_BOARD_INTERFACE {default_250mhz_clk1} \
|
||||
CONFIG.C0_CLOCK_BOARD_INTERFACE {default_sysclk1_300} \
|
||||
CONFIG.C0_DDR4_ARESETN.INSERT_VIP {0} \
|
||||
CONFIG.C0_DDR4_BOARD_INTERFACE {Custom} \
|
||||
CONFIG.C0_DDR4_CLOCK.INSERT_VIP {0} \
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
|
||||
#set partNumber $::env(XILINX_PART)
|
||||
#set boardNmae $::env(XILINX_BOARD)
|
||||
set partNumber xcvu9p-flga2104-2L-e
|
||||
set boardName xilinx.com:vcu118:part0:2.4
|
||||
set partNumber $::env(XILINX_PART)
|
||||
set boardName $::env(XILINX_BOARD)
|
||||
#set partNumber xcvu9p-flga2104-2L-e
|
||||
#set boardName xilinx.com:vcu118:part0:2.4
|
||||
|
||||
set ipName xlnx_proc_sys_reset
|
||||
|
||||
|
|
|
@ -155,6 +155,7 @@ module uartPC16550D(
|
|||
//DLL <= #1 8'd11; // 10 Mhz
|
||||
//DLL <= #1 8'd33; // 30 Mhz
|
||||
DLL <= #1 8'd8; // 30 Mhz 230400
|
||||
DLL <= #1 8'd24; // 22 Mhz 57600
|
||||
DLM <= #1 8'b0;
|
||||
end else begin
|
||||
DLL <= #1 8'd1; // this cannot be zero with DLM also zer0.
|
||||
|
@ -178,7 +179,7 @@ module uartPC16550D(
|
|||
// freq /baud / 16 = div
|
||||
//3'b000: if (DLAB) DLL <= #1 8'd38; //else TXHR <= #1 Din; // TX handled in TX register/FIFO section
|
||||
//3'b000: if (DLAB) DLL <= #1 8'd11; //else TXHR <= #1 Din; // TX handled in
|
||||
3'b000: if (DLAB) DLL <= #1 8'd8; //else TXHR <= #1 Din; // TX handled in
|
||||
3'b000: if (DLAB) DLL <= #1 8'd24; //else TXHR <= #1 Din; // TX handled in
|
||||
3'b001: if (DLAB) DLM <= #1 8'b0; else IER <= #1 Din[3:0];
|
||||
3'b010: FCR <= #1 {Din[7:6], 2'b0, Din[3], 2'b0, Din[0]}; // Write only FIFO Control Register; 4:5 reserved and 2:1 self-clearing
|
||||
3'b011: LCR <= #1 Din;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue