vivado I/O和时钟规划是定义和分析、I/O和时钟规划阶段、RTL前I/O规划、RTL I/O规划、网表I/O规划、实施设计的最终I/O验证

介绍

I/O和时钟规划是定义和分析

FPGA/自适应SoC和印刷电路板(PCB),并分配各种互连信号到设备的物理引脚。这个过程包括PCB设计者、FPGA设计者和系统设计者有以下关注点和要求:

•简化关键信号连接,以缩短信号长度并避免信号十字路口。

•保持设备上下高速信号的完整性。

•选择可能与备用设备一起工作的I/O配置。

•确定PCB上的电源和接地信号可用性。

•确定正确去耦的PCB要求。

•识别设备编程和调试注意事项。

通常,设计人员会受到非最佳引脚的阻碍,当他们试图满足定时和信号完整性要求。

通过考虑来自PCB到FPGA/自适应SoC芯片,您可以快速实现最佳引脚配置,从而减少了内部和外部跟踪长度以及路由拥塞。本章提供使用已知图形用户界面(GUI)的I/O和时钟规划过程概述作为AMD Vivado™ 集成设计环境(IDE)。

按设计过程导航内容

AMD自适应计算文档是围绕一组标准设计组织的流程,帮助您找到当前开发任务的相关内容。所有AMD Versal™自适应SoC设计过程可以找到设计中心和设计流助手材料在Xilinx.com网站上。本文件涵盖以下设计过程:

•系统和解决方案规划:确定组件、性能、I/O和数据系统级别的传输要求。包括解决方案到PS的应用程序映射,PL和AI引擎。

I/O和时钟规划阶段

Vivado设计套件便于在设计的不同阶段进行I/O和时钟规划从PCB设计者和FPGA设计者之间的初始协作到验证的过程完全实现的设计。随着设计流程的进展信息变得可用,这使得能够进行更复杂的分析和规则检查。对于例如,设计流程早期的分析(综合/opt)使用实际的单元延迟,但为零互连延迟。放置后,单元延迟是实际的并且互连延迟是估计的,而所实现的设计使用路由网络的实际信元和互连延迟。正确的I/O分配取决于FPGA的结构和PCB的要求设计,以及两者之间的互动。可视化FPGA如何在逻辑和与PCB的物理连接使得能够精简通过设备的数据流。

I/O端口分配,定义来自PCB的信号如何进入FPGA设计或输出到板和时钟资源分配,在设计中定义了时钟树的结构,通常一起完成。例如,设备上的某些引脚对于时钟引脚是最佳的,而其他引脚对于数字控制阻抗(DCI)级联和内部参考电压(VREF)。未能正确规划I/O端口和时钟分配可能会导致系统性能下降性能、多次设计迭代和更长的设计结束时间。Versal时钟和I/O通过高级I/O向导设置I/O并通过简单的GUI计时,设计非常简单。对于使用UltraFast的板上信息和设备规划™ 设计方法,请参阅FPGA和SoC的超快设计方法指南中的板和设备规划部分(UG949)。您可以在设计流程的任何阶段执行I/O规划。

各种类型的项目为I/O规划提供了灵活的切入点。只要可能,最好使用综合设计执行I/O分配。例如只能对合成的执行更复杂的I/O布局设计规则检查(DRC)设计I/O规划可以通过多种不同的方式完成。在高级中构建设计后I/O向导,Versal有一个名为Advanced I/O Planner的新工具,可以进行引脚规划对于存储体(54引脚)和/或半字节级(6引脚)上的任何SelectIOvor软/硬存储器接口粒度。在Advanced I/O Planner中,您可以自动放置引脚分配,然后调整通过经典引脚规划工具进行单个引脚分配。此工具可以自动放置所有I/O接口,以最大限度地提高时钟和I/O体系结构。如果您需要安置个人I/O,仍然支持将接点约束写入XDC文件的经典接点规划工具。

