[斧正] 關於數位電子的一些問題

看板ask-why (知識奧秘)作者 (吹笛牧童)時間16年前 (2009/07/18 15:43), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
一開始先離題至莊子秋水篇 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
文章代碼(AID): #1AONqvF5 (ask-why)
文章代碼(AID): #1AONqvF5 (ask-why)