学习ZYNQ——使用IP核

news2025/7/19 17:01:16

文章目录

    • @[TOC](文章目录)
  • 前言
  • 一、新建Vivado工程
  • 二、使用IP核
    • 1.加载IP
    • 2.查看IP核
    • 3.应用IP核
  • 三、添加源文件
    • 1.led.v
    • 2.约束文件pin_led.xdc
  • 四、综合、运行程序

前言

加载前面使用HLS生成的IP核,实现LED灯的闪烁,熟悉整套流程的步骤:
前一篇文章:如何使用HLS生成IP核


一、新建Vivado工程

首先打开Vivado 2018.3软件
在这里插入图片描述
点击新建工程 》给工程取名 HLS_Led 》保存路径为上一篇HLS的目录下:
在这里插入图片描述

二、使用IP核

1.加载IP

我们将由 HLS 生成的 IP 添加到我们的 IP 仓库中。点击 settings
在这里插入图片描述
然后点击 IP》Pepository ,选中仓库,再点击+号进行添加由 HLS 生成的 IP
在这里插入图片描述
选择solution1文件路径就行,等待软件自动识别IP核,然后先点击Apply 再点击OK
在这里插入图片描述

2.查看IP核

在这里插入图片描述
在这里插入图片描述

3.应用IP核

在这里插入图片描述

三、添加源文件

1.led.v

在这里插入图片描述
在这里插入图片描述

添加的代码如下:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/06/14 16:34:17
// Design Name: 
// Module Name: led
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module led(
    input wire clk,
    input wire rst_n,
    output wire led_o
);
    
wire rst;//同步复位
wire ap_ready;//当前可以接收下一次数据
reg ap_start;//IP 开始工作
reg led_i_vld;//输入数据有效
wire led_o_vld;
reg led_i;//输入的 led 信号
wire led_o_r;
wire ap_done;
wire ap_idle;
reg [1:0] delay_cnt;
assign rst = ~rst_n;
assign led_o = led_o_r;

