2007年12月8日 星期六

軟體, 硬體, 還是韌體?(上)

對於一個工程師而言
寫程式是必經之路
從學校裡學寫C語言開始
就註定這輩子與程式脫離不了關係

學到目前, 本人只會兩種程式語言
一種是C, 另一種則是VHDL
前者相信大家十分熟悉
而後者對它的了解, 我想只有相關人士比較了解

VHDL是一種硬體描述語言
基本上跟所謂的"寫程式"是相同的
只是目的不一樣
C寫好的程式是在windows中執行
VHDL寫好的程式則是以實現一個硬體去執行
同樣是寫程式, 為何兩者差異性這麼大?

隨著SOC的快速竄紅
"跨平台"的特性也日驅顯見
大家都希望只學會一種程式語言就能在任何平台上執行
到目前為止, 這已不是夢想
JAVA成功的跨平台特性已為SOC打開了一扇門
接踵而至地便是大家熟悉的C語言

C語言有多好用?相信對程式設計的初學者並不了解
對它的印象應該也僅限於交作業前一天熬夜趕工的痛苦日子
但對一個SOC來說, C語言可說是它的精神所在
不管是NIOS II, ARM 或是TI的OMAP
都支援C語言的編輯
現在想想, 真有點後悔當初沒將C語言學好
不然的話我應該已在大公司上班了.......

廢話扯到這裡
不知各位看出些端倪了沒
本篇的主題是"軟體, 硬體, 還是韌體?"(先別管上中下...)
相信這三個名詞在計算機概論中都有提過
而在定義上也應該相當的明確
又為何會在這裡再次提出呢?

記得有一天在寫NIOS II 的程式時
老闆突然問我一個問題
"你現在寫的C是硬體還是軟體?"
當下我毫不考慮的回答是軟體
可是我老闆用十分懷疑的眼光看著我
"你確定是軟體嗎?"
我心想, C不就是用來寫軟體的嗎?但我沒答腔

事隔多日, 我才發現為何老闆會問這樣的問題
正如同先前所提的, 跨平台的時代已來臨
C已不僅僅是軟體, 甚至可以設計成硬體
換個方式來說, 我當時的情況, 撰寫的是NIOS II 的程式
那麼C在這裡應該是屬於硬體囉?

看到這裡, 各位是否對SOC中的程式語言感到疑惑呢?
軟體, 硬體, 還是韌體?
讓我們繼續看下去

1 則留言:

FPGA Musou 提到...

你好
我也是台灣的研究生,正在研究nios II
在你的blog學到很多
希望能跟你交個朋友一起討論
我的blog是
http://oomusou.cnblogs.com
email: oomusou@gmail.com
請問能得到您的email跟你聯絡嗎?謝謝