第515章 专芯专用(2/2)
请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
他在黑板上写了两行公式:
X_troid=(Σx)/N
Y_troid=(Σy)/N
“累加每个连通域内所有像素的X坐标和Y坐标,最后用除法求平均。硬件实现需要每个连通域有一套累加器。假设最多同时有32个焊盘在视野里,每个累加器需要X累加器、Y累加器、像素计数器。”
他在纸上估算了一
“X坐标范围0到255,8位就够了。但累加时,一个焊盘可能有几十个像素,8位会溢出。用16位累加器,每个域三个16位寄存器,32个域,共32乘3乘16等于1536位寄存器。可以接受。”
“扫描结束后,对每个焊盘,用除法器计算质心。除法器的硬件实现用移位减法,32位除以16位,约16个时钟周期完成。对键合机来说,扫描结束后花几百微秒算除法,完全可以接受。”
吕辰听到这里,心里已经有了底。
这个方案,可行。
陈教授翻开第四张图。
“第三步,位置偏差计算。”
他指着图上一个极简的方框。
“这一步最简单。理想坐标存在ROM里,实测坐标来自第二步的质心计算结果,做减法。”
他在图上画了一个小框图。
“但有一个问题,需要知道‘当前对准的是第几个焊盘’。一颗芯片可能有几十个焊盘,必须按顺序一个一个对准。”
他顿了顿,在图上加了一个地址计数器。
“焊盘序号→ROM(存储理想坐标)→减法器→输出ΔX,ΔY。按照预设顺序,从左到右、从上到下。芯片设计时就已经定好了焊盘的顺序,键合时按这个顺序执行。”
诸葛彪插了一句:“这个ROM里的理想坐标,从哪儿来?”
陈教授看了他一眼:“从芯片的版图设计数据里来。芯片设计完成后,每个焊盘的位置是确定的。把这些坐标提取出来,固化到ROM里。不同型号的芯片,换不同的ROM。”
他估算了一下:“约1000个门,面积很小。甚至可以和特征提取芯片集成,但为了模块化和并行处理,单独做一块也有道理。”
陈教授翻开第五张图。
“第四步是运动控制。”
他在图上画了一个PID控制器的框图。
“输入目标位置,来自偏差计算芯片,加当前位置,来自光栅尺反馈,输出压电陶瓷驱动电压。内部架构是一个PID控制器的硬件实现。”
他在黑板上写了PID的标准公式:u(t)=Kp·e(t)+Ki·∫e(t)dt+Kd·de(t)/dt。
“比例项、积分项、微分项,每一项都需要乘法器。硬件实现用8乘12乘法器,可以串行实现以节省面积,也可以并行实现以追求速度。”
他在纸上估算了一
“约到个门,是这几块芯片中最复杂的。面积可能到60到80平方毫米。”
80平方毫米,将近1厘米乘0.8厘米。在五微米工艺下,这已经是非常大的芯片了。吕辰在心里盘算了一下,没有立刻表态。
陈教授继续往下讲。
“另外还需要插补器。X轴和Y轴需要协同运动,不能一个动一个不动。需要一个小型CORDIC或者简单的逐点比较法插补器。”
他在图上又加了一个方框。
“再加上一个超声焊接控制芯片,控制键合头的超声振动、压力、时间。”
他翻开第六张图。
“输入焊接指令,来自总控状态机,加压力传感器反馈,输出超声发生器使能信号、压力调节信号、时间计数器。内部架构相对简单,主要是一个精密定时器加状态机。压力控制可以用一个简单的比较器,压力传感器反馈与设定值比较,高了减压,低了加压。”
他估算了一下:“约5000个门。”
最后,他翻开第七张图。
“总控状态机,系统的‘大脑’。”
他在图上画了一个圆形的状态转移图。
“用标准单元搭一个有限状态机,控制整个键合流程。”
他在状态转移图上标出了每一个状态:空闲→移动到焊盘1→对准→键合→移动到焊盘2→对准→键合→……→完成。
“状态不多,十几个。用标准单元库里的触发器搭就可以,不需要单独的芯片。”
讲完算法设计,陈教授把七张图摊在桌上,排成一排。
从左到右,图像采集、预处理、特征提取、位置计算、运动控制、超声焊接——六个方框,箭头从左往右,整整齐齐。
“整体架构是一个四级的流水线专用处理器。每一级由一块专用芯片实现,数据在芯片之间直接传递,没有中间存储,没有数据搬移,没有微程序解释执行的开销。”
会议室里安静了几秒。
吕辰盯着那些图纸,脑子里飞快地转着。
图像预处理芯片,约5000个门。焊盘特征提取芯片,约8000到个门。位置偏差计算芯片,约1000个门。运动控制芯片,约到个门。超声焊接控制芯片,约5000个门。加起来,三万到四万个门。
在五微米工艺下,每平方毫米大约能集成200到300个门。
四万个门,挑战不小!
吕辰端起搪瓷缸子想喝水,发现水已经凉了。
他把缸子放下,开口说:“陈教授,这个架构,可行。”
陈教授看着他,没有说话,等着他往下说。
“功能划分清晰,每块芯片只做一件事,专芯专用。最复杂的运动控制芯片约两万门,在五微米工艺用芯片,可以挑战一下。”
他顿了顿,又说:“但我有几个问题。”
“你说。”
“第一,行缓存的面积。您刚才说每行256个像素,每个8位,两行就是4096位。这是寄存器,不是存储芯片。4096位寄存器,面积不小。能不能用存储芯片来做行缓存?”
陈教授想了想:“可以。但存储芯片的读写时序和寄存器不一样,需要加控制逻辑。不过面积能省不少。这是一个好建议,回头细化的时候可以优化。”
吕辰点了点头,继续问。
“第二,连通域标记的优先级编码器。256个并行比较,一个时钟周期出结果,这个逻辑的扇入扇出会不会太大?时序能收住吗?”
陈教授拿起铅笔,在纸上画了一个树状结构图。
“用二叉树结构。第一级128个比较器,第二级64个,第三级32个,依此类推。七级就能出结果。每一级的扇入扇出控制在4以内,时序没问题。”
吕辰看着那个树状图,心里踏实了。
“第三,运动控制芯片的PID算法。Kp、Ki、Kd三个系数,是固定的还是可调的?”
“可调的。”陈教授说,“不同型号的压电陶瓷微动台,响应特性不一样。系数存在寄存器里,出厂时校准。甚至可以在键合过程中动态调整,适应不同工况。”
吕辰点了点头,表示没有问题了。
钱兰这时候开口了。
“陈教授,我还有一个问题。您这个方案,需要多少存储?不是寄存器,是真正的存储。”
陈教授想了想:“行缓存可以用存储芯片做,256乘8乘2等于4096位,约0.5KB。特征提取芯片的累加器,32个域,每个域三个16位累加器,共1536位,约0.2KB。其他零散的,加起来不到1KB。”
他看着钱兰:“1KB的存储,在五微米工艺下,面积大概多大?”
钱兰在笔记本上算了一下:“存储芯片的密度比寄存器高得多。1KB,约8000位,面积大概10到15平方毫米。可以接受。”
陈教授点了点头,把桌上的图纸收拢,摞成一摞。
“好。方案我讲完了。你们觉得,能不能干?”
吕辰没有立刻回答,而是看向钱兰和诸葛彪。
钱兰合上笔记本,点了点头:“把二维问题变成一维流水线,这个思路,简直太好了。每块芯片的规模都在可接受范围内。能干。”
诸葛彪也点了点头,但他又举起手:“陈教授,我还有一个问题。”
“说。”
“逻辑设计、版图绘制、仿真验证,这些工程上的事,我们来。但是图像处理芯片里的滤波算法、连通域标记的等价合并、PID参数整定,这些数学上的东西,得请你们帮忙。”
陈教授点点头:“没问题,这本就是理论组的事。”
吕辰感叹道:“五块芯片,每块都要从零开始设计,逻辑图、版图、仿真、流片、测试。工作量不小。”
陈教授端起搪瓷缸子喝了一口水,水已经凉了,他也没在意。
“工作量是大,但这个项目是总装给的军令状,拖不得。”
他放下缸子,目光从三个人脸上扫过。
“咱们要在两个月之内拿出逻辑设计,春节之前版图画完,开年就送中试线。”
吕辰在笔记本上写下这几个时间节点,然后在旁边画了一个倒计时。
“陈教授,数学模型什么时候能给我们?”
“一个月。”陈教授说。
他顿了顿,又补了一句:“西军电那边,秦教授可以帮忙验证信号处理部分的算法。他们对图像处理有经验,可以帮我们看看中值滤波窗口大小、二值化阈值的选取这些参数。”
钱兰在旁边记了一笔:“西军电,信号处理算法验证。”
诸葛彪把烟点上,吸了一口,慢慢吐出来。
“陈教授,还有一个问题。”
“说。”
“您这个方案,是五块专用芯片。但如果以后算法要升级,或者要适配不同型号的芯片,比如有的芯片焊盘是圆的,有的是方的,有的是矩形,那是不是要重新设计芯片?”
陈教授笑了。
“这也是理论组一直争论的点之一。我们最后认为,专用芯片的灵活性确实不如微程序。但键合机的对准算法,本质上是稳定的。焊盘形状可能有变化,但特征提取的逻辑是通用的,不管焊盘是圆是方,都能用。”
他想了想,又说:“至于参数调整,比如中值滤波窗口大小、二值化阈值、PID系数,这些可以做成可配置的。在芯片里加一些寄存器,参数从外部加载,不用改芯片设计。”
诸葛彪点了点头,没有再问。
吕辰把笔记本合上,站起来,伸出手。
“陈教授,这个方案,我代表红星所集成电路实验室,正式接受。”
陈教授握住他的手。
“好。那咱们就这么定了。”
钱兰和诸葛彪也站起来,四个人围在桌前,看着那七张摊开的图纸。
夕阳从窗户照进来,照在那些密密麻麻的方框和箭头上,照在陈教授花白的鬓角上。