

create_project -force my_project
set_property SOURCE_MGMT_MODE None [current_project]
set_property STEPS.SYNTH_DESIGN.ARGS.ASSERT true [get_runs synth_1]
set_property PART xc7k480tffg1156-2L [current_project]


# # 生成IP核（以AXI UART Lite为例）
# create_ip -name axi_uartlite -vendor xilinx.com -library ip -version 2.0 -module_name uart_inst
# # 配置IP参数
# set_property -dict [list \
#     CONFIG.C_BAUDRATE {115200} \
#     CONFIG.C_S_AXI_ACLK_FREQ_HZ {100000000} \
#     CONFIG.C_DATA_BITS {8} \
#     CONFIG.C_USE_PARITY {0} \
# ] [get_ips uart_inst]


create_ip -name axi_interconnect -vendor xilinx.com -library ip -version 1.7 -module_name axi_interconnect_0
generate_target -force all [get_ips axi_interconnect_0]
synth_ip [get_ips axi_interconnect_0]




# add_file ../uart_inst.xci
# import_ip ../sources/ip/Top_axi_bram_ctrl_0_0/Top_axi_bram_ctrl_0_0.xci
# import_ip ../sources/ip/Top_util_vector_logic_1_3/Top_util_vector_logic_1_3.xci
# import_ip ../sources/ip/Top_xlconstant_2_0/Top_xlconstant_2_0.xci
import_ip ../sources/ip/Top_axi_interconnect_0_0/Top_axi_interconnect_0_0.xci

# upgrade_ip [get_ips Top_axi_interconnect_0_0]
# # set_property GENERATE_SYNTH_CHECKPOINT true Top_axi_interconnect_0_0
# generate_target -force all [get_ips Top_axi_interconnect_0_0]
# synth_ip [get_ips Top_axi_interconnect_0_0]


# import_ip ../sources/ip/Top_util_vector_logic_1_4/Top_util_vector_logic_1_4.xci
# import_ip ../sources/ip/Top_blk_mem_gen_0_0/Top_blk_mem_gen_0_0.xci
# import_ip ../sources/ip/Top_xbar_0/Top_xbar_0.xci
# import_ip ../sources/ip/Top_mig_7series_1_0/Top_mig_7series_1_0.xci
# import_ip ../sources/ip/Top_xdma_1_0/Top_xdma_1_0.xci
# import_ip ../sources/ip/Top_util_ds_buf_0_0/Top_util_ds_buf_0_0.xci
# import_ip ../sources/ip/Top_xlconstant_0_0/Top_xlconstant_0_0.xci

# generate_target all [get_ips Top_axi_bram_ctrl_0_0]
# generate_target all [get_ips Top_util_vector_logic_1_3]
# generate_target all [get_ips Top_xlconstant_2_0]
# generate_target all [get_ips Top_axi_interconnect_0_0]
# generate_target all [get_ips Top_util_vector_logic_1_4]
# generate_target all [get_ips Top_blk_mem_gen_0_0]
# generate_target all [get_ips Top_xbar_0]
# generate_target all [get_ips Top_mig_7series_1_0]
# generate_target all [get_ips Top_xdma_1_0]
# generate_target all [get_ips Top_util_ds_buf_0_0]
# generate_target all [get_ips Top_xlconstant_0_0]

# synth_ip [get_ips Top_axi_bram_ctrl_0_0]
# synth_ip [get_ips Top_util_vector_logic_1_3]
# synth_ip [get_ips Top_xlconstant_2_0]
# synth_ip [get_ips Top_axi_interconnect_0_0]
# synth_ip [get_ips Top_util_vector_logic_1_4]
# synth_ip [get_ips Top_blk_mem_gen_0_0]
# synth_ip [get_ips Top_xbar_0]
# synth_ip [get_ips Top_mig_7series_1_0]
# synth_ip [get_ips Top_xdma_1_0]
# synth_ip [get_ips Top_util_ds_buf_0_0]
# synth_ip [get_ips Top_xlconstant_0_0]


# add_file ../sources/Top_wrapper.v
# add_file ../sources/Top.bd

# add_file -fileset constrs_1 ../normal.xdc

# set_property TOP Top_wrapper [current_fileset]

# set_property GENERIC { FREQ=100000000 SECS=1 } -objects [get_filesets sources_1]

# close_project

# open_project my_project

# # Synthesis

# # PRESYNTH
# # set_property DESIGN_MODE GateLvl [current_fileset]
# reset_run synth_1
# launch_runs synth_1
# wait_on_run synth_1
# #report_property [get_runs synth_1]
# if { [get_property STATUS [get_runs synth_1]] ne "synth_design Complete!" } { exit 1 }

# # Place and Route

# reset_run impl_1
# launch_runs impl_1
# wait_on_run impl_1
# #report_property [get_runs impl_1]
# if { [get_property STATUS [get_runs impl_1]] ne "route_design Complete!" } { exit 1 }

# # Bitstream generation

# open_run impl_1
# # write_bitstream -force xdma480t
# # write_debug_probes -force -quiet xdma480t.ltx

# close_project


