在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3976|回复: 2

[原创] 善用Vivado工程配置文件xpr快速工程创建

[复制链接]
发表于 2016-10-19 17:52:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

善用Vivado工程配置文件xpr快速工程创建

对于第一次新建工程,没啥捷径,建议大家规规矩矩的使用VivadoGUI创建工程。完成工程创建后,我们找到这个新建工程下的.xpr文件,它是工程配置文件。

如我们新建工程的.xpr打开有,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Product Version: Vivado v2016.2 (64-bit)              -->

<!--                                                         -->

<!-- Copyright 1986-2016 Xilinx, Inc. All Rights Reserved.   -->


<Project Version="7" Minor="14" Path="D:/datasheet/xilinx/XDDR_PRJ/xddr_prj.xpr">

  <DefaultLaunch Dir="$PRUNDIR"/>

  <Configuration>

    <Option Name="Id" Val="0fd604fa43664afbb4172d9765411c21"/>

    <Option Name="Part" Val="xc7a50tftg256-1"/>

    <Option Name="CompiledLibDir" Val="$PCACHEDIR/compile_simlib"/>

    <Option Name="CompiledLibDirXSim" Val=""/>

    <Option Name="CompiledLibDirModelSim" Val="$PCACHEDIR/compile_simlib/modelsim"/>

    <Option Name="CompiledLibDirQuesta" Val="$PCACHEDIR/compile_simlib/questa"/>

    <Option Name="CompiledLibDirIES" Val="$PCACHEDIR/compile_simlib/ies"/>

    <Option Name="CompiledLibDirVCS" Val="$PCACHEDIR/compile_simlib/vcs"/>

    <Option Name="CompiledLibDirRiviera" Val="$PCACHEDIR/compile_simlib/riviera"/>

    <Option Name="CompiledLibDirActivehdl" Val="$PCACHEDIR/compile_simlib/activehdl"/>

    <Option Name="BoardPart" Val=""/>

    <Option Name="ActiveSimSet" Val="sim_1"/>

    <Option Name="DefaultLib" Val="xil_defaultlib"/>

    <Option Name="EnableCoreContainer" Val="FALSE"/>

    <Option Name="XPMLibraries" Val="XPM_MEMORY"/>

    <Option Name="CreateRefXciForCoreContainers" Val="FALSE"/>

    <Option Name="IPUserFilesDir" Val="$PPRDIR/ddr3_prj.ip_user_files"/>

    <Option Name="IPStaticSourceDir" Val="$PPRDIR/ddr3_prj.ip_user_files/ipstatic"/>

    <Option Name="EnableBDX" Val="FALSE"/>

    <Option Name="WTXSimLaunchSim" Val="5"/>

    <Option Name="WTModelSimLaunchSim" Val="0"/>

    <Option Name="WTQuestaLaunchSim" Val="0"/>

    <Option Name="WTIesLaunchSim" Val="0"/>

    <Option Name="WTVcsLaunchSim" Val="0"/>

    <Option Name="WTRivieraLaunchSim" Val="0"/>

    <Option Name="WTActivehdlLaunchSim" Val="0"/>

    <Option Name="WTXSimExportSim" Val="13"/>

    <Option Name="WTModelSimExportSim" Val="13"/>

    <Option Name="WTQuestaExportSim" Val="13"/>

    <Option Name="WTIesExportSim" Val="13"/>

    <Option Name="WTVcsExportSim" Val="13"/>

    <Option Name="WTRivieraExportSim" Val="13"/>

    <Option Name="WTActivehdlExportSim" Val="13"/>

  </Configuration>

  <FileSets Version="1" Minor="31">

    <FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1">

      <Filter Type="Srcs"/>

      <Config>

        <Option Name="DesignMode" Val="RTL"/>

        <Option Name="TopAutoSet" Val="TRUE"/>

      </Config>

    </FileSet>

    <FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1">

      <Filter Type="Constrs"/>

      <Config>

        <Option Name="ConstrsType" Val="XDC"/>

      </Config>

    </FileSet>

    <FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1">

      <Config>

        <Option Name="DesignMode" Val="RTL"/>

        <Option Name="TopAutoSet" Val="TRUE"/>

        <Option Name="TransportPathDelay" Val="0"/>

        <Option Name="TransportIntDelay" Val="0"/>

        <Option Name="SrcSet" Val="sources_1"/>

      </Config>

    </FileSet>

  </FileSets>

  <Simulators>

    <Simulator Name="XSim">

      <Option Name="Description" Val="Vivado Simulator"/>

      <Option Name="CompiledLib" Val="0"/>

    </Simulator>

    <Simulator Name="ModelSim">

      <Option Name="Description" Val="ModelSim Simulator"/>

    </Simulator>

    <Simulator Name="Questa">

      <Option Name="Description" Val="Questa Advanced Simulator"/>

    </Simulator>

    <Simulator Name="IES">

      <Option Name="Description" Val="Incisive Enterprise Simulator (IES)"/>

    </Simulator>

    <Simulator Name="VCS">

      <Option Name="Description" Val="verilog Compiler Simulator (VCS)"/>

    </Simulator>

    <Simulator Name="Riviera">

      <Option Name="Description" Val="Riviera-PRO Simulator"/>

    </Simulator>

    <Simulator Name="ActiveHDL">

      <Option Name="Description" Val="Active-HDL Simulator"/>

    </Simulator>

  </Simulators>

  <Runs Version="1" Minor="10">

    <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a50tftg256-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" State="current" IncludeInArchive="true">

      <Strategy Version="1" Minor="2">

        <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2016">

          <Desc>Vivado Synthesis Defaults</Desc>

        </StratHandle>

        <Step Id="synth_design"/>

      </Strategy>

    </Run>

    <Run Id="impl_1" Type="Ft2:EntireDesign" Part="xc7a50tftg256-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." State="current" SynthRun="synth_1" IncludeInArchive="true">

      <Strategy Version="1" Minor="2">

        <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2016">

          <Desc>Default settings for Implementation.</Desc>

        </StratHandle>

        <Step Id="init_design"/>

        <Step Id="opt_design"/>

        <Step Id="power_opt_design"/>

        <Step Id="place_design"/>

        <Step Id="post_place_power_opt_design"/>

        <Step Id="phys_opt_design"/>

        <Step Id="route_design"/>

        <Step Id="post_route_phys_opt_design"/>

        <Step Id="write_bitstream"/>

      </Strategy>

    </Run>

  </Runs>

