VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行

学习FPGA开发是普通硬件工程师往资深硬件工程师发展的必经之路,随着芯片的集成化越来越高,传统硬件工程师可以做的工作越来越少,是不是硬件工程师就没有前途了?
随着FPGA的集成度越来越高,以及应用市场对于大数据量/大运算量的需求与日俱增,ARM+FPGA的集成路线会成为未来的芯片发展的主流趋势。掌握这种异构平台的开发技能也是硬件工程师提升自身能力的途径之一。
先从一个简单的Verilog程序入手吧,今天的主要任务是熟悉vivado的操作流程。

工程创建

vivado软件的安装本文就不介绍了,下面假定你已经在电脑上安装了vivado,我用的是2016.1版本,不同版本操作上都大同小异。
双击桌面快捷方式,映入眼帘的是这种样子
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第1张图片
第一次使用,所以点击左上角的新建工程,起个名字叫project_led 吧,保存路径我喜欢在EDA安装路径下,创建一个叫MyProject的文件夹。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第2张图片
在下一个界面里,我们选择RTL工程,因为是从verilog语言这种底层设计方式开始第一次设计。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第3张图片
根据你手上的板子选择芯片的型号,当然这里不选也是可以的,相信能够开始使用到vivado的同志,对其它fpga开发程序也是有一定的使用经验的。在后面的步骤中也可以设定芯片型号。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第4张图片
一切就绪后,可以看到下面这个界面,中间上面部分,可以看到一个串口,这里有整个工程的文件信息,包括设计文档,约束文档和仿真文档。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第5张图片

添加设计文件

我们在软件的最左侧,找到最上方的工程管理Project Manag,第一个Projec Setting,可以设置或修改芯片型号,工程基本设置,点击第二个Add Sources
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第6张图片
弹出窗口中选择第二个
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第7张图片
在新弹出窗口中,选择Creat File
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第8张图片
选择文件类型Verilog,输入文件名称led_test
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第9张图片
在新窗口中可以看到文件信息,点击Finish
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第10张图片
下一步输入module的名称,也是led_test
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第11张图片
Project Manage下面可以看到多了一个文件
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第12张图片
双击后,打开一个空白verilog文件,点击窗口的右上角可以切换窗口的大小。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第13张图片
输入下面的代码吧

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2020/07/08 16:59:19
// Design Name: 
// Module Name: led_test
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module led_test(
input CLK_i,
input RSTn_i,
output reg [3:0]LED_o
);
reg [31:0]CNT; //时钟计数counter
always @(posedge CLK_i)
  if(!RSTn_i)
    begin
    LED_o <= 4'b1;
    CNT <= 32'h0;
    end
  else
    begin
     if(CNT == 32'd50_000_000)
        begin
        CNT <= 32'h0;
        if(LED_o == 4'b1000)
        LED_o <= 4'b1;
        else LED_o <= LED_o << 1;
        end
     else 
       begin
        CNT <= CNT + 1'b1;
         LED_o <= LED_o; 
       end
     end
endmodule

编译、配置

点击上方或者左侧的synthesis 图标,开始综合吧,综合后会弹出一个小界面,提示你下一步做什么。可以点击cancel,分配引脚后再实现吧。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第14张图片
再次找到窗口最左侧的Project Manage,添加文件,不过这次添加的是约束文件,选择第一个。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第15张图片
又看到熟悉的界面,选择Creat File 吧
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第16张图片
输入文件名还是led_test,不过这次的文件类型是XDC,约束文件。所谓的约束,就是指定信号的引脚、信号特性、引脚电平等信息。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第17张图片
下一步,也见过,继续Finish
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第18张图片
Project Manage下面看到又多了一个文件
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第19张图片
下一步我们可以双击这个xdc文件,输入文本格式的约束,也可以通过选项的方式设置。我们采用第二种。
首先在窗口的最左侧找到synthesis栏,最下方有个Schema’tic,点击它
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第20张图片
可以看到如下窗口,点击上方的I/O Ports
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第21张图片
最下方可以看到这个熟悉的界面,手动指定引脚吧
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第22张图片
指定后记得点击窗口左上角的保存
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第23张图片
效果是这样,我这里呢,忘记指定引脚的电平类型,编译时提示出错,不能选择为default!需要回过头来自己手动修改。
还是从最左侧synthesis栏,最下方找到schematic即可。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第24张图片
下面综合/生成bit文件吧
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第25张图片

下载、运行

找到窗口最左侧,下方,最下方!
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第26张图片
电路板插好JTAG编程器,目标板上电运行
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第27张图片
如果链接正确,会看到下面这个样子,如果没找到设备,请检查硬件连接。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第28张图片
再次找到窗口左侧最下方,开始烧写;也可以在器件名称上点击右键开始烧写
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第29张图片
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第30张图片
选择文件路径
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第31张图片
见证成功的喜悦吧!
至此,一个简单verilog成功地在vivado环境下编程、下载、运行成功啦!

熟悉vivado

再回过头来熟悉一下vivado,在RTL analysis下,点击schematic可以看到寄存器级的原理图
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第32张图片
综合以后的效果,注意第一步选择的位置,这里选择不同,看到的综合原理图就会不同,下面两幅图对比一下。
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第33张图片
VIVADO+ZYNQ7000入门一, 第一个PL程序,从创建到运行_第34张图片
愉快地玩耍一段时间吧!

你可能感兴趣的:(FPGA,FPGA,Vivado)