FPGA第三方验证_第1页
FPGA第三方验证_第2页
FPGA第三方验证_第3页
FPGA第三方验证_第4页
FPGA第三方验证_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、L/O/G/OFPGAFPGA第三方验证第三方验证内容内容常见问题和常见问题和故障案例故障案例解析解析FPGA验证验证流程流程第三方验证第三方验证成效成效解决亚稳态解决亚稳态的方法的方法FPGA第三方验证流程第三方验证流程1 任务书任务书需求规格说明需求规格说明概要设计概要设计详细设计报告详细设计报告 代码编写风格代码编写风格可综合性规则可综合性规则时钟与复位规则时钟与复位规则异步时钟域规则异步时钟域规则 代码规范检测代码规范检测代码与文档一致性代码与文档一致性检查检查可靠性设计,包括可靠性设计,包括三模冗余设计有效三模冗余设计有效性检查、电路设计性检查、电路设计合理性检查、上电合理性检查、上

2、电配置时间计算等配置时间计算等资源使用情况分析资源使用情况分析 最大工况最大工况 典型工况典型工况 最小工况最小工况 时钟频率降额时钟频率降额80%Image Info www.wizdata,co,kr Note to customers : This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use. FPGA第三方验证流程第三方验证流程2 综合后网表与综合后网表与RTL代码一致性检查代码一致性检查布

3、线后二进制流文布线后二进制流文件件最终下载文件最终下载文件 功能测试功能测试 性能测试性能测试 接口测试接口测试边界值测试边界值测试强度测试强度测试安全性测试安全性测试覆盖率测试,语句覆盖率测试,语句覆盖率、分支覆盖覆盖率、分支覆盖率、状态机覆盖率率、状态机覆盖率尽可能达到尽可能达到100%静态:静态:运用运用Mentor公司的公司的CDC工具进工具进行跨时钟域行跨时钟域静态静态检检测测动态:动态:通过通过设置设置亚亚稳态稳态监视器监视器,进行,进行跨时钟域仿真跨时钟域仿真最大、典型、最小最大、典型、最小三种工况下进行时三种工况下进行时序仿真序仿真三模冗余仿真验证三模冗余仿真验证Image I

4、nfo www.wizdata,co,kr Note to customers : This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use. 第三方验证成效第三方验证成效型号型号问题总数问题总数文档问题文档问题程序问题程序问题设计问题设计问题其他问题其他问题YH-1156630TG-1 1154253147SZ-8 116 4548139CZ-2F58220360JB-9812544111问题分配问题

5、分配状态机要采用状态机要采用safe模式综合优化模式综合优化 某个型号某个型号FPGA设计状态机定义如下:设计状态机定义如下:type state_type is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9); synplify 状态机默认编码策略状态机默认编码策略 若将若将one-hot的编码变成的编码变成safe one-hot,则多出了则多出了210-10个非法状态个非法状态 10210若将若将gray的编码变成的编码变成safe gray,则多出了则多出了24-10=6个非法状态个非法状态 尽可能避免使用尽可能避免使用FF产生时钟产生时钟 时钟偏移(时钟到达时钟偏移(

6、时钟到达FPGAFPGA内部两个相邻的寄存器时间差)较大而数据路内部两个相邻的寄存器时间差)较大而数据路径较短时,保持时间不足,有可能带来功能失效,这种问题一般发生在最好径较短时,保持时间不足,有可能带来功能失效,这种问题一般发生在最好情况下情况下( (低环境温度、高输入电压低环境温度、高输入电压) )。 故障案例故障案例1: 在最小工况的后仿真中发现输出到空空接口的时钟有毛刺,从而导致对方的在最小工况的后仿真中发现输出到空空接口的时钟有毛刺,从而导致对方的数据接收错误。该问题在功能仿真、最大工况和典型工况的仿真验证中均没有数据接收错误。该问题在功能仿真、最大工况和典型工况的仿真验证中均没有发

