FPGA开发之Tcl的基于项目设计

FPGA开发之Tcl的基于项目设计,第1张

step1:使用creat_project指令创建一个项目设计,产生这个项目的目录,以及有关的子目录。
具体使用的指令是create_project tcl_first //这里的tcl_first是你的项目名称。
在你建好的项目中,有.xpr,.data,.srcs和.runs的目录。其中.xpr和.data保存着全部项目管理的信息和状态。在.srcs目录下的就是源文件:RTL(verilog,VHDL,system verilog);IP核(利用import_file指令将文件放到Source_1的目录下,或者add File);约束文件集在constrs_1:包含设计所需的全部约束文件(时序约束和物理约束);仿真文件:testbench和测试案例。使用get_filesets指令可以找到文件集,利用get_files指令可以找到文件。

step2:项目运行管理器:输出文件的位置:DIRECTORY。
利用的工具:FLOW。
综合运行:XST可以作为综合工具。
运行之后可以在TCL看要求的特性:get_property。
以上是一些可能用到的指令。
利用creat_run指令产生运行,synth_1和impl_1的运行是自动产生的。
利用set_property设置运行对象的特性来配置运行。利用launch_runs指令启动运行,利用-next_step或-to_step选项可以控制哪个步骤运行。
利用-pre_launch_script指令和-post_launch_script选项可以在进程进行之前或之后运行Tcl脚本。
利用reset_runs指令可以进行复位运行。
利用wait_on_run指令主要的vivado设计套件的进程可以等待一个运行完成。
使用open_design可以看你的设计!

step3:约束管理: 当使用launch_runs的时候启动一个进程,后台在开始之前读入约束。在交互模式下,约束存放在存储器中,可以利用report_TIme和report_summmary产生时序报告。

step4:进入实战,了解了这么多概念,接下来试试利用基于项目的设计流程通过产生设计项目,添加源文件,设置项目变量进行进程特性和实现设计项目四个步骤实现wavegen项目。

利用Tcl 修改Tcl文件 在指定位置添加Tcl命令
产生设计项目 DO_build.tcl #source $script_dir / create_proj.tcl
create_proj.tcl create_project wave_gen -part $device
set_property target_language Verilog [current_project]
添加源文件 Do_build.tcl #source_files $script_dir/load_files.tcl
Load_files.tcl import_files [glob $src_dir / *]
import_files -fileset [get_fileset constrs_1] $xdc_dir / wave_gen_TIming.xdc
get_TIming.xdc
设置项目变量 Do_build.tcl "#source $ script_dir/set_props.tcl"
进行进程特征 Set_props.tcl set_property steps.synth_design. args. flatten_hierarchy full [get_runs synth_1]
实现设计项目 Do_build.tcl "#source $ script_dir/implement.tcl"
Implement.tcl wait_on_run synth_1

Do_build.tcl文件:
# This script will form the basis of a repeatable, scripted build process
# that can be used to generate complete projects.
#
# While completely scripted, the end result is an Vivado project that can be
# viewed and even manipulated by the Vivado IDE.
#
# This script will
# - Create a new directory for the build
# - the name will be build_YYMMDD_HHMMSS where YYMMDD_HHMMSS is the
# current TIme
# - Change directory into that directory
# - Create a new Vivado project
# - Set the main project properties for the target device
# - Load all the # source files
# - Set appropriate process properties
# - Implement the design
#

# Get the current date/time. The result is a machine readable version of the
# the date/time (number of seconds since the epoch started)

set time_raw [clock seconds];

# Format the raw time to a date string

set date_string [clock format $time_raw -format "%y%m%d_%H%M%S"]

# Set the directory name to be build_YYMMDD_HHMMSS
set proj_dir "build_$date_string"

# Create the new build directory
puts "Creating build directory $proj_dir"
file mkdir $proj_dir

# The remaining TCL scripts live in this directory. Remember
# the path before we change directories
set script_dir [pwd]
set src_dir [pwd]/wave_gen/src
set core_dir [pwd]/wave_gen/cores
set xdc_dir [pwd]/wave_gen/constraints

# Change directories to the new build directory
puts "Changing directory to $proj_dir"
cd $proj_dir

# Source the script that will create the new project
source $script_dir/create_proj.tcl

# Source the script that will imports all the files required for the build
source $script_dir/load_files.tcl

# Source the script that will set all the process properties necessary
source $script_dir/set_props.tcl

# Source the script that will regenerate the cores and run the implementation
# process
source $script_dir/implement.tcl

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2562355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-06
下一篇 2022-08-06

发表评论

登录后才能评论

评论列表(0条)

保存