【FPGA入坑指南第二章】安装vivado/vitis2023.1软件

【FPGA入坑指南第二章】安装vivado/vitis2023.1软件

本栏目的初心

降低FPGA的门槛,让所有对FPGA感兴趣的,之前望而却步的朋友也能上手玩一玩,体验一下FPGA的世界。【本栏作者贯彻“先进入再深入”的中心思想】

引文

简介

Vivado和Vitis是Xilinx(现为AMD的一部分)推出的两款核心软件工具,它们在FPGA和SoC(系统级芯片)设计中占据着重要地位。这两款软件的推出代表了Xilinx在数字设计领域的持续创新与发展,并且逐步取代了早期的ISE和SDK工具套件。

ISE和SDK的历史背景

在Vivado和Vitis推出之前,Xilinx的ISE(Integrated Software Environment)是FPGA设计的主要开发环境。ISE主要用于Xilinx早期的FPGA系列,如Spartan和Virtex系列。ISE支持从RTL设计、综合、布局布线到生成比特流文件的整个设计流程,但其在时序优化、设计复杂度和开发效率方面逐渐暴露出一些局限性,尤其是对于更高端的FPGA系列和复杂的系统设计。

为了应对更高复杂度的设计需求,Xilinx在2012年推出了Vivado Design Suite,旨在替代ISE并为更先进的FPGA系列(如7系列、UltraScale和UltraScale+)提供支持。Vivado引入了许多创新的设计优化技术,显著提高了开发效率和硬件性能。

同时,Xilinx还推出了SDK(Software Development Kit),用于嵌入式系统的软件开发。SDK主要面向基于Zynq系列FPGA的嵌入式设计,支持操作系统(如Linux)和裸机程序的开发,为开发者提供了全面的软件开发工具和调试支持。随着系统级设计的复杂性增加,SDK与Vivado配合使用,帮助开发者实现硬件与软件的协同开发。

Vivado与Vitis的诞生

Vivado和Vitis的推出代表了Xilinx从传统的硬件设计向更高层次应用开发的转变。Vivado继承了ISE的硬件设计功能,并进一步扩展了支持高效时序优化和高级综合的能力,特别是在7系列和UltraScale FPGA上。与此同时,Vitis作为新一代开发平台,不仅集成了Vivado的硬件设计功能,还增加了对软件开发、AI加速和系统级应用的支持,满足了嵌入式系统开发、AI推理、机器学习等多样化应用的需求。

总的来说,Vivado和Vitis的推出标志着Xilinx在FPGA和SoC开发工具方面的一次重要升级,克服了ISE和SDK时代的局限性,为开发者提供了更高效、更灵活的设计体验,推动了FPGA技术在多个领域的应用。

Vivado/Vitis软件安装

1.查看磁盘的空间是否充足,需要预留200G空间进行安装。

2.选好需要装软件的磁盘(尽量避免选C盘),创建xilinx2023.1文件夹作为安装目录

3.保存百度云安装包或者官网安装包到刚刚创建的xilinx2023.1这个文件夹

4.解压Xilinx_Unified_2023.1_0507_1903这个包,并打开找到xsetup.exe文件双击打开

5.进入安装引导界面第一页,点击NEXT

6.因为我们入坑指南针对的是ZYNQ系列,所以安装的时候选择Vitis选项(不是SOC板子可以选择下面的vivado选项),然后NEXT

7.器件的资源包,这里可以根据自己选择(用哪个器件选哪个资源避免浪费磁盘空间),作者这里磁盘够用就全选了,点击NEXT。

8.同意所有相关条款,NEXT

9.选择刚刚创建的xiinx2023.1文件路径,NEXT,点击Install进行安装

10.进过漫长的等待进度拉满

11.弹出以下对话框证明软件已经安装完成

12.打开软件对软件施展一点magic,点击左上角Help找到License选项

13.跟着图片依次找到load License — copy License — xxx.lic,然后点击打开。

14.确认magic生效,关闭窗口。

15.开始你的FPGA入坑之旅

作者不会按照常规思路让想入坑FPGA的朋友们,先精通Vrilog语法再熟悉软件,等到都精通人已经失去学下去的兴趣和动力了。我的想法是在实践中探索,先玩起来然后产生新奇的想法,修改代码实现功能获得正反馈。长此以往下去!你必成旷世奇才

如安装遇到问题或者需求其他VIVADO版本安装包可以评论区讨论

【本栏都是个人观点,抬杠就是你对】

Read more

前端存储三剑客:localStorage、sessionStorage、cookie 超详细对比

前端存储三剑客:localStorage、sessionStorage、cookie 超详细对比