</Project>

////////////////////////////////////////////////////////////////////////////////


对于这个工程配置文件,可以根据我们的需要,移植我们需要的信息。举个最简单的例子,我们只想在某个路径下创建一个以某个型号FPGA器件为主的工程,那么只要截取其中很少一部分即可(最前面的Configuration中的部分内容):

<?xml version="1.0" encoding="UTF-8"?>

<!-- Product Version: Vivado v2016.2 (64-bit)              -->

<!--                                                         -->

<!-- Copyright 1986-2016 Xilinx, Inc. All Rights Reserved.   -->


<Project Version="7" Minor="14" Path="D:/datasheet/xilinx/XDDR_PRJ/xddr_prj.xpr">

  <DefaultLaunch Dir="$PRUNDIR"/>

  <Configuration>

    <Option Name="Id" Val="0fd604fa43664afbb4172d9765411c21"/>

    <Option Name="Part" Val="xc7a50tftg256-1"/>

  </Configuration>

</Project>

注意,这里我们只需要改2个地方,即上面代码里面红色字体部分:

1. Path="D:/datasheet/xilinx/XDDR_PRJ/xddr_prj.xpr"这个表示工程存放路径,大家可以把自己的工程存放路径放上去覆盖它,注意是/”,而windows的路径都是“\”。

2. Val="xc7a50tftg256-1"表示所使用的FPGA器件型号,大家也可以使用自己的器件覆盖上去。

比如,特权同学这里只修改了路径,使用一样型号的FPGA型号。那么修改如下。

<?xml version="1.0" encoding="UTF-8"?>

<!-- Product Version: Vivado v2016.2 (64-bit)              -->

<!--                                                         -->

<!-- Copyright 1986-2016 Xilinx, Inc. All Rights Reserved.   -->


<Project Version="7" Minor="14" Path="D:/datasheet/xilinx/XADC_PRJ/xadc_prj.xpr">

  <DefaultLaunch Dir="$PRUNDIR"/>

  <Configuration>

    <Option Name="Id" Val="0fd604fa43664afbb4172d9765411c21"/>

    <Option Name="Part" Val="xc7a50tftg256-1"/>

  </Configuration>

</Project>


如图所示,不要忘记吧xadc_prj.xpr文件放置到脚本中设置的路径下。



双击xadc_prj.xprVivado工具将被打开,会自动以此创建新的工程,界面如图所示。



此时,工程文件夹里也自动创建了很多新的子文件夹。



当然了,在xadc_prj.xpr文件里,也平白无故的增加了一大堆新的配置信息,这都归功于Vivado自动配置功能。



这里只是举个xpr文件做工程移植的最简单例子,算是抛砖引玉,大家可以自己根据需要定制自己的移植配置文件,这对于要多次创建基于同一个FPGA器件平台的工程而言,非常高效。这其实也是脚本开发相对于GUI开发方式的一个主要优势。



发表于 2016-12-7 08:50:33 | 显示全部楼层
回复 1# 特权fpga

thanks for sharing
发表于 2018-12-23 10:35:44 | 显示全部楼层
谢谢分享!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 20:00 , Processed in 0.022249 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表