【华为】可编程ASIC设计方法简介(三)

您所在的位置:网站首页 华为asic芯片设计是干嘛的 【华为】可编程ASIC设计方法简介(三)

【华为】可编程ASIC设计方法简介(三)

2024-01-31 09:47| 来源: 网络整理| 查看: 265

本次分享华为公司的《大规模逻辑设计指导书》中的“可编程ASIC设计方法简介”的部分内容。

五 芯片可靠性测试

可靠性测试分两方面,一是通过软件进行,也就是写测试代码,如Verilog格式测试代码,二是通过FPGA进行。

1 测试代码

在我们以往的测试代码中,过多地考虑的是基本功能测试,而在系统不稳定因素方面考虑较少。为了使测试代码更加完善,尽可能模拟实际运行情况,我觉得应把测试当作一个设计来对待 ,在总体方案形成的同时,测试方案也随之产生,并经大家评审,看是否有遗漏之处,在测试方案产生之前,开发人员须主动向系统人员了解与芯片接口有关的信号质量 ,包括正常情况和异常情况,以及异常时对芯片有哪些具体要求 。最终,总体方案讨论产生两个需求,芯片基本功能需求和可靠性需求。其中可靠性需求包括上述提到的四个方面, 当然 实际情况可能不止这些。

2 FPGA调试

FPGA调试应尽可能模拟实际应用环境,如果这一点不能保证的话,芯片的可靠性会大打折扣,同时芯片的基本功能是否完全正确也不能完全确定。当然 ,这需要通过部门之间的协调才能完成。同时,我们在设计之初,尽可能考虑完善些。

另外 在进行FPGA调试时,应对系统测试人员进行必要的指导,与他们一起制定一个详细的测试方案,保证测试的全面性。

总之,在进行可靠性设计时,要注意以下几个原则。

芯片抗干扰 抗误码。

芯片能自我检查故障。

芯片处理尽可能 透明。

芯片出故障可恢复。

测试手段必须全面,哪怕是一个很简单的功能,越简单越容易出错。

芯片的可靠性是一项长期而艰巨的任务,须经过不断地优化,测试,甚至几代人的努力才能完成 。只要我们从现在做起, 不断积累, 不断完善, 就一定能把我们的芯片做得更稳定 更可靠。

4.2 ASIC设计如何考虑可靠性。

随着我司产品的发展,ASIC芯片在产品中的份量越来越重, 如128中的SD530等芯片, 其表现的好坏直接影响到整个产品的性能。同时 ,ASIC芯片自身也在向高速, 大容量发展 ,复杂程度越来越高 。这就造成 ,一方面 ,产品对ASIC芯片的可靠性要求越来越高, 另一方面, 芯片复杂程度的提高势必影响芯片的可靠性程度。若处理不当 ,将造成非常严重的后果。而目前我部门在可靠性设计方面的历史积累还很少 ,在可靠性设计方面还有一段很长路要走。这里, 我们以SD530为例 ,阐述如何进行可靠性设计, 希望能起到抛砖引玉的作用。共同为我部门ASIC可靠性设计水平的提高做出贡献在ASIC芯片可靠性设计中, 应考虑如下因素对芯片工作的影响。

一 外部因素

考虑的外部因素有。

外界环境的变化, 如温度 ,湿度等。

单板信号质量引起的毛刺。

外界干扰造成的误码, 毛刺等。

上电之后一段时间内, 芯片各输入信号不稳, 尤其是控制信号可能不稳定。

二 内部因素

考虑的内部因素有

实际工作频率与芯片极限工作频率之间的裕量。

异步电路。

复杂的电路 如状态处理电路等。

输出信号有毛刺。

另外 为了提高芯片的可靠性 还需增加一些必要的辅助电路

DFT电路。

故障检测定位电路。

故障纠错保护电路。

异常复位电路。

在SD530中,采用了 “三级防火墙” 体系,最大限度地保证SD530的可靠性。

第一级:针对接口输入信号,尤其是各种控制信号, 进行必要的去毛刺处理,同时针对可能出现的乱码,尤其是上电一瞬间,进行抗乱码处理,输出信号保证无毛刺, 并尽量采用触发器的输出作为端口输出信号。