7、生,设计师在常温下实际的硬件电路测试中也没有发生过该问题。发生,设计师在常温下实际的硬件电路测试中也没有发生过该问题。 VCS仿真器重仿真器重clkout和和clkout的时钟周期检测的时钟周期检测 Modelsim工具下工具下clkout和和clkout的时钟周期检测的时钟周期检测 故障案例故障案例1: 静态时序分析报告中的静态时序分析报告中的skew 纠正措施:纠正措施:设计师去除四分频时钟设计师去除四分频时钟clk_decoder,采用全局时钟,采用全局时钟dsp_clk去去对对sym_q进行计数,在对进行计数,在对sym_q计数前先判断计数前先判断4分频计数器分频计数器q的值的值 。时

8、钟网络时钟网络 占用资源占用资源 扇出数扇出数 时钟偏移时钟偏移ns 最大延时最大延时ns U2/U4/q1(4分频) local 16 1.729 5.509 U2/U4/temp_clkout local 8 0.680 4.290故障案例故障案例2: 故障现象:故障现象:某型号单机在三防前进行高低温摸底。低温阶段,发现优选功能异常:某型号单机在三防前进行高低温摸底。低温阶段,发现优选功能异常:地面设备将上行伴音信道的时钟关闭后,产品仍判断伴音信道为同步状态,优选地面设备将上行伴音信道的时钟关闭后,产品仍判断伴音信道为同步状态,优选功能维持选择伴音信道,无法选择到功能维持选择伴音信道,无法

9、选择到Ka信道或信道或USB信道。故障现象发生后,先后信道。故障现象发生后,先后对产品和测试台进行了多次开关机和复位操作,故障始终存在。常温下该故障出现对产品和测试台进行了多次开关机和复位操作,故障始终存在。常温下该故障出现概率低,高温下产品工作正常。概率低,高温下产品工作正常。 时钟同步判别逻辑如图时钟同步判别逻辑如图4所示,该所示,该FPGA设计采用了由全局时钟设计采用了由全局时钟24.576M分频分频产生的产生的1.536M时钟对输入时钟频率时钟对输入时钟频率192K时钟进行同步判别,先是对时钟进行同步判别,先是对192k时钟进时钟进行沿口判断,然后进行计数,当计数器计到行沿口判断,然后

10、进行计数,当计数器计到16时,则判定为失步。时,则判定为失步。 故障案例故障案例2: 时钟网络时钟网络 占用占用资源资源 扇出扇出数数 时钟偏移时钟偏移ns 最大延时最大延时ns 最小工况下最小工况下hold slack(ns) model2/testclk2/clk_O local 47 2.724 6.157 1.519ns Intmuxaudio_clkA_OBUF local 17 1.533 4.786 2.025ns model2/counter local 8 1.938 4.436 0.130ns clk768 local 4 2.332 4.402 2.435ns 通过路径分

11、析,可知计数器通过路径分析,可知计数器adowncount第第1、2位的位的hold slack余量较小,也就余量较小,也就是说,计数器第是说,计数器第1、2位为全位为全1时,计数器有可能无法进位,计数器第时,计数器有可能无法进位,计数器第3位有可能计不上位有可能计不上去。在这种去。在这种hold violation情况下,发生的现象为当计数值为情况下,发生的现象为当计数值为5b00011时,下一个时钟时,下一个时钟计数值为计数值为5h00000。 设计师通过试验,在不改变设计师通过试验,在不改变FPGA内部布线的基础上,将该计数器的内部布线的基础上,将该计数器的5位全部输出位全部输出到端口上

12、,故障发生时,该计数器的第三位始终不能进位到端口上,故障发生时,该计数器的第三位始终不能进位 。较大时钟较大时钟skew偏移及延时信息表偏移及延时信息表 根本原因:由于计数器时钟根本原因:由于计数器时钟skew过大导致过大导致D触发器触发器hold slack时间不能满足要求,使计数出错所致。时间不能满足要求,使计数出错所致。 接口异步信号要进行同步处理接口异步信号要进行同步处理 接口异步信号处理是为了减少亚稳态影响的传播。接口异步信号处理是为了减少亚稳态影响的传播。亚稳态现象亚稳态现象如果如果FPGA中寄存器输入信号不满足建立时间的要求,正常的输出中寄存器输入信号不满足建立时间的要求,正常的

