2005年11月9日

研討會心得~~

今天去台大參加嵌入式研討會,這個研討會是由嵌入式軟體聯盟發起的,經常會舉辦研討會,因為我們老闆是聯盟成員,因此我們做學生的,就被要求要參加~~

儘管如此,每次有活動還是滿讓人高興的,至少能聽聽他們說什麼,還能翹課,算是不錯啦~~

今天一整天的研討會,我只聽了10:30義隆電子和之後CIC的兩篇,獲益良多~~~

我忘了之前有沒有發過關於 FPGA/CPLD 和 Verilog/VHDL 的文章,不過簡單的說,這些都是現在數位IC發展的重要物件和語言。

FPGA/CPLD 和 Verilog/VHDL 是近年熱門的技術。

在電子科系的同學可能都有印象,曾經玩過 74 系列的 IC,其中的 AND/OR/NOT 更是必修....
再來是畫卡諾圖化減,這些.....我都忘得差不多了.... = =||

之後,不知道有多少人聽過或用過PLD這樣的東西,我印象中我是在丙級硬體裝修還是乙級硬體裝修時曾經用過,
PLD是一顆10支腳上下的IC,內部是許多預先設置好的邏輯閘,
我們可以寫類似 A and B or C = D (A,B,C,D均是自己定義的腳位)這樣的形式,然後把它燒錄進去,
它就能夠做些簡單的邏輯運算,更可以省去使用大量 74 系列邏輯 IC。

而隨著科技的進步,製程的不斷精細,PLD 進化了,變成了 CPLD,也多了 FPGA。

原則上,CPLD 和 FPGA 是類似的東西,只是內部基礎的邏輯閘不同罷了,使用上、用途上是相同的。

而這類進化的 CPLD/FPGA 應用了目前不斷變小的製程,不斷的在挑戰能夠容納的邏輯閘數目,邏輯閘數目越來越多,甚至為了稍後提到的用途,
不斷在提昇它的速度。

正因為 CPLD/FPGA 的容量提昇,一種新式的語言出現了,它叫做硬體描述語言,目前主流的硬體描述語言有Verilog和VHDL。

這類的語言變得更高階,讓我們可以使用 if / for / while / switch-case 來撰寫程式,而不用 A and B or C .......

而最終形式則依然是轉化成 AND/OR/NOT 燒錄進 CPLD/FPGA 中,或者是送進晶圓廠製成 IC。

正因為 Verilog/FPGA 讓硬體的開發更容易,因此架構也可以做得更大,目前的 CPU 均是以這種方式開發的,
不論是 Intel 的 P4 或 AMD 的 K8 都是,而往往新聞上會說目前的 P4 估計有 5000萬顆電晶體,怎麼估計出來的?
就是用 Verilog/FPGA 的軟體程式,以類似 M$ Word 的字數統計功能,將轉化成邏輯閘時的數目統計出來的。

當然啦,像 P4,K8 這樣的 CPU 所需的邏輯閘非常多,無法放入 FPGA/CPLD 中,但開發過程仍是相同的。

從這樣的發展我們可以發現,硬體的開發已經走向軟體化了,目前聽研討會時常會聽到 core 或 IP,這是啥呢?

以FPGA/CPLD 寫出來的 IC 程式,我們稱它為IP,中文叫知識產權。
而製作出來的 chip 或某個功能的 controler(像 USB,Ethernet,LCD...等)則可以稱為 core。
儘管這樣形容core有些漏洞,但大致如此,因此目前聽說 P4 要出 Dual-Core 的 CPU,意思是說一顆 P4 的 CPU 當中有兩個 P4-2.4G,
稱呼就是這麼來的,因為 core 本身意味著核心,一個網路晶片,它的 core 自然就是網路功能的controler。

而目前又有所謂的 SoC,到現在很多人還是搞不清楚啥是 SoC。
SoC 叫 System On Chip,又叫系統晶片。
但不是把作業系統放進晶片,也不是把某個系統放進去,而是類似整合式晶片的形式。

例如:一個PDA專用的ARM9 CPU,內含一顆 ARM9 的處理器,又加上 USB Controler、LCD Controler、Serial Port Controler、SD/MMC Controler,
這樣一顆CPU我們就稱它叫 SoC chip。

硬要解釋和系統晶片的關係,大家可以想想電腦的架構,電腦架構上,有 CPU、有系統匯流排、有北橋、有USB Controler...etc,
現在的 SoC chip,內部架構也十分雷同,一樣有 CPU,一樣有系統匯流排,一樣有 USB Controler...etc,因此,SoC 的稱號就出現了。

而目前的發展如何呢?
目前已經有 www.opencores.org 這類的開放 Core 的網站,打算將OpenSource的概念推廣到硬體IP上,
事實上,也的確已經有許多優秀的作品了,而且五花八門,有 RAM 的 IP,ROM 的 IP,USB 的 IP,Ethernet 的 IP ....等。

說了這麼多,和研討會有啥關係,這次研討會,義隆電子展示了它們的成果,將RAM,ROM,Ethernet,CPU 通通包進一個 0.18 製程的 chip 中,
意味著我們可以直接把 OS 燒進 chip 中,chip 開機時會自動載入 RAM 中,即可開機進入 Linux,
我實在懷疑,做成板子後,板子上除了接頭外還需要什麼呢?
也終於搞清楚為啥 OpenCores 的專案中,為啥會有 RAM 和 ROM 的 IP~~

而另一個 CIC 的人講的是關於 ESL,這東西目前很神秘,CIC 那傢伙自己也說,不確定會不會只是個騙局,
聽完後我對它的理解是,ESL 可能是指軟/硬體協同開發。

目前有個新的硬體描述語言叫做SystemC,它開發的目的是希望能夠以 C 來開發硬體,並且讓SystemC 能夠寫軟體,也能夠寫硬體。

這個新的硬體描述語言是OpenSource的專案,以電子產業長期以來都是以大公司主導的市場來看,這東西能否成為主流,或者說能否成功其實都很難說,
但它的確讓軟/硬體能夠有機會一起開發。

我認為 ESL 可能的意思是軟/硬體協同開發,可能會出現類似 Visual Studio .NET 這樣的大型專案軟體,
讓我們可以利用這樣的軟體,多人同時開發同一個專案,可能一部分人透過它寫軟體,一部分人透過它寫硬體,
這種可能性在目前看來,是有機會發生的。

2 則留言:

veronicawen 提到...

雖然你己經發佈己久, 但我還是受益良多^^
因為我是個新手...搞不懂電子的一堆專有名詞..看完你的文章,真的是學到不少東西
謝謝你的文章和詳細的說明
FPGA & CPLD的東西現在己經愈來愈進步了
如果你想要了解產品,我可以寄給你..不過我不是很懂..哈哈!!
我想你現在一定是個很厲害的人!!加油囉~

Cody 提到...

不會...
這幾年念研究所唸了非常久(4年),因為一些原因走了許多冤枉路,花了很多時間,技術方面的東西進步十分有限,尤其在嵌入式軟硬體開發的學習,沒有得到預期的成果(原本預期花4年的時間熟悉、入門,但目前還是很生疏)。
因此目前的觀念、瞭解和程度還是和寫這篇文章時差不多,沒有比較多或比較新。