2.6 Vivado两种设计流程模式 |
|
Vivado设计套件允许设计者根据自己的喜好,使用不同的方法运行工具。设计者可以使用基于工程的方法自动管理设计过程和设计数据,也就是所说的工程模式(Project Mode)。
当工作在工程模式下时,在磁盘上创建一个目录结构,用于管理设计源文件,运行结果和跟踪工程状态。通过一个运行结构,管理自动的综合和实现过程,以及跟踪运行状态。可以通过单击鼠标,在Vivado集成环境内运行完整的设计流程。
另一种方法是,设计者可以选择基于Tcl脚本的编译风格方式。通过这种方式,设计者自己可以管理源文件和设计流程,这种方式也称为非工程模式(Non-Project Mode)。
当工作在非工程模式下时,通过源文件当前所在的位置访问源文件,通过存储器中的流程编译设计。通过使用Tcl命令,可以单独运行设计中的每一步。使用Tcl命令,可以设置设计参数和实现选项。使用Tcl命令,设计者可以在设计处理的每个阶段,保存设计检查点和创建报告。此外,在每个设计阶段,设计者可以打开Vivado集成设计环境,用于设计分析和约束分配。当设计者正在查看存储器中的活动设计时,自动地提交流程中的变化。例如,设计者可以保存对新约束文件的更新或者设计检查点。
在工程模式下,Vivado集成设计环境跟踪设计历史,保存相关的设计信息。然而,由于很多是自动处理的,在这种模式下,设计者很少能控制处理的过程。例如,在每次运行时,只是生成一组标准的报告文件。在工程模式下,提供了下面的自动处理功能:
(1)源文件的管理和状态。
(2)通过Vivado IP目录和Vivado集成器,IP配置和集成。
(3)综合信息和自动生成标准的报告。
(4)保存和重用工具设置与设计配置。
(5)用多个综合和实现运行,进行试验。
(6)约束设置的使用和管理。
(7)运行结果的管理和状态。
(8)流程导航。
(9)工程总结。
在非工程模式下,通过使用Tcl命令,执行每个行为。在存储器中,执行所有的处理。因此,不会自动生成文件或者报告。每次当设计者对设计进行编译时,设计者必须定义所有的源文件,设置所有工具和设计配置的参数,启动所有的实现命令,以及指定所需要生成的报告文件。由于没有在磁盘上创建一个工程,源文件保留在它们最初的位置,只在设计者指定的位置创建运行输出。这个流程充分发挥Tcl命令的能力,可以充分控制整个设计过程。
表2.2给出了工程模式和非工程模式特性的比较。
表2.2 工程模式和非工程模式特性比较
对于设计者来说,选择的模式不同,Tcl命令就相应的有所不同。在非工程模式下,所有的操作和工具设置都要求单独的Tcl命令,包括设置工具选项、运行实现命令、产生报告和写设计检查点。在工程模式下,打包过的命令,用于每个综合、实现和报告命令。图2.4给出了工程模式和非工程模式下命令的列表。
例如,在工程模式下,设计者使用add_files Tcl 命令将源文件添加到工程中。可以将源文件复制到工程中,这样,在工程目录结构中保留一个独立的版本;或者可以通过远地进行引用。在非工程模式下,设计者使用read_verilog、read_vhdl、read_xdc和read_...Tcl命令,从当前的位置读取不同类型的源文件。
在工程模式,带有预配置运行策略的launch_runs命令,用于启动工具和生成标准报告。这能够合并实现命令、标准报告、运行策略额使用、运行状态的跟踪。然而,设计者也可以在设计处理的每一步之前或者之后,运行定制的Tcl命令。在工程内,自动保存和管理运行的结果。在非工程模式下,必须单独运行每个命令。例如,opt_design、Place_design和route_design。
很多Tcl命令既可用于工程模式,又可用于非工程模式。例如,报告命令。在一些情况下,将Tcl命令指定在工程模式或者非工程模式。当创建脚本的时候,指定为一个模式的命令,不能混用。例如,如果使用了工程模式,设计者就不能使用基本级别命令(如synth_design),这是因为将其指定为非工程模式。如果在工程模式下,使用了非工程模式的命令,数据库不会更新状态信息,并且不会自动生成报告。
图2.4 工程模式和非工程模式命令
工程模式包含所有的GUI操作,这样导致在绝大多数情况下,执行一个Tcl命令。Tcl命令显示在Vivado集成开发环境的控制台下,在vivado.jou文件进行捕获。设计者可以使用这个文件开发用于其中一种模式的脚本。