自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 收藏
  • 关注

原创 FPGA设计杂谈之一:时序违例的影响

​ ​在FPGA设计中,最常提到的一个词就是时序,而与之相关最不想看到的就是时序违例。​ ​那什么是时序违例?在工程设计中的单元可分为组合逻辑单元和时序逻辑单元,两者的区别是看是否需要时钟信号,如LUT的输入全为数据信号,不需要时钟,就是组合逻辑单元,像FF,ROM等需要有时钟信号输入的就是时序逻辑单元。

2024-07-21 11:22:40 156

原创 时序约束进阶一:Set_multicycle_path详解

1、multicycle的multiplier值在setup中默认为1,在hold中默认为0(理论分析上,实际不可设置)2、multicycle约束是在默认的边沿分析对基础上根据约束对发起时钟或捕获时钟边沿进行修改针对三种典型场景的多周期约束如下。

2024-07-14 18:45:52 811

原创 Report Design Analysis报告之logic level详解

​在工程设计中,如果需要了解路径的逻辑级数,可以在report timing summary中找到对应的时序路径,查看时序路径的详情报告中有逻辑级数的信息,如下图​这种方法查看有一个缺点,就是无法知道工程设计中逻辑级数的总体情况,这个时候就可以使用Report design analysis中的Include logic level distribution来查看。

2024-07-07 13:29:31 653

原创 时序分析之Clock rise/fall edge边沿对选取解析

在对时序报告进行详细查看时,将看到source clock path或destination clock path的第一段延时都是时钟的edge,并且同一段路径的setup和hold也是不一样的,如下图的红色框内容为setup的示例,关于它的值在时序分析中是如何确定的呢?下面将对此进行详细的解答。

2024-06-30 16:22:11 1016

原创 FPGA结构相关简介

​FPGA属于数字芯片的一种,下面是根据世界半导体贸易统计协会WSTS的一个半导体分类,可以看到FPGA所属的类别。

2024-06-23 13:11:12 149

原创 Python一文轻松搞定正则匹配

日常工作中,不可避免需要进行文件及内容的查找,替换操作,python的正则匹配无疑是专门针对改场景而出现的,灵活地运用可以极大地提高效率,下图是本文内容概览。​。

2024-06-22 09:36:52 1179

原创 Vivado时序报告之Datasheet详解

时序报告中不仅包含对时序路径的详细信息,还有一类专门针对IO端口的时序报告分析,即“Report->Timing->”里面的Report Datasheet功能,下面将针对Datasheet的内容进行详解,注:本文示例的vivado版本为vivado2022.1,器件为xc7k480tffv1156-2L。

2024-06-09 10:16:06 950 1

原创 Python轻松玩转excel操作指导

内容的对齐方式可选值有horizontal(水平对齐方式,包括 "general", "left", "center", "right", "fill", "justify", "centerContinuous","distributed")vertical(垂直对齐方式,包括"top", "center", "bottom", "justify", "distributed")#示例2 在指定子表的指定范围内进行指定内容的查找,范围可指定行范围,列范围或区域范围。

2024-05-26 21:56:46 435

原创 Vivado功耗之散热模型详解

​在功耗评估中,Vivado中report power流程以及XPE中都有关于environment的配置,该界面配置涉及到多个晦涩的概念,之前的文章中也对相关概念进行过翻译,但其中的关系未进行说明,本文主要是对其中的关系进行梳理,从实际应用的角度来理解这些名称。

2024-05-12 12:06:59 851

原创 时序分析之setup/hold时钟path requirement解疑

在时序报告中,任选一条时序分析结果查看路径详细延时,会看到在source path delay和destination path delay中,最前面的一段延时都是时钟边沿的延时,有时该值和时钟周期相同,有时不一样,该值是如何选取的呢?同时,在summary中也可以看到Requirement,改值有时如何计算的呢,下面将针对这些就行解释。

2024-05-01 13:14:15 1170

原创 时序路径报告理解之小白入门详解

如果要看时序路径分析中最详细的信息,那无疑是查看具体路径上的详细延时信息,也即在report timing summary中选中需要查看路径,双击或右键点击“View path report”,该界面主要由4部分组成,包括Summary,Source clock path,Data Path,Destination Clock Path,下面将对4部分内容进行全面的解释。