SD530与其它硬件的接口信号包括:CPU接口信号,UHW输入信号,总线控制信号。在进行SD530设计时,对CPU接口读写信号, UHW输入信号,总线控制信号均进行了去毛刺处理。然而 ,在设计开始阶段,并没有进行乱码处理,尤其是总线控制信号。由于总线控制信号会影响SD530的数据存储管理,结果发现在上电开始阶段SD530经常工作不正常。引入乱码处理之后 问题得以解决。

引入乱码处理的实质是,保证设计能正确处理可能出现的每一个状态,尤其是偶而出现的错误状态,保证芯片在 “偶尔” 过后 能正常运行而不至于 “死掉”。

因此,在进行设计时,一些重要的控制信号,应按 “随机信号” 来对待。

第二级:对一些复杂电路和关键电路 ,增加自我纠错保护电路,防止可能出现的意外或者芯片自身的不完善造成对芯片的严重影响。

在SD530的接收芯片 ,其UHW处理电路中的状态处理部分十分复杂 ,在绝大部分情况下 ,无任何问题。但是当UHW出现误码时, 在某一“特定情况” ,下其状态处理结果出错 ,导致芯片的核心部分存储管理电路出问题 ,然而, 虽经多次艰苦努力, 仍未找到是何种 “特定情况”。最后 ,我们决定增加状态纠错保护电路, 来检查状态处理是否正确 当发现处理不对时 ,采用特殊手段 ,保证芯片的存储管理部分不出乱子 ,事实证明 ,该方法非常有效。

第三级 :提供芯片软件复位电路,芯片自身检查可能出现的暂时无法预防的最严重故障,由软件完成芯片的复位。

在SD530设计过程中,经常发现芯片的存储管理部分出现问题,经过多次努力之后问题似乎解决,但是,我们担心可能还有深层次的问题未能发现,为此决定 在SD530中增加存储管理错误检查电路和提供异常复位电路 。当发现存储管理出现问题时, 有软件启动复位电路, 使芯片迅速恢复正常。

事实证明, 这是一个非常明智的决定 ,在随后的测试中 ,我们发现已经出去开局的版本仍然存在问题。但由于异常复位电路的存在, 该问题的影响程度大大降低。

有了复位电路, 我们的芯片还有什么好怕的?

SD530除了富有特色的防火墙体系外,另一大特点是其完善的故障检查定位电路 ,极大地提高了系统快速定位故障的能力 ,能使系统在电路出现故障之初就能进行相应的保护性处理, 大大降低产品的风险性, 使产品的可靠性又上一个台阶。

这些故障检查定位电路主要是针对单板和系统的,包括:

在UHW接口处,设置协议错误检查电路,包括 HDLC协议错误,128自身定义的协议错误 。

外部RAM存储错误检查电路和外部RAM自检电路。

总线错误检查电路。

收发帧数统计电路。

存储管理错误显示电路。

另外,为了保证可靠性设计能顺利实现,必须进行可靠性测试。可靠性测试分两方面 ,一是通过软件进行,也就是写测试代码,如Verilog格式测试代码 。二是进行硬件测试。

1 测试代码

在我们以往的测试代码中,过多地考虑的是基本功能测试,而在系统不稳定因素方面考虑较少。为了使测试代码更加完善, 尽可能模拟实际运行情况 ,开发人员须主动向系统人员了解与芯片接口有关的信号质量 ,包括正常情况和异常情况, 以及异常时对芯片有哪些具体要求。

2 硬件测试

硬件测试应尽可能模拟实际应用环境 ,如果这一点不能保证的话 ,芯片的可靠性会大打折扣 ,同时芯片的基本功能是否完全正确也不能完全确定。当然 ,这需要通过部门之间的协调才能完成另外, 在进行硬件测试时 ,应对系统测试人员进行必要的指导 ,与他们一起制定一个详细的测试方案 ,保证测试的全面性。

往期精彩

【华为】可编程ASIC设计方法简介(二)

【华为】可编程ASIC设计方法简介(一)

【华为】verilog语言编写规范(三)

【华为】verilog语言编写规范(二)

【华为】verilog语言编写规范(一)

【华为】Verilog HDL入门教程(5-10章)

【华为】Verilog HDL入门教程(4章)

【华为】Verilog HDL入门教程(3章)

【华为】Verilog HDL入门教程(1-2章)

【华为】FPGA设计设计规范

本文完!!!

欢迎关注,更精彩的内容等着你!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3