Xilinx火龙果学习笔记(2)---vivado工程搭建

时间:2022-04-03 20:14:44

Xilinx火龙果学习笔记(2)—vivado工程搭建

在这里,我们主要使用Vivado+SDK来开发火龙果,也有用matlab开发的,甚至比vivado便利,毕竟不用管电路搭建,直接写代码就行。看个人吧,我主要想尝试一下FPGA+ARM这种开发模式,所以毅然决然的选择了Vivado+SDK.不得不说,这玩意一开始用起来的确很烦,连个helloworld都搞不出来。下面就记录一下整个工程的搭建过程以及helloworld的实现。

首先是在vivado中搭建底层电路。部分地方不清楚可参考:http://blog.chinaaet.com/songhuangong/p/43084

重要:软件安装路径及工程路径都不能有中文路径。甚至电脑名都不能含中文。出错信息中有中文的都要改掉。

  1. 建工程,一路next,选完路径next后注意选RTL Project.然后next到选型,注意选型为XC7Z010-1CLG400C(即400-1)

  2. 在界面左边PROJECT MANAGER 中的IP INTERGRATER中Create Block Design.添加IP核,选ZYNQ7如果仅仅helloworld的话有zynq7(ps部分)即可。如果需要用到GPIO和定时功能,还需要加AXI GPIO 和Timer IP核。(注:sleep函数就是很有用的延时功能,亲测很精确)

  3. 配置GPIO需要用到的位数,比如我们课上实验用的2位传感器,那就配为2位;(有GPIO IP核才有此步,IP可配置为全部输出或输入,软件中不可改变引脚状态。如果不配置,则即可输出也可输入,在软件中配置输出或输入)

  4. 双击zynq7,进入配置界面。其实好多不需要的接出来的引脚都可以删,具体可自己百度。在这里,我只配置了UART1用于串口通信。如下图所示:
    Xilinx火龙果学习笔记(2)---vivado工程搭建

    UART1与0的区别是0是PS部分串口通信,是通过火龙果板子上的串口接口(供电口旁边那个口)接出去。而1则是可以指定哪两个引脚为TX或RX,图中则是使MIO8,9为Tx与Rx。

    备注:注意DDR配置,类型为DDR3,PART为倒数第二个RE125,位数为16bit。

  5. 将zynq的两个CLK引脚连起来。然后点蓝字Run block automation,自动连线,OK即可。然后排线,检查。排线可以优化布线,检查(正方向里一个对勾)可以查看连线是否出错

  6. Sources中,右击你创建的block design(.bd文件),Generate Output Products(生成输出文件,使文件得到一定的约束),out of context per ip.(一旦修改了block中的东西,这之后的步骤都需要重来。

  7. Create HDL Wrapper(创建一个HDL 的顶层文件),选第二个,自动更新。至此,底层块搭建结束。

  8. 所有FPGA都需要经过以下三个步骤

    • 综合:综合后进行引脚约束,即选引脚与电平
    • 实现:保存引脚约束文件【有蓝色Reload】就点
    • 生成比特流:然后Export Hardware【注意include比特流】
  9. 即对应IN INTEGRATOR中三个前面有绿色图标的部分:Run Synthesis,Run implementation和generate bitstream三部分。依次点击就好。如果涉及到AXI GPIO,则还需要配置引脚,这个下一次再说。

  10. 三步完成后,整个底层都配置好了,直接file->Export->export hardware即可导出,注意include bitstream,否则导出不带比特流就白导出了。至此,vivado部分全部设计完成。接下来就是sdk写代码的部分了。

  11. file->Launch SDK,打开SDK;首先新建一个板支持包,即file->new->board support package.有了这个system.mss文件就可以用xilinx自带的example程序了。
    Xilinx火龙果学习笔记(2)---vivado工程搭建

    如上图所示。接下来点击uartps后面的Import Examples即可导入一个helloworld例程了。

  12. src中是例程代码。然后project->build all,全编译一下。这一步之前都跟火龙果没关系。这一步之后就得将火龙果连线连好了。

  13. 之后就是Xilinx Tools->Progaram FPGA;然后右击C project(就是导入的例程工程),Run as->Launch on hardware(System debugger).

  14. 注意,从原理图上找到MIO8.9的引脚在哪,用杜邦线与USB转TTL或其他串口工具接好即可。注意串口通信的接地问题,如果不接地可能无法通信。打开串口调试助手,就可以工作了。波特率应该是115200。

  15. 纯手打,有什么不清楚的地方见谅。