【华为】可编程ASIC设计方法简介(三) |
您所在的位置:网站首页 › 华为asic芯片设计是干嘛的 › 【华为】可编程ASIC设计方法简介(三) |
本次分享华为公司的《大规模逻辑设计指导书》中的“可编程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 |