【关于FPGA内部die到pin的延时数据,即pin delay获取方法】

2023-10-20 21:17

本文主要是介绍【关于FPGA内部die到pin的延时数据,即pin delay获取方法】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先,本文只介绍Xilinx的,Alteral的以后。。

第一,生成平台

Xilinx目前在用的是ISE,和Vivado;二者之间并不是可以互相替代的,或者说这两者不完全是迭代的关系。

第二,先介绍常用的–VIVADO

这里又有几种方法 

①不管是windows平台还是linux平台,首先可以使用非工程模式,即TCL模式;

****** Vivado v2050.1 (256-bit)**** SW Build 2908876 on Wed Nov  6 21:40:23 MST 2050**** IP Build 2900528 on Thu Nov  7 00:09:20 MST 2050** Copyright 1986-2050 Xilinx, Inc. All Rights Reserved.Vivado%

输入

link_design -part xcku15p-ffve1517-2-i

later

Command: link_design -part xcku15p-ffve1517-2-i
Design is defaulting to srcset: sources_1
Design is defaulting to constrset: constrs_1
INFO: [Device 21-403] Loading part xcku15p-ffve1517-2-i
Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1603.305 ; gain = 0.000
INFO: [Project 1-570] Preparing netlist for logic optimization
INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s).
Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1605.258 ; gain = 0.000
INFO: [Project 1-111] Unisim Transformation Summary:
No Unisim elements were transformed.4 Infos, 0 Warnings, 0 Critical Warnings and 0 Errors encountered.
link_design completed successfully
link_design: Time (s): cpu = 00:00:09 ; elapsed = 00:00:10 . Memory (MB): peak = 1605.258 ; gain = 1312.551
design_1
Vivado%

最后一步

Vivado%write_csv xcku15p-ffve1517.csv

最后就可以去找文件

xcku15p-ffve1517.csv
pin delay 也即是Trace Delay
数据有下图在这里插入图片描述

②打开vivado ,使用工程模式,或者说窗口下,依然是TCL命令;

输入的命令同①,不在介绍。
窗口tcl

第三,先介绍不常用的–ISE

ISE14.7的窗口画面并不集成tcl脚本;
所以,windows去程序列表搜索【ISE Design Suite 64 Bit Command Prompt】;Linux 配置环境变量,去到/opt/… 14.7/ISE_DS路径下:

ISE Design Suite 64 Bit Command Prompt
键入命令:

PARTGen -v xc6vcx130tff784

输出结果:

C:\Xilinx\14.7\ISE_DS>PARTGen -v xc6vcx130tff784
Release 14.7 - PartGen P.20131013 (nt64)
Copyright (c) 1995-2013 Xilinx, Inc.  All rights reserved.
Loading device for application Rf_Device from file '6vcx130t.nph' in environment
C:\Xilinx\14.7\ISE_DS\ISE\.

这时候;就完成了,打开当前路径的xc6vcx130tff784.pkg
pin delay 也即是Trace Delay
在这里插入图片描述
以上参考:

① UG628 (v14.7) October 2, 2013 Page33;
② https://support.xilinx.com/s/article/55697?language=en_US

We do not give trace length data, but rather give the delay in time, as it is the most accurate way to estimate true package delay.1) Open any design in Vivado, either RTL, Netlist or Implemented. Then select Export > I/O Ports > CSV.You will see all of the min and max package delays for each pin.The min/max trace delays are also displayed in the Package Pins window for every package pin within two separate columns.Similarly you can select File->Export I/O ports to get a CSV type spreadsheet with the delays included.2) If there is no project you can use the following Tcl commands:link_design -part <part_number>
write_csv <file_name>
For Example:link_design -part xc7k410tffg900-2
write_csv flight_time

③ 22814 - 14.x Timing Analysis - How do I calculate the flight time for my device?
····https://support.xilinx.com/s/article/22814?language=en_US

For 7 series and newer, partgen gives flight time numbers not delay values.For pre 7 series devices, you can calculate the trace lengths by running the partgen command. To run the partgen command:1. Open a DOS command or shell prompt. (note that in 12.x and beyond there is a Xilinx specific command prompt short cut in the accessories folder)
2. Type : partgen -v {part that you need to use} 4vlx25ff668.
3. This creates a dot pkg file with the trace length in microns for each pin in it.To convert the trace length from microns to flight time:1. Open the dot pkg file in a text editor. The column on the far right is the trace length in microns.
2. Convert the micron to a millimeter (trace length / 1000).
3. The delay through this is 6.0 - 7.1 ps/mm.For example:5610 microns = 5.61 millimeters
5.61 millimeters = 33.66 - 39.83 psThis is provided only for the Flip-Chip packages. For more information on other parts, see (Xilinx Answer 18078).Improved precision in flight time through package calculation can be found at (Xilinx Answer 34174).

④ https://support.xilinx.com/s/article/21632?language=en_US

 When using the custom IBIS file (IBISWriter utility):a) A design specific custom IBIS file is generated from IBISWriter (available as part of the ISE design environment), IBISWriter takes in a design implementation (.ncd) file, and IBISWriter outputs a custom/design specific IBIS file ready for simulation.b) Per pin package parasitic data (if available) can be included in the custom IBIS file.i) From the Command line: use the -pin option or manually insert into the custom IBIS file as described in paragraph 1.b.ii above.ii) Within the ISE GUI:In the Processes window:Expand the Implement design tree.
Expand the Place and Route tree.
Right-click Generate IBIS Model and select Properties.
Enable checkbox Generate Detailed Package Parasitics.
Double-click Generate IBIS Model to create to output file.c) To ensure the custom/design specific IBIS file contains the latest I/O model and package parasitic data:i) For Virtex 4 and Virtex 5, run XilinxUpdate prior to the launch of IBISWriter. XilinxUpdate can synchronize the data file under the ISE database with the latest IBIS data available in the Xilinx download center.ii) For other devices, if the IBIS data in the Xilinx download center is updated after an ISE release, then the IBISWriter utility cannot be used and you must configure the I/O model and package model manually with the steps below:Download the latest available IBIS model from the download center.
Manual update of the I/O model:
-- For all models used in your design, look for the [Model] keyword, and copy everything until the next [Model] keyword.
-- Annotate the pin list to link each I/O pin using the new I/O model: Look for the [Pin] keyword. For all I/Os in your design if it is not already listed, then add a reference to it here; if it is already listed, verify that it references the appropriate model.
In this section, there should be one line per package pin. Syntax is: < pin number > < user-supplied pin name > < model name as defined by the [Model] keyword >.
Manual updates of the package model:
-- Process is described in paragraph 1.b above.

这篇关于【关于FPGA内部die到pin的延时数据,即pin delay获取方法】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/249763

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很