台灣特殊的電子代工產業模式,真的很難給專一專長的工程師們一個穩定的長期允諾:
"只要您懂一門專業技能,就能永保您終身無慮"。.... 因為連公司本身都很難定位為
單一產品線或是單一的代工模式,您看鴻X集團下的富X康...因原來代工產品線的
市佔率下降就虧損...您說:覆巢之下豈有完卵?!...您小小工程師豈能全身而退?!
那您若覺得我若適時轉任管理職,或是有品牌公司是否就可以長命久安?
不好意思,那請您看這一期的商業週刊:薄冰上的戰將。在講誰?講哪一個戰功彪炳卻
是下台一鞠躬的科技界大事。...這裡面透露了太多台灣高科技無奈的悲哀。
所以,我們這些渺小的工程師們也只好安身立命的苦命向學,以求得自己最後一塊淨土。
-----------------------
朋友常開玩笑說:Chamber 啊...我看您就差一個FPGA 應用沒學到而已,
要不然啊...以搞電子系統來說,應該都已經沒有人可以"屌"您了...
(PS : "屌" ...此處的意思就是說...不要為了一個簡單的系統東西,就有許多外包工作要
到處求爺爺、拜奶奶的!有任何人可以妨礙到您的電子系統設計開發想法了!)
我當然是把它當一句玩笑話啊...人外有人,天外有天,我們哪敢啊。
只不過的是:在系統開發上,要成功完成一個產品設計雛形所要結合的技能倒是不少。
我們來稍微整理一下好了...
1. 寫單晶片韌體...包括組合語言或是高階C 語言。因為現在單晶片微處理器取得容易,
開發平台成熟,價位又平實,在系統發展上頗具一些彈性,所以,是比較方便的零件。
至於要取哪一種單晶片沒差,道理都是一樣的。
2. 最好懂一種傳輸介面,可以跟PC 連線最好,因為PC 的各種資源最豐富,發展平台成熟,
,所以,許多在單晶片上比較受限的功能可以移至到PC 上處理。
而傳輸介面在這幾年發展下來,當然就是USB 啊。
3. 既然寫USB 韌體傳輸程式,最好也會寫一點PC 端的應用程式...因為,有許多創意想法,
也不一定每個人的想法一致,而且許多初步的想法也都可以透過簡單的應用程式測試
就知道想法的可行性了,所以,寫一點PC 應用程式是蠻方便的。
至於,PC 應用軟體就以個人喜好為主,而我以VC 的MFC 應該就覺得夠用了。
-------
光這些軟體...在台灣這個電子生態來說,也沒啥多大價值...畢竟台灣的電子產業還是
以硬體為主,所以,最好也是要懂一點硬體相關知識或訊息。
4. 硬體包括什麼?線路設計...至少也會一點繪圖軟體啊...不管是ORCAD 或是Protel 都可以。
線路設計會不會很難?!現在學硬體設計應該還不算太難,因為現在許多電子零組件的
解決方案都很成熟了,只要選定一些相關零組件之後,相關的參考電路都可以參考。
剩下的就是一些線路匹配與調教而已。
5. 光會設計與畫電路圖也沒啥用?最好也可以Layout 電路版,否則怎麼會有實體呢?!
有時您光靠跳線或麵包洞洞版也不行的...因為有太多不確定因素躲在裡面,
現在台灣與大陸的產業分工太成熟了....只要您的PCB 版不要太複雜,
而您也知道大陸的PCB 電路版容易出什麼問題?只要在設計與Layout 上避開這些問題後,
許多PCB 廠也都會配合的發到大陸處理...費用上也不高。做作實驗還蠻方便的。
6. 硬體方面還有一個重點,就是電子零件的選用了....這一點就是包括FPGA 這一種東西了。
至於電子零組件的選用,這一點我個人就覺得蠻重要的,因為這一點的設計與零件選用
就有點考驗您在這個行業裡的"小小成就"了,因為,現在電子零件千百萬種,
各種產品規格與價格資訊到處充斥,您自己本身一定要有屬於自己的上下游關係與人脈,
因為也會有很多廠商會從大陸地區拿一些零組件回來販售,我個人不反對這種作法,
畢竟大陸是全球加工廠集中地區,全球零組件一定會到那集合的,但是重點是:
您自己本身有沒有能力去釐清這些零組件的穩定性與真實性。我相信:
只要您有這樣子實力的話,不但您的客人不反對,您的零組件供應商也不敢隨便造次的。
---------------------------
.....大致上就這樣子應該就夠了吧。
朋友在調侃我的....就是最後那一項:沒有FPGA 應用。
(還有開IC 啦,這還是要看應用市場而已,真的有那麼難嗎?!
如果真的有那個市場量的需求,還怕別人"屌"您嗎?!時空環境已經不同了。)
而這個時代,資訊發達,就差您有沒有心而已?要不然,我說過:
這些東西都是一種 Skill 而已,只要您想學就應該不成問題,當然重點還要有一個想法目標,
您的學習過程才會有效的收到一定的成果,否則,學這麼多,沒用到也沒用啊。
所以針對FPGA 這一點,我個人的見解是:這個東西的零件取得還真的有得給他麻煩一點,
知名品牌廠商不多,所以供貨都不是那麼容易,要背庫存也沒那麼容易...
您說:一般電子材料行,多多少少還會賣幾顆8051 或PIC 等MCU...
但您可以去這一種店面買得到FPGA 嗎?!...所以,要拿這一種東西回來設計電路,
除非我說的....真的有那個應用產品或是真的有客人願意買單的,否則我都覺得不合算。
當然以前的人會認為FPGA 是一種邏輯整合電路,他可以縮減您的電路設計,而且還可以
成為硬體電路保護的一環(怕別人抄襲您的硬體電路設計...),但我覺得現在:
單晶片MCU 的程式保護機制都已經作得很不錯了...而且單價也夠低了,一樣寫程式,
那就乾脆買一棵MCU 回來當邏輯電路用啊。....那我為什麼要用這一種東西呢?!
更何況現在許多IC 都號稱SOC ,他的周邊整合程度都很好了,要用到複雜的邏輯電路
也不多了。所以,FPGA 在使用上真的只有剩下比較高檔的應用市場...
或是人家拿來開發新IC 的開發平台。更何況現在FPGA 也越作越大,複雜程度也不小...
(製程進步,FPGA 也得跟得上步伐啊!所以,FPGA 越來越大顆也越貴了... )
要搞FPGA 真正的應用產品,也都已經不容易是小貓兩三隻的公司了。
(大部分主要還是工業等級的應用...)
而真正又有量大的應用市場,人家也是會開一棵IC 的...現在開IC 又不是什麼新鮮事啊。
所以啦...不管什麼MCU 或是FPGA ,主要還是要看他的應用市場在哪吧。
但在台灣這個價格殺戮戰場上,大概真的只有工業用產品才負擔得起他的成本吧!
----
那我們就回到真正的系統應用觀念上...其實,還是有一些應用是單晶片MCU 比不上
一般邏輯電路設計的功能(像FPGA 訴求的!)...
簡單來說:就是那一種Clock Trigger 的東西。這是牽涉到整體硬體電路同步信號的問題...
您的MCU 再厲害也不可能同時處理同步信號的,
因為我們的韌體程式也是一行一行指令執行的...他就沒辦法快速的同時處理。
(如果您要問我:我之前搞過那一棵FxxA 多核心MCU ?!
不好意思,他在Clock 時間軸上,也是一行一行執行的...有興趣的私底下再討論了吧!)
最簡單的應用就是類似那一種匯流排線的同步信號...
就是系統應用上,在一個Clock 內要讓所有的 I/O 都可以同步。
像是我們以前那一種單晶片外部解碼電路:解出什麼 3000H 定址為一個I/O 或是
一棵Device IC 等。這時候您就得回到邏輯電路設計了...
但是呢,老是用那些TTL 邏輯IC 也不是辦法,
所以,當然還有另一種選擇...就是以前俗稱的GAL 或PAL...應該算是第一代的FPGA 吧。
但是我們用這些東西,也不用辛辛苦苦的去學什麼VHDL 或Verilog ...我講過了:
不管是用十根手指頭或是 1 + 1 ...一路往下加,一樣都可以作得出來,重點還是在Scheme。
(PS:您不要跟我說:學FPGA 可以去IC 設計公司上班,幹嘛?開 IC 那麼好玩嗎?!)
所以呢,我還是找到另一個解決方式:就是寫ABEL 語言啊...一樣可以搞個小CPLD 的。
以下就是我之前搞過的一個案例:就是我作的那一台USB ROM Emulator。
我說現在只要您有心搞電子系統設計,什麼死人骨頭也都有人願意支持,
只怕您不想用而已。所以,我當初詢了幾家廠商,人家就把整套開發工具就給我了...
然後,在網路上Google 一下,就可以試試看了,最主要的還是我說的:
您的心中還是要有一個學習目標或產品觀念。
這樣子的學習與設計才會有效的落實與取得成果的。就像我做這一個案例,一開始是覺得
他有他市場一定的定位與需求,但也不可能需求量大到嚇人,所以,這一種設計方案
是夠用的,而且本身所承受的成本也是可以接受的...我之所以提這樣子的看法是:
您在做系統或產品設計之前,一定都要慢慢培養這一種產品開發分析與Sense,然後才能
發動自己心裡那一股學習向前的心...否則,您傻呼呼的學了一堆也沒啥用啊。
這一張圖就是他基本的開發環境...只要玩幾下應該就可以上手了吧。
至於,該如何學ABEL 語言?簡單啊,找個人家給的範例,先照著作,自修改看看。
然後把它真的移植到自己的應用條件裡...
這是一些基本宣告...我想所有的程式語言的基本觀念都是一樣的啦。
然後就是簡單的邏輯電路的語法設計...這個東西比寫單晶片MCU 的韌體還笨,
因為很簡單,每一條指令與語法都會牽涉到您的邏輯閘使用數量,
也不能讓您加加減減的一路往下寫。隨便寫寫鐵定包您(GAL)CPLD 或FPGA 不夠用的。
但是您也不知道該如何寫嗎?!
也很簡單,就是先隨便寫一寫...就可以套一些簡單的模擬條件看結果:
....看到沒,多簡單啊...啊?!看不清楚?沒關係還可以放大仔細瞧:
您要在電腦上面模擬多少次都沒關係...搞到您爽就好了。...說到這裡,我後來才知道:
那些搞IC 設計的工程師們為什麼會那麼死腦筋,也會被外面那些小姐女性們笑說是宅男?!
....
真的...作這一種東西設計的原則,他就只有一個好處,我說過:
他基本上就是一種Clcok Trigger,沒有 Clock Source ,他就沒有運作基準了,
然後您的設計也不用講求花俏,邏輯想法越簡單越好,
然後就靠快速甚至超高速的Clock 時頻...幫您一瞬間全搞定...
(畢竟硬體的速度是什麼軟體都比不上的啦。).....就像1 加到100 的答案...
您也不用什麼演算法,就一路 1+ 2(還可以拆成 1+1耶!)+3 (還是拆成1+1+1)...
往下加就對了。這種東西寫久了...會不會腦筋也變得怪怪的?!...
不知道耶,至少我作過一遍就有這種感覺耶?!
當您搞定所有應用條件模擬之後,您就可以真正的把這一個JEDEC 檔燒錄到
GAL (CPLD) 內了。然後就可以實際驗證電路...如果不對也沒關係,
還可以一直重新反覆燒錄,就跟我們寫MCU 一樣。
(不一樣的是:當您的應用FPGA 時,他真正的電路動作的量測,都需要比較高檔的
儀器設備,譬如至少都要 GHz 以上的示波器或邏輯分析儀...這些東西買起來都不便宜!)
講完了 ...在實際上,我的 USB ROM Emulator 也採用這一個設計案例。
基本上還蠻好用的啦。不過,後來在其他案例上...我也都不太愛使用,
因為真的搞久了會變笨,腦筋不容易轉彎...這跟寫一般單晶片的演算法差太多了...
或許,人家寫那一種JPEG 壓縮引擎的Verilog 或VHDL是不一樣的吧!...
不知道!沒做過...我應該也不會想去學吧。
所以,我還是要跟調侃我的朋友說一句:不是我沒有想搞 FPGA ...
真的...我光試過GAL 就不想碰那個東西了。不單只是個性上無法適應這個東西,
還真的是為系統應用的許多零件採買與庫存問題...作系統設計的方法與種類很多,
我不一定都得要全面啊....而我們在設計觀念也得要懂得靈活運用。做過一遍讓自己心裡
有個底就可以了,也不能全然的認為許多案例都非得某一種方法才行啊。
您說對不對啊?!
----
我在討論這些電子應用系統經驗時,我一直強調一點:不是光是埋頭一窩蜂跟著潮流學,
這些學習固然可以帶來您的設計功力提升,但我個人想法是:這些東西都是一種Skill,
除了這些 Skill以外,您最要的是要透過這樣子的因緣際會,讓自己的視野有所擴充,
讓自己更能掌握一些產業趨勢與未來產品觀念...也要懂得自己的個性與市場定位。
我說的:作一行一定要入一行。...否則,您老是學了一大堆有的沒有的...別人說:
現在流行這個,明天流行那個...當您好不容易學一學,結果好像都跟不上別人步伐,
就覺得很痛苦...又搞不懂學這些Skill真正背後對自己生涯規劃有何關係?!
以前我在IC 設計業時,就看過在那個風光產業興盛時期,許多畢業生明明許多基礎的
學理還都不清楚的情況下,就跟著別人喊著要學VHDL 、學IC 設計...幾年下來,
就跟著公司內資深的IC 設計工程師,轉來轉去的...甚至換工作時,都還一眼巴望著:
這些前輩工程師會不會眷顧著他,一起帶著他跳槽?結果:公司越跳越小...
畢竟這些前輩或師父也都不一定是有錢的老闆...人家怎麼可能會一直罩著您呢?
而現在開 IC 又不像我們作系統PCB版一樣,到處有人幫您洗版子,打件加工的...
要一個最實際的產品雛形,找不到金主出光罩費...就全是海市蜃樓,空中閣樓而已。
我跟您說:現在的金主都很精的啦...不見兔子不灑鷹的啦。現在我都勸朋友說:
您看人家一流M公司,這麼成熟與穩健的公司,人家外資法人也才給 12~15本益比,
您跟我說:您憑什麼跟別人要這麼高的投資報酬率呢?!....
所以,我還是要強調一點:您覺得我會學不會FPGA 嗎?! 我不會學懂Android 嗎?!
這些都不是重點,因為高科技的Skill您永遠學不完的啦...重點還是您要培養自己心中的
那一把尺,要給自己學習Skill 過程定下一個停損點,當您覺得您大致上都學得差不多了,
您就要讓這些學成果轉換成您真正的人生價值 ...讓這些學習成果能真正的回報給您過去
辛勤學習的...也一方面檢視自己自己的真正的人生價值,也是不是真正的懂得這一個行業
的各種酸甜苦辣?!有沒有入一行的懂得抓住這一行的趨勢與脈動?!
至於,要不要怨嘆自己有沒有撈到好處?!這一種事您也只能交給老天爺問說:
自己上輩子有沒有燒好香?...如果沒有,那您現在就要開始燒好香,多陪陪家人,救世濟俗...
讓您下輩子就可以撈到好處了。其他的就不要想太多了。...