※ 引述《CuckooBoy (阿書)》之銘言:
: 邏輯設計 大家都看哪一本呢?
: 請教教各位大大
: 看完邏輯設計
: 學會一堆用邏輯元件能組出一些電路(乘法/加法器....等等)
: 不過碰到瓶頸
: 怎麼說?
: 學了那些電路能做什麼?難到老闆真的會須要你寫加法器給他嗎?
: 就像知道 1+1=2 卻不知道對我們生活有什麼幫助
: 我指知道可以用在IC設計....
: 寫VHDL和Verilog會用到一點那些觀念,現在不是都有現成的函式可以叫.....
: 是不是有書能針對這方面有描述的更清楚
說說我的學習經驗。
在我大二時,有一門課是叫作數位設計,用的是L.PAPPAS的書。從最基礎的反相器開始
到用組合邏輯(combination logic)去兜出一個小功能的電路區塊(building block),
像編/解碼器。再來是引入的時間的觀念,從序向電路開始,同步/非同步,當然啦
此時也包含了狀態機(ASM, Algorithm State Machine,)。
老師通常會出一個描述性的題目,好比要你設計一個上/下數計數器...之類的,
你要先畫出流程圖,然後是狀態機,再來是轉換成SOP或POS,甚至用真值表去簡化,
然後尋找用符合IEEE Standard的邏輯閘(像00就是NAND閘,04是反相器,109是JK FF's,
當然囉,你也可以直接翻規格表查,看是要CMOS40系列或是TTL74系列)來實現你的
電路,或者是給你一個時序圖(Timing Diagram),像去彈跳電路(Debouncer),
要你用邏輯閘來完成。當然啦,這時的設計是不用詳細考慮到每一個閘的延遲(delay),
功率消耗(power consumption),純粹是驗證你的電路在功能上(Functionality)
是否可行。直到大三,系上開始有FPGA,Verilog/VHDL這些另一種實現電路的方式,
因為學的不精,這部份我就不細談。
目前業界,大部份的數位設計幾乎都是寫寫code(Verilog/VHDL),然後跑一下模擬與驗證
,最後合成(synthesis),甚至連電路佈局(layout)在你合成後也都幫你做好了,
但這必須有一個前提,你必須有一個完整且功能強大的的元件資料庫(Cell DataBase)
不然,你呼叫元件來兜,做出來或許功能ok,但實際上,一些參數(power)可能無法通過。
你會覺得學了邏輯設計,好像派不上用場,這個盲點只是缺少了實際應用的經驗。
因為你不會去打開加法器,一直down到transistor level去看看這顆Inverter裡面
的PMOS/NMOS的長度比要幾比幾,delay才會最小,你只是在程式上,用一段"描述句"
帶過,"諾!這行就是加法器!"。你所呼叫的函數,其實原本都是在schematca上,畫出
一堆MOS,然後跑模擬(也有可能先用手試算),驗證,再模擬....並建立一大堆
某個條件下的元件庫。
小的我是做 Full Custom IC設計,基本上,目前還是以gate level為主,
如果要到transistor level,那工程就非常巨大,光一個小電路跑個模擬可能就
要耗去不少時間,甚至畫個layout,也要一再修改到完美。不過,未來,在強調
Time to Market(上市時間),基本上,full custom 應該會慢慢式微,以後,
designer就跟 programmer一樣,寫寫程式就可以了。
最後,在業界,老闆是不會要你兜出個加法器給他,他只會要你幫他賺錢。(淚)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.66.222.12