在前端开发中,数据本地存储是提升用户体验、优化性能、实现持久化状态的核心技术。我们最常用的就是 localStorage、sessionStorage 和 cookie 这三种方案,但很多开发者容易混淆它们的用法、存储特性和适用场景。 这篇博客就用最清晰、最实用的方式,一次性讲透三者的区别、用法和最佳实践。 一、先搞懂核心概念 * cookie:最早的客户端存储方案,会随 HTTP 请求自动发送到服务器,主要用于身份验证、会话保持。 * localStorage:HTML5 新增的本地存储,持久化存储,手动清除才会消失,不参与网络请求。 * sessionStorage:HTML5 新增的会话存储,页面会话期间有效,关闭标签页 / 浏览器就清空。 二、核心区别一张表看懂 表格 特性localStoragesessionStoragecookie生命周期永久有效,手动清除仅当前会话(关闭标签 / 浏览器失效)可设置过期时间,默认会话级存储容量约 5MB约 5MB很小,仅 4KB与服务端通信不参与不参与自动携带在

【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!

【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!

🔥 本文专栏:Linux网络Linux实践系列 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录:别害怕选错,人生最遗憾的从不是‘选错了’,而是‘我本可以’。每一次推倒重来的勇气,都是在给灵魂贴上更坚韧的勋章。 ★★★ 本文前置知识: 序列化与反序列化 引入 在之前的博客中,我详细介绍了序列化 与反序列化 的概念。对于使用 TCP 协议进行通信的双方,由于 TCP 是面向字节流的,在发送数据之前,我们通常需要定义一种结构化的数据来描述传输内容,并以此作为数据的容器。在 C++ 中,这种结构化数据通常表现为对象或结构体。然而,我们不能直接将结构体内存中对应的字节原样发送到另一端,因为直接传递内存字节会引发字节序 和结构体内存对齐 的问题。不同平台、不同编译器所遵循的内存对齐规则可能不同,这可能导致接收方在解析结构体字段时出现错误。 因此,我们需要借助序列化 。序列化 是指将结构化的数据按照预定的规则转换为连续的字节流。其主要目的是屏蔽平台差异,使得位于不同平台的进程能够以统一的方式解析该字节流。序列化通常分为两种形式:文本序列化 与二进制序列化 。 文

Flowise创新应用:结合Web Scraping的数据采集流程

Flowise创新应用:结合Web Scraping的数据采集流程 1. 引言:当可视化工作流遇见数据采集 想象一下这样的场景:你需要从几十个网站上收集最新的行业数据,传统方法要么需要写复杂的爬虫代码,要么要手动复制粘贴,费时费力还容易出错。现在,有了Flowise这个可视化工具,只需要拖拽几个节点,就能搭建出智能的数据采集工作流。 Flowise是一个开源的拖拽式大语言模型工作流平台,它把复杂的技术细节封装成简单的可视化节点,让你像搭积木一样构建AI应用。特别适合不会编程但需要快速实现数据采集和分析的团队。 本文将带你了解如何用Flowise结合网页抓取功能,构建高效的数据采集流程,无需编写代码就能实现智能化的信息提取和处理。 2. Flowise核心功能快速了解 2.1 什么是Flowise? Flowise是一个在2023年开源的视觉化LLM工作流构建平台,目前已经在GitHub上获得了超过4.5万个星标。它的核心价值在于让非技术人员也能快速搭建AI应用。 简单来说,Flowise把LangChain的各种功能封装成了可视化节点,你只需要在画布上拖拽这些节点,

Qt 前后端通信(QWebChannel Js / C++ 互操作):原理、示例、步骤解说

Qt 前后端通信(QWebChannel Js / C++ 互操作):原理、示例、步骤解说

Qt 提供的 QWebEngineView 是一个基于 Chromium 内核的浏览器组件,通过它,开发者可以使用 HTML、CSS、JavaScript 等技术开发 Web 页面并呈现在 Qt 桌面应用中,但与开发纯 Web 页面不同的是,这些页面通常需要和 应用中的其他组件交互,例如获取后端数据进行渲染、将前端用户指令传达给后端执行等,这将不可避免地涉及到前端 Js 和 后端 C++ 之间的交互问题,而 Qt 为此给出的解决方案就是 QWebChannel,通过 QWebChannel 前端 Web 页面和与后端 C++ 程序实现自然而顺畅的交互,甚至前后端的操作风格都极为一致。本文我们将细致地介绍QWebChannel 前后端交互的原理,通过四个详实的示例程序讲解每一步重要的操作步骤,通过本文,你将对 QWebChannel 有一个全面而深入的了解。 1. 工作原理