13、输出信号就会在一段不可预知长度的时间内处于一个非信号就会在一段不可预知长度的时间内处于一个非“0”非非“1”的中间状态的中间状态(这段时间称为亚稳态恢复时间这段时间称为亚稳态恢复时间),之后可能稳定在,之后可能稳定在“1”状态,也可能稳定在状态,也可能稳定在“0”状态。状态。 Tw 寄存器输入数据变化可能形成亚稳态现象的时间窗口寄存器输入数据变化可能形成亚稳态现象的时间窗口TSU 输入相对于时钟沿所需的建立时间输入相对于时钟沿所需的建立时间TCO 输出相对于时钟沿之后的延迟时间输出相对于时钟沿之后的延迟时间Tres 亚稳态恢复时间亚稳态恢复时间 故障案例故障案例1: 某某921型号并行相关处理

14、型号并行相关处理FPGA产品的第三方评测,评测人员发现该代码存在跨时产品的第三方评测,评测人员发现该代码存在跨时钟域问题钟域问题 。 故障案例故障案例1: 故障案例故障案例2: 某卫星型号固存单机在整机联试中发现读指令有时不响应,设计师将该单机某卫星型号固存单机在整机联试中发现读指令有时不响应,设计师将该单机拿回来进行故障重现,发现发送拿回来进行故障重现,发现发送200多条指令才会产生一次不响应的情况。设计多条指令才会产生一次不响应的情况。设计师对代码进行了反复检测,利用逻辑分析仪进行抓取,抓住的故障现象,师对代码进行了反复检测,利用逻辑分析仪进行抓取,抓住的故障现象,FPGA2已解析了读指令

15、,给出读状态控制信号,已解析了读指令,给出读状态控制信号,we信号也有,半满信号一直有效,可是信号也有,半满信号一直有效,可是oe信号一直无效,所以无数据输出。因此断定故障现象出在信号一直无效,所以无数据输出。因此断定故障现象出在FPGA1中。中。 正常正常有效且同步有效且同步无输出无输出有效但未同步有效但未同步无输出无输出故障案例故障案例2: FPGA1中设计了一个中设计了一个24位转换为位转换为16位的状态机,位的状态机, 而该而该FPGA设计均未选用设计均未选用safe模式对状态机进行综合优化模式对状态机进行综合优化 。 24位转换位转换为为16位位异步信号,一直稳定异步信号,一直稳定有

16、效有效 ,对该信号进行,对该信号进行网表追踪网表追踪 FSM状态机图状态机图 故障案例故障案例2: FIFO半满信号信号对半满信号信号对fsm1:0有影响,经过的路径不同,有影响,经过的路径不同,fsm1.d经过两个组经过两个组合逻辑电路,明显比合逻辑电路,明显比fsm0.d的路径延时长的路径延时长 。 Tdelay1Tdelay2Tdelay2 Tdelay1 故障案例故障案例2: 两个触发器的数据有一段时间处于亚稳态,当时钟在这段时间内状态机由次两个触发器的数据有一段时间处于亚稳态,当时钟在这段时间内状态机由次态变为现态,就会采到态变为现态,就会采到00,该状态为非法状态,状态机进入死锁,

17、无法恢复正常,该状态为非法状态,状态机进入死锁,无法恢复正常状态状态 。 时钟若在此时钟若在此有上升沿有上升沿纠正措施:纠正措施:对对FIFO半满信号进行两个触发器同步,并对半满信号进行两个触发器同步,并对FPGA设计中设计中所有状态机采用所有状态机采用safe+gray码综合优化码综合优化 故障案例故障案例3 : XX-2数传终端机延时停状态切换时存储器写指针异常回零质量问题:整星热数传终端机延时停状态切换时存储器写指针异常回零质量问题:整星热真空试验,工况真空试验,工况(A机工作)的高温保持阶段前面工作正常,在第机工作)的高温保持阶段前面工作正常,在第10轨时,数轨时,数传终端通过程控指令

