diff --git a/src/main/scala/spinalutils/xilinx/ip/AxiDataWidthAdapter.scala b/src/main/scala/spinalutils/xilinx/ip/AxiDataWidthAdapter.scala index 94a4fef..fcb58c1 100644 --- a/src/main/scala/spinalutils/xilinx/ip/AxiDataWidthAdapter.scala +++ b/src/main/scala/spinalutils/xilinx/ip/AxiDataWidthAdapter.scala @@ -118,24 +118,24 @@ if { $$axiDwidthConvExist <0} { tcls = tcls :+ createCmd - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() - properties = properties :+ f"CONFIG.PROTOCOL {${conf.protocol}}" - properties = properties :+ f"CONFIG.READ_WRITE_MODE {${conf.rwmode}}" - properties = properties :+ f"CONFIG.ADDR_WIDTH {${conf.addressWidth}}" - properties = properties :+ f"CONFIG.SI_DATA_WIDTH {${conf.siDataWidth}}" - properties = properties :+ f"CONFIG.MI_DATA_WIDTH {${conf.miDataWidth}}" - properties = properties :+ f"CONFIG.SI_ID_WIDTH {${conf.siIdWidth}}" - properties = properties :+ f"CONFIG.MAX_SPLIT_BEATS {${conf.maxBurstLenth}}" - properties = properties :+ f"CONFIG.FIFO_MODE {${conf.fifoMode.position}}" - properties = properties :+ f"CONFIG.SYNCHRONIZATION_STAGES {${conf.syncStages}}" + properties = properties :+ f" CONFIG.PROTOCOL {${conf.protocol}}" + properties = properties :+ f" CONFIG.READ_WRITE_MODE {${conf.rwmode}}" + properties = properties :+ f" CONFIG.ADDR_WIDTH {${conf.addressWidth}}" + properties = properties :+ f" CONFIG.SI_DATA_WIDTH {${conf.siDataWidth}}" + properties = properties :+ f" CONFIG.MI_DATA_WIDTH {${conf.miDataWidth}}" + properties = properties :+ f" CONFIG.SI_ID_WIDTH {${conf.siIdWidth}}" + properties = properties :+ f" CONFIG.MAX_SPLIT_BEATS {${conf.maxBurstLenth}}" + properties = properties :+ f" CONFIG.FIFO_MODE {${conf.fifoMode.position}}" + properties = properties :+ f" CONFIG.SYNCHRONIZATION_STAGES {${conf.syncStages}}" properties = - properties :+ f"CONFIG.ACLK_ASYNC {${if (conf.fifoMode == AxiDataWidthAdapterFifoMode.PacketFifoWithCC) 1 else 0}}" + properties :+ f" CONFIG.ACLK_ASYNC {${if (conf.fifoMode == AxiDataWidthAdapterFifoMode.PacketFifoWithCC) 1 else 0}}" properties.foreach { x => if (x != "") - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } property = property.concat(f"] [get_ips axi_dwidth_converter_${conf.name}]") diff --git a/src/main/scala/spinalutils/xilinx/ip/AxisDataWidthAdapter.scala b/src/main/scala/spinalutils/xilinx/ip/AxisDataWidthAdapter.scala index c30761e..3087cfb 100644 --- a/src/main/scala/spinalutils/xilinx/ip/AxisDataWidthAdapter.scala +++ b/src/main/scala/spinalutils/xilinx/ip/AxisDataWidthAdapter.scala @@ -63,22 +63,22 @@ if { $$axisDwidthConvExist <0} { tcls = tcls :+ createCmd - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() - properties = properties :+ f"CONFIG.S_TDATA_NUM_BYTES ${conf.slaveBytes}" - properties = properties :+ f"CONFIG.M_TDATA_NUM_BYTES ${conf.masterBytes}" - properties = properties :+ f"CONFIG.HAS_TSTRB ${conf.useStrb}" - properties = properties :+ f"CONFIG.HAS_TKEEP ${conf.useKeep}" - properties = properties :+ f"CONFIG.HAS_TLAST ${conf.useLast}" - properties = properties :+ f"CONFIG.TID_WIDTH ${conf.tidWidth}" - properties = properties :+ f"CONFIG.TDEST_WIDTH ${conf.tdestWidth}" - properties = properties :+ f"CONFIG.TUSER_BITS_PER_BYTE ${conf.tuserWidth}" - properties = properties :+ f"CONFIG.HAS_MI_TKEEP ${(conf.slaveBytes < conf.masterBytes).toInt}" + properties = properties :+ f" CONFIG.S_TDATA_NUM_BYTES ${conf.slaveBytes}" + properties = properties :+ f" CONFIG.M_TDATA_NUM_BYTES ${conf.masterBytes}" + properties = properties :+ f" CONFIG.HAS_TSTRB ${conf.useStrb}" + properties = properties :+ f" CONFIG.HAS_TKEEP ${conf.useKeep}" + properties = properties :+ f" CONFIG.HAS_TLAST ${conf.useLast}" + properties = properties :+ f" CONFIG.TID_WIDTH ${conf.tidWidth}" + properties = properties :+ f" CONFIG.TDEST_WIDTH ${conf.tdestWidth}" + properties = properties :+ f" CONFIG.TUSER_BITS_PER_BYTE ${conf.tuserWidth}" + properties = properties :+ f" CONFIG.HAS_MI_TKEEP ${(conf.slaveBytes < conf.masterBytes).toInt}" properties.foreach { x => if (x != "") - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } property = property.concat(f"] [get_ips axis_dwidth_converter_${conf.name}]") diff --git a/src/main/scala/spinalutils/xilinx/ip/ClkWiz.scala b/src/main/scala/spinalutils/xilinx/ip/ClkWiz.scala index 5c9a96e..d6e9ff9 100644 --- a/src/main/scala/spinalutils/xilinx/ip/ClkWiz.scala +++ b/src/main/scala/spinalutils/xilinx/ip/ClkWiz.scala @@ -86,40 +86,41 @@ if { $$clkWizExit <0} { }""" tcls = tcls :+ createCmd - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() - properties = properties :+ f"CONFIG.PRIMITIVE {${conf.primitive.getName()}}" - properties = properties :+ f"CONFIG.PRIM_IN_FREQ {${conf.freqIn}}" - properties = properties :+ f"CONFIG.PRIM_SOURCE {${if (conf.dualIn) "Differential_clock_capable_pin" + properties = properties :+ f" CONFIG.PRIMITIVE {${conf.primitive.getName()}}" + properties = properties :+ f" CONFIG.PRIM_IN_FREQ {${conf.freqIn}}" + properties = properties :+ f" CONFIG.PRIM_SOURCE {${if (conf.dualIn) "Differential_clock_capable_pin" else "Single_ended_clock_capable_pin"}}" if (conf.freqOut.length == 1) - properties = properties :+ f"CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {${conf.freqOut(0)}}" + properties = properties :+ f" CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {${conf.freqOut(0)}}" else conf.freqOut.zipWithIndex.map { case (f, i) => - properties = properties :+ f"CONFIG.CLKOUT${i + 1}_USED {true} CONFIG.CLKOUT${i + 1}_REQUESTED_OUT_FREQ ${f}" + properties = properties :+ f" CONFIG.CLKOUT${i + 1}_USED {true}" + properties = properties :+ f" CONFIG.CLKOUT${i + 1}_REQUESTED_OUT_FREQ ${f}" } if (conf.freqDrives != null) conf.freqDrives.zipWithIndex.map { case (d, i) => - properties = properties :+ f"CONFIG.CLKOUT${i + 1}_DRIVES {${d.getName()}}" + properties = properties :+ f" CONFIG.CLKOUT${i + 1}_DRIVES {${d.getName()}}" } - properties = properties :+ f"CONFIG.JITTER_OPTIONS {${conf.jitterOpt.getName()}}" + properties = properties :+ f" CONFIG.JITTER_OPTIONS {${conf.jitterOpt.getName()}}" if (conf.jitterOpt == ClkWizJitterOptions.UI) - properties = properties :+ f"CONFIG.CLKIN1_UI_JITTER {${conf.inputJitter}}" + properties = properties :+ f" CONFIG.CLKIN1_UI_JITTER {${conf.inputJitter}}" else - properties = properties :+ f"CONFIG.CLKIN1_JITTER_PS {${conf.jitterPs}}" + properties = properties :+ f" CONFIG.CLKIN1_JITTER_PS {${conf.jitterPs}}" for (i <- conf.freqOut.length + 1 to 7) - properties = properties :+ f"CONFIG.CLKOUT${i}_USED {false}" - properties = properties :+ f"CONFIG.USE_LOCKED {${conf.locked}}" - properties = properties :+ f"CONFIG.USE_RESET {${conf.reset}}" + properties = properties :+ f" CONFIG.CLKOUT${i}_USED {false}" + properties = properties :+ f" CONFIG.USE_LOCKED {${conf.locked}}" + properties = properties :+ f" CONFIG.USE_RESET {${conf.reset}}" if (conf.reset) { - properties = properties :+ f"CONFIG.RESET_PORT {${if (conf.resetType == ClkWizResetOptions.LOW) "resetn" + properties = properties :+ f" CONFIG.RESET_PORT {${if (conf.resetType == ClkWizResetOptions.LOW) "resetn" else "reset"}}" } properties.foreach { x => if (x != "") - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } property = property.concat(f"] [get_ips clk_wiz_${conf.name}]") diff --git a/src/main/scala/spinalutils/xilinx/ip/Ila.scala b/src/main/scala/spinalutils/xilinx/ip/Ila.scala index 3f2d422..9e183a4 100644 --- a/src/main/scala/spinalutils/xilinx/ip/Ila.scala +++ b/src/main/scala/spinalutils/xilinx/ip/Ila.scala @@ -52,36 +52,36 @@ if { $$ilaExit <0 } { }""" tcls = tcls :+ createCmd - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() - properties = properties :+ f"CONFIG.C_DATA_DEPTH {${conf.depth}}" + properties = properties :+ f" CONFIG.C_DATA_DEPTH {${conf.depth}}" + properties = properties :+ f" CONFIG.C_NUM_OF_PROBES {${conf.probes.length}}" conf.probes.zipWithIndex.map { case (w, i) => - properties = properties :+ f"CONFIG.C_PROBE${i}_WIDTH {${w}}" + properties = properties :+ f" CONFIG.C_PROBE${i}_WIDTH {${w}}" } - properties = properties :+ f"CONFIG.C_NUM_OF_PROBES {${conf.probes.length}}" - properties = properties :+ f"CONFIG.ALL_PROBE_SAME_MU {${conf.sameComparators}}" + properties = properties :+ f" CONFIG.ALL_PROBE_SAME_MU {${conf.sameComparators}}" if (conf.sameComparators) { - properties = properties :+ f"CONFIG.ALL_PROBE_SAME_MU_CNT {${conf.comparator}}" + properties = properties :+ f" CONFIG.ALL_PROBE_SAME_MU_CNT {${conf.comparator}}" } else { conf.comparators.zipWithIndex.map { case (c, i) => - properties = properties :+ f"CONFIG.C_PROBE${i}_MU_CNT {${c}}" + properties = properties :+ f" CONFIG.C_PROBE${i}_MU_CNT {${c}}" } } if (conf.triggerOptions != null) { conf.triggerOptions.zipWithIndex.map { case (t, i) => - properties = properties :+ f"CONFIG.C_PROBE${i}_TYPE {${t.position}}" + properties = properties :+ f" CONFIG.C_PROBE${i}_TYPE {${t.position}}" } } - properties = properties :+ f"CONFIG.C_ADV_TRIGGER {${conf.advancedTrigger}}" - properties = properties :+ f"CONFIG.C_EN_STRG_QUAL {${conf.captureControl.toInt}}" + properties = properties :+ f" CONFIG.C_ADV_TRIGGER {${conf.advancedTrigger}}" + properties = properties :+ f" CONFIG.C_EN_STRG_QUAL {${conf.captureControl.toInt}}" properties.foreach { x => if (x != "") - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } property = property.concat(f"] [get_ips ila_${conf.name}]") @@ -109,7 +109,7 @@ object Ila { IlaConfig( name = name, probes = signalWidths, - depth = 1024 + depth = depth ) ) ila.setName(f"${name}_ila") @@ -127,7 +127,7 @@ object Ila { IlaConfig( name = name, probes = signalWidths, - depth = 1024 + depth = depth ) ) ila.setName(f"${name}_ila") diff --git a/src/main/scala/spinalutils/xilinx/ip/Vio.scala b/src/main/scala/spinalutils/xilinx/ip/Vio.scala index e1bb4ac..9a4d162 100644 --- a/src/main/scala/spinalutils/xilinx/ip/Vio.scala +++ b/src/main/scala/spinalutils/xilinx/ip/Vio.scala @@ -53,26 +53,26 @@ if { $$vioExit <0} { }""" tcls = tcls :+ createCmd - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() if (conf.inProbes.length != 0) - properties = properties :+ f"CONFIG.C_EN_PROBE_IN_ACTIVITY {${conf.inProbeActiveDetector.toInt}}" + properties = properties :+ f" CONFIG.C_EN_PROBE_IN_ACTIVITY {${conf.inProbeActiveDetector.toInt}}" - properties = properties :+ f"CONFIG.C_NUM_PROBE_IN {${conf.inProbes.length}}" + properties = properties :+ f" CONFIG.C_NUM_PROBE_IN {${conf.inProbes.length}}" conf.inProbes.zipWithIndex.map { case (w, i) => - properties = properties :+ f"CONFIG.C_PROBE_IN${i}_WIDTH {${w}}" + properties = properties :+ f" CONFIG.C_PROBE_IN${i}_WIDTH {${w}}" } - properties = properties :+ f"CONFIG.C_NUM_PROBE_OUT {${conf.outProbes.length}}" + properties = properties :+ f" CONFIG.C_NUM_PROBE_OUT {${conf.outProbes.length}}" conf.outProbes.zip(conf.outInits).zipWithIndex.map { case ((w, init), i) => - properties = properties :+ f"CONFIG.C_PROBE_OUT${i}_WIDTH {${w}}" - properties = properties :+ f"CONFIG.C_PROBE_OUT${i}_INIT_VAL {0x${init}%x}" + properties = properties :+ f" CONFIG.C_PROBE_OUT${i}_WIDTH {${w}}" + properties = properties :+ f" CONFIG.C_PROBE_OUT${i}_INIT_VAL {0x${init}%x}" } properties.foreach { x => if (x != "") - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } property = property.concat(f"] [get_ips vio_${conf.name}]") diff --git a/src/main/scala/spinalutils/xilinx/ip/Xadc.scala b/src/main/scala/spinalutils/xilinx/ip/Xadc.scala index d63c142..ed46940 100644 --- a/src/main/scala/spinalutils/xilinx/ip/Xadc.scala +++ b/src/main/scala/spinalutils/xilinx/ip/Xadc.scala @@ -164,34 +164,34 @@ if { $$xadcWizExist <0} { }""" tcls = tcls :+ createCmd - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() - properties = properties :+ f"CONFIG.INTERFACE_SELECTION {${conf.interface.getName()}}" - properties = properties :+ f"CONFIG.TIMING_MODE {${conf.timing.getName()}}" - properties = properties :+ f"CONFIG.DCLK_FREQUENCY {${conf.drpFreq}}" - properties = properties :+ f"CONFIG.ENABLE_RESET {${conf.interface != XadcInterfaceOptions.AXI4Lite}}" - properties = properties :+ f"CONFIG.ENABLE_AXI4STREAM {${conf.streamEn}}" - properties = properties :+ f"CONFIG.FIFO_DEPTH {${conf.streamFIFODepth}}" - properties = properties :+ f"CONFIG.OT_ALARM {${conf.alarms.useOverTemperature}}" - properties = properties :+ f"CONFIG.TEMPERATURE_ALARM_OT_TRIGGER {${conf.alarms.OverTemperatureTrigger}}" - properties = properties :+ f"CONFIG.TEMPERATURE_ALARM_OT_RESET {${conf.alarms.OverTemperatureReset}}" - properties = properties :+ f"CONFIG.USER_TEMP_ALARM {${conf.alarms.useUserTemperature}}" - properties = properties :+ f"CONFIG.TEMPERATURE_ALARM_TRIGGER {${conf.alarms.OverTemperatureTrigger}}" - properties = properties :+ f"CONFIG.TEMPERATURE_ALARM_RESET {${conf.alarms.OverTemperatureReset}}" - properties = properties :+ f"CONFIG.VCCINT_ALARM {${conf.alarms.useVCCINT}}" - properties = properties :+ f"CONFIG.VCCINT_ALARM_LOWER {${conf.alarms.VCCINTLower}}" - properties = properties :+ f"CONFIG.VCCINT_ALARM_UPPER {${conf.alarms.VCCINTUpper}}" - properties = properties :+ f"CONFIG.VCCAUX_ALARM {${conf.alarms.useVCCAUX}}" - properties = properties :+ f"CONFIG.VCCAUX_ALARM_LOWER {${conf.alarms.VCCAUXLower}}" - properties = properties :+ f"CONFIG.VCCAUX_ALARM_UPPER {${conf.alarms.VCCAUXUpper}}" - properties = properties :+ f"CONFIG.ENABLE_VBRAM_ALARM {${conf.alarms.useVCCBRAM}}" - properties = properties :+ f"CONFIG.VBRAM_ALARM_LOWER {${conf.alarms.VCCBRAMLower}}" - properties = properties :+ f"CONFIG.VBRAM_ALARM_UPPER {${conf.alarms.VCCBRAMUpper}}" + properties = properties :+ f" CONFIG.INTERFACE_SELECTION {${conf.interface.getName()}}" + properties = properties :+ f" CONFIG.TIMING_MODE {${conf.timing.getName()}}" + properties = properties :+ f" CONFIG.DCLK_FREQUENCY {${conf.drpFreq}}" + properties = properties :+ f" CONFIG.ENABLE_RESET {${conf.interface != XadcInterfaceOptions.AXI4Lite}}" + properties = properties :+ f" CONFIG.ENABLE_AXI4STREAM {${conf.streamEn}}" + properties = properties :+ f" CONFIG.FIFO_DEPTH {${conf.streamFIFODepth}}" + properties = properties :+ f" CONFIG.OT_ALARM {${conf.alarms.useOverTemperature}}" + properties = properties :+ f" CONFIG.TEMPERATURE_ALARM_OT_TRIGGER {${conf.alarms.OverTemperatureTrigger}}" + properties = properties :+ f" CONFIG.TEMPERATURE_ALARM_OT_RESET {${conf.alarms.OverTemperatureReset}}" + properties = properties :+ f" CONFIG.USER_TEMP_ALARM {${conf.alarms.useUserTemperature}}" + properties = properties :+ f" CONFIG.TEMPERATURE_ALARM_TRIGGER {${conf.alarms.OverTemperatureTrigger}}" + properties = properties :+ f" CONFIG.TEMPERATURE_ALARM_RESET {${conf.alarms.OverTemperatureReset}}" + properties = properties :+ f" CONFIG.VCCINT_ALARM {${conf.alarms.useVCCINT}}" + properties = properties :+ f" CONFIG.VCCINT_ALARM_LOWER {${conf.alarms.VCCINTLower}}" + properties = properties :+ f" CONFIG.VCCINT_ALARM_UPPER {${conf.alarms.VCCINTUpper}}" + properties = properties :+ f" CONFIG.VCCAUX_ALARM {${conf.alarms.useVCCAUX}}" + properties = properties :+ f" CONFIG.VCCAUX_ALARM_LOWER {${conf.alarms.VCCAUXLower}}" + properties = properties :+ f" CONFIG.VCCAUX_ALARM_UPPER {${conf.alarms.VCCAUXUpper}}" + properties = properties :+ f" CONFIG.ENABLE_VBRAM_ALARM {${conf.alarms.useVCCBRAM}}" + properties = properties :+ f" CONFIG.VBRAM_ALARM_LOWER {${conf.alarms.VCCBRAMLower}}" + properties = properties :+ f" CONFIG.VBRAM_ALARM_UPPER {${conf.alarms.VCCBRAMUpper}}" properties.foreach { x => if (x != "") - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } property = property.concat(f"] [get_ips xadc_wiz_${conf.name}]") diff --git a/src/main/scala/spinalutils/xilinx/ip/Xdma.scala b/src/main/scala/spinalutils/xilinx/ip/Xdma.scala index ce586d0..45a60eb 100644 --- a/src/main/scala/spinalutils/xilinx/ip/Xdma.scala +++ b/src/main/scala/spinalutils/xilinx/ip/Xdma.scala @@ -168,7 +168,7 @@ case class Xdmavx690(config: XdmaConfig = XdmaConfig()) extends XdmaBase with IX override def generateTcl(): List[String] = { var tcls: List[String] = List() - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() val createCmd = f"""set xdmaExist [lsearch -exact [get_ips xdma_*] xdma_${config.name}] @@ -177,46 +177,46 @@ if { $$xdmaExist <0} { }""" tcls = tcls :+ createCmd - properties = properties :+ f"CONFIG.mode_selection {${if (config.advancedMode) "Advanced" + properties = properties :+ f" CONFIG.mode_selection {${if (config.advancedMode) "Advanced" else "Basic"}}" - properties = properties :+ f"${if (config.location != "") f"CONFIG.pcie_blk_locn {${config.location}}" + properties = properties :+ f"${if (config.location != "") f" CONFIG.pcie_blk_locn {${config.location}}" else ""}" - properties = properties :+ f"CONFIG.pl_link_cap_max_link_width {X${config.lanes}}" - properties = properties :+ f"CONFIG.pl_link_cap_max_link_speed {${config.speed}%.1f_GT/s}" - properties = properties :+ f"CONFIG.ref_clk_freq {${config.refclock}_MHz}" - properties = properties :+ f"CONFIG.axi_data_width {${config.dataWidth}_bit}" - properties = properties :+ f"CONFIG.axisten_freq {${config.dataClock}}" - properties = properties :+ f"CONFIG.axist_bypass_en {${config.bypass}}" - properties = properties :+ f"CONFIG.axist_bypass_size {${config.bypassSize}}" - properties = properties :+ f"CONFIG.axist_bypass_scale {${config.bypassScale}}" - properties = properties :+ f"CONFIG.pf0_interrupt_pin {${config.interruptType}}" - properties = properties :+ f"CONFIG.xdma_num_usr_irq {${config.userIrq}}" - properties = properties :+ f"CONFIG.xdma_rnum_chnl {${config.h2cStreams}}" - properties = properties :+ f"CONFIG.xdma_wnum_chnl {${config.c2hStreams}}" - properties = properties :+ f"CONFIG.xdma_rnum_rids {${config.readChannelIds}}" - properties = properties :+ f"CONFIG.xdma_wnum_rids {${config.writeChannelIds}}" - // properties = properties :+ f"CONFIG.select_quad {GTY_Quad_233}" // has been disabled - // properties = properties :+ f"CONFIG.plltype {QPLL1}" // has been disabled - properties = properties :+ f"CONFIG.xdma_axi_intf_mm {AXI_Stream}" - properties = properties :+ f"CONFIG.pf0_msix_enabled {true}" - properties = properties :+ f"CONFIG.pf0_msix_cap_table_size {01F}" - properties = properties :+ f"CONFIG.pf0_msix_cap_table_offset {00008000}" - properties = properties :+ f"CONFIG.pf0_msix_cap_pba_offset {00008FE0}" - properties = properties :+ f"CONFIG.cfg_mgmt_if {false}" - properties = properties :+ f"CONFIG.axi_bypass_64bit_en {true}" - properties = properties :+ f"CONFIG.axi_bypass_prefetchable {true}" - properties = properties :+ f"CONFIG.pf0_device_id {9028}" - properties = properties :+ f"CONFIG.PF0_DEVICE_ID_mqdma {9028}" - properties = properties :+ f"CONFIG.PF2_DEVICE_ID_mqdma {9228}" - properties = properties :+ f"CONFIG.PF3_DEVICE_ID_mqdma {9328}" - properties = properties :+ f"CONFIG.PF0_SRIOV_VF_DEVICE_ID {A038}" - properties = properties :+ f"CONFIG.PF1_SRIOV_VF_DEVICE_ID {A138}" - properties = properties :+ f"CONFIG.PF2_SRIOV_VF_DEVICE_ID {A238}" - properties = properties :+ f"CONFIG.PF3_SRIOV_VF_DEVICE_ID {A338}" + properties = properties :+ f" CONFIG.pl_link_cap_max_link_width {X${config.lanes}}" + properties = properties :+ f" CONFIG.pl_link_cap_max_link_speed {${config.speed}%.1f_GT/s}" + properties = properties :+ f" CONFIG.ref_clk_freq {${config.refclock}_MHz}" + properties = properties :+ f" CONFIG.axi_data_width {${config.dataWidth}_bit}" + properties = properties :+ f" CONFIG.axisten_freq {${config.dataClock}}" + properties = properties :+ f" CONFIG.axist_bypass_en {${config.bypass}}" + properties = properties :+ f" CONFIG.axist_bypass_size {${config.bypassSize}}" + properties = properties :+ f" CONFIG.axist_bypass_scale {${config.bypassScale}}" + properties = properties :+ f" CONFIG.pf0_interrupt_pin {${config.interruptType}}" + properties = properties :+ f" CONFIG.xdma_num_usr_irq {${config.userIrq}}" + properties = properties :+ f" CONFIG.xdma_rnum_chnl {${config.h2cStreams}}" + properties = properties :+ f" CONFIG.xdma_wnum_chnl {${config.c2hStreams}}" + properties = properties :+ f" CONFIG.xdma_rnum_rids {${config.readChannelIds}}" + properties = properties :+ f" CONFIG.xdma_wnum_rids {${config.writeChannelIds}}" + // properties = properties :+ f" CONFIG.select_quad {GTY_Quad_233}" // has been disabled + // properties = properties :+ f" CONFIG.plltype {QPLL1}" // has been disabled + properties = properties :+ f" CONFIG.xdma_axi_intf_mm {AXI_Stream}" + properties = properties :+ f" CONFIG.pf0_msix_enabled {true}" + properties = properties :+ f" CONFIG.pf0_msix_cap_table_size {01F}" + properties = properties :+ f" CONFIG.pf0_msix_cap_table_offset {00008000}" + properties = properties :+ f" CONFIG.pf0_msix_cap_pba_offset {00008FE0}" + properties = properties :+ f" CONFIG.cfg_mgmt_if {false}" + properties = properties :+ f" CONFIG.axi_bypass_64bit_en {true}" + properties = properties :+ f" CONFIG.axi_bypass_prefetchable {true}" + properties = properties :+ f" CONFIG.pf0_device_id {9028}" + properties = properties :+ f" CONFIG.PF0_DEVICE_ID_mqdma {9028}" + properties = properties :+ f" CONFIG.PF2_DEVICE_ID_mqdma {9228}" + properties = properties :+ f" CONFIG.PF3_DEVICE_ID_mqdma {9328}" + properties = properties :+ f" CONFIG.PF0_SRIOV_VF_DEVICE_ID {A038}" + properties = properties :+ f" CONFIG.PF1_SRIOV_VF_DEVICE_ID {A138}" + properties = properties :+ f" CONFIG.PF2_SRIOV_VF_DEVICE_ID {A238}" + properties = properties :+ f" CONFIG.PF3_SRIOV_VF_DEVICE_ID {A338}" properties.foreach { x => if (x != "") { - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } } property = property.concat(f"] [get_ips xdma_${config.name}]\n") @@ -279,7 +279,7 @@ case class Xdmavu9p(config: XdmaConfig = XdmaConfig()) extends XdmaBase with IXi override def generateTcl(): List[String] = { var tcls: List[String] = List() - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() val createCmd = f"""set xdmaExist [lsearch -exact [get_ips xdma_*] xdma_${config.name}] @@ -288,46 +288,46 @@ if { $$xdmaExist <0} { }""" tcls = tcls :+ createCmd - properties = properties :+ f"CONFIG.mode_selection {${if (config.advancedMode) "Advanced" + properties = properties :+ f" CONFIG.mode_selection {${if (config.advancedMode) "Advanced" else "Basic"}}" - properties = properties :+ f"${if (config.location != "") f"CONFIG.pcie_blk_locn {${config.location}}" + properties = properties :+ f"${if (config.location != "") f" CONFIG.pcie_blk_locn {${config.location}}" else ""}" - properties = properties :+ f"CONFIG.pl_link_cap_max_link_width {X${config.lanes}}" - properties = properties :+ f"CONFIG.pl_link_cap_max_link_speed {${config.speed}%.1f_GT/s}" - properties = properties :+ f"CONFIG.ref_clk_freq {${config.refclock}_MHz}" - properties = properties :+ f"CONFIG.axi_data_width {${config.dataWidth}_bit}" - properties = properties :+ f"CONFIG.axisten_freq {${config.dataClock}}" - properties = properties :+ f"CONFIG.axist_bypass_en {${config.bypass}}" - properties = properties :+ f"CONFIG.axist_bypass_size {${config.bypassSize}}" - properties = properties :+ f"CONFIG.axist_bypass_scale {${config.bypassScale}}" - properties = properties :+ f"CONFIG.pf0_interrupt_pin {${config.interruptType}}" - properties = properties :+ f"CONFIG.xdma_num_usr_irq {${config.userIrq}}" - properties = properties :+ f"CONFIG.xdma_rnum_chnl {${config.h2cStreams}}" - properties = properties :+ f"CONFIG.xdma_wnum_chnl {${config.c2hStreams}}" - properties = properties :+ f"CONFIG.xdma_rnum_rids {${config.readChannelIds}}" - properties = properties :+ f"CONFIG.xdma_wnum_rids {${config.writeChannelIds}}" - properties = properties :+ f"CONFIG.select_quad {GTY_Quad_233}" - // properties = properties :+ f"CONFIG.plltype {QPLL1}" - properties = properties :+ f"CONFIG.xdma_axi_intf_mm {AXI_Stream}" - properties = properties :+ f"CONFIG.pf0_msix_enabled {true}" - properties = properties :+ f"CONFIG.pf0_msix_cap_table_size {01F}" - properties = properties :+ f"CONFIG.pf0_msix_cap_table_offset {00008000}" - properties = properties :+ f"CONFIG.pf0_msix_cap_pba_offset {00008FE0}" - properties = properties :+ f"CONFIG.cfg_mgmt_if {false}" - properties = properties :+ f"CONFIG.axi_bypass_64bit_en {true}" - properties = properties :+ f"CONFIG.axi_bypass_prefetchable {true}" - properties = properties :+ f"CONFIG.pf0_device_id {9028}" - properties = properties :+ f"CONFIG.PF0_DEVICE_ID_mqdma {9028}" - properties = properties :+ f"CONFIG.PF2_DEVICE_ID_mqdma {9228}" - properties = properties :+ f"CONFIG.PF3_DEVICE_ID_mqdma {9328}" - properties = properties :+ f"CONFIG.PF0_SRIOV_VF_DEVICE_ID {A038}" - properties = properties :+ f"CONFIG.PF1_SRIOV_VF_DEVICE_ID {A138}" - properties = properties :+ f"CONFIG.PF2_SRIOV_VF_DEVICE_ID {A238}" - properties = properties :+ f"CONFIG.PF3_SRIOV_VF_DEVICE_ID {A338}" + properties = properties :+ f" CONFIG.pl_link_cap_max_link_width {X${config.lanes}}" + properties = properties :+ f" CONFIG.pl_link_cap_max_link_speed {${config.speed}%.1f_GT/s}" + properties = properties :+ f" CONFIG.ref_clk_freq {${config.refclock}_MHz}" + properties = properties :+ f" CONFIG.axi_data_width {${config.dataWidth}_bit}" + properties = properties :+ f" CONFIG.axisten_freq {${config.dataClock}}" + properties = properties :+ f" CONFIG.axist_bypass_en {${config.bypass}}" + properties = properties :+ f" CONFIG.axist_bypass_size {${config.bypassSize}}" + properties = properties :+ f" CONFIG.axist_bypass_scale {${config.bypassScale}}" + properties = properties :+ f" CONFIG.pf0_interrupt_pin {${config.interruptType}}" + properties = properties :+ f" CONFIG.xdma_num_usr_irq {${config.userIrq}}" + properties = properties :+ f" CONFIG.xdma_rnum_chnl {${config.h2cStreams}}" + properties = properties :+ f" CONFIG.xdma_wnum_chnl {${config.c2hStreams}}" + properties = properties :+ f" CONFIG.xdma_rnum_rids {${config.readChannelIds}}" + properties = properties :+ f" CONFIG.xdma_wnum_rids {${config.writeChannelIds}}" + properties = properties :+ f" CONFIG.select_quad {GTY_Quad_233}" + // properties = properties :+ f" CONFIG.plltype {QPLL1}" + properties = properties :+ f" CONFIG.xdma_axi_intf_mm {AXI_Stream}" + properties = properties :+ f" CONFIG.pf0_msix_enabled {true}" + properties = properties :+ f" CONFIG.pf0_msix_cap_table_size {01F}" + properties = properties :+ f" CONFIG.pf0_msix_cap_table_offset {00008000}" + properties = properties :+ f" CONFIG.pf0_msix_cap_pba_offset {00008FE0}" + properties = properties :+ f" CONFIG.cfg_mgmt_if {false}" + properties = properties :+ f" CONFIG.axi_bypass_64bit_en {true}" + properties = properties :+ f" CONFIG.axi_bypass_prefetchable {true}" + properties = properties :+ f" CONFIG.pf0_device_id {9028}" + properties = properties :+ f" CONFIG.PF0_DEVICE_ID_mqdma {9028}" + properties = properties :+ f" CONFIG.PF2_DEVICE_ID_mqdma {9228}" + properties = properties :+ f" CONFIG.PF3_DEVICE_ID_mqdma {9328}" + properties = properties :+ f" CONFIG.PF0_SRIOV_VF_DEVICE_ID {A038}" + properties = properties :+ f" CONFIG.PF1_SRIOV_VF_DEVICE_ID {A138}" + properties = properties :+ f" CONFIG.PF2_SRIOV_VF_DEVICE_ID {A238}" + properties = properties :+ f" CONFIG.PF3_SRIOV_VF_DEVICE_ID {A338}" properties.foreach { x => if (x != "") { - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } } property = property.concat(f"] [get_ips xdma_${config.name}]\n") diff --git a/src/main/scala/spinalutils/xilinx/ip/aurora/Aurora8b10b.scala b/src/main/scala/spinalutils/xilinx/ip/aurora/Aurora8b10b.scala index fa34d17..6bf9160 100644 --- a/src/main/scala/spinalutils/xilinx/ip/aurora/Aurora8b10b.scala +++ b/src/main/scala/spinalutils/xilinx/ip/aurora/Aurora8b10b.scala @@ -363,7 +363,7 @@ case class Aurora8b10b(config: Aurora8b10bConfig) extends BlackBox with IXilinxI def generateTcl(): List[String] = { var tcls: List[String] = List() - var property: String = "set_property -dict [list " + var property: String = "set_property -dict [list \\\n" var properties: List[String] = List() val createCmd = f"""set aurora8b10bExist [lsearch -exact [get_ips aurora_8b10b_*] aurora_8b10b_${config.name}] @@ -372,39 +372,39 @@ if { $$aurora8b10bExist <0} { }""" tcls = tcls :+ createCmd - properties = properties :+ f"CONFIG.C_LANE_WIDTH {${config.laneWidth}}" - properties = properties :+ f"CONFIG.C_LINE_RATE {${config.lineRate}}" - properties = properties :+ f"CONFIG.C_REFCLK_FREQUENCY {${config.gtRefClk}}" - properties = properties :+ f"CONFIG.C_INIT_CLK {${config.initClk}}" - properties = properties :+ f"CONFIG.DRP_FREQ {${config.drpClk}}" - properties = properties :+ f"CONFIG.Dataflow_Config {${config.dataFlow}}" - properties = properties :+ f"CONFIG.Interface_Mode {${config.interface}}" - properties = properties :+ f"CONFIG.Flow_Mode {${config.flowCtrl}}" - properties = properties :+ f"CONFIG.SupportLevel {${config.incore.toInt}}" + properties = properties :+ f" CONFIG.C_LANE_WIDTH {${config.laneWidth}}" + properties = properties :+ f" CONFIG.C_LINE_RATE {${config.lineRate}}" + properties = properties :+ f" CONFIG.C_REFCLK_FREQUENCY {${config.gtRefClk}}" + properties = properties :+ f" CONFIG.C_INIT_CLK {${config.initClk}}" + properties = properties :+ f" CONFIG.DRP_FREQ {${config.drpClk}}" + properties = properties :+ f" CONFIG.Dataflow_Config {${config.dataFlow}}" + properties = properties :+ f" CONFIG.Interface_Mode {${config.interface}}" + properties = properties :+ f" CONFIG.Flow_Mode {${config.flowCtrl}}" + properties = properties :+ f" CONFIG.SupportLevel {${config.incore.toInt}}" if (config.incore) { - properties = properties :+ f"CONFIG.SINGLEEND_INITCLK {${config.initClkSingleEnd}}" - properties = properties :+ f"CONFIG.SINGLEEND_GTREFCLK {${config.gtRefClkSingleEnd}}" + properties = properties :+ f" CONFIG.SINGLEEND_INITCLK {${config.initClkSingleEnd}}" + properties = properties :+ f" CONFIG.SINGLEEND_GTREFCLK {${config.gtRefClkSingleEnd}}" } - properties = properties :+ f"CONFIG.C_USE_SCRAMBLER {${config.scramber}}" - properties = properties :+ f"CONFIG.C_USE_CRC {${config.crc}}" - properties = properties :+ f"CONFIG.C_USE_BYTESWAP {${config.littleEndian}}" + properties = properties :+ f" CONFIG.C_USE_SCRAMBLER {${config.scramber}}" + properties = properties :+ f" CONFIG.C_USE_CRC {${config.crc}}" + properties = properties :+ f" CONFIG.C_USE_BYTESWAP {${config.littleEndian}}" if (config.column != null) - properties = properties :+ f"CONFIG.C_COLUMN_USED {${config.column}}" - properties = properties :+ f"CONFIG.C_AURORA_LANES {${config.lanes}}" + properties = properties :+ f" CONFIG.C_COLUMN_USED {${config.column}}" + properties = properties :+ f" CONFIG.C_AURORA_LANES {${config.lanes}}" for (i <- 0 until config.gtClock.length) - properties = properties :+ f"CONFIG.C_GT_CLOCK_${i + 1} {${config.gtClock(i)}}" + properties = properties :+ f" CONFIG.C_GT_CLOCK_${i + 1} {${config.gtClock(i)}}" var locSet = (1 to config.maxLoc).toSet for (i <- 0 until config.laneLoc.length) { - properties = properties :+ f"CONFIG.C_GT_LOC_${config.laneLoc(i).postion} {${config.laneLoc(i).setValue}}" + properties = properties :+ f" CONFIG.C_GT_LOC_${config.laneLoc(i).postion} {${config.laneLoc(i).setValue}}" locSet -= config.laneLoc(i).postion } - locSet.foreach(f => properties = properties :+ f"CONFIG.C_GT_LOC_${f} {X}") + locSet.foreach(f => properties = properties :+ f" CONFIG.C_GT_LOC_${f} {X}") properties.foreach { x => if (x != "") - property = property.concat(x) + " " + property = property.concat(x) + " \\\n" } property = property.concat(f"] [get_ips aurora_8b10b_${config.name}]")