zynq系列FPGA分为PS部分和PL部分。
PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分。
PS: 处理系统 (Processing System) , 就是与FPGA无关的ARM的SOC的部分,实质是直接操作arm9内核的处理器。
这次先是最简单地在PL部分编写一个流水灯实验的代码。
使用的开发环境是vivado 2016.4。

1、新建工程,Create New Project。

2、next。

3、选择工程目录,和输入工程名字。

4、选择RTL Project。

5、还没有编写Verilog代码,跳过这一步,直接next。

6、不选择IP核,直接跳过,点next。

7、选择boards,软件自带了zedboard的芯片型号等的配置,选择zedboard即可。

8、工程信息,点next完成工程的创建。

9、vivado整个工程的界面。

10、点add sources。

11、选择如图选项,添加源文件。

12、点create file,输入新建的Verilog文件的名称:led.v,然后选OK。

接下来有了led.v文件,可以开始编写Verilog代码了。

`timescale 1ns / 1ps
//
// Company:
// Engineer: xu_hongbin
//
// Create Date: 2017/07/05 09:57:09
// Design Name:
// Module Name: led
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module led(Clk,Rst,Led);input Clk;  //时钟input Rst;  //zedboard上是高电平复位output [7:0] Led;   //led输出口reg [31:0] delay_cnt;   //分频延时计数器reg clk_500ms;  //分频后的2HZ信号reg [7:0] Led_r;    //LED信号输出寄存器always @(posedge Clk or posedge Rst)beginif(Rst)begindelay_cnt <= 32'd0;clk_500ms <= 1'd0;endelse if(delay_cnt == 32'd25_000_000 - 32'd1)begindelay_cnt <= 32'd0;clk_500ms <= ~clk_500ms;endelsebegindelay_cnt <= delay_cnt + 1'b1;endendalways @(posedge clk_500ms or posedge Rst)beginif(Rst)Led_r <= 8'd1;elseLed_r <= (Led_r << 1) | (Led_r >> 7);endassign Led = Led_r;endmodule

代码很简单不多介绍了。

13、接下来准备编写约束文件,分配引脚。在constraints下的constrs_1上右击,在弹出的菜单中选择Add Sources。

14、选择Add or create constraints。

15、跟前面创建Led.v文件时一样,先点create file,创建一个约束文件,名字随便取,约束文件后缀是.xdc。

我的约束文件pins.xdc,引脚分配可以从官方给的原理图中找到:

# Led0
set_property PACKAGE_PIN T22 [get_ports {Led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Led[0]}]# Led1
set_property PACKAGE_PIN T21 [get_ports {Led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Led[1]}]# Led2
set_property PACKAGE_PIN U22 [get_ports {Led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Led[2]}]# Led3
set_property PACKAGE_PIN U21 [get_ports {Led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Led[3]}]# Led4
set_property PACKAGE_PIN V22 [get_ports {Led[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Led[4]}]# Led5
set_property PACKAGE_PIN W22 [get_ports {Led[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Led[5]}]# Led6
set_property PACKAGE_PIN U19 [get_ports {Led[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Led[6]}]# Led7
set_property PACKAGE_PIN U14 [get_ports {Led[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Led[7]}]# Clk(板子上的GCLK)
set_property PACKAGE_PIN Y9 [get_ports {Clk}]
set_property IOSTANDARD LVCMOS33 [get_ports {Clk}]# Rst(板子上的BTNU)
set_property PACKAGE_PIN T18 [get_ports {Rst}]
set_property IOSTANDARD LVCMOS33 [get_ports {Rst}]

16、代码都写完了,剩下的就是分析综合了。

分析综合的流程是:Run Synthesis–>Run Implementation–>Generate Bitstream。
Synthesis:对工程进行分析,检查是否有语法错误,生成RTL级的原理图;
Implementation:对工程进行综合,会在底层布局布线。
Bitstream:比特流文件,是最后可以下载到FPGA中运行的文件。
我们也可以一步到位,直接点Generate Bitstream,vivado会自动执行上述过程。

17、产生比特流完毕后,给板子上电,然后点击Open Hardware Manager–>Open Target–>Auto Connect。随后会弹出HardWare Manager的窗口。

如果识别到了zedboard,会显示上面的信息。
arm_dap_0表示zynq内的arm9内核;
xc7z020_1表示FPGA处理器。
点击program device,选择xc7z020_1。
选择前面生成的比特流文件,一般自动选好了。

program就行了,最后会看到板子上开始运行流水灯。

Zedboard学习(三):PL下流水灯实验相关推荐

  1. 黑金AX301开发板学习(1)——流水灯实验及黑金AX301开发板资料

    第一次尝试使用AX301开发板进行学习,本篇文章主要通过一个流水灯的小实验聊一下AX301这块开发板的使用. 一.黑金AX301是一款基础的学生实验板,用来学习FPGA是一个不错的选择.此款开发板是A ...

  2. ZYNQ Z-TURN BOARD 学习笔记1-Ubuntu上的流水灯实验

    前言 之前一直都在学习传统的FPGA,学习和使用过Altera的Cyclone系列以及Xilinx的Spartan系列芯片.对于赛灵思的软硬件全面可编程器件ZYNQ很有兴趣,但苦于手头没有zynq的板 ...

  3. c51单片机学习笔记-LED流水灯实验

    目的:实现 LED 流水灯,只需循环让 D1-D8 指示灯逐个点亮. 方法:点亮 D1 且把 D2-D8 熄灭,延时一段时间后再点亮 D2 且把 D1. D3-D8 熄灭,延时一段时间后再点亮 D3 ...

  4. zynq 7000 SDK下的流水灯实验

    zynq 7000 的流水灯实验是最简单的纯PL 的实验, helloworld 是SDK下的最简单实验,但不包括任何PL. 本文是这2者综合下的最简单实验, PS 和 PL 都有的情况下最简单实验. ...

  5. 流水灯c语言实验报告心得,嵌入式流水灯实验心得体会.docx

    嵌入式流水灯实验心得体会 嵌入式流水灯实验心得体会 篇一:嵌入式流水灯实验 实验三 GPIO输出控制实验 一. 实验目的 熟悉LPCXX系列ARM7微控制器的GPIO输入控制. 二.实验设备 ? 硬件 ...

  6. 基于FPGA实现的流水灯实验

    版权声明:如需转载,请注明出处 https://blog.csdn.net/chengfengwenalan/article/details/79606351 基于FPGA实现的流水灯实验 一.开发环 ...

  7. 单片机led流水灯实验c语言程序,单片机LED流水灯实验及流程图源代码详解

    利用实验室提供的单片机实验开发板的最小系统电路模块.流水灯电路模块,以及Protues仿真软件搭建电路,实现I/O口循环流水灯演示效果. LED流水灯控制电路如图2-1所示,八个LED灯D0-D7(可 ...

  8. 单片机原理及应用流水灯实验

    1.实验目的 (1)学习编译与仿真环境使用 (2)学习 P3 口的使用方法 (3)学习延时子程序的编写 2 实验内容 (1)通过对 P3 口地址的操作控制 8 位 LED 流水点亮,从而认识单片机的接 ...

  9. FPGA | 按键、拨码开关控制流水灯实验(附完整代码)

    FPGA 课程设计,果断选择最简单的花式点灯 实验要求 一.设计一个8路流水灯控制电路 二.有多种变化方式: 1)自左向右逐次点亮,或自右向左逐次点亮,到终点后在从头开始: 2)自左向右逐次熄灭,或自 ...

最新文章

  1. C#精髓 第四讲 GridView 72般绝技
  2. 习惯了收听虾米酷狗网易云音乐的你,好歹知道一下音乐推荐到底是咋回事吧
  3. iterparse中的events参数start和end的用法
  4. javascript解析json格式的字符串,拼接后显示到表格中
  5. linux 64位兼容32位,linux的64位操作系统对32位程序的兼容-全面分析
  6. C/C++无限关机(提权例子)
  7. 华为杯数学建模优秀论文_数学建模经典例题(2016年国赛B题与优秀论文)
  8. libstdc和glibc的一些共享库问题
  9. nginx的编译安装以及启动脚本编写
  10. pdflib java_pdflib的使用代码
  11. Java电子发票管理系统
  12. Torch not compiled with CUDA enabled 解决办法
  13. Android 蓝牙开发 BLE(低功耗) 摩拜单车共享汽车开门实例
  14. 万能解压器安卓版_全能压缩app下载 全能压缩(手机解压软件) for Android v11.5 安卓版 下载-脚本之家...
  15. Linux驱动编写入门-新解
  16. 川土微数字隔离器CA-IS36XX高性能数字隔离器 可替代TI ADI MAX等
  17. Java将被取代?大数据让你知道真实的Java应用现况
  18. 20140601-百家讲坛
  19. 查找-查找的基本概念
  20. 魅蓝note6常用设置小操作 + 常见问题解决

热门文章

  1. Python 入门建议
  2. 浅谈Spring框架注解的用法分析
  3. C语言编译全过程剖析
  4. Python numpy 平方、乘方和平方根函数
  5. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
  6. 程序员面试题精选100题(13)-第一个只出现一次的字符[算法]
  7. 鸟哥的Linux私房菜(基础篇)- 第十七章、程序管理与 SELinux 初探
  8. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.2. 鸟哥的Linux苦难经验全都录)
  9. 2015年58同城面试题
  10. 关于Linux命令ls的一道笔试题