Zedboard---实验一点亮一盏LED

Zedboard实验一点亮一盏LED

标签: Zedboard

目的

  • 熟悉Vivado开发环境
  • 熟悉ZYNQ开发流程

创建Vivado工程

开发环境:Vivado2015.4

1. 新建工程

主菜单选择File->New Project后,弹出的窗口点击next,出现下图:选择工程目录,编辑工程名这里命名为Tutorial1。
这里写图片描述
弹出窗口,选择RTL Project
这里写图片描述
接下来一路next,直到如下图窗口:选中Zedboard板子。点击Finish,完成工程创建。
这里写图片描述

2. 添加源文件

在Project Manager窗口空白处用鼠标右键,选择Add Sources弹出下图窗口,选择所需创建的源文件。
这里写图片描述
下图为弹出的的窗口中选择Create File
这里写图片描述
点击Create File后,编辑文件类型和文件名,这里文件类型选择默认Verilog文件,文件名为top。
这里写图片描述
添加约束文件同理如上。

Verilog

创建Vivado工程,添加Verilog文件。工程设计为一位输入作为开关和一个输出作为LED显示。

编辑Verilog文件如下:

module top(
    input switch,
    output led
);
    assign led = switch;
endmodule

将该模块命名为top

约束

只有.v文件是不够的,编译器在不能运行Verilog代码,还需要约束信息。确定那个管脚是输出的led,哪个管脚是输入switch。
创建XDC文件,命名为.xdc。根据Zedboard原理图分配管脚。Zedboard上由8个LED和8个开关。
原理图1
原理图2

  • 输入: Switch 0对应原理图上的网络标号”SW0”,与FPGA F22管脚相连。该管脚属于bank35,电压为VADJ(通过跳帽选择2.5V或1.8V)。假设跳帽将VADJ与2.5V短接,就意味着2.5V电平输入。
  • 输出: LED 0对应原理图上网络标号”LD0”,与FPGA管脚T22相连。该管脚属于bank33 供电电压3.3V

编辑.xdc文件

set_property IOSTANDARD LVCMOS33 [get_ports led]
set_property IOSTANDARD LVCMOS25 [get_ports switch]
set_property PACKAGE_PIN T22 [get_ports led]
set_property PACKAGE_PIN F22 [get_ports switch]

现在编译工程,生成比特流文件,给板子编程。
在Vivado界面右侧Flow Navigator -> Program and Debug -> Hardware Manager
这里写图片描述
点击Open Taget检测到硬件xc7z020,在Hardware窗口下点击Program device
这里写图片描述


添加更多的输入输出

修改原有的.v文件,将源文件的输入输出修改为八位宽的总线:

module top (
  input [7:0] switch,
  output [7:0] led
);
  assign led = switch;
endmodule

参照原理图,添加约束:

set_property IOSTANDARD LVCMOS33 [get_ports led]
set_property IOSTANDARD LVCMOS25 [get_ports switch]
set_property PACKAGE_PIN T22 [get_ports {led[0]}]
set_property PACKAGE_PIN T21 [get_ports {led[1]}]
set_property PACKAGE_PIN U22 [get_ports {led[2]}]
set_property PACKAGE_PIN U21 [get_ports {led[3]}]
set_property PACKAGE_PIN V22 [get_ports {led[4]}]
set_property PACKAGE_PIN W22 [get_ports {led[5]}]
set_property PACKAGE_PIN U19 [get_ports {led[6]}]
set_property PACKAGE_PIN U14 [get_ports {led[7]}]
set_property PACKAGE_PIN F22 [get_ports {switch[0]}]
set_property PACKAGE_PIN G22 [get_ports {switch[1]}]
set_property PACKAGE_PIN H22 [get_ports {switch[2]}]
set_property PACKAGE_PIN F21 [get_ports {switch[3]}]
set_property PACKAGE_PIN H19 [get_ports {switch[4]}]
set_property PACKAGE_PIN H18 [get_ports {switch[5]}]
set_property PACKAGE_PIN H17 [get_ports {switch[6]}]
set_property PACKAGE_PIN M15 [get_ports {switch[7]}]

添加一个时钟

时钟对于FPGA设计很重要,可以使FPGA随着时间改变不同的状态。使Verilog代码的编写有了更多的变化。
这里要注意的是,添加输出声明关键字reg。在Verilog2005中有两种网络类型:1. wire 网线型;2. reg 寄存器型。

module top (
  input clk,
  input [7:0] switch,
  output reg [7:0] led
);

  always @(posedge clk)
    led = switch;
endmodule

添加约束

高速编译器,那个管脚连接时钟。

set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property PACKAGE_PIN Y9 [get_ports clk]
create_clock -period 10 [get_ports clk]

本实验中,添加时钟和未添加时钟的效果一样的。未添加时钟的工程,相当于输出时刻等于输入;添加时钟的工程,相当于只有当时钟上升沿到达时,刷新输出等于输入。


详细参考英文原文

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值