HLS入门---流水灯闪烁

news2024/12/23 17:39:19

文章目录

  • 1.HLS简介
  • 2.led闪烁实验
    • 2.1 函数撰写

1.HLS简介

HLS(High-Level Synthesis,高级综合)是一种将高级硬件描述语言(如C/C++)转换为硬件描述语言(如Verilog或VHDL)的过程。这种技术允许设计者使用类似于软件编程的方法来设计硬件,从而提高设计效率和灵活性。

HLS的主要特点包括:

高级语言编程:使用C/C++等高级语言进行设计,使得设计过程更加直观和易于理解。
自动化综合:HLS工具可以自动将高级语言代码转换为硬件描述,简化了设计流程。
性能优化:HLS工具能够进行资源优化和时序优化,以满足特定性能要求。
可扩展性:设计者可以轻松修改和扩展设计,适应不同的应用需求。
多平台支持:HLS支持多种硬件平台,包括FPGA和ASIC。
HLS的应用领域非常广泛,包括但不限于:

数字信号处理(DSP):如滤波器、FFT等算法的实现。
图像和视频处理:如图像压缩、视频编解码等。
机器学习:实现神经网络的硬件加速。
通信系统:如基带处理、调制解调等。
HLS工具的例子包括Xilinx的Vivado HLS、Intel的HLS Compiler等。这些工具帮助设计者快速从概念到实现,缩短了产品开发周期。

2.led闪烁实验

打开Vivada 点击创建工程
在这里插入图片描述
输入工程名
在这里插入图片描述
在这里插入图片描述
点击添加函数
在这里插入图片描述

2.1 函数撰写

Helloword.h

//helloworld.h
#ifndef _HELLOWORLD_H_
#define _HELLOWORLD_H_
#include "ap_int.h"
typedef 	ap_int<1> led_t;
void flash_led(led_t *led_o);
#endif

Helloword.cpp

//Helloworld.cpp
#include "HelloWorld.h"
void flash_led(led_t *led_o){
#pragma HLS INTERFACE ap_ovld port=led_o
	int i;
	for(i=0;i<10000;i++){
		if(i==9999){
			*led_o = ~(*led_o);
		}
	}
}

tb_Helloworld.cpp

#include "HelloWorld.h"
#include <stdio.h>
int main(){
	led_t led_o;
	const int SHIFT_TIME = 4;
	int i;
	for(i=0;i<SHIFT_TIME;i++){
		flash_led(&led_o);
		printf("result : %d \n",(int)(led_o&0x01));
	}
}


保存代码进行仿真
在这里插入图片描述
查看仿真结果
在这里插入图片描述
可以看到,按照我们的预期输出了仿真的结果

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

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

相关文章

推荐一款WPF绘图插件OxyPlot

开始 使用 NuGet 包管理器添加对 OxyPlot 的引用&#xff08;如果要使用预发布包&#xff0c;请参阅下面的详细信息&#xff09;向用户界面添加PlotView在代码中创建一个PlotModel绑定到你的属性PlotModelModelPlotView 例子 您可以在代码存储库的文件夹中找到示例。/Source/Ex…

录取查询小程序怎么制作?

招生老师往往需要花费大量的时间和精力去手动整理学生的录取信息&#xff0c;并一一通知学生。那时的录取查询系统&#xff0c;复杂而繁琐&#xff0c;要处理大量的数据&#xff0c;还要确保信息的准确无误和安全。经常为了发布录取结果&#xff0c;不得不加班到深夜&#xff0…

盲盒小程序 跨平台兼容性测试策略:打造无缝体验

在盲盒小程序的开发过程中&#xff0c;跨平台兼容性测试是确保应用在不同设备和操作系统上都能提供无缝体验的重要步骤。本文将探讨一些关键的跨平台兼容性测试策略&#xff0c;以助力开发者打造稳定、流畅的小程序。 一、明确测试目标 在进行跨平台兼容性测试之前&#xff0…

【数据结构 |集合框架、泛型】初始集合框架、时间(空间)复杂度、简单认识泛型

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; &#x1f388;丠丠64-CSDN博客&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起…

DDei在线设计器-属性编辑器

DDei-Core-属性编辑器 DDei-Core-属性编辑器插件包含了文本、大文本、数值、下拉、单选、勾选以及颜色等属性编辑。 图形和属性共同构成一个完整的定义&#xff0c;属性编辑器就是编辑属性值的控件。当选中图形实例时&#xff0c;属性面板就会展现当前实例的所有属性以及属性编…

JavaScript的面向对象思想及实现

文章目录 深入面向对象编程思想面向过程编程面向对象编程 构造函数原型数组扩展案例 constructor属性使用场景对象原型原型继承原型链 面向对象思想代码实现——模态框封装 深入面向对象 编程思想 面向过程编程 面向过程编程&#xff1a;面向过程就是分析出解决问题所需要的…

2024中国网络安全产品用户调查报告(发布版)

自2020年始&#xff0c;人类进入了21世纪的第二个十年&#xff0c;全球进入了百年未有之大变局&#xff0c;新十年的开始即被新冠疫情逆转了全球化发展的历程&#xff0c;而至2022年3月俄乌战争又突然爆发&#xff0c;紧接着2023年7月“巴以冲突"皱起&#xff0c;世界快速…

