[斧正] 關於數位電子的一些問題
一開始先離題至莊子秋水篇
http://www.epochtimes.com/b5/1/9/12/c5703.htm
文中提到:
以 道 觀 之 , 物 無 貴 賤 ﹔ 以 物 觀 之 , 自 貴 而 相 賤 ﹔ 以 俗 觀 之 ,
貴 賤 不 在 己 。 以 差 觀 之 , 因 其 所 大 而 大 之 , 則 萬 物 莫 不 大 ﹔
因 其 所 小 而 小 之 , 則 萬 物 莫 不 小
很多題目就是這樣
你一直針對它小的地方去談,去舉證,那它就小
一直針對它大的地方去談,那它就大
一切都是人為的解釋;其實題目未必成立咧
通常我們還會扯一個'不只我認為,比如XXX也這麼認為'
那我們再來談統計或取樣偏差吧..
------
數位觀念中的 0 或 1 ,表面上可以無誤傳達
而只要 0 或 1 的位數夠高,便是傳整張 CD 的音樂也不會失誤
我可以說這個對,也可以說錯
模仿秋水篇的語氣可以說:以其對而對之,則萬物莫不對;以其錯而錯之,則萬物莫不錯 XD
重點不是在吵架,也不要扯到人身攻擊
而是去了解說對的人是在'對'哪一個部份;反之又錯哪一部份
要不然不長篇大論哪講得完?
以下的段落,全有錯誤的地方;就看要不要挑骨頭
數位其實是一種人為的認定,在自然界中並不存在
在 5V 系統中,我們可以認定 2.5V 以上為 1,以下為0
但在 10V 系統中,5V 以上為1,以下為0
所以你根本不能給定我一個電壓就說它是 1 還是 0
限縮範圍只討論 5V 系統時,為了良好的雜訊免疫邊界
我們可能說 3V以上為 1,2V以下為0;而 3~2V之間為不確定,不應該出現
如果加個史密特觸發器,我可以讓這個不確定區間跟隨上一個值
在實作上,至少有 TTL 及 CMOS 兩大晶片群,它們認定的電壓是不同的(同樣運作5V內時)
所以 TTL 的輸出腳直接接到 CMOS 的輸入腳會根本無法傳遞訊號
TTL 說 1,CMOS 可能聽到'不確定'
http://forum.phy.ntnu.edu.tw/demolab/phpBB/viewtopic.php?topic=13205
所以數位一定可以無誤嗎?(除掉打雷閃電的雜訊外)
不..反過來說,不好好處理,數位一定會失誤
所有的數位訊號能不能被傳遞,還是要回到類比領域來討論
到這裏會發覺,和神經元及化學傳遞,也是有所同有所不同(不管我怎麼說都可以鞭 XD)
那我就不下結論了,大家自己去領會想用什麼字眼
不過人類在設計電子世界時模仿很多自然界的東西
所以尺寸有大小,精粗不同;但真的很像
TTL 不能直接接 CMOS,那怎麼辦?
中間要有準位調整線路,偏壓
把 TTL 的 1 (2.2V以上),轉換成 CMOS 可以接受的 1 (70%*Vcc=3.5V)
這中間是類比工程師的工作,而數位邏輯的處理是數位工程師的工作
在台灣,類比工程師薪水高很多
再來,我們提到電路設計的一些問題
邏輯概念中,我們知道一切邏輯運算可用 and,or,not 來代表
如果我能做出這三種元件,那麼就可以實現數位邏輯
在電子訊號中做出,就可以做邏輯電路
在油壓中做出,可以做油壓邏輯
在光學訊號中做出,可以做光學邏輯
當然我可以用轉換元件全部轉到電子來做
比如 C= A & B 這樣的邏輯,在光學邏輯裏是說 A,B 兩點都有光,則 C 射出光
那我可以在 A,B 兩點都擺光敏元件,在 C 擺 LED 發光模組
中間的邏輯全用電來做;不過我是說有基礎光學元件後,可以更直接不經光電轉換來做
油壓邏輯以前我是學過的,真的不必用油壓及電子轉換
全部用油壓就做出 and,or,not
但現在這還是主流嗎?一切都是成本的考量
就好像汽車方向盤的傳動,一直都是直接機械傳動
後來終於推出把方向盤角度轉成電訊號,直接數學處理,再把結果傳至前輪轉向的方式
(這種車一但電瓶沒電就轉不動方向盤,因為沒有直接機械連結)
問題都不在可不可以,而在划不划算
油壓及光學可以轉至電訊處理(也許因為最划算)
那電怎麼辦?電就非得做出來不可了
我們真的用三種元件來做嗎?可以說對,也可以說不對
其實這三種元件都可以用 NAND(not and) 來組合
NAND: C= !(A&B)
NOT: C= !(A&A) = !A 意指把兩腳輸入併接在一起
AND: C= !NAND(A,B) = A & B 先做出 NOT,再把 NOT 和 NAND 混合運用
OR: C= NAND(!A,!B) = A | B 先把 A,B 都取 NOT,再把結果放進 NAND
簡單畫個表列出所有組合就能證明,這就是 OR 邏輯
因此,and,or,not 通通可以用 NAND 組合
我只要設計出 NAND,就三種都能組合出來了
在實務上是有這樣做的,硬體線路的設計可以像副程式一樣去兜
而我的最基本元件是 NAND,這樣可以縮短設計的時間,但未必是最快的電路
一些更特別的邏輯可以直接被設計出來
比如N接點輸入的 AND,Multi AND
Z = AND(A,B,C,D,E) 一個直接五點輸入的 AND 線路 ----方法 1
= A & ( B & ( C & ( D & E ) ) ) ----方法 2
如果我不想直接設計五端點輸入,就得用兩端點輸入做四次
而如果處理一個 and 運算要一秒,這結果要四秒才出來
= ((A & B) & (C & D)) & E ----方法 3
設計方法不只一種,這種時間可以重疊,這個三秒就出來了
但 Multi-AND 是說,我一秒就要同時處理完多端點 AND 運算呀 XD
以上在科班是基本概念
而我的意思是:
1.我們不一定用最划算的邏輯在設計,有時只為了精簡基本元件
全都用 NAND 就設計全部,這在實務上是存在的
2.如果你嫌這樣的'不划算'實在太誇張,那麼從頭打造一個基本元件是可以的
試想像 1024 個端點輸入的 AND 邏輯,全串接在一起要 1023 秒(方法2)
但它也是 2 的十次方,可以用(方法 3) 10秒做出來
更甚至你可以用方法 1,在 1秒內做出來
(至於怎麼做,我不必給線路吧..)
以上順便回了很久以前的問題
電子世界真的不是用'最划算'在設計的
或者說,著眼的最划算不一樣
有人要求執行速度最快
有人要求使用元件數最少
有人要求基本元件種類最少,讓工程師腦袋可以最輕鬆
當只用一種 NAND 基本元件時,我們可以把整個 IC 裏用陣列的方式,塞滿 NAND
然後我們只計較塞入幾個 NAND (一千個?一萬個?一億個?)
以及 NAND 間的線如何連接;這的確簡化了開發 IC 的腦力
後來我們把這些線在出廠時全部連上
然後 IC 的使用者(開發端工程師)再把不想要的線燒斷,留下想用的線
這動作就是燒程式,且是只能燒一次的程式(燒斷的線連不回)
所以基本元件種類少,還是有點用處的;可以在程式不確認時就先出貨
而基本元件種類多的話(比如訂做 Multi-AND) ,可以有較好的效率
就連 and,or,not 都曾經不想做三個不同的基本元件,而只用 NAND 組出來
那麼有什麼浪費是不可以的?
覺得可以就去做,沒人買就被市場淘汰
如此而已
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.179.152
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
ask-why 近期熱門文章
PTT職涯區 即時熱門文章
10
18