2024-04-21 09:51:50 717

原创 时序深入之CPR(Clock Pessimism Removal)详解

​在很多设计中,CPR的精度在布线前后是不一样的。回到下图中,时钟路径中,最前面一段加粗的是源时钟路径与目的时钟路径共同的部分,根据上面的第3条,上面的路径(红色)采用最大时延即Max Delay,时钟路径用最小时延(淡蓝色)Min Delay,这时计算REGB上的setup分析时,1)静态时序分析中,通常主要进行setup分析和hold分析,两种分析本质是比较时钟路径和数据路径的时延,但时钟路径和数据路径在FPGA的时延是一个和工艺,电压,温度有关的概率时延,即同一段路径的时延值不是完全的固定值。

2024-04-13 10:06:58 961

原创 Vivado功耗基础之功耗评估器XPE使用详述

XPE(Xilinx Power Estimator)是一个在工程的预设计阶段或预实现阶段的功耗评估工具,通过提供设计的资源使用,信号翻转率,I/O数量,和其他的信息,然后评估出功耗的分布。XPE工具评估的模型数据来自实测,仿真以及相关推导,评估值的精确度由2个方面决定1)器件类型,组件配置,时钟,使能信号,翻转率和其他输入到工具的信息2)集成到XPE的器件数据模型。

2024-04-06 18:36:25 1847

原创 Vivado工程收敛之报告分析大全

在大型工程设计中,为了设计时序收敛,往往需要对初步运行的结果进行调试,调试的很重要的依据就是各种报告的分析,下面将介绍一些常用的分析报告,演示的器件为xcku3p-ffvb676-2-i。

2024-03-27 21:50:12 938

原创 质量报告Report_qor_assessment使用详解

Vivado对于工程设计在综合阶段或布线后的质量提供了一个分析命令report_qor_assessment,执行命令后可以得到当前设计的一个评分值,用于评估后续的时序收敛难度大小,该值范围为1-5,值越大说明质量越高,越容易收敛,通常低于3是较差。特别是在综合阶段执行该命令提前预知结果的好差,如综合阶段如果评分值小于3,则无需执行实现阶段的流程了。

2024-03-24 12:49:29 895

原创 FPGA设计之功耗专业术语解析

•: 器件静态功耗是指晶体管连接所有电压轨道的漏电流以及电路正常工作,后期配置的功耗。通常是通过一个白片位流下载进器件中来测量静态功耗。静态功耗是一个和工艺,电压,温度相关的函数,代表了器件的稳定状态,固有的泄露。•: 设计功耗由输入数据模式以及设计内部的翻转产生,是一种动态功耗,功耗是瞬时的并且在每一个时钟周期中都会变化,功耗值取决于电压大小,使用的逻辑资源和布线资源,也包括了I/O端口,时钟管理器以及其他需要功耗电路的静态电流,但不包括芯片外的器件功耗。•。

2024-03-14 22:33:12 1027

原创 时序报告Report_timing_summary之一步精通配置选项使用

在Vivado初步跑通综合与实现流程后,就需要时序报告关注时序效果,时序报告的生成需要单独执行流程Report_timing_summary。在运行report timing summary时,可以进行相关的配置选项设置,使得筛选出自己需要的报告,有时配置不恰当,会导致无法查看到需要的路径,本文结合实际的工程例子进行详细的说明配置选项相关功能。

2024-03-09 11:53:16 1302

原创 图解Vivado工程的目录结构

​在使用Vivado进行工程设计时,创建工程以及运行工程的过程中都会生成大量的目录和文件,下面图将对目录和文件结构及功能进行一个简单说明。工程示例图添加图片注释,不超过 140 字(可选)

2024-03-03 09:39:39 502

原创 Vivado时序报告之Check_timing详解

​Vivado使用中会涉及到各种报告,内容也较多,很多初学者可能对其中一些内容感到困惑,下面将结合实际工程示例对report_timing_summary中的Check_timing部分进行说明,帮助大家理解报告。

2024-02-29 21:53:46 1817

原创 FPGA设计时序约束用法详细说明大全终章