最后,您还可以使用用户定义的XDC文件来设计端号平面。某些类型的IP,例如存储器IP、千兆收发器(GT)、AMD高速IO IP,PCI Express®(PCIe)和以太网接口具有与其关联的I/O端口。你必须在开始之前,使用Vivado Design Suite中的IP功能正确配置该IPI/O规划过程。因为这些接口通常是最关键的时序,所以使用这个IP作为考虑设备引脚分配时的起点。此外,使用RTL或使用该IP时的综合设计。有关详细信息,请参阅带I/O的IP的I/O和时钟规划端口。I/O和时钟规划设计流程在Vivado Design Suite中,您可以在设计的任何阶段进行I/O和时钟规划流使用任何类型的项目。以下是最常用的方法。

提示:您还可以运行Vivado Design Suite,并在非项目模式下执行I/O和时钟规划。有关项目模式和非项目模式的信息,请参阅了解项目模式一节和Vivado设计套件用户指南中的非项目模式:设计流程概述(UG892)。

视频:有关在设计过程的各个阶段执行I/O规划的更多信息,请参阅Vivado Design Suite QuickTake视频:I/O规划概述。

RTL前I/O规划

您可以创建一个空的I/O规划项目,以实现早期设备探索和初始I/O在设计源文件可用之前进行端口分配。使用此方法,您不必RTL源文件或网表,并且您正在进行初始I/O规划和板级整合。这使得PCB和FPGA设计者能够就早期的引脚输出定义达成一致可以在设计周期的后期消除与设备引脚输出变化相关的迭代。使用I/O规划项目,您可以:

•从PCB设计器导入设备和I/O端口分配,或手动创建I/O端口。

•当端口定义和引脚时,将I/O规划项目迁移到RTL项目分配已解决。

•根据您的端口为设计的顶层创建Verilog或VHDL模块定义定义。

在I/O规划项目中完成端口分配后,可以迁移项目到RTL项目,并为顶级创建Verilog或VHDL模块定义设计。这允许您使用商定的I/O计划作为RTL设计的开始。有关详细信息,请参见将I/O规划项目迁移到RTL项目。

注意:有关创建I/O规划项目的信息,请参阅Vivado Design Suite用户指南:系统级设计入门(UG895)。有关导入接点的信息由PCB设计者或其他Vivado Design Suite项目定义的任务,请参阅定义以及配置I/O端口。

RTL I/O规划

您可以在详细的RTL项目中执行I/O规划。使用此方法,可以使用RTL设计,可选地包括Vivado IP目录中的IP核心或Vivado IP集成商。使用IP目录,您可以自定义IP,自定义时钟组件使用时钟向导,并配置SelectIO™ 使用SelectIO的接口资界面向导。在详细的设计中,Vivado工具为检查端口提供了基本的DRC分配、I/O标准、时钟资源和其他设计细节。您可以进行初始I/O和时钟规划,具有详细的设计和导出设备和I/O端口分配,用于PCB原理图符号生成或将约束保存在XDC文件中,以便在合成过程中使用或实现。

注:有关创建RTL项目和打开详细设计的信息,请参阅RTL一节Vivado Design Suite用户指南中的项目:系统级设计条目(UG895)。

网表I/O规划

您还可以使用合成网表执行I/O规划。使用此方法,您可以使用合成的RTL项目或使用合成后网表创建的网表项目。无论何时可以使用综合设计来执行I/O和时钟规划。Vivado工具具有合成后有关设计的更多信息,您可以使用自动I/O放置和交互式放置模式,以控制I/O端口分配。您也可以使用I/O规划查看布局以查看器件封装的物理引脚与管芯之间的关系设备上I/O组的焊盘。使用综合设计还可以使您在优化时做出更明智的决策PCB和AMD设备之间的连接。这可以让你拥有更好的与PCB或系统级设计师接口,使其更容易融入IO布局来自分配I/O位置的IP核,如MIPI或存储器IP。此外,因为所有Vivado设计套件具有更清楚地了解时钟需求和资源利用率,并可以执行更多对设计进行彻底验证。

注:您可以对合成的RTL设计或合成后的设计执行基于网表的I/O规划网表项目。有关创建后期合成项目的更多信息,请参阅后期合成一节Vivado Design Suite用户指南中的项目:系统级设计条目(UG895)。

