如何能够让大家更认同你的设计?如何能够在节省成本下提高效率、降低功耗?本文中为大家分享了如何考虑这些问题并给出了实践中的经验。
首先我们来聊一下关于节省成本的问题,以下几个实际例子就可以说明我们在选用各项元器件或IC时候应该考虑的问题。关于拉高/拉低的电阻用多大的阻值?市场最接近的是4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍。20%精度的电阻阻值只有1、1.5、2.2、3.3、4.7、6.8几个类别(含10的整数倍);类似地,20%精度的电容也只有以上几种值,如果选了其它的值就必须使用更高的精度,成本就翻了几倍,却不能带来任何好处。针对于面板上的指示灯的颜色问题,红绿黄橙等颜色的不管大小(5MM以下)封装如何,都已成熟了几十年,价格一般都在5毛钱以下,而蓝色却是近三四年才发明的东西,技术成熟度和供货稳定度都较差,价格却要贵四五倍。目前蓝色指示灯只用在不能用其它颜色替代的场合,如显示视频信号等。74XX的门电路只几毛钱,而CpLD至少也得几十块,(GAL/pAL虽然只几块钱,但公司不推荐使用)。成本提高了N倍不说,还给生产、文档等工作增添数倍的工作。
其实在实际的电路设计过程中,系统要求高的情况下,不一定所有的芯片都要选最快的。因为在一个高速系统中并不是每一部分都工作在高速状态,而器件速度每提高一个等级,价格差不多要翻倍,另外还给信号完整性问题带来极大的负面影响。自动布线必然要占用更大的pCB面积,同时产生比手动布线多好多倍的过孔,在批量很大的产品中,pCB厂家降价所考虑的因素除了商务因素外,就是线宽和过孔数量,它们分别影响到pCB的成品率和钻头的消耗数量,节约了供应商的成本,也就给降价找到了理由。CpU的速度和存储器的空间都是用钱买来的,如果写代码时多花几天时间提高一下程序效率,那么从降低CpU主频和减少存储器容量所节约的成本绝对是划算的。CpLD/FpGA设计也类似。
然后就是低功耗设计与高系统效率的设计问题,其实低功耗设计是在省电的同时让器件的寿命变得更长。其降低了电源模块及散热系统的成本、由于电流的减小也减少了电磁辐射和热噪声的干扰。随着设备温度的降低,器件寿命则相应延长(半导体器件的工作温度每提高10度,寿命则缩短一半)。针对于高系统性能来说CACHE的增大,并不一定就导致系统性能的提高,在某些情况下关闭CACHE反而比使用CACHE还快。原因是搬到CACHE中的数据必须得到多次重复使用才会提高系统效率。所以在通信系统中一般只打开指令CACHE,数据CACHE即使打开也只局限在部分存储空间,如堆栈部分。同时也要求程序设计要兼顾CACHE的容量及块大小,这涉及到关键代码循环体的长度及跳转范围,如果一个循环刚好比CACHE大那么一点点,又在反复循环的话,那就惨了。中断的实时性强,但不一定快。如果中断任务特别多的话,这个没退出来,后面又接踵而至,一会儿系统就将崩溃了。如果任务数量多但很频繁的话,CpU的很大精力都用在进出中断的开销上,系统效率极为低下,如果改用查询方式反而可极大提高效率,但查询有时不能满足实时性要求,所以最好的办法是在中断中查询,即进一次中断就把积累的所有任务都处理完再退出。BSp对存储器接口设置的默认值都是按最保守的参数设置的,在实际应用中应结合总线工作频率和等待周期等参数进行合理调配。有时把频率降低反而可提高效率,如RAM的存取周期是70ns,总线频率为40M时,设3个周期的存取时间,即75ns即可;若总线频率为50M时,必须设为4个周期,实际存取时间却放慢到了80ns。对于搬砖头来说,两个人应该比一个人的效率高一倍;对于作画来说,多一个人只能帮倒忙。使用几个CpU需对业务有较多的了解后才能确定,尽量减少两个CpU间协调的代价,使1+1尽可能接近2千万别小于1。
由于仿真模型不可能与实物一模一样,连不同批次加工的实物都有差别,就更别说模型了。再说实际情况千差万别,仿真也不可能穷举所有可能,尤其是串扰。曾经有一教训是某单板只有特定长度的包极易丢包,最后的原因是长度域的值是0xFF,当这个数据出现在总线上时,干扰了相邻的WE信号,导致写不进RAM。其它数据也会对WE产生干扰,但干扰在可接受的范围内,可是当8位总线同时由0边1时,附近的信号就招架不住了。结论是仿真结果仅供参考,还应留有足够的余量。
技术专区慕展上,世强带来的SiC、GaN、三电平让你的效率直达最high点如何利用二级输出滤波器防止开关电源噪声陶瓷垂直贴装封装(CVMp)的焊接注意事项及布局DC-DC转换器的平均小信号数学建模及环路补偿设计常用基准稳压电源产生办法有哪些?