如果约束S为0,不存在clkin2驱动的ff_case到o_case的路径;该操作是可以的,也存在相关场景,但是会存在一些缺点,通过使用create_clock创建主时钟代替create_generated_clock创建的生成时钟将会产生一个新的时钟域,会引入一些跨时钟域问题,而使用生成时钟不会产生新的时钟域。set_false_path是不对路径进行时序处理,时序弧仍有效,如果该时序弧相关的时序路径有多条,伪路径只作用于部分路径,时序工具会计算所有时序路径,但只对存在时序约束的时序路径进行分析。

2024-02-24 13:45:00 1726

原创 时序分析深入必学的时序模型详细讲解

时序分析工具能够进行时序分析主要是依据时序模型,时序模型主要是通过单元库描述文件中的时序信息来实现,而时序信息是来自详细的实际电路仿真获取。单元库中的单元可以是独立的单元,IO缓冲器或者是复杂的IP核。

2024-02-21 22:03:43 1349

原创 FPGA设计时序约束十六、虚拟时钟Virtual Clock

这是因为实际的时钟clk是没有到外部单元时钟引脚的路径,时序工具无法计算时钟的时延,对于输出时延,由于捕获时钟时延根本不存在,分析结果对于setup检查将会是悲观的,对于hold将会是乐观的。输入端设置虚拟时钟virtual_clkin,周期为10ns,高电平在2-8ns内,输出端的虚拟时钟为virtual_clkout,周期为8ns。在时序约束中,存在一个特殊的时序约束,虚拟时钟Virtual Clock约束,根据名称可看出时钟不是实际存在的,主要是在STA分析时序时提供一个参考。

2024-01-13 23:12:05 1848

原创 FPGA设计时序约束十五、Set_Bus_Skew

因此,总线偏斜约束不会被时序例外约束,如set_clock_group,set_false_path,set_max_delay,set_multicycle_path约束影响,仅可能会被route_design优化掉。set_bus_skew的分析报告和普通时序报告结果查看有些不一致。约束文件,源时钟周期为5ns,目的时钟周期为2.5ns,set_bus_skew对两个起点src_data_reg[0]/src_data_reg[1]和两个终点out_reg[0]/out_reg[1]设置总线偏斜约束。

2024-01-04 21:38:53 1404

原创 FPGA设计时序约束十四、Set_External_Delay

在时序约束中对clock的约束还存在一种特殊的延时约束set external delay。set external delay如字面含义,设置外部的时延值,但这个外部时延主要是指反馈时延,即信号从FPGA的output端口输出后经过外部电路回到输入端口的时延值。

2023-12-29 23:13:19 755

原创 FPGA设计时序约束十三、Set_Data_Check

再看对应的hold检查,hold路径中多了一条ff2_reg/C到out_OBUF_inst_i_1/I1的路径,再看详细的路径时延,在目的时钟到达时延中,有一个LUT标注了hold_data_check,该路径时延值增加了0.2ns,即为约束set_data_check中hold的0.2ns,表示信号到达后时延值需再维持0.2ns。1、以对从引脚A_IN到引脚C_IN进行一个setup的检查,A_IN是相关联的引脚,C_IN是被约束的引脚,即C_IN上的信号需早于A_IN上的信号2ns到达。

2023-12-23 22:36:12 1269

原创 FPGA设计时序约束十二、Set_Clock_Sense

本章将介绍Set_Clock_Sense约束,在介绍约束之前,大家需对时序弧以及timing sense有一定的基础了解,具体可参考另一篇文章《FPGA设计时序分析概念之Timing Arc》约束文件中对clk1不设set_clock_sense约束,clk2,clk3,clk4分别设置参数positive,negative,stop_propagation,,该引脚上的时钟信号是无法确定的,在设置约束后,约束的时钟单边性状态将从约束的引脚向前传输。Clock中选定设置clock sense的时钟。

2023-12-16 10:06:10 1682

原创 FPGA设计时序约束十一、others类约束之Set_Maximum_Time_Borrow

