本書針對大一邏輯設計實驗課程設計,結合筆者實務經驗設計而成,目的主要是想要透過實際的實驗來學習一些重要的基本概念,因此,也適合對於數位電路設計有興趣的初學者快速地建立相關的基礎知識。
本書分成三大部分,第一部分是Chap 1~4,Chap 1涵蓋了實驗室常見的器材與使用上需要注意的地方,為後續的實驗進行準備;Chap 2~3帶領讀者來解讀IC的datasheet,了解裡面提到的DC特性與AC特性,並且透過實驗器材進行實際的測量操作;Chap 4則是介紹施密特觸發器輸入的特性以及RC常數是甚麼,除了繼續練習器材操作外,也介紹一個將RC充放電與施密特觸發器反向器結合所構成的簡易方波產生器,可以用來產生一個閃爍燈號。第二部分是Chap 5~6,這兩章使用的74系列的IC,由於未來都是使用硬體描述語言來設計電路,因此只使用兩章來體驗74系列的使用,Chap 5會先說明如何使用K-MAP方法來設計一個combinational電路,最後將化簡後的方程式用74邏輯閘於麵包版上實作電路;Chap 6則是練習sequential電路,先介紹七段顯示器的驅動IC,如何透過datasheet來了解它的功能並實測,再來結合計數器(counter)來做一個一位數的時鐘,也就是每秒數字會加1,如果可以延伸好幾位數就會是一個完整電子鐘。第三部分是Chap 7~15關於Verilog硬體描述語言的部分,這部分是本書主要的核心,主要目的是透過實作的方式讓讀者了解如何將想法變成程式這樣一個過程,因此學習的重點並不只是利用所提供參考程式來完成實驗,而是去思考並學習這個由簡單到複雜的過程。Chap 7主要說明Quartus安裝、本書使用的開發環境、與基本開發過程;Chap 8 是Verilog的基本語法教學,主要針對Behavioral modeling這種模式,本章開始介紹模組的觀念,因為合成之後就是一個電路,因此在寫程式的時候,腦海中就需要有程式與電路關聯的一個圖像,再配合電路圖,才有辦法決定程式該如何撰寫;Chap 9我們透過實作七段顯示器的驅動電路來熟悉一些Verilog程式語法;Chap 10則是進入sequential電路,這裡介紹了重要的blocking 與non-blocking assignment的差異,也介紹了電路的reset功能分成同步與非同步兩種;Chap 11介紹了常見的PWM訊號是甚麼,透過這樣的訊號來控制LED的亮度;Chap 12 主要介紹如何同時控制多顆七段顯示器與跑馬燈,還有bouncing effect是甚麼以及其處理的電路;Chap 13則是介紹了狀態機是甚麼並實作;Chap 14說明了與其他IC溝通的基本概念,透過讀取一顆簡單的類比數位轉換器(ADC)來練習,這裡我們採用狀態機的寫法,讓讀者可以多一個練習狀態機的實驗;Chap 15則是一個小專題,時做一個電子時鐘。
本書使用的延伸板的設計資料以及相關的範例程式均放在github上,如果是動態的實驗結果,書本上相關章節後有QR code可以掃描看實驗結果,在實驗之前研究程式碼的時候可以先看看結果,這樣會有助於理解程式的內容。