Zebu学习笔记(3)- 编译
Zebu采用一个Unified Compile Flow, 整个Design和Testbench都统一通过VCS管理和编译,对于VCS的调用也是通过UTF工程文件定义的。
UTF文件包含系统编译的所有信息,包括VCS编译和Zebu后端(类似综合布局布线)的所有操作,所有操作均由zCui完成,VCS编译过程会处理所有Design相关的源文件,为了有效的Porting,我们可以直接重用仿真环境的VCS脚本。
前面文章中,我们多次提到过UTF命令,这里我们列举几个必须用到的UTF命令:
命令 | 描述 |
---|---|
architecture_file -filename {<path_to_zse_configuration.tcl>} | 指定系统硬件配置的tcl描述文件 |
vcs_exec_command{<script_name_with_path>} | 指定Design用到的VCS命令 |
set_hwtop –module <design_top_module_name> | 指定项目的顶层模块 |
一个最为精简的UTF文件:
architecture_file -filename /path/to/zse_configuration.tcl
vcs_exec_command /path/to/vcs_script.sh
set_hwtop -module hwtop
VCS编译脚本
VCS脚本主要完成以下的一些操作:
- 定义RTL源文件
- 定义设计使用的语言
- 定义编译生成的库文件
- 定义设计的顶层模块名称
- 定义顶层模块例化的参数信息
- 定义包含路径
- 定义顶层宏定义
- 定义库目录
- 定义Verilog库文件扩展名
一般情况下我们直接使用仿真环境中用到的VCS脚本就可以了,所以这里关于VCS脚本的写法就不详述了。
UTF中常用的一些配置信息
定义Zebu硬件结构
architecture_file -filename {<path_to_zse_configuration.tcl>}
定义VCS仿真命令
vcs_exec_command {<script_name_with_path>}
定义顶层模块名
set_hwtop -module <design_top_module_name>
定义调试信号
debug -waveform_reconstruction true -> csa and simzilla
定义verdi编译仿真
debug -verdi_db true
定义运行后调试
debug -use_offline_debug true
定义Design大小
design_size -mode auto
定义自动生成zCores
clustering -system_auto_core_generation true
定义FPGA相关参数
clustering -resource_usage MEDIUM
fpga -enable_parff MULTI_STAGE
profile -compile true
开始编译
个人比较喜欢批处理模式的编译形式,Zebu的编译都是通过zCui实现的,当我们准备好相应的utf文件之后,我们就可以开始我们的编译过程,编译过程主要通过以下的命令实现:
zCui –c -n -u <project_name>.utf [-w <zcui_uc_work_dir>]
如果没有意外,我们应该可以完成编译过程,得到运行过程所需的文件。
最后更新于 2020-02-27 08:04:16 并被添加「仿真 FPGA Zebu」标签,已有 8373 位童鞋阅读过。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。