分治法 (divide and conquer) 是解決復雜問題的一種有效策略。本質上,它是把看似難以克服的問題分解成多個更小、更易于解決的部分。待這些部分被單獨解決之后,把結果合起來就得到完整的解答。
分治法的最偉大實踐者之一是古羅馬帝國。他們成功地使用其稱之為“分而治之”(Divide and rule) 的方法來積聚和管理一個覆蓋三大洲的龐大帝國。他們在此方面如此擅長,以致其成為帝國日常活動和治理的一個根深蒂固和不被質疑的部分。實際上,許多歷史學家認為,羅馬對分割和孤立其所統治的各個集團的必要性的盲目崇信是帝國發展停滯和最終衰落的一個重要因素。正如一位羅馬元老院議員當時所說:“我們花了如此之多的精力來分割,以至于有時竟忘記了統治!”
電子設計師基本上都使用分治法來應對日益復雜的電子器件與產品開發任務。我們把設計問題分成硬件、可編程硬件和軟件部分,并且幾乎是獨立地專注于每個位元。等到某一時刻,再將這些部分組合起來形成最終產品。
雖然這種設計方法在過去對我們非常有用,但我認為在開發電子產品的方法方面,我們正面臨一個羅馬式的十字路口。沉溺于一系列孤立的設計流程可能會導致我們看不見更廣泛的可能性。
進步并非一個直線過程,它容易遇到不和諧的跳躍和間斷點,影響電子設計的最后間斷點是微處理器的普遍可用性。這一事實允許我們從根本上改變解決電子設計問題的方法并尋求針對、復雜硬件挑戰的軟件解決方案。另外它還允許我們探索以前不可運用的電子產品設計方法。本質上,軟件是電子設計中的第一大領域。把硬件領域的一些復雜性轉移到軟件領域,解決這兩個領域的問題,然后將硬件與軟件結合起來形成最終產品,這是典型的分治法!
FGPA形式的可編程數字硬件已存在了很長時間。其設計是開發流程中的另一個“孤島”。也許是由于這個緣故,其使用迄今大多局限于代替板卡上的固定硬件邏輯塊。但也許我們沒有看到更大的可能性,因為我們沒有將斷點——遍及所有設計范疇而非分散在特定設計范疇內的斷點——連接起來。
正如羅馬所發現的那樣(實際上為時已晚),分而治之策略有一些意外的后果。其中之一是它會阻礙各文化之間的思想交流。雖然每種文化都會向前發展,但是要把文化完全不同的所有集團凝聚到同一發展方向上是極為困難的。結果就是社會發展停滯。
可編程邏輯器件現在已達到了一個性能/容量/價格“拐點”。像以前的微處理器一樣,該技術給我們的電子設計能力帶來了實現量子飛躍的誘人前景。我們能夠開始像開發軟件一樣容易地來開發硬件,我們能夠將功能在硬件和軟件間隨意移動,我們能夠幾乎沒有限制地更新硬件。
但是,與微處理器革命不一樣,這種間斷性向前跳躍要求我們不再對設計流程進行分割來“治理”領域,而是要求我們統一我們的當前設計范疇,以便作為一個整體向前邁進。
如果我們想使用可編程器件作為過濾器來模糊硬件與軟件之間的界線,那么我們就需要以一種允許我們在構成最終產品的所有元件之間進行自然合作的方法來從事設計工作。我們需要能夠隨意地將功能在不同領域之間推動,并使所有元件像我們一樣保持同步。
簡言之,我們有機會提升我們整個設計流程的抽象水平。我說的不是逐步改進設計難題的各個部分,單純提高軟件開發或硬件設計的效率是不夠的。我們需要夷平豎立在各種不同設計流之間的隔墻,將我們的整體設計策略提升到新的水平。這將帶給我們一個全新的設計世界。
為此,設計師和設計工具公司都需要風物長宜放眼量,放棄其關于電子設計應當如何完成的先入之見,并開始研究如何才能將我們的各個社區團結成一個整體的問題。是時候了,我們應該從設計流程中的各個孤立領域走出來,團結起來共同克服在創造下一代智能、連接型電子產品中的挑戰。
評論
查看更多