18、进行工作状态切换,从实时写切换至实时停、延时停、延时传终端通过程控指令进行工作状态切换,从实时写切换至实时停、延时停、延时写过程中,导致数据从头开始记录,将原先记录的数据覆盖写过程中,导致数据从头开始记录,将原先记录的数据覆盖 。故障原因故障原因 问题定位于问题定位于“内部复位指令内部复位指令”能执行是由于写停切换时,处于两个时钟域同能执行是由于写停切换时,处于两个时钟域同时变化时刻,产生时序竞争冲突,从而置位错误的状态,使锁存状态值变化,导时变化时刻,产生时序竞争冲突,从而置位错误的状态,使锁存状态值变化,导致内部复位存储器指令有效,从而使存储器指针复位回零。致内部复位存储器指令有效,从而使

19、存储器指针复位回零。 故障的产生是由于内部复位模块未考虑不同时钟域信号的同步处理,在两个时故障的产生是由于内部复位模块未考虑不同时钟域信号的同步处理,在两个时钟域沿重合时,存在时序竞争,使写停状态切换时,置了异常状态,导致再发写钟域沿重合时,存在时序竞争,使写停状态切换时,置了异常状态,导致再发写指令时存储器写指针异常回零。指令时存储器写指针异常回零。措施及验证措施及验证 更改更改FPGA设计中的内部复位模块设计,将指令信号同步至设计中的内部复位模块设计,将指令信号同步至11.25MHz,使时,使时钟沿不会处理不定态。钟沿不会处理不定态。三模冗余设计的综合选项三模冗余设计的综合选项 在星上在星

20、上FPGA设计中,设计师往往采用三模冗余的方法来解决单粒子翻转问题,设计中,设计师往往采用三模冗余的方法来解决单粒子翻转问题,但是如果综合选项设置不合适,可能会带来三模冗余被优化掉的问题。但是如果综合选项设置不合适,可能会带来三模冗余被优化掉的问题。 某型号某型号FPGA产品的产品的地址译码功能和地址译码功能和OC指令数据比对功能指令数据比对功能作了作了三模冗余三模冗余设计,设计,方式是通过设计三个相同的模块,然后通过方式是通过设计三个相同的模块,然后通过三取二三取二确定输出结果,但是在综合确定输出结果,但是在综合报告中发现了三模冗余设计被综合删除了。报告中发现了三模冗余设计被综合删除了。 三

21、模冗余设计的综合选项三模冗余设计的综合选项纠正措施:纠正措施:在源代码中加入综合约束在源代码中加入综合约束syn_preserve来解决这个问题。来解决这个问题。 syn_preserve:阻止寄存器和模块被综合优化阻止寄存器和模块被综合优化约束约束寄存器、模块寄存器、模块。 资源共享资源共享输出为输出为0输入固定值输入固定值在被调用模块的例化语句中加入在被调用模块的例化语句中加入“/*synthesis syn_preserve = 1” */若没有约束设置若没有约束设置“/*synthesis syn_preserve = 1” */接口时序不满足要求接口时序不满足要求 一个一个FPGA产

22、品若要正常工作,除了需要考虑内部的时序逻辑正确,还要产品若要正常工作,除了需要考虑内部的时序逻辑正确,还要考虑与之接口的器件的时序特性,考虑与之接口的器件的时序特性, 如如SRAM、ROM、FLASH、AD、DO254芯片等,这些器件的输出延时和硬件链路导致的延时会导致芯片等,这些器件的输出延时和硬件链路导致的延时会导致 实际上数据输出实际上数据输出的时序关系与预想的不一致,若不进行仔细设计,就有可能导致错误的发生的时序关系与预想的不一致,若不进行仔细设计,就有可能导致错误的发生 。故障案例故障案例1 在某型号在某型号FPGA产品的评测过程中,评测人员在进行最小工况后仿真时,发现产品的评测过程