如果数据从FF1出发到达Latch的输入端口D大于10ns,如12ns时到达,如果Latch为FF2时数据将无法被捕获,此时为锁存器,只有数据在10ns-15ns时到达,数据依旧传输到了FF3,这时通过借用下一个周期的时间,12ns到达时相比使用寄存器FF2,锁存器提供了2ns的优势。数据从时钟的上升沿启动,必须在下一个时钟上升沿到达前的set up时间内到达目的触发器,如果两个触发器的组合逻辑时延太大,那么数据将没法被捕获触发器所捕获,捕获的数据将不稳定,如果数据到达的时间太早,造成时间资源浪费。

2023-12-10 21:28:29 1017

原创 FPGA设计时序分析概念之Timing Arc

信号从时序逻辑单元(如触发器FF和锁存器Latch)的时钟输入引脚Clock Pin到输出引脚,或者是时钟输入引脚到时序单元的其他输入引脚,下图中ck到D之间的时序弧即是用于setup、hold分析,CK到Q的路径为时序单元内部的传输时延。同样地,NOR存在4个时序弧:上升沿时,输入引脚A,引脚B到输出Y,下降沿时输入引脚A,引脚B到输出Y,和Positive unate arc不同的是输出边沿切换与输入相反。对于B上升沿的切换,输出Y还和输入A有关,A的值会影响输出Y是同边沿还是反边沿切换。

2023-12-09 09:20:09 1603

原创 FPGA设计时序约束十、others类约束之Set_Disable_Timing

在Vivado的时序约束窗口中,存在一类特殊的约束,划分在others目录下,可用于设置忽略或修改默认的时序路径分析,以Vivado2022.1版本为例,主要包括以下4类,本文将介绍其中的Set_Disable_Timing,示例的为Vivado2022.1。时序弧:时序弧是时序路径的一部分,可以是两个引脚之间的连线,可以是输入端口和输出端口之间的逻辑单元的内部路径,或者时钟输入端口和数据输出端口间的路径。约束内容如下,对经过clk4端口的时序弧和经过触发器引脚ff2_reg/Q的时序弧设置无效约束。

2023-11-29 21:43:00 1115

原创 FPGA设计时序约束九、others类约束之Group Path

在Vivado的时序约束窗口中,存在一类特殊的约束,划分在others目录下,可用于设置忽略或修改默认的时序路径分析,以Vivado2022.1版本为例,主要包括以下4类,本文将介绍其中的Group Path,示例的为Vivado2022.1。

2023-11-22 20:00:14 518

原创 FPGA设计时序约束八、others类约束之Set_Case_Analysis

Set case analysis(设置案例分析)命令通常通过对逻辑如配置寄存器设置常数值来描述功能模块,设置对象可为端口,线net,层级引脚或子模块输入引脚,常数值通过约束的逻辑单元传输,从而关闭该单元的任何时序分析,功能和设置set false path类似。约束两个主时钟到CLKBUFGMUX的两个输入引脚上,将set_case_analysis约束选择引脚clock_sel/S的值为1,此时将只有clk_B会传输到输出端口,clk_A被阻断了,效果和将对应的pin连接到VDD或VSS相同。

2023-11-19 23:10:45 1505

原创 Python文件、文件夹操作汇总

​在工作中经常会遇到对文件,文件夹操作,在文件使用多时,使用python脚本是一种很便捷的方法,也可以实现一些工具如everything,notepad++无法实现的功能,更加灵活。下面将一些在文件,文件夹操作中经常需要用到的函数进行介绍,部分在前面的例子中已经涉及。指定目录下查询所有的txt文件,返回查找到的文件路径,以列表形式保存。文件级操作主要包括文件的创建,删除,重命名,复制,移动。文件夹常见操作包括创建,删除,查找,重命名,复制,移动。文件内容的常用操作包括读取,查找,增加,删除,修改。

2023-11-12 12:08:01 801

原创 批量修改文件名方法合集

使用正则表达式筛选再进行替换,如将名称带有数字的替换为number,原始文件名表达式中输入正则表达式,\d+表示一个或多个数字,新文件名表达式输入替换的名称number,新文件名框中会自动显示替换后的名称,点击“首先,ctrl+a选择目录下所有文件,一直按住shift键,再点击鼠标右键,弹出操作框,此时会有一个“复制为路径”的选项,点击该选项,原始文件名显示修改前名字,取消勾选“正则”,在新文件名表达式中输入重命名的名称,如“财务自由”,点击“确定”,将路径替换掉只保留文件名,替换为中为空,选择“