建议:为了检查时钟逻辑,AMD建议使用合成设计进行验证。检查时钟计时,AMD建议使用已实现的设计进行验证。

实施设计的最终I/O验证

您必须使用完全实现的设计来验证最终有效的I/O引脚和时钟配置正确的时钟资源验证需要所有时钟的完全路由实现。您可以检查I/O和时钟相关消息的实现报告。最后,与PCB设计者仔细检查I/O端口分配,以确保FPGA正确为系统级设计定义。请注意,I/O位置和位置高度依赖于时钟位置和蚕食时钟进入。请参阅Versal自适应SoC SelectIO资源体系结构手册(AM010)和Versal自适应SoC时钟资源体系结构手册(AM003)了解更多信息有关登录I/O的信息。

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

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

相关文章

Hotspot源码解析-第22章-vtable和itable的重新初始化

第22章-vtable和itable的重新初始化 这个函数的调用流程是 init.cpp->init_globals() universe.cpp->universe_post_init() bool universe_post_init() {// 防止二次初始化assert(!is_init_completed(), "Error: initialization not yet completed!");Univ…

【C++】list容器功能模拟实现

介绍 上一次介绍了list队容器的迭代器模拟,这次模拟实现list的简单功能,尤其要注意构造函数、析构函数、以及赋值运算符重载的实现。 list容器需要接纳所有类型的数据,因此,结构设置与迭代器设置同理,需要引入结点&…

Python中的open与JSON的使用

目录 1 使用 open 函数进行文件操作 2 使用 json 模块进行 JSON 数据处理: 2.1 写入JSON 文件 2.2 读取JSON 文件 在 Python 中,open 函数和 json 模块常用于文件的读写和 JSON 数据的处理。 1 使用 open 函数进行文件操作 open 函数用于打开文件…

复现NAS with RL时pytorch的相关问题

optimizer.zero_grad()是什么? optimizer.zero_grad()是PyTorch中的一个操作,它用于清零所有被优化变量(通常是模型的参数)的梯度。 在PyTorch中,当你计算某个张量的梯度时(比如通过调用.backward()函数&…

“智汇语言·驭领未来”——系列特辑:LLM大模型信息获取与企业应用变革

“智汇语言驭领未来”——系列特辑:LLM大模型信息获取与企业应用变革 原创 认真的飞速小软 飞速创软 2024-01-16 09:30 发表于新加坡 本期引言 LLM(Large Language Model)大型语言模型以其自然语言理解和生成能力,正以前所未有的…

libtorch学习第六

构建卷积网络 #include<torch/torch.h> #include<torch/script.h> #include<iostream>using std::cout; using std::endl;class LinearBnReluImpl : public torch::nn::Module { private:torch::nn::Linear ln{ nullptr };torch::nn::BatchNorm1d bn{ nullp…

在jetson上对fastdeploy进行源码编译(完整版)

文章目录 准备工作下载飞桨推理库编译代码可能遇到的问题Could NOT find PythonNo CMAKE_CUDA_COMPILER could be found.准备工作 jetpackcudaopencv下载飞桨推理库 根据jetpack的版本选择对应的推理库版本 https://www.paddlepaddle.org.cn/inference/v2.6/guides/install/do…

开源的测试平台快2千星了,能带来多少收益呢

最近看了下自己去年初开源的测试平台&#xff0c;star一起算的话也到1.7k了&#xff1a; 做开源的初心一方面是想把自己的理解和思想展示出来&#xff0c;另一方面是想进一步打造个人IP&#xff0c;提升影响力&#xff08;其实这个想法很早之前就有了&#xff0c;计划过无数次但…

Day 28 | 回溯 93.复原IP地址 、78.子集 、 90.子集II

93.复原IP地址 题目 文章讲解 视频讲解 思路&#xff1a;每轮开始的位置需要变化就需要设置start class Solution {List<String> result new ArrayList<>();public List<String> restoreIpAddresses(String s) {if (s.length() < 4 ||s.length() >…

2765. 最长交替子数组 ( leetcode 01 - 23 每日 )

链接 : 最长交替子数组 思路 : 对于每个起点&#xff0c;都是x,x1,x,x1....这样的循环&#xff0c;那么枚举每个起点模拟即可 &#xff1b; 代码 : class Solution {public int alternatingSubarray(int[] nums) {int ans 0-1 ;int n nums.length , i 0 ; while(i &…

高精度运算合集,加减乘除,快速幂,详细代码,OJ链接

文章目录 零、前言一、加法高精度加法步骤P1601 AB 二、减法高精度减法步骤P2142 高精度减法 三、乘法高精度乘法步骤P1303 A*B 四、除法高精度除法步骤P1480 A/B 五、高精度快速幂麦森数 零、前言 高精度运算是某些题目涉及大数值运算且范围超出语言内置类型允许范围时采取的处…

服务器数据恢复—服务器进水导致阵列中磁盘同时掉线的数据恢复案例

服务器数据恢复环境&#xff1a; 数台服务器数台存储阵列柜&#xff0c;共上百块硬盘&#xff0c;划分了数十组lun。 服务器故障&检测&#xff1a; 外部因素导致服务器进水&#xff0c;进水服务器中一组阵列内的所有硬盘同时掉线。 北亚数据恢复工程师到达现场后发现机房内…

从0开始学习C++ 第十三课:结构体和联合体

第十三课&#xff1a;结构体和联合体 学习目标&#xff1a; 理解结构体的基本概念和如何定义结构体。学习如何使用结构体来组织相关数据。了解联合体的概念及其与结构体的不同点。 学习内容&#xff1a; 结构体 概念&#xff1a; 结构体是C中用于表示一组相关数据的复合数据…

Shopee夏季选品策略:吸引消费者,提高销售的10个有效方法

在Shopee平台上进行夏季选品时&#xff0c;卖家需要采取一些策略来吸引消费者并提高销售。本文将介绍十个有效的方法&#xff0c;帮助卖家在夏季市场做好准备&#xff0c;提供符合季节需求的产品&#xff0c;从而提高销售业绩。 先给大家推荐一款shopee知虾数据运营工具知虾免…

Vue-32、Vue单文件组件

1、School.vue <template><h1>{{schoolName}}</h1><h2>{{address}}</h2><button click"showname">点我提示学校名</button> </template> <!----> <script>export default {name: "School",d…

System.Data.SqlClient.SqlException:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误

目录 背景: 过程: SQL Express的认识: 背景: 正在运行程序的时候&#xff0c;我遇到一个错误提示&#xff0c;错误信息如下&#xff0c;当我将错误信息仔细阅读了一番&#xff0c;信息提示的很明显&#xff0c;错误出现的来源就是连接数据库代码这块string connStr "s…

C# 实现 希尔密码

希尔密码&#xff08;也称为Hill Cipher&#xff09;是一种经典的对称密码算法&#xff0c;用于加密和解密文本。它由美国数学家莱斯利麦保尔希尔&#xff08;Leslie McBride Hill&#xff09;于1929年提出。 希尔密码基于线性代数和矩阵运算的原理。它将明文划分为若干个长度为…

【Linux工具篇】编辑器vim

目录 vim的基本操作 进入vim(正常模式&#xff09; 正常模式->插入模式 插入模式->正常模式 正常模式->底行模式 底行模式->正常模式 底行模式->退出vim vim正常模式命令集 vim插入模式命令集 vim末行模式命令集 vim操作总结 vim配置 Linux编译器…

如何从软硬件层面优化MySQL?

如何从软硬件层面优化MySQL? 在软件方面&#xff0c;数据库性能取决于很多因素&#xff0c;比如表设计&#xff0c;查询语句以及数据库配置等。在硬件方面&#xff0c;则主要取决于CPU和IO操作。作为一名软件开发者&#xff0c;需要我们从现有的软硬件配置中获得最佳的数据库…

服务器的异步通信——RabbitMQ

目录 一、同步通信 VS 异步通信 二、MQ——消息队列 RabbitMQ RabbitMQ安装 RabbitMQ的整体架构 常见消息模型 基本消息队列&#xff08;BasicQueue&#xff09; 工作消息队列&#xff08;WorkQueue&#xff09; 发布、订阅&#xff08;Publish、Subscribe&#xff0…