# 
# Synthesis run script generated by Vivado
# 

namespace eval rt {
    variable rc
}
set rt::rc [catch {
  uplevel #0 {
    set ::env(BUILTIN_SYNTH) true
    source $::env(HRT_TCL_PATH)/rtSynthPrep.tcl
    rt::HARTNDb_startJobStats
    set rt::cmdEcho 0
    rt::set_parameter writeXmsg true
    rt::set_parameter enableParallelHelperSpawn true
    set ::env(RT_TMP) "./.Xil/Vivado-674561-685a421e500f/realtime/tmp"
    if { [ info exists ::env(RT_TMP) ] } {
      file mkdir $::env(RT_TMP)
    }

    rt::delete_design

    rt::set_parameter datapathDensePacking false
    set rt::partid xc7a100tcsg324-1
     file delete -force synth_hints.os

    set rt::multiChipSynthesisFlow false
    source $::env(SYNTH_COMMON)/common.tcl
    set rt::defaultWorkLibName xil_defaultlib
    rt::set_parameter defaultVhdlWorkLib xil_defaultlib

    rt::set_parameter loadVhdl2008Libs false
    rt::set_parameter loadVhdl2019Libs false
    rt::set_parameter deferParseUntilElab true
    rt::set_parameter sortHdlCommandLine true
    # Skipping read_* RTL commands because this is post-elab optimize flow
    set rt::useElabCache true
    if {$rt::useElabCache == false} {
      rt::read_verilog -sv -include {
    /var/jenkins_home/workspace/biriscv/biriscv/src/core
    /var/jenkins_home/workspace/biriscv/biriscv/src/dcache
    /var/jenkins_home/workspace/biriscv/biriscv/src/icache
  } {
      /eda/processor_ci/rtl/biriscv.sv
      /eda/processor-ci-controller/modules/uart.sv
      /eda/processor_ci/internal/ahblite_to_wishbone.sv
      /eda/processor_ci/internal/axi4_to_wishbone.sv
      /eda/processor_ci/internal/axi4lite_to_wishbone.sv
      /eda/processor-ci-controller/rtl/fifo.sv
      /eda/processor-ci-controller/rtl/reset.sv
      /eda/processor-ci-controller/rtl/clk_divider.sv
      /eda/processor-ci-controller/rtl/memory.sv
      /eda/processor-ci-controller/rtl/interpreter.sv
      /eda/processor-ci-controller/rtl/controller.sv
      /eda/processor-ci-controller/rtl/timer.sv
      /eda/processor_ci/internal/fpga_top.sv
    }
      rt::read_verilog -include {
    /var/jenkins_home/workspace/biriscv/biriscv/src/core
    /var/jenkins_home/workspace/biriscv/biriscv/src/dcache
    /var/jenkins_home/workspace/biriscv/biriscv/src/icache
  } {
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_alu.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_csr.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_csr_regfile.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_decode.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_decoder.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_defs.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_divider.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_exec.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_fetch.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_frontend.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_issue.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_lsu.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_mmu.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_multiplier.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_npc.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_pipe_ctrl.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_regfile.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_trace_sim.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/biriscv_xilinx_2r1w.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/core/riscv_core.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache_axi.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache_axi_axi.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache_core.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache_core_data_ram.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache_core_tag_ram.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache_if_pmem.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache_mux.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/dcache/dcache_pmem_mux.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/icache/icache.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/icache/icache_data_ram.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/icache/icache_tag_ram.v
      /var/jenkins_home/workspace/biriscv/biriscv/src/top/riscv_top.v
      /eda/processor-ci-controller/modules/UART/rtl/uart_rx.v
      /eda/processor-ci-controller/modules/UART/rtl/uart_tx.v
    }
      rt::filesetChecksum
    }
    rt::set_parameter usePostFindUniquification true
    set rt::SDCFileList ./.Xil/Vivado-674561-685a421e500f/realtime/fpga_top_synth.xdc
    rt::sdcChecksum
    set rt::top fpga_top
    rt::set_parameter enableIncremental true
    rt::set_parameter markDebugPreservationLevel "enable"
    set rt::reportTiming false
    rt::set_parameter elaborateOnly false
    rt::set_parameter elaborateRtl false
    rt::set_parameter eliminateRedundantBitOperator true
    rt::set_parameter dataflowBusHighlighting false
    rt::set_parameter generateDataflowBusNetlist false
    rt::set_parameter dataFlowViewInElab false
    rt::set_parameter busViewFixBrokenConnections false
    rt::set_parameter elaborateRtlOnlyFlow false
    rt::set_parameter writeBlackboxInterface true
    rt::set_parameter ramStyle auto
    rt::set_parameter merge_flipflops true
# MODE: 
    rt::set_parameter webTalkPath {./.Xil/Vivado-674561-685a421e500f/wt}
    rt::set_parameter synthDebugLog false
    rt::set_parameter printModuleName false
    rt::set_parameter enableSplitFlowPath "./.Xil/Vivado-674561-685a421e500f/"
    set ok_to_delete_rt_tmp true 
    if { [rt::get_parameter parallelDebug] } { 
       set ok_to_delete_rt_tmp false 
    } 
    if {$rt::useElabCache == false} {
        set oldMIITMVal [rt::get_parameter maxInputIncreaseToMerge]; rt::set_parameter maxInputIncreaseToMerge 1000
        set oldCDPCRL [rt::get_parameter createDfgPartConstrRecurLimit]; rt::set_parameter createDfgPartConstrRecurLimit 1
        $rt::db readXRFFile
      rt::run_synthesis -module $rt::top
        rt::set_parameter maxInputIncreaseToMerge $oldMIITMVal
        rt::set_parameter createDfgPartConstrRecurLimit $oldCDPCRL
    }

    set rt::flowresult [ source $::env(SYNTH_COMMON)/flow.tcl ]
    rt::HARTNDb_stopJobStats
    rt::HARTNDb_reportJobStats "Synthesis Optimization Runtime"
    rt::HARTNDb_stopSystemStats
    if { $rt::flowresult == 1 } { return -code error }


  set hsKey [rt::get_parameter helper_shm_key] 
  if { $hsKey != "" && [info exists ::env(BUILTIN_SYNTH)] && [rt::get_parameter enableParallelHelperSpawn] } { 
     $rt::db killSynthHelper $hsKey
  } 
  rt::set_parameter helper_shm_key "" 
    if { [ info exists ::env(RT_TMP) ] } {
      if { [info exists ok_to_delete_rt_tmp] && $ok_to_delete_rt_tmp } { 
        file delete -force $::env(RT_TMP)
      }
    }

    source $::env(HRT_TCL_PATH)/rtSynthCleanup.tcl
  } ; #end uplevel
} rt::result]

if { $rt::rc } {
  $rt::db resetHdlParse
  set hsKey [rt::get_parameter helper_shm_key] 
  if { $hsKey != "" && [info exists ::env(BUILTIN_SYNTH)] && [rt::get_parameter enableParallelHelperSpawn] } { 
     $rt::db killSynthHelper $hsKey
  } 
  source $::env(HRT_TCL_PATH)/rtSynthCleanup.tcl
  return -code "error" $rt::result
}