2023-10-30 22:12:13 13018 1

原创 FPGA设计时序约束七、设置时钟不确定约束

在之前的时序分析中,通常是假定时钟是稳定理想的,即设置主时钟周期后按照周期精确的进行边沿跳动。在实际中,时钟是非理想存在较多不确定的影响,存在时延和波形的变化,要准确分析时序也需将其考虑进来,下面将对其进行介绍。

2023-10-26 21:39:39 1020

原创 FPGA设计时序约束六、设置最大/最小时延

用户手册:ug903-vivado-using-constraints-en-us-2022.2.pdf链接:https://pan.baidu.com/s/17AK_-J4wRXiFLtLTorlrwg?pwd=mylt提取码:mylt。

2023-10-22 23:05:03 1017 1

原创 FPGA设计时序约束五、设置时钟不分析路径

在进行时序分析时,工具默认对所有的时序路径进行分析,在实际的设计中,存在一些路径不属于逻辑功能的,或者不需要进行时序分析的路径,使用set_false_path对该路径进行约束,时序分析时工具将会直接忽略路径不进行分析。可以设置为false path的路径包括a)跨时钟域中添加的进行两次同步的逻辑单元b) 只在FPGA通电启动时的寄存器c)复位或测试的逻辑模块d)异步的分布式RAM中读时钟和写时钟之间的路径。

2023-10-15 09:30:40 1010

原创 FPGA设计时序约束四、多周期约束

在发起时钟和捕获时钟为同一个时钟,或两个时钟有相同的波形(并且不存在相移)时,时序路径属于单时钟域内的时序路径,在数据传输到目的时钟的寄存器需要多个时钟周期时,就需要设置多周期约束。有时,时钟约束必须定义两个有相同周期的时钟域,但两个时钟存在相移,此时,理解默认的setup和holdup关系是至关重要的,不合适的约束会导致两个时钟间的逻辑过度约束。以慢时钟域到快时钟的多周期约束为例,主时钟create_clk1周期为10ns,生成时钟gen_clk_2,gen_clk_3的周期分别为40ns,2.5ns。

2023-10-09 22:52:20 558 2

原创 FPGA设计时序约束三、设置时钟组set_clock_groups

​下图颜色方块中,横坐标表示目的时钟,纵坐标表示源时钟,黑色No path表示不存在时序路径,蓝色User ignored Paths为用户设置了不分析的约束,红色Timed(Unsafe)表示异步时钟或非扩展的时钟,颜色块下方的列表也显示了时序的详细信息。:当两个是时钟的相位关系不可预知时,则为异步时钟,例如来源两个晶振的时钟,通过不同的输入端口进入到FPGA内部,无法知道两者的相位关系。: 两个时钟的相位关系是可预知的,常见的是两个时钟来源于相同的根时钟或者共同的周期,如生成时钟和主时钟。

2023-10-07 21:58:53 1821 1

原创 FPGA设计时序约束二、输入延时与输出延时

e)输入时延设置到DDR的数据输入引脚DDR_IN ,数据被clk_ddr的上升沿和下降沿触发,到FPGA内部FF的数据输入端口,对上升沿和下降沿都敏感。​set_output_delay约束指定了关联时钟沿的输出端口的输出路径时延,输出时延可理解为在数据从FPGA的输出端口到达其他芯片和关联的参考时钟间的相位差。输入时延约束指定了设计中输入时钟端口的输入时延,以应用板为例,输入时延表示在数据从外部芯片通过应用板到达FPGA的输入引脚和应用板的时钟相位存在差异。

2023-09-27 23:48:36 1838

原创 FPGA设计时序约束一、主时钟与生成时钟

主时钟是来自FPGA芯片外部的时钟,通过时钟输入端口或高速收发器GT的输出引脚进入FPGA内部。对于赛灵思7系列的器件,主时钟必须手动定义到GT的输出,对于Ultrascale和Ultrascale+系列的器件,定时器会自动地接入到GT的输出。

2023-09-20 23:11:55 2417

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除