vivado版本 2017.4(其它版本步骤基本相同)(官网步骤都有配图进入可查看)
(官网链接 https://wiki.analog.com/resources/fpga/docs/build)
1、下载no-os文件 2018_r1
https://github.com/analogdevicesinc/no-OS
2、下载hdl文件2018_r1
https://github.com/analogdevicesinc/hdl/releases
3、windows(linux查看官网)
安装Cygwin。因为HDL文件全是源文件,需要通过make工具生成vivado的工程文件和hdf文件。在Windows下安装cygwin。其它博客有很多相关安装教程。安装中选择git、make,不安装其他。
打开Cygwin窗口,输入路径。
export PATH=$PATH:/cygdrive/e/xilinx/Vivado/2016.4/bin
export PATH=$PATH:/cygdrive/e/xilinx/Vivado_HLS/2016.4/bin
export PATH=$PATH:/cygdrive/e/xilinx/SDK/2016.4/bin
export PATH=$PATH:/cygdrive/e/xilinx/SDK/2016.4/gnu/microblaze/nt/bin
export PATH=$PATH:/cygdrive/e/xilinx/SDK/2016.4/gnu/arm/nt/bin
export PATH=$PATH:/cygdrive/e/xilinx/SDK/2016.4/gnu/microblaze/linux_toolchain/nt64_be/bin
export PATH=$PATH:/cygdrive/e/xilinx/SDK/2016.4/gnu/microblaze/linux_toolchain/nt64_le/bin
export PATH=$PATH:/cygdrive/e/xilinx/SDk/2016.4/gnu/aarch32/nt/gcc-arm-none-eabi/bin
以上为模板。
我的:(直接复制)
export PATH=$PATH:/cygdrive/d/vivado17/Vivado/2017.4/bin
export PATH=$PATH:/cygdrive/d/vivado17/Vivado/2017.4/bin
export PATH=$PATH:/cygdrive/d/vivado17/SDK/2017.4/bin
export PATH=$PATH:/cygdrive/d/vivado17/SDK/2017.4/gnu/microblaze/nt/bin
export PATH=$PATH:/cygdrive/d/vivado17/SDK/2017.4/gnu/arm5/nt/gcc-arm-none-eabi/bin
export PATH=$PATH:/cygdrive/d/vivado17/SDK/2017.4/gnu/microblaze/linux_toolchain/nt_le/bin
export PATH=$PATH:/cygdrive/d/vivado17/SDK/2017.4/gnu/microblaze/linux_toolchain/nt64_le/bin
export PATH=$PATH:/cygdrive/d/vivado17/SDk/2017.4/gnu/aarch32/nt/gcc-arm-none-eabi/bin
(检验:
alias xmd=xmd.bat
alias xsct=xsct.bat
alias xsdb=xsdb.bat
which git
which make
which vivado
会返回正确路径)
以下为官网方式(选择文件。
cd cygdrive/e
克隆hdl文件库。(目录为adi)
mkdir adi
cd adi
git clone https://github.com/analogdevicesinc/hdl.git
选择自己分支。
cd hdl/
git status ## check for everything, including branch name
git checkout hdl_2016_r2 ## change to the hdl_2016_r2 branch
(结果显示:)
如果这是第一次克隆,那么您拥有所有最新的源文件。如果已经有一段时间了,您可以使用git pull或git rebase提取最新的源代码(如果有本地更改)。
git fetch
git rebase origin/hdl_2016_r2)
4、创建工程。Xilinx。(我下载好了文件,跳过上述步骤)
我的文件目录(HDL文件目录)
cd E:/daxia_ad9361/hdl-2018_r1/projects/fmcomms2
(直接make 创建的是kc705的工程 工程直接保存在hdl文件的原位置,或删除其他工程只留下zed)(此处我使用make -C zed)
make -C zed
我的:(失败就从头开始)大约一二十分钟。
*/无问题不看//以下为官网检查方法((make首先构建所有库,然后再构建项目。这假设已经正确地设置了工具和许可证。如果没有到达最后一行,则make无法构建一个或多个目标,它可能是库组件或项目本身。从’make’输出中无法收集到任何信息(除了哪个失败之外),实际的失败在日志文件中。因此,让我们看看如何分析构建日志文件和结果。
独立综合。
通过定义ADI_USE_OOC_SYNTHESIS系统变量,可以选择在构建过程中进行脱离上下文的合成。
export ADI_USE_OOC_SYNTHESIS=y
cd projects/daq2/zc706
make
这将分别从块设计中合成每个IP,并将其存储在一个公共缓存中以备将来重用。缓存位于ipcache文件夹中,并且对所有的项目都是通用的,这样可以加速相同项目的重新编译,或者加速基本设计中使用的公共块的编译时间。例如MicroBlaze为VCU118设计的基础设计,一旦编译,它将在其他项目上重用。使用IP缓存将加速OOC模式下每个项目的重新编译,因为缓存不会像正常编译流那样被清除。
检查库组件的构建和分析结果。
如果你仔细观察,你会看到它实际上在做什么。它进入一个库组件文件夹,然后以批处理模式调用“Vivado”。IP命令在源“Tcl”文件中,输出被重定向到日志文件。在下面的示例中,它是’axi_ad9144_ip。在’library/axi_ad9144’目录中记录’
*make[1]: Entering directory ‘/home/RKutty/gitadi/hdl/library/axi_ad9144’
rm -rf *.cache *.data *.xpr *.log component.xml *.jou xgui *.ip_user_files *.srcs *.hw .sim .Xil
vivado -mode batch -source axi_ad9144_ip.tcl >> axi_ad9144_ip.log 2>&1
如果您看到’make’返回一个错误(并停止),您必须首先检查这个日志文件的内容,然后再对我们疯狂。您还可以执行完整性检查,以查看生成的文件和日志文件内容。
ls -ltr library/axi_ad9144
tail library/axi_ad9144/axi_ad9144_ip.log
检查项目的构建和分析结果。
在上面的示例中,make做的最后一件事是构建项目。它与库组件完全相同。在本例中,日志文件名为‘daq2_zc706_vivado’。日志,位于’projects/daq2/zc706’目录中。
rm -rf *.cache *.data *.xpr *.log *.jou xgui *.runs *.srcs *.sdk *.hw *.sim .Xil .ip_user_files
vivado -mode batch -source system_project.tcl >> daq2_zc706_vivado.log 2>&1
make: Leaving directory ‘/home/RKutty/gitadi/hdl/projects/daq2/zc706’
快速(或详细)检查文件。
ls -ltr projects/daq2/zc706
tail projects/daq2/zc706/daq2_zc706_vivado.log))
最后,如果项目构建成功,hdf文件应该在’sdk’文件夹中
现在你可以使用这个“hdf”文件作为你的no-OS和/或Linux版本的输入
5、导入SDK
导入到SDK,启动SDK。
新建Application Project。
next 选择空白工程 finish。
(官 一些应用程序(例如FMCOMMSx),当使用Microblaze处理器时,需要增加堆大小来进行动态内存分配。确保堆大小至少是0x100000。)
将源代码文件(下载的no-os文件)复制到src目录中
从app_config.h(或config.h)头文件中取消注释所需的运营商供应商和CPU架构
如果在src中有多个文件夹,包括文件夹的所有路径:进入项目的设置,在C/ c++ Build—settings—Toolsettings—gcc compiler—Directories中添加所有文件夹的路径。(建议全部直接复制到src中)
SDK将自动生成项目,控制台窗口将显示生成的结果。如果生成未完成,则选择project–build automatically
此时软件项目设置已经完成,可编程FPGA并将软件下载到系统中。点击Xilinx Tools→program FPGA。FPGA编程完成后,需要创建一个新的运行配置,选择Run→Run Configurations,在运行配置窗口中选择 Xilinx C/C++ application (System Debugger),点击左上角的new configuration按钮。
仅上图为ZNYQ必须的
然后就可以下载到板子上了,首次右键工程 run as选择GDB(使用串口 需要装好驱动并在run --run config中设置)
ad_iobuf
`timescale 1ns/100ps
module ad_iobuf (
dio_t,
dio_i,
dio_o,
dio_p);
parameter DATA_WIDTH = 1;
input [(DATA_WIDTH-1):0] dio_t;
input [(DATA_WIDTH-1):0] dio_i;
output [(DATA_WIDTH-1):0] dio_o;
inout [(DATA_WIDTH-1):0] dio_p;
genvar n;
generate
for (n = 0; n < DATA_WIDTH; n = n + 1) begin: g_iobuf
assign dio_o[n] = dio_p[n];
assign dio_p[n] = (dio_t[n] == 1'b1) ? 1'bz : dio_i[n];
end
endgenerate
endmodule
// ***************************************************************************
// ***************************************************************************