買這商品的人也買了...
-
$1,200$1,176 -
$580$458 -
$680$537 -
$980$774 -
$920$727 -
$1,029Operating System Concepts, 6/e (Windows XP Update)
-
$860$731 -
$560$504 -
$1,860$1,767 -
$620$558 -
$780$741 -
$750$638 -
$650$553 -
$760$600 -
$580$458 -
$590$466 -
$620$527 -
$690$538 -
$720$562 -
$780$663 -
$720$569 -
$290$261 -
$750$675 -
$560$504 -
$390$304
相關主題
商品描述
-
以 ASM 為本書設計流程重心,較其它相關書籍不同之處在於本書使用 implicit Verilog 的程式碼撰寫方式,例舉了PDP-8 和 ARM 機器為說明範例以及其它相關範例,使讀者更清楚明白本書欲傳達的設計理念。適用於二技二年級、四技三、四年級和五專五年級電子科之學生。
- 目錄
第1章 為什麼使用 Verilog 做電腦設計
1.1 什麼是電腦設計?1-1
1.1.1 一般用途的電腦1-1
1.1.2 特殊用途的電腦1-2
1.2 電腦/數位科技的簡史1-2
1.3 轉換演算法為硬體1-4
1.4 硬體描述語言1-4
1.5 需求的背景1-5
1.6 結 論1-5
第2章 設計演算法狀態機(ASM)
2.1 什麼是一個 ASM 圖?2-1
2.1.1 ASM 圖的指令2-3
2.1.1.1 設定(asserting)一個一位元的信號2-3
2.1.1.2 輸出多位元的指令2-4
2.1.1.3 暫存器轉移2-5
2.1.2 ASM 圖中的決策(decision)2-7
2.1.2.1 關連性2-7
2.1.2.2 外部狀態2-8
2.1.3 ASM 的輸出與輸入2-9
2.1.3.1 ASM 輸出2-10
2.1.3.1.1 外部狀態輸入2-10
2.1.3.1.2 外部資料輸入2-10
2.1.3.2 ASM 的輸出2-11
2.1.3.2.1 外部命令輸出2-11
2.1.3.2.2 外部資料輸出2-12
2.1.4 Goto-less 風格2-12
2.1.5 由上而下設計2-13
2.1.5.1 純行為模式2-13
2.1.5.2 混合模式2-14
2.1.5.3 純架構模式2-15
2.1.6 自動化設計2-16
2.2 純行為模式的例子2-16
2.2.1 按鈕介面2-17
2.2.2 加入軟體相依性的 ASM2-19
2.2.3 化簡 TEST 狀態2-22
2.2.4 化簡 INIT 狀態2-24
2.2.5 儲存商數2-26
2.2.6 迴圈內的變化2-27
2.2.7 化簡 ZERO3 狀態2-31
2.3 混合模式的例子2-33
2.3.1 第一個例子2-34
2.3.2 第二個例子2-37
2.3.3 第三個例子2-38
2.3.4 系統化對以 ALU 為主的架構2-40
2.4 純架構的例子2-41
2.4.1 第一個例子2-41
2.4.2 第二個例子2-43
2.5 階層式設計2-44
2.5.1 如何純才是"純"呢?2-47
2.5.2 第一個例子的階層2-47
2.6 結 論2-50
2.7 進階閱讀2-50
2.8 習 題2-51
第3章 VERILOG 硬體描述語言
3.1 模擬與合成比較3-1
3.2 Verilog 與 VHDL 的比較3-2
3.3 測試程式的角色3-3
3.4 Verilog 行為模式的特色3-4
3.4.1 變數宣告3-4
3.4.2 行為模式 Verilog 中合法的敘述3-6
3.4.3 運算式3-7
3.4.4 方 塊3-8
3.4.5 常 數3-10
3.4.6 巨集、引入檔案與註解3-10
3.5 Verilog 結構上的特色3-11
3.5.1 引用多個邏輯閘3-12
3.5.2 與行為模式程式的比較3-13
3.5.3 錯誤的連線:四-值的邏輯3-14
3.5.3.1 高阻抗3-14
3.5.3.2 未知值3-15
3.5.3.3 行為模式程式上的使用3-16
3.6 $time3-18
3.6.1 多方塊3-18
3.6.2 順序與$time 的關係比較3-19
3.6.3 程序排程與死結3-19
3.7 時間控制3-20
3.7.1 #時間控制3-20
3.7.1.1 在測試程式中用#3-21
3.7.1.2 用#建立組合邏輯的模型3-22
3.7.1.3 用#來產生系統時序供模擬使用3-24
3.7.1.4 不利用$time 來安排程序3-24
3.7.2 @時間控制3-25
3.7.2.1 用@建立有效率的組合邏輯行為模型3-26
3.7.2.2 建立同步暫存器的模型3-27
3.7.2.3 建立同步邏輯控制器的模型3-28
3.7.2.4 @使用在除錯顯示3-29
3.7.3 wait3-30
3.8 有時間控制的指定3-31
3.8.1 限制(blocking)程序指定3-32
3.8.2 非限制(non-blocking)程序指定3-32
3.8.2.1 用<=取代 RTN 在模擬產生的問題3-33
3.8.2.2 模擬中適當地使用<=代換 RTN3-34
3.8.2.3 轉換少用 goto 的 ASM 圖至行為模式 Verilog3-36
3.8.2.3.1 隱性(implicit)與顯性(explicit)格式3-36
3.8.2.3.2 確認無窮迴圈3-37
3.8.2.3.3 辨識 if else3-38
3.8.2.3.4 辨認另一種情況3-40
3.8.2.3.5 辨識 while 迴圈3-41
3.8.2.3.6 辨識 forever3-43
3.8.2.3.7 轉換成有一個 if 在 forever 底部3-45
3.9 任務(task)與函數(function)3-46
3.9.1 任 務3-47
3.9.1.1 任務例子3-48
3.9.1.2 enter_new_state 任務3-49
3.9.2 函數(Functions)3-51
3.9.2.1 real 函數的例子3-52
3.9.2.2 用函數來建立組合邏輯的模型3-52
3.10 結構化 Verilog,模組與埠(port)3-54
3.10.1 input 埠3-55
3.10.2 output 埠3-55
3.10.3 inout 埠3-56
3.10.4 前後相似:插腳(pin)與埠3-56
3.10.5 用行為物件定義模組的例子3-57
3.10.6 用結構化物件定義模組的例子3-59
3.10.7 更多行為模式與結構化物件的例子3-60
3.10.8 階層式名稱3-61
3.10.9 資料結構(data structures)3-62
3.10.10 參 數3-65
3.11 結 論3-66
3.12 進階閱讀3-67
3.13 習 題3-68
第4章 三階段的 Verilog 設計方法
4.1 純行為性的例子4-2
4.1.1 四種狀態的除法器4-2
4.1.1.1 原始碼的概觀4-2
4.1.1.2 Slow_division_system 細節4-4
4.1.2 Verilog 捕捉錯誤4-7
4.1.3 測試程式的重要性4-8
4.1.4 增加的純行為的例子4-10
4.1.5 兩階段除法器的純行為階段4-15
4.2 兩階段除法器的混合階段(Mixed Stage)4-17
4.2.1 建造塊狀器具4-17
4.2.1.1 enabled_register 埠列4-18
4.2.1.2 counter_register 埠列4-18
4.2.1.3 alu181埠列4-19
4.2.1.4 comparator 埠列4-20
4.2.1.5 mux2埠列4-20
4.2.2 混合階段(Mixed stage)4-21
4.2.3 由除法機器架構4-21
4.2.4 控制器應用於除法機器4-25
4.3 兩個狀態除法器的純結構階段4-28
4.3.1 純結構控制器4-29
4.3.2 next_state_logic 模組4-30
4.3.3 state_gen函數4-30
4.3.4 測 試4-32
4.3.5 似乎是工作的4-33
4.4 控制器的階層式精練4-34
4.4.1 一個邏輯方程式方法4-34
4.4.2 最後:一個 netlist4-36
4.4.3 合成後(post-synthesis)模擬4-37
4.4.4 重置(Resetting)現在的狀態4-40
4.5 結 論4-42
4.6 習 題4-43
第5章 進階的 ASM 技巧
5.1 摩爾與米利5-2
5.1.1 行為機器的例子5-2
5.1.2 混合機器的例子5-4
5.1.3 結構性機器的例子5-5
5.2 除法機器的米利版本5-5
5.2.1 再次消除 INIT 狀態5-5
5.2.2 結合 COMPUTE1 及 COMPUTE2 狀態5-7
5.2.3 條件式地載入r25-8
5.2.4 初期設定 READY5-9
5.3 轉換米利 ASMs 成為行為 Verilog5-10
5.4 轉換複雜的(goto)ASMs 成為行為 Verilog5-12
5.4.1 觸及底部的測試迴圈5-13
5.4.2 在決策內的時間控制5-15
5.4.3 任意的 gotos5-18
5.5 轉換狀況命令訊號成為 Verilog5-18
5.6 單一狀態米利 ASMs5-20
5.7 結 論5-21
第6章 兼顧速度和成本的設計
6.1 傳遞延遲6-2
6.2 決定時脈頻率的因素6-2
6.3 netlist 傳遞延遲的例子6-3
6.3.1 一個有優先順序的最差時序分析6-5
6.3.2 模擬時序分析6-7
6.3.3 危機(Hazards)6-8
6.3.4 進階的邏輯閘層級模型化6-10
6.4 抽象化傳遞延遲6-12
6.4.1 用於傳遞延遲之不適當模型6-12
6.4.2 在 Verilog 的事件變數(Event Variables)6-15
6.4.3 disable 敘述6-16
6.4.4 用一PERIOD 參數的 clock6-18
6.4.5 在除法機器的傳遞延遲6-18
6.5 單一週期,多週期及管線6-20
6.5.1 平方多項式計算機例子6-21
6.5.2 行為的單一週期6-22
6.5.3 行為的多週期6-26
6.5.4 在管線化的第一個方法6-29
6.5.5 管線化 ma6-32
6.5.6 沖洗管線6-34
6.5.7 填滿管線6-34
6.5.8 用於平方計算器的架構6-38
6.5.8.1 單一週期架構6-38
6.5.8.2 多週期架構6-41
6.5.8.3 管線的架構6-43
6.6 結 論6-48
6.7 進階閱讀6-50
6.8 習 題6-50
第7章 One Hot 的設計
7.1 摩爾 ASM 的 one-hot 設計7-1
7.1.1 長方形/正反器7-2
7.1.2 箭頭/線7-2
7.1.3 連接在一起/或(OR)閘7-2
7.1.4 決策/解多工器7-2
7.1.5 one hot 方法的概要7-3
7.1.6 第一個範例7-4
7.2 Verilog 轉移到 one hot7-7
7.2.1 持續指定(continuous assignment)7-7
7.2.2 使用持續指定的 one hot 設計7-10
7.2.2.1 One hot 中的 if else7-10
7.2.2.2 if 在 one hot 中的轉換7-14
7.2.2.3 while 在 one hot 中的轉換7-16
7.3 在 one hot 機器中的米利(Mealy)命令7-16
7.4 帶有米利<=的摩爾命令訊號7-17
7.4.1 舉例說明7-18
7.4.2 純行為的兩個狀態除法器7-22
7.4.3 混合的兩個狀態除法7-23
7.5 可 disable 的 forever 底部測試回圈(bottom testing loops)7-2
7.6 結 論7-26
7.7 進階閱讀7-27
7.8 習 題7-27
第8章 一般用途電腦
8.1 簡介與歷史8-1
8.2 機器的結構8-4
8.2.1 CPU、周邊和記憶體8-4
8.2.2 記憶體:資料和儲存程式8-4
8.2.2.1 單向(unidirectional)匯流排對雙向(bidirectional)匯流
8.2.2.2 決定性(deterministic)對非決定性(non-deterministic)
的存取時間8-6
8.2.2.3 同步(synchronous)對非同步(asynchronous)8-7
8.2.2.3.1 同步(synchronous)記憶體8-7
8.2.2.3.2 非同步的記憶體8-9
8.2.2.4 靜態對動態記憶體8-10
8.2.2.5 揮發性對非揮發性記憶體8-10
8.2.3 記憶體技術的歷史8-11
8.3 提取/執行的行為8-13
8.3.1 有限的指令集8-14
8.3.1.1 PDP-88-15
8.3.1.2 PDP-8的歷史8-15
8.3.1.3 部份的指令集8-15
8.3.1.4 提取/執行上所需要的暫存器8-16
8.3.1.5 提取/執行的 ASM8-17
8.3.1.6 機器語言程式範例8-20
8.3.2 加入更多的指令集8-23
8.3.2.1 額外追加指令的 ASM8-25
8.3.2.2 追加指令的狀態8-25
8.3.2.2.1 合併指令描述(concatenation)8-27
8.3.2.2.2 追加記憶體無關的指令
(non-memory reference instructions)8-29
8.3.2.2.3 追加記憶體存取的指令8-30
8.3.2.2.4 略過(skip)指令8-31
8.3.2.3 界面的額外狀態8-33
8.3.2.4 記憶體為分離式的8-33
8.3.2.4.1 機器的最上層(top-level)結構8-34
8.3.2.4.2 純行為的 ASM 當記憶體是分離式8-35
8.3.2.5 我們的老朋友:除法8-35
8.3.2.5.1 完整幼稚除法演算法的 C 程式碼8-37
8.3.2.5.2 軟體的使用界面8-37
8.3.2.5.3 在機器語言中的幼稚除法程式8-38
8.3.2.5.4 分析幼稚除法軟體8-40
8.3.2.5.5 與專用硬體做比較8-41
8.3.2.5.6 硬體和軟體之間的取捨8-42
8.4 混合的提取/執行8-44
8.4.1 有系統的方法設計架構8-44
8.4.2 暫存器種類的選擇8-46
8.4.3 剩下的暫存器轉移8-49
8.4.4 把架構組合起來8-50
8.4.5 實現決策(decisions)8-53
8.4.6 混合的 ASM8-53
8.4.7 方塊圖8-55
8.5 記憶體的階層8-56
8.5.1 快取記憶體8-57
8.5.2 記憶體的交握(handshaking)8-61
8.5.3 簡單記憶體階層的架構
(architecture for a simple memory hierarchy)8-6
8.5.4 快取的大小對幼稚除法器程式的影響8-70
8.6 結 論8-70
8.7 進階閱讀8-71
8.8 習 題8-72
第9章 一般用途處理器的管線化
9.1 第一個管線嘗試9-2
9.2 獨立指令的範例9-4
9.3 資料相依(data dependencies)9-6
9.4 資料向前傳遞(data forwarding)9-7
9.5 控制相依(control dependencies):實現 JMP9-9
9.6 在管線中的略過指令(skip instruction)9-12
9.7 我們的老朋友:除法9-15
9.8 多埠記憶體(multi-port memory)9-19
9.9 管線化 PDP-8架構9-21
9.10 結 論9-22
9.11 進階閱讀9-22
9.12 習 題9-23
第10章 RISC 處理器
10.1 CISC vs. RISC 的歷史10-2
10.2 ARM 處理器10-2
10.3 普林斯頓VS哈佛10-3
10.4 暫存器檔案 (Register file)10-3
10.5 三個運算元比一個快10-4
10.6 ARM 的部分指令集10-6
10.6.1 資料處理指令10-6
10.6.2 分支指令10-7
10.6.3 程式狀態暫存器 (Program status register,psr)10-8
10.6.4 條件執行10-9
10.6.5 立即運算元 (Immediate operands)10-10
10.7 多週期的實現10-11
10.7.1 以 SWI 作為停止(halt)指令10-12
10.7.2 提取狀態10-13
10.7.3 condx 函數10-13
10.7.4 資料處理10-14
10.7.4.1 dp 函數10-14
10.7.4.2 程式狀態暫存器(psr)的設定條件10-14
10.7.4.3 巨集的使用10-14
10.7.5 分 支10-15
10.7.5.1 乘以四10-16
10.7.5.2 在多週期的架構中為何要加四?10-16
10.7.5.3 正負號延伸巨集10-16
10.7.6 以 Verilog 來完成多週期的實現10-16
10.8 管線化的實現10-19
10.8.1 三級管線化的 ASM10-19
10.8.2 米利 ASM10-21
10.8.3 兩個平行事件10-21
10.8.4 適當的使用 <=10-22
10.8.5 管線化實現的 Verilog 程式10-23
10.9 超純量設計10-24
10.9.1 多埠暫存器檔案10-25
10.9.2 交錯式記憶體10-26
10.9.3 相依關係的範例10-27
10.9.4 推測性執行10-28
10.9.5 暫存器更名 (Register renaming)10-29
10.9.5.1 第一個特殊用途硬體的更名範例10-30
10.9.5.2 第二個特殊用途硬體的更名範例10-31
10.9.6 超純量的 ASM 圖10-34
10.9.7 三個平行事件10-34
10.9.7.1 管線化、平行以及推測執行10-34
10.9.7.2 處理暫存器更名10-37
10.9.8 超純量 ARM 處理器的 Verilog 程式10-38
10.9.8.1 depend 函數10-38
10.9.8.2 將 ASM 轉成 Verilog10-40
10.9.8.3 程式涵蓋率 (Code coverage)10-40
10.9.8.4 將 `ifdef 用於"cover"任務10-41
10.9.9 測試程式10-43
10.9.9.1 R15的測試10-43
10.9.9.2 我們的老朋友:除法10-45
10.9.9.3 較快的幼稚除法10-48
10.9.9.4 使用條件執行指令的幼稚除法10-49
10.10 比較各種幼稚除法的實現方法10-52
10.11 結 論10-55
10.12 進階閱讀10-56
10.13 習 題10-56
第11章 邏輯合成
11.1 邏輯合成的概觀11-1
11.1.1 設計流程11-2
11.1.2 測試方法11-4
11.1.3 本章所用到的工具軟體11-6
11.1.4 M4-128/64 CPLD11-6
11.2 可合成的 Verilog 樣式(styles)11-8
11.2.1 暫存器的行為合成11-8
11.2.2 組合邏輯的行為合成11-8
11.2.3 隱性狀態機器的行為合成11-9
11.2.4 顯性狀態機器的行為合成11-9
11.2.5 結構式的合成11-9
11.3 合成 enabled_register11-10
11.3.1 依據名字來呼叫11-11
11.3.2 PLSynthesizer 所提供的模組11-12
11.3.3 以 PLDesigner 做特定製程的對應11-12
11.3.4 PLDesigner 所提供的模組11-14
11.3.5 合成後的設計11-16
11.3.6 對應到特定的接腳11-18
11.4 合成一個組合邏輯的加法器11-19
11.4.1 測試程式11-21
11.4.2 case 的不同寫法11-22
11.5 合成隱性的位元串列式加法器11-25
11.5.1 第一個位元串列加法器的嘗試11-26
11.5.2 隱性寫法合成所需的巨集11-27
11.5.3 利用移位暫存器的方法11-27
11.5.4 使用迴圈11-28
11.5.5 測試程式11-30
11.5.6 合 成11-31
11.6 防止開關彈跳(switch debouncing)
及單一脈衝化(single pulsing)11-35
11.7 顯性的防彈跳機器11-37
11.8 全部放在一起:結構式合成11-39
11.9 位元串列的 PDP-811-40
11.9.1 位元串列 CPU 的 Verilog 程式11-41
11.9.2 測試程式11-45
11.9.3 我們的老朋友:除法11-46
11.9.4 合成及製造 PDP-811-47
11.10 結 論11-48
11.11 進階閱讀11-49
11.12 習 題11-49
附錄 A 機器及組合語言
附錄 B PDP-8指令
附錄 C 組合邏輯的基本元件
C.1 真實情況的模型附 C-2
C.1.1 理想的組合邏輯模型附 C-2
C.1.2 最壞情況的延遲模型附 C-2
C.1.3 實際邏輯閘層次的延遲模型附 C-3
C.1.4 實際延遲模型附 C-3
C.2 匯流排附 C-3
C.2.1 單向匯流排附 C-3
C.2.2 佈局及繞線附 C-5
C.2.3 高位觸發(active high)對低位觸發(active low)附 C-5
C.2.4 速度及成本附 C-6
C.2.5 匯流排上的廣播附 C-7
C.2.6 次匯流排(subbus)附 C-8
C.3 加法器附 C-10
C.3.1 進位輸出附 C-10
C.3.2 速度及成本附 C-11
C.4 多工器附 C-12
C.4.1 速度及成本附 C-12
C.5 其他算術元件附 C-13
C.5.1 加一器附 C-13
C.5.1.1 速度及成本附 C-13
C.5.2 一補數器(ones complementor)附 C-14
C.5.2.1 速度及成本附 C-14
C.5.3 二補數器(twos complementor)附 C-14
C.5.4 減法器附 C-14
C.5.5 移位器附 C-15
C.5.6 乘法器附 C-17
C.5.6.1 速度及成本附 C-17
C.5.7 除 法附 C-17
C.6 算術邏輯單元附 C-17
C.6.1 邏輯運算附 C-19
C.6.2 算術運算附 C-20
C.6.3 狀 態附 C-21
C.7 比較器附 C-21
C.7.1 速度及成本附 C-22
C.8 解多工器附 C-23
C.8.1 速度及成本附 C-23
C.8.2 解多工器的錯誤使用附 C-24
C.9 解碼器附 C-25
C.9.1 速度及成本附 C-27
C.9.2 其他種類的解碼器附 C-27
C.10 編碼器附 C-27
C.11 可程式元件附 C-28
C.11.1 唯讀記憶體附 C-28
C.11.2 CPLD 附 C-30
C.12 結 論附 C-30
C.13 進階閱讀附 C-31
C.14 習 題附 C-31
附錄 D 循序的邏輯電路
D.1 系統時脈附 D-1
D.2 時序圖附 D-2
D.3 同步邏輯附 D-3
D.4 匯流排時序圖附 D-4
D.5 D 型暫存器附 D-5
D.6 致能的 (Enabled) D 型暫存器附 D-7
D.7 上數暫存器附 D-8
D.8 上數/下數計數器附 D-10
D.9 移位暫存器(shift register)附 D-11
D.10 沒有使用的輸入附 D-13
D.11 高度特殊的暫存器附 D-15
D.12 更進一步的研讀附 D-16
D.13 練 習附 D-16
附錄 E 三態裝置(Tri-state Devices)
E.1 開 關附 E-1
E.1.1 在非三態閘中開關的使用附 E-2
E.1.2 在三態閘中開關的使用附 E-3
E.2 在結構 Verilog 中的單一位元三態閘附 E-3
E.3 匯流排驅動器(Bus drivers)附 E-5
E.4 三態的用途附 E-6
E.4.1 三態擴充器當作 mux 附 E-6
E.4.11 Verilog 如何處理值邏輯附 E-7
E.4.1.2 tri 的宣告附 E-8
E.4.2 雙向的匯流排附 E-9
E.4.2.1附 E-9
E.4.2.2 ready/write 暫存器附 E-10
E.5 進階閱讀附 E-12
E.6 習 題附 E-12
附錄 F 工具與資源
F.1 Prentice Hall 出版社附 F-1
F.2 VeriWell 模擬器附 F-1
F.3 M4-128/64 demoboard 附 F-2
F.4 繞線器附 F-2
F.5 VerilogEASY 附 F-3
F.6 PLDesigner 附 F-3
F.7 VITO 附 F-4
F.8 Open Verilog International (OVI)附 F-5
F.9 其他 Verilog 與提供可程式邏輯之廠商附 F-5
F.10 PDP-8附 F-5
F.11 ARM 附 F-6
附錄 G ARM 指令集
G.1 有效率的指令集附 G-1
G.2 指令集總結附 G-2
附錄 H 無限制程序指定的另種觀點
H.1 循序邏輯電路附 H-2
H.2 $strobe附 H-3
H.3 慣性與傳輸延遲之比較附 H-4
H.4 順序保持附 H-4
H.5 進階閱讀附 H-5
附錄 I 術語整理
附錄 J 隱性格式 Mearly 的限制
J.1 進階閱讀附 J-3