現象一:這板子的PCB設計要求不高,就用細一點的線,自動布吧。
點評:自動布線必然要占用更大的PCB面積,同時產生比手動布線多好多倍的過孔,在批量很大的產品中,PCB廠家降價所考慮的因素除了商務因素外,就是線寬和過孔數量,它們分別影響到PCB的成品率和鉆頭的消耗數量,節約了供應商的成本,也就給降價找到了理由。
現象二:這些總線信號都用電阻拉一下,感覺放心些。
點評:信號需要上下拉的原因很多,但也不是個個都要拉。上下拉電阻拉一個單純的輸入信號,電流也就幾十微安以下,但拉一個被驅動了的信號,其電流將達毫安級,現在的系統常常是地址數據各32位,可能還有244/245隔離后的總線及其它信號,都上拉的話,幾瓦的功耗就耗在這些電阻上了。
現象三:CPU和FPGA的這些不用的I/O口怎么處理呢?先讓它空著吧,以后再說。
點評:不用的I/O口如果懸空的話,受外界的一點點干擾就可能成為反復振蕩的輸入信號了,而MOS器件的功耗基本取決于門電路的翻轉次數。如果把它上拉的話,每個引腳也會有微安級的電流,所以最好的辦法是設成輸出(當然外面不能接其它有驅動的信號)
現象四:這款FPGA還剩這么多門用不完,可盡情發揮吧。
點評:FGPA的功耗與被使用的觸發器數量及其翻轉次數成正比,所以同一型號的FPGA在不同電路不同時刻的功耗可能相差100倍。盡量減少高速翻轉的觸發器數量是降低FPGA功耗的根本方法。
現象五:這些小芯片的功耗都很低,不用考慮。
點評:對于內部不太復雜的芯片功耗是很難確定的,它主要由引腳上的電流確定,一個ABT16244,沒有負載的話耗電大概不到1毫安,但它的指標是每個腳可驅動60毫安的負載(如匹配幾十歐姆的電阻),即滿負荷的功耗最大可達60*16=960mA,當然只是電源電流這么大,熱量都落到負載身上了。
現象六:存儲器有這么多控制信號,我這塊板子只需要用OE和WE信號就可以了,片選就接地吧,這樣讀操作時數據出來得快多了。
點評:大部分存儲器的功耗在片選有效時(不論OE和WE如何)將比片選無效時大100倍以上,所以應盡可能使用CS來控制芯片,并且在滿足其它要求的情況下盡可能縮短片選脈沖的寬度。
現象七:這些信號怎么都有過沖啊?只要匹配得好,就可消除了。
點評:除了少數特定信號外(如100BASE-T、CML),都是有過沖的,只要不是很大,并不一定都需要匹配,即使匹配也并非要匹配得最好。象TTL的輸出阻抗不到50歐姆,有的甚至20歐姆,如果也用這么大的匹配電阻的話,那電流就非常大了,功耗是無法接受的,另外信號幅度也將小得不能用,再說一般信號在輸出高電平和輸出低電平時的輸出阻抗并不相同,也沒辦法做到完全匹配。所以對TTL、LVDS、422等信號的匹配只要做到過沖可以接受即可。
現象八:降低功耗都是硬件人員的事,與軟件沒關系。
點評:硬件只是搭個舞臺,唱戲的卻是軟件,總線上幾乎每一個芯片的訪問、每一個信號的翻轉差不多都由軟件控制的,如果軟件能減少外存的訪問次數(多使用寄存器變量、多使用內部CACHE等)、及時響應中斷(中斷往往是低電平有效并帶有上拉電阻)及其它爭對具體單板的特定措施都將對降低功耗作出很大的貢獻。