23、中,评测人员在进行最小工况后仿真时,发现SRAM的地址保持时间不满足时序要求的地址保持时间不满足时序要求 。控制信号。控制信号ce(SRAM片选信号)是一直片选信号)是一直有效的有效的 ,we信号通过状态机组合逻辑输出。信号通过状态机组合逻辑输出。地址变化和地址变化和we抬高为同一时抬高为同一时刻,布线延时后可能导致写刻,布线延时后可能导致写地址的保持时间不足地址的保持时间不足故障案例故障案例2 在某型号在某型号FPGA产品的评测过程中,评测人员在进行最大工况后仿真时,发现产品的评测过程中,评测人员在进行最大工况后仿真时,发现FPGA从从FLASH中读数据时,采到的数据为中读数据时,采到的数据

24、为X 。最大值最大值为为35ns驱动驱动245芯片的最芯片的最大延时为大延时为10ns 故障案例故障案例2 修改前功能仿真波形修改前功能仿真波形数据建立时间数据建立时间余量为余量为5ns ld_da高电高电平数据有效平数据有效输入数据输入数据要用要用数据数据故障案例故障案例2 修改前最大工况仿真波形修改前最大工况仿真波形数据建立时间数据建立时间余量为余量为-7.6ns ld_da的反向低电的反向低电平采样数据平采样数据输入输入数据数据要用数据的第要用数据的第12位位原因:原因:该该FPGA设计中设计师未考虑到驱动设计中设计师未考虑到驱动245的延时,因此导致了时序过于紧张。的延时,因此导致了时

25、序过于紧张。 故障案例故障案例2 修改后功能仿真波形修改后功能仿真波形数据建立时间数据建立时间余量为余量为25ns ld_da高低电平采样高低电平采样数据数据输入数输入数据据要用要用数据数据纠正措施:纠正措施:设计师改用设计师改用clk的上升沿产生的上升沿产生FLASH的读信号,相当于将读使能信号的读信号,相当于将读使能信号fl_re_n往前移动了半个时钟周期往前移动了半个时钟周期 IP核使用不当引发的问题核使用不当引发的问题 FPGA IP(International Property)内核。内核。使用使用IP核能保证系统级芯片的开发效率、质量,并能大大缩短产品开核能保证系统级芯片的开发效率

26、、质量,并能大大缩短产品开发时间发时间 。但使用时,要注意。但使用时,要注意IP核的使用是否正确。核的使用是否正确。故障现象:故障现象:某型号上的星敏感器某型号上的星敏感器FPGA在验证质心计算功能的过程中,在验证质心计算功能的过程中,阙值阙值(Threshold)应该是实时更新的,每次当前帧图像的质心计算过程中,应该是实时更新的,每次当前帧图像的质心计算过程中,应使用上一帧图像计算出的阙值。而在行为仿真中发现阙值一直没有进行应使用上一帧图像计算出的阙值。而在行为仿真中发现阙值一直没有进行更新,从而导致姿轨控计算机计算错误。更新,从而导致姿轨控计算机计算错误。 故障案例故障案例1: 方差方差I

27、P核计核计算出的值算出的值实际使用实际使用的值的值阈值阈值平均值平均值方差值方差值偏移量偏移量增加计数器判定增加计数器判定异步复位的问题异步复位的问题 许多设计者使用异步复位是因为喜欢这样的想法许多设计者使用异步复位是因为喜欢这样的想法, , 通过复位将他们的电路完全通过复位将他们的电路完全置于一种可控的状态。然而很多设计者仅仅只是使用异步复位置于一种可控的状态。然而很多设计者仅仅只是使用异步复位, , 忽略了可能产生的忽略了可能产生的问题。他们在可控的环境下进行复位测试问题。他们在可控的环境下进行复位测试, , 一切工作正常一切工作正常, , 然而级联的系统却会间歇然而级联的系统却会间歇性的

