亲,双击屏幕即可自动滚动
正文 第574章 火车头试探
    请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。

    时间飞快,转眼就到了11月。

    昆仑1机的芯片、元器件、机柜均如期交付,板卡也陆续完成设计。

    硬件板卡集成小组启动了火车头测试。

    红星轧钢厂的防静电车间里,吕辰站在机柜前,手里拿着一个棕色封皮的本子。

    他今天负责记录,亲眼看着这台机器活过来。

    吴国华手里拿着示波器的探头,蹲在机柜后面,地线夹已经牢牢固定在接地铜排上。

    宇文坤德站在配电盒旁边,手里握着一支电笔,大拇指搭在开关上。

    旁边的桌子上,摆满了各种工具和元件。

    螺丝刀、镊子、万用表、酒精棉签、备用芯片、一小卷细铜线。

    昆仑1机的第一块电源板、第一块时钟板和总线背板,已经被小心翼翼地插进了第一台测试机柜的插槽里。

    金手指与背板插槽的簧片接触时,发出轻微的“咔嗒”声让人安心,像是骨头归位。

    “就这三块。”吕辰看着面前这台孤零零的机柜,“电源、时钟、背板。先让心脏跳起来,其他的等会儿再说。”

    吴国华和宇文坤德在做着最后的检查。

    示波器的探头点在电源板远端的电源引脚上,屏幕上跳出一条绿色水平线,随后一个方波出现又消失,吴国华微微点了点头。

    宇文坤德走到机柜侧面的配电盒前,左手搭在空气开关上,右手拿着电笔点了点几个测试点,确认接线无误。

    “上电。”

    电磁接触器“嘭”地一声吸合,声音沉闷有力,像一头沉睡的野兽被拍醒。

    机柜前面板的几个指示灯相继亮起,绿色的电源正常灯亮得最快,黄色的总线空闲灯闪了两下也稳住了,红色的故障灯没有亮。

    示波器屏幕上的波形跳了起来。

    先是一个不太干净的尖峰,那是上电瞬间的浪涌,谁家机器都免不了,然后稳定在5伏直流电平上,像一条被拉直的线。

    吴国华盯着屏幕看了三秒,然后把时基调大,观察了十几个周期,确认没有异常抖动,才开口:“+5V正常。”

    他把探头移到另一根线:“+12V也稳了,纹波在规格内。”

    宇文坤德蹲在机柜后面,把万用表的表笔插在电源板的测试点上。

    他看表的速度很慢,每一组读数都要默念两遍才往本子上记。

    吕辰站在机柜正面,盯着前面板上的指示灯。

    电源正常灯亮着,绿色的光在昏暗的车间里显得很踏实。

    总线空闲灯也亮着,黄色的,像一盏待机的信号。

    故障灯没有亮,这是今天最好的消息。

    他从兜里掏出一支烟,点上,吸了一口。

    烟雾在洁净室的气流里被迅速抽走,消失得无影无踪,过滤器的嗡鸣声始终没停过。

    “行了,先让它跑一个小时。”吕辰看了看手表。

    车间里安静下来,只有机柜里散热风扇的低频嗡嗡声,和示波器屏幕上那根稳定的绿色水平线。

    宇文坤德蹲在机柜后面,手里的万用表一直没有收起来。

    他每隔十分钟测一组数据,记在本子上,字迹工整,每一行都标注了时间和测试点。

    他的动作很慢,但很稳,像在给一个病人量体温。

    吴国华把探头放在台面上,拧开保温杯喝了一口水,他的眼睛没离开过示波器屏幕。

    半个小时过去了,一切正常。

    40分钟的时候,宇文坤德忽然开口了。

    “吕工,过来看一下。”

    语气里,一种“你最好来看看”的意味。

    吕辰三步并作两步走到机柜后面。

    宇文坤德把万用表的读数转过来给他看。

    4.82V。

    “这颗芯片离电源入口最远。”宇文坤德用表笔点了点那颗芯片的位置,“标称是5V。跌了将近4%。”

    吕辰盯着那行数字看了两秒,没说话。

    吴国华已经把示波器探头移了过来。

    屏幕上的5V电平线平稳,但仔细看,确实比电源入口处低了大约一格。

    “线画细了。”吴国华摇头,语气里带着一种“我就知道”的无奈,“现在的电压还能撑住,指标内。但如果后面加更多芯片,电流再大一点,肯定要跌破4.75伏的红线。”

    吕辰翻开本子,用钢笔写了一行字。

    他写得很慢,像是在斟酌每一个字:电源板远端压降4%,建议加粗主干道或增加去耦电容。

    他在旁边画了一个三角形,表示“需要跟踪,非紧急”。

    “先不管。”吕辰合上本子,声音很平静,“能跑就行。继续观察。”

    现在不是停下来改板子的时候,火车头测试的目标是让最小系统转起来,证明这条路走得通。

    毛病记下来,回头一并改,这是工程,不是实验室里的完美主义。

    又过了十几分钟。

    示波器的屏幕闪了一下。

    吴国华的眼睛猛地瞪大了。

    “毛刺!”

    他的声音拔高了半度,整个人从靠着的姿态一下子直起来,手指已经搭在了示波器的旋钮上。

    吕辰凑过去看。

    时钟信号线上,那本该是整齐方波的地方,在正常的边沿旁边,偶尔会出现一个尖锐的毛刺,像一根针扎在波形上。

    幅度大约1.8伏,持续时间极短,短到示波器的光标都很难锁住。

    “哪来的?”吕辰皱眉。

    吴国华把示波器的时基调大,开始扫描更长时间窗口。

    屏幕上的波形缓缓移动,像一条缓慢流淌的河。

    毛刺出现的频率不高,大约每两三秒一次,间歇性出现,没有规律。

    宇文坤德走到机柜前面,弯下腰,凑近时钟板的位置。

    这块板子上有一颗KL-CLK时钟分配芯片,旁边围着几只晶体和几个电容。

    他看了几秒,又抬起头看了看从背板下来的那几束线缆。

    他的眼睛眯了起来。

    “线走得太近了。”他指着从背板下来的几条数据线,“时钟线跟数据线在背板上并行走了一段。间距——”

    他没有说完,但意思已经很明显了。

    吴国华拿起逻辑分析仪的探头,夹在了那条时钟线和最近的一条数据线上。

    分析仪的屏幕上一行行数字跳出来,速度很快,但他一眼就捕捉到了规律。

    “确认了。串扰。”吴国华把屏幕转向吕辰,用手指点着上面的几行数据,“每当数据线从0翻转到1的时候,时钟线上就会出现一个毛刺。时序刚好卡在那个点上。”

    他声音凝重:“这个毛刺幅度1.8伏。TTL电平里,2伏就算高电平了。虽然还没到阈值,但如果再多一点干扰,或者温度升高、芯片老化,它就会变成真正的误触发。”

    宇文坤德直起腰,目光从线缆移到吕辰脸上,没有催促,只是在等一个决定。

    吕辰盯着屏幕看了几秒。

    加屏蔽地线要改板卡设计,加大间距也要改板卡设计,这些都是下一版的事。

    现在要做的,是确认这个毛刺会不会让今天的测试跑不下去。

    “频率高吗?”他问。

    吴国华又看了一眼分析仪:“不高。平均两三秒一次。没有造成实际的逻辑错误,至少目前没有。”

    “那就先记着。”

    吕辰翻开本子,又写了一行:

    时钟与数据线串扰,毛刺1.8V,间距不足,需加地线隔离或加大间距。

    旁边画了两个三角形,优先级更高。

    他合上本子:“电压和时钟能撑住就继续。今天的任务是让最小系统转起来,毛病先记着,回头一并改。”

    吴国华点了点头,把探头的夹子重新夹稳。

    宇文坤德把手从万用表上移开,站直了身子,活动了一下有些僵硬的腰。

    一个小时跑完了。

    电压最低点4.80V。

    时钟毛刺最大幅度1.9V。

    没有造成实际故障。

    吕辰合上本子,伸了个懒腰。

    他看着机柜上那些还在亮着的指示灯:“加I/O板。让指令跑起来。”

    吴国华从防静电盒里取出一块I/O板。

    这块板子比电源板小一圈,正面只有几颗芯片插座和一小排指示灯,背面是一排金手指。

    他双手握住板卡边缘,对准抽屉里的插槽导轨,轻轻推了进去。

    “咔嗒”。

    板卡到位,锁紧机构弹起,声音清脆,让人安心。

    吕辰走到工作台前,从抽屉里拿出已经烧录好测试程序的二维卡。

    那张浅黄色的卡片不大,打满了密密麻麻的孔,在灯光下看像某种密码本。

    他在读卡机前面蹲下来,把卡片塞进读卡槽,推到底,然后按下了启动按钮。

    读卡机开始工作,探针矩阵扫描电路,一行行微指令被读入,转化成电信号,沿着数据总线送进板卡。

    机柜上的指示灯开始闪烁。

    黄色的总线空闲灯灭了,绿色的运行灯亮了起来。

    吕辰站起来,盯着前面板。

    测试程序很简单,读拨码开关的状态,然后点亮对应的指示灯。

    拨码开关就装在I/O板的前面板上,8个拨码,8个指示灯,一一对应。

    他拨动了第一个开关。

    指示灯没有亮。

    等了两秒,还是没有亮。

    吴国华已经走到I/O板前面,把示波器探头点在输出引脚上。

    屏幕上的波形跳出来,信号有,但幅度只有1.2伏,远低于TTL高电平的2伏阈值。

    “输出驱动不够。”吴国华的声音有些发紧,“要么驱动芯片选型不对,要么插座虚接!”

    宇文坤德把板卡抽了出来。

    翻过来看背面,芯片插座的每一个引脚上,紧固的螺丝闪着银光,他用指甲刮了过去。

    一连串清脆的“叮叮”声响起,声音圆润,没有破音。

    没有虚焊。!

    他又翻回去看正面的芯片插座,一颗一颗检查,手指轻轻按压。

    按到第三颗的时候,芯片动了一下。

    “没卡到底,虚接!”

    把芯片从插座里拔出来,用酒精棉签擦了擦引脚,其实引脚看着不脏,但这是规矩,又重新插进去,用力压到底。

    这一次,芯片稳稳地卡在插座里,没有丝毫晃动。

    他把I/O板重新插回机柜,锁紧。

    动作一气呵成,像是在灶台前颠了一万次勺。

    吕辰再次拨动拨码开关。

    指示灯亮了。

    明亮的绿色,在车间里格外醒目。

    吴国华没有笑,但他的肩膀松了下来。

    他继续拨动剩下的七个开关,每个开关对应的指示灯都依次亮了起来,没有延迟,没有闪烁,没有迟疑。

    “I/O板通了。”

    吕辰翻开本子,写:

    请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。

    I/O板输出正常,前期故障为芯片插座虚接。

    他想了想,又在后面加了一行:

    插座安装后须逐颗按压确认。写入装配规范。

    “下一个。加存储板。”

    存储板比前面两块板子都大,上面整整齐齐排列着十六颗芯片插座,每个插座周围环绕着几只去耦电容,密密麻麻像列队的士兵。

    吴国华双手托着板卡边缘,把它推进了机柜的第四个插槽。

    锁紧机构弹起,“咔嗒”一声。

    “上电。”

    宇文坤德再次推上开关。

    这一次,机柜的指示灯亮起来之后,存储板的几个状态灯也亮了,绿色,自检通过。

    吕辰换了一张测试卡,塞进读卡机。

    这次的测试程序更复杂,向存储器的某一段地址写入一组数据,然后读回来比较。

    一致就点亮I/O板的第一个指示灯,不一致就点亮第二个。

    读卡机“咔嗒咔嗒”地响了一阵。

    程序开始运行。

    第一个指示灯亮了。

    吕辰没有动。

    等了两秒,还是亮的。

    “再写一组。”

    吴国华在终端上敲了几行命令,换了另一组数据。

    读卡机再次启动,第一个指示灯还是亮的。

    连续重复了十几组,全部一致。

    “存储板基本功能正常。”吴国华的声音里带着一丝自信。

    “不急。”吕辰从抽屉里拿出另一张测试卡,“跑一个边界的。”

    这张卡的测试程序不是读写正常地址,而是读写地址的边界值,全0地址、全1地址、地址线翻转的临界点。

    这些地方最容易暴露出地址译码或数据总线的隐藏问题,正常能跑的不算数,边界能跑才算。

    读卡机再次启动。

    测试跑了不到半分钟。

    第二个指示灯亮了。

    车间里的空气又一次安静下来。

    吴国华把逻辑分析仪接在存储板的地址线和数据线上,开始抓取数据。

    屏幕上的数字飞速跳动。

    他盯着看了几秒,然后用手指点住屏幕上两条几乎重合的波形。

    “地址线A7和A8的输出波形不对。A8的翻转时刻比A7晚了大约10纳秒。导致在某一个瞬间,地址线组合错误,读到了错误的内存单元。”

    宇文坤德从工具箱里拿出一把极细的镊子,在板卡背面测量了两根地址线的走线长度。

    他的眼睛眯成一条缝,镊子尖在铜线上轻轻划过。

    直起腰,比划了一下长度。

    “A8比A7多绕了一段。长了大约15毫米。”

    时序问题,硬件工程师的噩梦。

    不是说功能错了,功能没错,是信号在路上跑的时间不一样,导致在某个纳秒级的窗口里,逻辑乱了。

    那种问题最难复现,最难定位,最磨人。

    吕辰在本子上重重地写了一行:

    地址线长度不匹配,A8绕远,建议下一版做等长布线。

    他画了三个三角形,最高的优先级。

    他看着宇文坤德。

    “飞线试试!”

    宇文坤德从线圈上剪下一根极细的绝缘导线,比头发丝粗不了多少。

    用镊子剥开两端的绝缘皮,露出铜芯。

    在板卡背面找到了A8信号的起点和终点,不是正式焊盘,而是芯片插座引脚的根部。

    他用镊子尖轻轻挑起那条走线的末端,把飞线的一端焊上去,然后沿着板卡边缘把线绕过去,绕开那些电容电阻,在终点处焊好。

    动作很轻,呼吸很稳。

    他焊完最后一处,用万用表测了测通断,“嘀”一声,通路。

    然后把板卡重新插回机柜。

    吴国华在看逻辑分析仪的屏幕。

    A8的波形提前了大约7纳秒。

    虽然没有完全对齐,但已经不在临界区了。

    “试试。”

    测试程序重新运行。

    第二个指示灯没有再亮过。

    10组。

    20组。

    50组。

    全部通过。

    吴国华吐了一口气:“算过了。”

    吕辰看了看表。

    从第一块电源板上电到现在,已经过去了五个小时。

    外面天早就黑透了,车间里的工人们早已下班。

    “还有最后一关。”

    他从工具台上拿起热风枪,那把枪不大,出风口可以调温,最高能到150度。

    吴国华的眉头皱了起来:“现在就烤?系统才跑通不到一个小时。”

    “就是要现在就烤。”

    吕辰把热风枪调到80度,对准存储板上的一颗芯片,那颗芯片旁边没有散热片,没有风扇,孤零零地暴露在空气里。

    “刚跑通的时候是最脆弱的。热胀冷缩一下,什么毛病都出来了。”

    他直接扣下了扳机。

    热风枪的扇叶嗡嗡地转着,热风从出风口涌出,打在芯片的陶瓷封装上。

    一股微弱的、热烘烘的气流在板卡表面散开。

    吴国华盯着示波器和逻辑分析仪,眼睛一眨不眨。

    宇文坤德看着万用表和机柜的指示灯,手里的电笔没有放下。

    吕辰看着热风枪的温度表,手很稳。

    3分钟……

    5分钟……

    第8分钟,示波器屏幕上的时钟波形开始出现不规则的抖动。

    原本干净的方波,边缘开始毛糙,像被什么东西啃过。

    毛刺的幅度从1.8伏慢慢往上爬,1.9、2.0、2.1……

    到了2.3伏。

    吴国华声音发紧:“时序在恶化,高温下芯片内部延迟变大,原来能收敛的时序现在收不住了。”

    吕辰把风口移开一点,让热风打在那颗芯片旁边的空地上,继续观察。

    宇文坤德把手按在机柜的外壳上,感受了一下温度。

    铝型材的外壳已经有些烫手了。

    他松开手,走到旁边的物料架上,取下一台小型轴流风扇。

    从工具箱里找了两根扎带,三下五除二,风扇固定在机柜的侧板上,电源线插到I/O板的一个闲置插座上。

    风扇转了起来,呼呼地吹着,把热风枪吹来的热气吹散了大半。

    示波器屏幕上的波形慢慢稳定下来,毛刺幅度降回了1.9伏,时序勉强收住。

    宇文坤德把手从机柜上移开:“风扇能顶住,但机柜里那么多抽屉,不可能每个抽屉都加风扇,散热设计要从根上改。”

    吕辰关掉热风枪,热风枪的扇叶慢慢停下来。

    他把本子翻到新的一页,从头开始写总结。笔尖在纸上沙沙地响:

    火车头测试(电源+时钟+背板+I/O+存储)初步通过。

    发现问题:

    1.电源远端压降4%(建议加粗主干道/增加去耦电容)

    2.时钟串扰毛刺最大1.9V(建议加大间距/加地线隔离)

    3.I/O板芯片插座虚接(已修复,建议写入装配规范)

    4.存储板地址线长度不匹配(飞线临时解决,下一版做等长布线)

    5.高温下时序恶化(散热设计需重新评估)

    五类问题,全部记录在案,待下一版设计修正。

    他写完最后一个字,把本子递给吴国华。

    “签字。”

    吴国华接过本子,一页一页地看他记的那些内容。

    每一条都有现象描述、根因分析、临时对策和后续建议。

    字迹工整,条理清晰。

    他从口袋里掏出钢笔,在本子上签了自己的名字。

    宇文坤德接着签了。

    吕辰把本子合上,他转过头,看着机柜。

    绿色的指示灯还在亮着,系统还在跑。

    那块被热风枪吹过的芯片,现在温度已经降下来了,波形稳得像什么都没发生过。

    他用指关节轻轻敲了敲机柜的铝型材立柱,发出清脆的响声。

    “行了。今天就到这儿。明天加运算板。后天加温度循环。”

    宇文坤德开始拆风扇、拔板卡、关电源,每一块板卡都用防静电袋装好,封口,放回架子上。

    吴国华收拾示波器和逻辑分析仪,把探头一根一根地绕好,放回工具箱。

    他把示波器的电源线也拔了,绕着机器缠了两圈。

    三个人在防静电车间的门口站了一会儿。

    深秋的夜风吹过来,带着轧钢厂冷却塔的水汽和远处烟囱的煤烟味。

    车间里的暖气到了门口就被冷风截住了,站在门口能感觉到一股凉意从脚底升起来。

    吕辰把本子夹稳,转过头看着吴国华和宇文坤德。

    “国华,宇文工。最近你们要多盯着。我家里,晓娥要生了。有时候可能顾不上。”

    吴国华拍了拍吕辰的肩膀:“火车头能跑。后面就是修修补补的事。家里的事你放心。”

    他顿了顿,又补了一句:“我已经和李娟说好了。等孩子生了,她和明婕去陪晓娥说话。你不用操心那边。”

    宇文坤德从兜里掏出三根烟,一人发了一根。

    “吕工,恭喜。板卡测试这一关有我守着。出不了问题。等你回来,开始集成冲刺。”

    吕辰接过烟,从口袋里摸出打火机,“啪”地点着。

    火光照亮了他半张脸,能看见眼角那几条这两年才长出来的细纹。

    三团火星在夜色里明灭不定。

    远处,轧钢厂高炉的火光把天边映成一片暗红。

    那火光很安静,很沉稳,像某种古老的、永远不会熄灭的承诺。
为您推荐