Jetson Linux 上安装ZMQ

1. 安装ZMQ 框架 apt-get install libzmq3-dev 2. 或者自己build ZMQ https://github.com/zeromq/libzmq.git 参考官网教程 3. 安装CPPZMQ CPPZMQ 是ZMQ 的友好的C封装&#xff0c;只需要一个zmq.hpp 头文件即可 git clone https://github.com/zeromq/cppzmq.git cd cppz…

LabVIEW进行负载测试

本文介绍了如何使用LabVIEW进行负载测试&#xff0c;通过一个具体案例详细讲解了测试系统的组成、工作原理和实现方法。系统采用先进的硬件和软件架构&#xff0c;结合LabVIEW的强大功能&#xff0c;成功实现了对设备的高效负载测试&#xff0c;确保了系统的可靠性和性能。 项…

【SpringCloud学习笔记】RabbitMQ(上)

1. RabbitMQ简介 官网地址&#xff1a;https://www.rabbitmq.com/ 2. 安装方式 安装前置准备&#xff1a; 此处基于Linux平台 Docker进行安装&#xff0c;前置准备如下&#xff1a; Linux云服务器 / 虚拟机Docker环境 安装命令&#xff1a; docker run \-e RABBITMQ_DEFAU…

养猫发现猫毛过敏?宠物空气净化器真的能拯救猫毛过敏吗?

广东省 猫咪是许多人梦寐以求的伴侣&#xff0c;但对于轻度猫毛过敏和鼻炎患者来说&#xff0c;养猫似乎是个遥不可及的梦想。我常在社交媒体上羡慕地观看朋友们的吸猫日常&#xff0c;却因过敏无法亲自养猫。这种遗憾驱使我寻找解决方案&#xff0c;从研究低过敏猫种到尝试空气…

使用Git进行代码版本管理

目录 1. 简介 2. 管理流程 2.1. 建立清晰的分支策略 2.2. 定期提交与合并 2.3. 使用标签来管理发布版本 2.4. 保持代码库的整洁 2.5. 利用Git钩子和CI/CD集成 3. 实现步骤 3.1. 建立仓库 3.2. 分支管理 3.3. 推送代码 ①首先切换到要 code 的分支&#xff0c;比如 d…

AM273X毫米波演示

介绍 毫米波演示展示了 AM273X SOC 使用毫米波 SDK&#xff08;软件开发工具包&#xff09;中的驱动程序的一些功能。它允许用户指定chirp配置文件并实时显示检测到的对象和其他信息。 以下是此演示功能的高级描述&#xff1a; 能够通过 UART 端口上的命令行界面 &#xff08;…

leetcode刷题-二叉树03

代码随想录二叉树part03|104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数 104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数 104.二叉树的最大深度 代码随想录文档讲解 LeetCode 斜体样式 本题在前一章节层序遍历时已完成。&#xff…

短视频矩阵筷子科技、抖去推、超级编导有那几家源头开发是自己底层框架做的-----

目前这几家都是自己技术团队搭建开发的&#xff0c;每家都有优势劣势产品上基本都已经成熟趋向于优化技术阶段。 云罗---抖去推&#xff1a;*** 将在CAP原则基础上使用分布式架构,对此网站的整体架构采用了基于B/S三层架构模式,将数据层、业务应用层、表现层分开。BS架构B/S&a…

第二届黄河流域团队赛个人wp

个人wp web 两个题都几乎是网上的原题&#xff0c;不想多说了&#xff0c;放个链接&#xff0c;重点记录一下自己第一次遇到的misc 冰蝎流量分析 web1 https://blog.csdn.net/qq_51768842/article/details/125153850 web2 https://blog.csdn.net/m0_73512445/article/detai…

北京医院共享轮椅小程序开发更贴心,更便捷

在大数据不断发展的今天&#xff0c;资源共享已随处可见&#xff0c;小到共享充电宝&#xff0c;共享雨伞&#xff0c;大到共享单车&#xff0c;汽车。这些常用资源的共享&#xff0c;充分实现了有限资源的最大化利用。 如今&#xff0c;众多北京医院&#xff0c;也结合自身实…

TQZC706开发板教程:10G光口arp测试

网盘分享&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1H-_hn1eAi-Byzn-4tcSFKA 提取码&#xff1a;q524 使用前需要设置时钟&#xff0c;调整右下角的拨码开关为↑↓↓↑↑ 从原理图中可以看出设置为156.25MHz&#xff0c;10Gige模式 启动模式设置为JTAG模式&#…

内地人真的被香港的工资震惊到了!香港身份真的很香

在我优才获批以前&#xff0c;我工资也就一两万&#xff0c;工作压力大又很焦虑&#xff0c;后来在一次和朋友吃饭上聊到了香港工资的话题&#xff0c;说这边的待遇水平比较高。&#x1f60e;&#x1f60e; . 那时候不相信&#xff0c;问了一些在香港工作的大学同学&#xff0c…

【机器学习基础】Python编程07:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机器学习库,如scikit-learn、TensorFlow、Keras和PyTorch等,这些…