zynq板上PS端给PL端复位

最近接触zynq板-zcu104,记录一些实验笔记。

LED闪烁

在vivado中新建一个工程,命名为led-test。添加top.v文件。

module top(
        input           clk_p         ,
        input           clk_n          ,
        input           rstn        ,
        output wire     led         
    );
    wire  clock;
    clk_wiz_0 inst_wiz(
        .clk_out1       (clock),
        .reset          (rstn),
        .locked         (),
        .clk_in1_p      (clk_p),
        .clk_in1_n      (clk_n)
    );
    led inst_led(
        .clock          (clock),
        .rstn           (rstn),
        .led            (led)
    );
    design_1_wrapper inst_ps(
        .pl_clk0_0      (),
        .pl_resetn0_0   ()
    );
endmodule

其中,top模块接入zcu104开发板的clk_300_p/n信号,通过clock wizard转换为单端始终clock,接入到led闪烁模块led.v

module led(
        input                   clock,
        input                   rstn,
        output reg              led
    );

    reg [23:0] r_count = 'd0;

    always @(posedge clock) begin
        if(rstn) begin
            r_count <= 'd0;
        end else begin
            r_count <= r_count + 'd1;
        end
    end

    always @ (posedge clock) begin
        if(rstn) begin
            led <= 'd0;
        end else if(r_count == 24'hffffff) begin
            led <= ~led;
        end
    end
endmodule

其中,led模块通过一个24bit的计数器,经过相等间隔厚,让led灯反转。
为工程添加约束文件。
在这个工程中,将design模块注释掉,仅保留led模块和clock wizard,top模块的reset信号接开发板button。
编译综合实现,生成bit文件后,在vivado中烧录到fpga上,观察可得,led等间隔闪烁。

添加zynq部分

点击create block design,在bd中添加zynq模块。
保持zynq的默认设置,点击保存。
右键点击bd,选择create HDL wrapper。并将生成的.v模块,例化到top模块中。
点击generate bitstream
生成bit文件后,选择左上角File->Export->Export Hardware,其中,选择include bitstream
最后,点击Finish,生成***.xsa文件。

vitis生成fsbl

这一步,网络教程都是启动SDK。其实自从vivado2019.02后,SDK部分已经更新为一个新软件vitis。
打开vitis,选择application project
在选项中,选择之前生成的***.xsa文件,作为硬件平台。选择zynq fsbl作为工程模板。
找到xfsbl_debug.h文件,添加一个宏定义。

#define FSBL_DEBUG_INFO

完成后,选择Ctrl+B进行编译。生成fsbl.elf文件。

生成BOOT.bin

在选项Xilinx->create boot image
在下方选项中按顺序添加文件

  • (bootloader)fsbl.elf
  • led.bit
    点击生成后,即可生成BOOT.bin。

启动

将sd卡制作启动盘,将BOOT.bin拷贝到BOOT分区。
启动zcu104后,发现led可以闪烁。
完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值