论文部分内容阅读
摘 要:如果使用Xilinx公司的Vavido软件直接用于FPGA开发,则需要进行过程繁琐的图形化配置,容易出错且不方便新手使用。为了解决这一问题,本文详细研究了Vavido软件中有关FPGA工程编译部分的实现原理,并在Eclipse CDT提供的基础扩展点上针对FPGA工程编写插件,通过检索工程目录,自动生成编译FPGA bit文件的tcl脚本,并以命令行的方式调用Vavido的相关功能,完成bit文件的生成。实现了FPGA工程的建立、编译和烧写功能。
关键词: FPGA;Vavido;Eclipse CDT;tcl脚本生成;bit文件生成
文章编号: 2095-2163(2019)03-0324-04 中图分类号: TP311 文献标志码: A
0 引 言
本文是实验室项目《通用可配置嵌入式软件集成开发环境》中的FPGA部分。该项目涉及到对Xilinx公司ZC706开发板的调试工作,其中包含FPGA部分。FPGA,即现场可编程门阵列,过程中,主要使用硬件描述语言(Verilog或VHDL)来完成电路设计。
项目的初期,通过使用Xilinx公司的Vavido软件实现相关的操作。但是在设计过程中发现,使用Vavido图形化界面进行FPGA开发,需要提供繁琐的配置,过程复杂,容易出错且对新手不友好。同时,如果已有外部硬件描述文件,无法方便快捷地生成bit文件。
目前,尚未有一款良好的开源项目能够支持FPGA的编译工作,故本文仍在Vavido的基础上研究其实现机制。
其实,Vivado软件的核心是一个脚本解释器,所有操作都附有对应的tcl脚本可以调取执行,GUI界面也是将各种脚本命令封装为图形化界面。对此,本文研究了Vivado中关于FPGA部分的tcl脚本,并对其进行了抽取集成。
而Eclipse作为一类优秀的开源框架,设计融入了大量的扩展节点供开发者集成自定义的功能。本文FPGA部分的功能就是在Eclipse CDT增配的扩展点基础上对Xilinx公司的Vivado设计工具进行了集成。
在本文中,后台采用tcl交互式命令行的模式启动Vivado,调用Vivado的相关功能,即调用Java提供的exe()函数,在cmd命令行中执行“vivado –mode tcl tcl_path”指令。tcl_path为该指令需要的参数,即为编译bit文件所需的tcl脚本的绝对路径。
1 FPGA工程的建立
在Eclipse CDT的基础上集成FPGA开发功能,首先需要能够建立FPGA工程。FPGA工程是不同于C/Java工程的自定义新工程类型。研究可知,FPGA工程建立的函数流程则如图1所示。
由图1可知,FPGA工程建立的步骤流程可详述如下。
(1)根据用户选择的产品名,从已集成的硬件配置数据中获取该硬件开发板的FPGA芯片配置信息。调用ResourcesPlugin.getWorkspace().getRoot().getProject(projectName)函数新建工程对象project。
(2)通过ResourcesPlugin.getWorkspace()函数获取待建工程所在的工作区间workspace。
(3)通过workspace.newProjectDescription (project Name)函数新建待创立工程的描述信息description,参数为工程名。
(4)通过对description的设置,主要通过description.setLocation(projectLocation)设置工程路径,参数为创建后工程所在的绝对路径。
(5)通过调用函数project.create(description,null)创建工程。判断该工程对象是否打开,如果没有打开,则通过函数project.open(monitor)打开该工程。
(6)创建FPGA所需的文件夹,包括verilog、xdc、bit、buildTcl、edif、xci等文件夹,并在指定的文件夹下添入相应的源代码文件。
(7) 保存工程配置信息。
研究中,經由上述的操作,即可新建出FPGA工程。
2 tcl脚本及bit文件的自动生成
2.1 tcl脚本及bit文件的自动生成分析
tcl脚本的自动生成首先需要添加一个功能按钮来提供相关操作。
在org.eclipse.ui.actionSets扩展节点上,设计实现了一个生成FPGA bit文件的操作功能按钮。该按钮能够对FPGA工程进行编译,包括生成tcl脚本以及根据该脚本自动生成bit文件。需要在plugin.xml中进行配置。
研究可得,在扩展节点上创建新按钮的配置测试代码可表述如下。
- -
关键词: FPGA;Vavido;Eclipse CDT;tcl脚本生成;bit文件生成
文章编号: 2095-2163(2019)03-0324-04 中图分类号: TP311 文献标志码: A
0 引 言
本文是实验室项目《通用可配置嵌入式软件集成开发环境》中的FPGA部分。该项目涉及到对Xilinx公司ZC706开发板的调试工作,其中包含FPGA部分。FPGA,即现场可编程门阵列,过程中,主要使用硬件描述语言(Verilog或VHDL)来完成电路设计。
项目的初期,通过使用Xilinx公司的Vavido软件实现相关的操作。但是在设计过程中发现,使用Vavido图形化界面进行FPGA开发,需要提供繁琐的配置,过程复杂,容易出错且对新手不友好。同时,如果已有外部硬件描述文件,无法方便快捷地生成bit文件。
目前,尚未有一款良好的开源项目能够支持FPGA的编译工作,故本文仍在Vavido的基础上研究其实现机制。
其实,Vivado软件的核心是一个脚本解释器,所有操作都附有对应的tcl脚本可以调取执行,GUI界面也是将各种脚本命令封装为图形化界面。对此,本文研究了Vivado中关于FPGA部分的tcl脚本,并对其进行了抽取集成。
而Eclipse作为一类优秀的开源框架,设计融入了大量的扩展节点供开发者集成自定义的功能。本文FPGA部分的功能就是在Eclipse CDT增配的扩展点基础上对Xilinx公司的Vivado设计工具进行了集成。
在本文中,后台采用tcl交互式命令行的模式启动Vivado,调用Vivado的相关功能,即调用Java提供的exe()函数,在cmd命令行中执行“vivado –mode tcl tcl_path”指令。tcl_path为该指令需要的参数,即为编译bit文件所需的tcl脚本的绝对路径。
1 FPGA工程的建立
在Eclipse CDT的基础上集成FPGA开发功能,首先需要能够建立FPGA工程。FPGA工程是不同于C/Java工程的自定义新工程类型。研究可知,FPGA工程建立的函数流程则如图1所示。
由图1可知,FPGA工程建立的步骤流程可详述如下。
(1)根据用户选择的产品名,从已集成的硬件配置数据中获取该硬件开发板的FPGA芯片配置信息。调用ResourcesPlugin.getWorkspace().getRoot().getProject(projectName)函数新建工程对象project。
(2)通过ResourcesPlugin.getWorkspace()函数获取待建工程所在的工作区间workspace。
(3)通过workspace.newProjectDescription (project Name)函数新建待创立工程的描述信息description,参数为工程名。
(4)通过对description的设置,主要通过description.setLocation(projectLocation)设置工程路径,参数为创建后工程所在的绝对路径。
(5)通过调用函数project.create(description,null)创建工程。判断该工程对象是否打开,如果没有打开,则通过函数project.open(monitor)打开该工程。
(6)创建FPGA所需的文件夹,包括verilog、xdc、bit、buildTcl、edif、xci等文件夹,并在指定的文件夹下添入相应的源代码文件。
(7) 保存工程配置信息。
研究中,經由上述的操作,即可新建出FPGA工程。
2 tcl脚本及bit文件的自动生成
2.1 tcl脚本及bit文件的自动生成分析
tcl脚本的自动生成首先需要添加一个功能按钮来提供相关操作。
在org.eclipse.ui.actionSets扩展节点上,设计实现了一个生成FPGA bit文件的操作功能按钮。该按钮能够对FPGA工程进行编译,包括生成tcl脚本以及根据该脚本自动生成bit文件。需要在plugin.xml中进行配置。
研究可得,在扩展节点上创建新按钮的配置测试代码可表述如下。
- -