ZedBoard Vivado 自定义IP流水灯

本教程详细介绍了如何使用Xilinx Vivado为ZedBoard开发板创建自定义IP来实现流水灯效果。从新建工程开始,一步步指导完成自定义IP的设计、封装、约束设置直至最终的比特文件生成及下载。

ZedBoard Vivado 自定义IP流水灯

视频教程:http://t.elecfans.com/1428.html
讲师:刘俊飞 FPGA工程师
整理:s__w

通过自定义IP在zedboad上实现流水灯工能(非AXI IP)(无SDK软件参与)

主讲 刘俊飞 FPGA工程师

步骤

新建工程
新建板图,文件格式 “.bd”

新建并封装IP
tools create and package IP

选择已经准备好的module_name.v文件,
specified

flow_led.v

module flow_led(input clk, output [7:0] led);
    reg [7:0] temp = 8'b0000_0001;//若直接用initial对led赋值,不可综合
        reg [26:0] cnt;
    always@(posedge clk)
    begin
        if(cnt == 10_000_000)
            begin
              temp[7:1]<=temp[6:0];
              temp[0]<=temp[7];
              cnt<=0;
            end
        else
            cnt <= cnt + 1;
    end
    assign led = temp;  
endmodule

package IP
(忽略黄色叹号)
package IP
在板图.bd文件中搜索并添加自定义的IP
添加管脚、定义管脚名称、方向、位宽
create port
鼠标箭头变成小铅笔,连接管脚
保存.bd
sources窗口,右键单击.bd文件,
create HDL wrapper 生成顶层.v文件
增加端口约束文件,文件格式.xdc
下载官方约束文件http://zedboard.org/support/documentation/1521
zedboard constraints
将约束文件中的 管脚约束 时钟:clock source 和 led灯:user led部分;以及电压约束 iostandard constraints 对应的部分复制到上一步新建的约束文件中。
根据板图,修改管脚名称,不要破坏原xdc文件格式
led_water_lights.xdc

# ----------------------------------------------------------------------------
# Clock Source - Bank 13
# ---------------------------------------------------------------------------- 
set_property PACKAGE_PIN Y9 [get_ports {clk}];  # "GCLK"

# ----------------------------------------------------------------------------
# User LEDs - Bank 33
# ---------------------------------------------------------------------------- 
set_property PACKAGE_PIN T22 [get_ports {led[0]}];  # "LD0"
set_property PACKAGE_PIN T21 [get_ports {led[1]}];  # "LD1"
set_property PACKAGE_PIN U22 [get_ports {led[2]}];  # "LD2"
set_property PACKAGE_PIN U21 [get_ports {led[3]}];  # "LD3"
set_property PACKAGE_PIN V22 [get_ports {led[4]}];  # "LD4"
set_property PACKAGE_PIN W22 [get_ports {led[5]}];  # "LD5"
set_property PACKAGE_PIN U19 [get_ports {led[6]}];  # "LD6"
set_property PACKAGE_PIN U14 [get_ports {led[7]}];  # "LD7"

# ----------------------------------------------------------------------------
# IOSTANDARD Constraints
#
# Note that these IOSTANDARD constraints are applied to all IOs currently
# assigned within an I/O bank.  If these IOSTANDARD constraints are 
# evaluated prior to other PACKAGE_PIN constraints being applied, then 
# the IOSTANDARD specified will likely not be applied properly to those 
# pins.  Therefore, bank wide IOSTANDARD constraints should be placed 
# within the XDC file in a location that is evaluated AFTER all 
# PACKAGE_PIN constraints within the target bank have been evaluated.
#
# Un-comment one or more of the following IOSTANDARD constraints according to
# the bank pin assignments that are required within a design.
# ---------------------------------------------------------------------------- 

# Note that the bank voltage for IO Bank 33 is fixed to 3.3V on ZedBoard. 
set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 33]];

# Set the bank voltage for IO Bank 34 to 1.8V by default.
# set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 34]];
# set_property IOSTANDARD LVCMOS25 [get_ports -of_objects [get_iobanks 34]];
set_property IOSTANDARD LVCMOS18 [get_ports -of_objects [get_iobanks 34]];

# Set the bank voltage for IO Bank 35 to 1.8V by default.
# set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 35]];
# set_property IOSTANDARD LVCMOS25 [get_ports -of_objects [get_iobanks 35]];
set_property IOSTANDARD LVCMOS18 [get_ports -of_objects [get_iobanks 35]];

# Note that the bank voltage for IO Bank 13 is fixed to 3.3V on ZedBoard. 
set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 13]];

生成比特文件,格式.bit
(弹出窗口:仿真、实现?Yes!)
(忽略如下 critical warning, 点击OK,不要close run)
set_property no object
打开硬件配置 Hardware manager
点击 自动连接 auto connect
右键FPGA(xc7z020)program device
auto connect
选择比特文件(默认已经自动选择了上一步生成的.bit文件)
不用管debug,忽略如下warning

流水灯正常运行。(快门速度较慢)
流水灯

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值