• FPGA ZYNQ VIVADO创建IP核点亮LED灯 方式一


    PL端 纯Verilog语言创建IP核实现点亮LED灯工

    确保开发板没有问题,可以先烧一个例程验证板子完好
    本教程要实现的是自创建IP核点亮LED灯
    大致创建流程为:1.创建纯Verilog文件
    2.封装成IP核,保存完整
    3.新建工程,添加ZNYQ 和 我们新建的LED灯 IP核,按照流程走完后,实现点灯。

    使用设备 ZYNQ 7010,选择设备型号XC7Z010CLG400-1

    根据我的开发板电路原理图,所要点亮的LED灯为EMIO口的T14
    DDR Configuration选择型号为MT41K128M16 JT-125

    根据以下流程完成本次创建

    1.创建verilog工程,用于设计IP核
    请添加图片描述
    2.工程名字可以命名为LED_IP请添加图片描述
    3.设备型号,我的是XC7Z010CLG400-1请添加图片描述
    4.给我们要创建的Verilog文件命名,如LED_flash,表示使LED灯闪烁
    请添加图片描述
    5.接下来编写Verilog程序

    时钟频率50MHZ,周期T=20ns,因此计数50_000_000次,1sLED灯闪烁一次

    module LED_Flash(
        input clk,
        input rst_n,
        output reg led
        );
        
        
         reg [25:0] cnt;
        
        always@(posedge clk or negedge rst_n)
        if(!rst_n)
            cnt <= 26'd0;
        else if(cnt < 26'd49_999_999)
            cnt <= cnt + 1'b1;
        else
            cnt <= 26'd0;
            
        always@(posedge clk or negedge rst_n)
        if(!rst_n)
            led <= 1'b0;
        else if(cnt == 26'd49_999_999)
            led <= ~led;
        else
            led <= led;
    endmodule
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    6.开始封装纯Verilog的IP
    依次点击Tools,第一个Create and Package New IP
    请添加图片描述
    请添加图片描述
    按照图片红色箭头依次点击,对于IP Location文件路径不用更改请添加图片描述
    请添加图片描述
    7.点击Finish后的新界面,可以看到一些相关信息
    本例程中基本没有什么需要改变的
    请添加图片描述
    8.点击完Package IP后,这个Vivado 工程可以不用管,或者最小化关闭都可,新建Vivao工程
    重复上述步骤1-3,这个工程名字可以为For_IP_Led_Flash,表示使用IP核来完成LED灯闪烁。
    请添加图片描述
    9.添加我们创建的IP核的路径
    请添加图片描述
    请添加图片描述
    10.路径添加完成后我们就可以添加IP核了
    请添加图片描述
    请添加图片描述
    11.添加完两个IP核后开始连线请添加图片描述
    以及点击两个红色箭头后,如下图
    LED_Flash_0 IP核的led管教点击选中后引出引脚,可以使用快捷键crtl+T,结果如第二幅图所示
    请添加图片描述
    请添加图片描述
    10.选择添加一个UART串口和DDR型号选择
    请添加图片描述
    接着选择DDR型号,根据自己开发板的型号来选择
    请添加图片描述
    11.红色数字1点击完毕后,出现的对话框,选择Synthesis Options中的第一个Global,然后点击Generate,等待程序运行完毕,可执行红色数字2“Let Vivado manage wrapper and auto-update” OK。
    请添加图片描述
    12.在11执行完毕后,执行Run Implementation
    请添加图片描述
    13.给我们的EMIO LED约束引脚,我的开发板引脚是T14
    请添加图片描述
    如此选择完毕后,按crtl+s,给弹出来的对话窗口,选择赋值LED_Flash
    请添加图片描述
    14.生成比特流文件请添加图片描述
    15.没有特殊说明,运行完毕弹出来的对话框,可以都选择“View reports”
    请添加图片描述
    请添加图片描述
    16.准备运行SDK
    请添加图片描述
    请添加图片描述
    17.由于我们电灯的逻辑电路在Verilog中搭建好了,因此SDK中不需要对灯T14的引脚做额外操作,随便来个串口程序就好。(之前步骤中我们选择好的ZYNQ中的UART1)
    请添加图片描述

    请添加图片描述
    请添加图片描述
    18.将数据线连接好,准备烧录程序
    请添加图片描述
    请添加图片描述
    请添加图片描述

    18.实验结果

    2

    19.内容较长,请仔细操作。如有问题,可添加作者QQ:1018931844。欢迎讨论

  • 相关阅读:
    LK光流法和LK金字塔光流法(含python和c++代码示例)
    unity的通过代码进行Inspector窗口编辑
    GBase 8s RTSync服务端口介绍(一)
    PHP中的for循环和forEach循环
    JavaEE 网络原理——TCP的工作机制(中篇 三次握手和四次挥手)
    如何通过数据治理为智慧水务增效赋能?
    C Primer Plus(6) 中文版 第11章 字符串和字符串函数 11.6 字符串示例:字符串排序
    vue3-admin-element安装
    mybatis collection解析以及和association的区别
    Spring Security(三):直观体验OAuth2.0
  • 原文地址:https://blog.csdn.net/Ievn_Hare/article/details/133861877