28、出错。设计者常常低估了真实系统中性的出错。设计者常常低估了真实系统中( (不可控环境不可控环境) ) 的复位信号的复位信号“释放释放”问题。而问题。而这个问题可能导致芯片进入未知的亚稳态这个问题可能导致芯片进入未知的亚稳态, , 从而让所有的复位都失效。从而让所有的复位都失效。 tremovaltrecoverytclk-qtMETtrecovery ( recovery t ime) 指的是原本有效的异步复位信号释放(对低电平有效的复位来说就是上跳沿) 与紧跟其后的第一个时钟有效沿之间所必须的最小时间。tremoval ( removal t ime) 指的是时钟有效沿与紧跟其后的原本有效的

29、异步复位信号变得无效之间所必须的最小时间。tclk- q是触发器时钟端到Q 端的延时, tM ET 是保证亚稳态不传播到下一级所允许的亚稳态持续的最大时间亚稳态的评估亚稳态的评估 出现亚稳态的平均时间常用平均无故障时间MTBF (Mean Time Between Failures) 来表示tM ET是保证亚稳态不传播到下一级所允许的亚稳态持续的最大时间; C1 和C2 是与触发器性质有关的常数; f CLOCK是时钟频率; f RESET是异步复位信号的变换频率; 假设整个FPGA 中有N 个异步复位的触发器,每个触发器的复位信号都是与时钟信号异步, 若每个触发器的M TBF 都由上述公式得

30、出, 则整个芯片的平均无故障时间MTBFC 将是:N 106,MTBFc 将以秒为单位,亚稳态的影响将非常大tM ETMTBF0.05约28分钟0.23 约223分钟0.57 约86小时0.73 约87天随着两级触发器间tMET时间的增大,MTBF呈指数增大。假设时钟频率fclock为310MHz,freset为1Hz,当tMET达到2.2ns时,大约10year发生1次错误问题的解决问题的解决复位同步器的使用将异步复位信号变成与时钟同步的复位信号复位同步器的使用将异步复位信号变成与时钟同步的复位信号, 同时同时使用两级触发器组成复位同步器又使得同步器本身发生亚稳态的可能大大减少使用两级触发器

31、组成复位同步器又使得同步器本身发生亚稳态的可能大大减少; 复位约束在全局时钟上纠正了主复位信号传播到各目的触发器的传播复位约束在全局时钟上纠正了主复位信号传播到各目的触发器的传播延时差异延时差异, 保证复位信号传播的一致。保证复位信号传播的一致。约束在全局约束在全局时钟上时钟上若单个触发器MTBF是10年,两个触发器则为1000年为什么要用两级触发器作同步器?为什么要用两级触发器作同步器?对于两级触发器的同步器的平均无故障时间MTBF计算如下:很少变化很少变化M TBF (1) 以年为单位, 若M TBF (1) 为100年, 则M TBF (2) 大约为10000 年。MTBF足够大,因此采

32、用两级触发器组成的复位同步器基本上将亚稳态问题降到了可以容忍的地步。克服亚稳态的方法两级触发器级联同步过程两级触发器级联同步过程电平信号的同步电平信号的同步克服亚稳态的方法两级触发器级联同步过程两级触发器级联同步过程跳变沿的同步跳变沿的同步克服亚稳态的方法两级触发器级联同步过程两级触发器级联同步过程脉冲信号的同步脉冲信号的同步异步信号脉冲的长度超过两个时钟周期,在最终的输出端仍然只是出现一个时钟周期宽的脉冲;异步信号脉冲的长度超过两个时钟周期,在最终的输出端仍然只是出现一个时钟周期宽的脉冲;如果输入两次的异步信号脉冲间隔小于两个时钟周期,最终输出同步信号脉宽超过一个时钟周期如果输入两次的异步信号脉冲间隔小于两个时钟周期,最终输出同步信号脉宽超过一个时钟周期克服亚稳态的方法两级触发器级联同步过程两级触发器级联同步过程电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论