【问题标题】:XML TO TCL Parsing for Xilinx Vivado to generate Architecture用于 Xilinx Vivado 的 XML TO TCL 解析以生成架构
【发布时间】:2017-04-11 02:29:31
【问题描述】:

我正在使用 Xilinx Vivado 2014.4 。我正在做一个项目来为 Vivado 上的自定义架构生成框图。为此,我想使用 XML 文档生成 TCL 文件。我已经用尽了互联网上所有可用的资源,但找不到将 XML 文件解析为 TCL 脚本的任何答案。

使用 UARTLITE 外围设备生成 Microblaze 架构的示例 XML 文件

<?xml version="1.0"?>
<System>
 <MicroBlaze id="0">
    <Parameter>
        <NAME>mb0</NAME>
        <ICACHE_BASEADDR>0xa0000000</ICACHE_BASEADDR>
        <ICACHE_HIGHADDR>0xafffffff</ICACHE_HIGHADDR>
    </Parameter>
    <Bus_Interface>
        <M_AXI_DP>axiinter0</M_AXI_DP>
    </Bus_Interface>
 </MicroBlaze>
 <AXI_Interconnect id="0">
    <Parameter>
        <NAME>axiinter0</NAME>
    </Parameter>
 </AXI_Interconnect>
 <Uartlite id="0">
    <Parameter>
        <NAME>uart0</NAME>
        <BASEADDR>0x40600000</BASEADDR>
        <HIGHADDR>0x4060ffff</HIGHADDR>
    </Parameter>
 <Bus_Interface>
    <S_AXI>axiinter0</S_AXI>
 </Bus_Interface>
 </Uartlite>
 </System>

如何将其转换为 Xilinx Vivado 的有效 TCL 脚本

【问题讨论】:

    标签: xml tcl xilinx vivado


    【解决方案1】:

    XML(通常)是一种通用文档描述语言。 Tcl 是一种编程语言。它们完全不同。

    您可以告诉 Tcl 解析 XML 文档。执行此操作的首选包是 tDOM:

    package require tdom
    
    # Parse the XML document
    set f [open "theinputfile.xml"]
    set doc [dom parse [read $f]]
    close $f
    
    # Get the interesting part
    set root [$doc documentElement]
    
    # Iterate over the child elements
    foreach elem [$root selectNodes "./*"] {
        puts "I've got a [$elem nodeName]"
    }
    

    这将产生如下输出:

    我有一个 MicroBlaze 我有一个 AXI_Interconnect 我有一个UARTlite

    如何把它变成你真正想要的……嗯,你比我更清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多