//----------------delay_cnt------------------
always @(posedge clk) begin
    if (rst==1'b1) begin
        delay_cnt <= 'd0;
    end
    else if (delay_cnt[1]==1'b0)begin
        delay_cnt<=delay_cnt+1'b1;
    end
end

//----------------ap_start------------------
always @(posedge clk) begin
    if (rst==1'b1) begin
        ap_start <= 1'b0;
    end
    else if(delay_cnt[1]==1'b1)begin
        ap_start<=1'b1;
    end
end

//----------------led_i_vld------------------
always @(posedge clk) begin
    if (rst==1'b1) begin
        led_i_vld <= 1'b0;
    end
    else if (delay_cnt[1]==1'b1)begin
        led_i_vld<=1'b1;
    end
end

//----------------ap_i------------------
always @(posedge clk) begin
    if (rst==1'b1) begin    
        led_i <= 1'b0;
    end
    else if(led_o_vld==1'b1)begin
        led_i<=led_o_r;
    end
end

//这里flash_led_1 和自己应用IP核取得名字一致
flash_led_1 inst_flash_led (
    .led_o_V_ap_vld(led_o_vld), // output wire led_o_V_ap_vld
    .led_i_V_ap_vld(led_i_vld), // input wire led_i_V_ap_vld
    .ap_clk(clk), // input wire ap_clk
    .ap_rst(rst), // input wire ap_rst
    .ap_start(ap_start), // input wire ap_start
    .ap_done(ap_done), // output wire ap_done
    .ap_idle(ap_idle), // output wire ap_idle
    .ap_ready(ap_ready), // output wire ap_ready
    .led_o_V(led_o_r), // output wire [0 : 0] led_o_V
    .led_i_V(led_i) // input wire [0 : 0] led_i_V
);

endmodule

2.约束文件pin_led.xdc

添加如下代码

##############LED define##################
set_property PACKAGE_PIN P15 [get_ports {led_o}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_o}]
##############Reset define##################
set_property PACKAGE_PIN P16 [get_ports {rst_n}]
set_property IOSTANDARD LVCMOS33 [get_ports {rst_n}]
##############50M CLK define##################
create_clock -period 20.000 -name clk -waveform {0.000 10.000} [get_ports clk]
set_property PACKAGE_PIN N18 [get_ports {clk}]
set_property IOSTANDARD LVCMOS33 [get_ports {clk}]

四、综合、运行程序

1.点击Run Synthesis,没有报错之后,生成Bitstream文件
2.使用数据线连接板子和电脑
3.Open Hardware Manager 连接板子,下载程序到板子里
在这里插入图片描述
运行结果如——板子对应的LED灯出现1s的闪烁:
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1822326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++面向对象程序设计 - 命名空间

命名空间是ANSI C引入的可以由用户命名的作用域&#xff0c;用来处理程序中常见的同名冲突。 在C语言中定义了三个层次的作用域&#xff0c;即文件&#xff08;编译单元&#xff09;、函数和复合语句。C又引入了类作用域&#xff0c;类是出现在文件内的。在不同的作用域中可以定…

C# WPF入门学习主线篇(二十九)—— 绑定到对象和集合

C# WPF入门学习主线篇&#xff08;二十九&#xff09;—— 绑定到对象和集合 在WPF中&#xff0c;数据绑定是开发动态和交互性用户界面的核心技术。通过数据绑定&#xff0c;我们可以轻松地将UI控件与后台的数据源连接起来&#xff0c;实现数据的自动更新和显示。在本篇文章中&…

618有哪些值得入手的电子产品,个个都是心头爱!

今年的618购物节目已经开启&#xff01;你们期待的购物节就要到了&#xff0c;是不是已经跃跃欲试&#xff0c;准备开启购物模式了呢&#xff1f;别急&#xff0c;今天我就给大家带来了一份2024年618电子产品的好物清单&#xff0c;让你们购物不迷茫&#xff0c;轻松选到心仪的…

超声波清洗机对眼镜有伤害吗?四大超值不踩雷超声波清洗机安利

眼镜是现代人生活中的必备物品&#xff0c;但是很多人可能对于如何正确清洗眼镜感到困惑。传统的清洗方法可能会在清洗过程中对眼镜造成损坏&#xff0c;例如使用普通肥皂或清水清洗时容易划伤镜片。为了解决这个问题&#xff0c;家用眼镜超声波清洗机应运而生。超声波清洗机利…

逻辑斯谛回归与最大熵模型的原理实现

逻辑斯谛回归(LR)是经典的分类方法 1&#xff0e;逻辑斯谛回归模型是由以下条件概率分布表示的分类模型。逻辑斯谛回归模型可以用于二类或多类分类。 P ( Y k ∣ x ) exp ⁡ ( w k ⋅ x ) 1 ∑ k 1 K − 1 exp ⁡ ( w k ⋅ x ) , k 1 , 2 , ⋯ , K − 1 P(Yk | x)\frac{\…

RT-thread内核对象的基础应用

RT-thread的内核对象基础应用 启动流程&#xff1a; 以RT-Thread Studio为例&#xff0c;用户程序入口为位于 main.c 文件中 的main 函数。系统启动后先运行startup_stm32f103xe.s文件中的汇编代码&#xff0c;运行“bl entry”指令后跳转到components.c 文件中调用entry函数&a…

关于印发农业中央预算内投资专项管理办法的通知

国家发展改革委关于 印发农业中央预算内投资专项 管理办法的通知 发改农经规〔2024〕744号 农业农村部、海关总署、国家林草局&#xff0c;各省、自治区、直辖市及计划单列市、新疆生产建设兵团发展改革委&#xff0c;北大荒农垦集团有限公司&#xff1a; 为全面贯彻党的二十…

AI时代的程序员,复合型技术大咖该具备哪些本领与魅力?

AI时代对程序员和互联网时代对程序员的要求有不同 在AI时代的今天&#xff0c;程序员所面临的挑战已经有了翻天覆地的变化。 与互联网时代相比&#xff0c;AI时代对程序员的要求更为全面与多元化 回顾互联网时代&#xff0c;程序员主要需要掌握技术的专业知识和编程技能。他…

安卓/iOS/Linux系统影音边下边播P2P传输解决方案

在当今的数字时代&#xff0c;IPTV 影音行业正经历着快速的发展和变革&#xff0c;但影音行业的流量带宽成本一直很高&#xff0c;有没有什么办法既能保证现有的用户观看体验&#xff0c;又能很好降低流量带宽成本呢? P2P技术可能是一个很好的选择&#xff0c;它不仅仅可以提…

vue+showdown展示Markdown 文本

前言&#xff1a; vueshowdown展示Markdown 文本&#xff0c;资料整理 使用教程-vditor&#xff1a; 1、安装 npm install vditor --save 2、使用 <template><div id"vditor" name"description" ></div> </template> <scri…

Ransac(随机抽样一致性算法)多项式拟合附近的点

Ransac&#xff08;随机抽样一致性算法&#xff09;多项式拟合附近的点 RANSAC&#xff08;RANdom SAmple Consensus&#xff09;算法是一种用于拟合数学模型的迭代方法&#xff0c;尤其适用于对数据中有噪声的情况。RANSAC的核心思想是通过迭代从数据集中随机抽取一小部分样本…

计算机图形学入门11:图形管线与着色器

1.什么是图形管线 把场景中的物体经过一系列的处理&#xff0c;最后一张图像的形式在屏幕上显示出来&#xff0c;这一系列过程就是图形管线(Graphics Pipeline)&#xff0c;也叫实时渲染管线(Real-time Rendering Pipeline)。如下图所示&#xff0c;为整个渲染管线的过程。 渲染…

Python:从头创建 Asyncio (2)

引言 现在&#xff0c;asyncio 已成为 Python 社区中的热门话题&#xff0c;并且名副其实——它提供了一种非常出色的处理 I/O 密集型程序的方法&#xff01;在我探索 asyncio 的过程中&#xff0c;我起初并不太明白它的工作原理。但随着深入学习&#xff0c;我意识到 asyncio …

go interface

package mainimport "fmt"// 接口 interface func main() {c : Chinese{} //创建一个中国人实例u : American{} //创建一个美国人实例greet(c) //中国人打招呼greet(u) //美国人打招呼 }// 接收具备SayHello接口能力的变量 func greet(s SayHello) {…

sslh一键在一个端口上运行多个服务(KALI工具系列二十三)

目录 1、KALI LINUX 简介 2、sslh工具简介 3、信息收集 3.1 目标主机IP&#xff08;win&#xff09; 3.2 KALI的IP 4、操作示例 4.1 监听特定端口 4.2 配置SSH 4.3 配置apache 4.4 配置sshl 4.5 验证配置 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、…

腾讯云对象存储不绑定自定义备案域名不给下载应该如何处理?

从2024年1月1日起&#xff0c;腾讯云对象存储&#xff08;COS&#xff09;将实施新政策&#xff1a;新创建的存储桶不再支持使用path-style域名&#xff08;即存储桶绝对路径&#xff09;。此外&#xff0c;使用默认域名访问的新存储桶将不再支持任意类型文件的预览&#xff0c…

夏日炎炎 水域守护:北斗守护安全防线——为生命撑起智能保护伞

随着夏季的来临&#xff0c;炎热的天气让许多人纷纷寻求水的清凉。清凉的河流与广阔的海域成为了不少人消暑降温的向往之地。然而&#xff0c;私自下河、下海的行为却暗藏着巨大的安全隐患&#xff0c;每年夏季溺水事故频发&#xff0c;给无数家庭带来不可挽回的悲痛。为有效遏…

QT绘图项目 - 汽车表盘

目录 前言: 整体代码 widget.h widget.cpp 效果演示 实现刻度文字正确排版 优化代码 达到效果 封装整理代码结构: widget.h widget.cpp 指针样式美化 优化后的指针API 效果演示 设置高速刻度为红色 优化刻度API 效果演示 速度显示优化 给内圈画上黑色 优化速度…

【java计算机专业毕设】房屋租赁系统代码源码MySQL springboot vue html maven送文档ppt

1项目功能 【java计算机专业毕设】房屋租赁系统javaweb MySQL springboot vue html maven 送报告 2项目介绍 系统功能&#xff1a; 房屋租赁系统包括管理员和用户和房东三种角色。 该系统包含多个功能模块&#xff0c;分别为管理员、用户和房东提供服务。管理员功能包括个人中…

智能创作引领潮流,抓住时机!TikTok矩阵源码带来自动定时发布的成功策略

智能创作是当今社交媒体平台发展的重要趋势&#xff0c;而TikTok作为最受欢迎的短视频平台之一&#xff0c;通过其独特的创作方式和大量的用户&#xff0c;已经成为广告主和内容创作者的首选平台。在这个竞争激烈的市场&#xff0c;抓住时机并实现成功的关键是自动定时发布&…