新書推薦:
《
严复与福泽谕吉启蒙思想比较(王中江著作系列)
》
售價:NT$
750.0
《
甘于平凡的勇气
》
售價:NT$
225.0
《
存在与结构:精神分析的法国转向——以拉康与萨特为中心
》
售價:NT$
240.0
《
生成式人工智能:AIGC与多模态技术应用实践指南
》
售價:NT$
495.0
《
石油帝国的兴衰:英国的工业化与去工业化
》
售價:NT$
445.0
《
古典的回響:溪客舊廬藏明清文人繪畫
》
售價:NT$
1990.0
《
根源、制度和秩序:从老子到黄老学(王中江著作系列)
》
售價:NT$
550.0
《
索恩丛书·北宋政治与保守主义:司马光的从政与思想(1019~1086)
》
售價:NT$
345.0
|
內容簡介: |
本書深入淺出地介紹Verilog硬體描述語言的特性,以及電腦輔助設計工具CAD。
Verilog語言是一種一般性的硬體描述語言,它的語法與C語言相似,易學易用。本書是以邏輯合成的方式寫成的,可讓剛開始使用Verilog來設計數位電路的新手們,用起來很上手。
本書目的在於藉由學習Verilog語言的過程中去瞭解硬體描述語言的設計概念,進而完成設計數位晶片的最終目標。最新版本中新增UDP,且增強Verilog2001特色。
|
目錄:
|
軟硬體版權聲明
前言
作者序
第一章 數位電路的設計觀念
1.1 數位系統的實作方法 1-2
1.2 典型的「半訂製」(SemiCustomize)IC設計流程 1-9
第二章 Verilog硬體描述語言簡介
2.1 硬體描述語言(HardwareDescriptionLanguage,HDL)和傳統
數位電路設計的優缺點比較 2-2
2.2 Verilog硬體描述語言(VHDL)的特性 2-4
2.3 電腦輔助設計工具(CAD)-XilinxVivado的介紹 2-4
2.4 PrimitiveCell 2-6
2.5 Verilog模組整合與模擬的流程(SynthesisandSimulationFlow)
-使用XilinxVivado 2-9
2.5.1 Verilog電路描述設計流程使用XilinxVivado…………….2-9
2.6 VHDL電路模擬軟體-ModelSim的介紹 2-37
2.7 VHDL電路設計與模擬的流程(VHDLdesigninandsimulationflow)
-使用ModelSim 2-39
2.7.1 編譯Verliog電路描述 2-39
2.7.2 VHDL電路的模擬 2-41
2.8 Verilog模組合成與模擬的流程(SynthesisandSimulationFlow)
-使用Synopsys的DesignerAnalyzer 2-45
第三章 Verilog的模組與架構
3.1 Verilog的輸出入埠敘述 3-2
3.1.1 Verilog的模組架構 3-2
3.1.2 input(輸入埠)敘述 3-3
3.1.3 output(輸入埠)敘述 3-3
3.1.4 inout(雙向埠)敘述 3-3
3.1.5 輸出入埠的連接規定 3-6
3.2 Verilog資料型態(DataTypes) 3-7
3.2.1 四種數值位準(FourValueLevel) 3-7
3.2.2 wire(接線)敘述 3-8
3.2.3 wand(Wired-AND型接線)、wor(Wired-OR型接線)敘述 3-9
3.2.4 reg(暫存器)敘述 3-13
3.2.5 選用wire(接線)或reg(暫存器)的敘述的時機 3-14
3.2.6 向量(Vectors)表示法 3-15
3.2.7 陣列(Arrays)表示法 3-15
3.2.8 記憶體(Memory)表示法 3-15
3.2.9 位元選擇(Bit-Selects)與部份選擇(Part-Selects) 3-16
3.3 Verilog的時間控制(TimingControl) 3-17
3.4 Verilog的四大模型(Model) 3-19
3.5 Verilog的模組(Module) 3-22
3.6 Verilog的語法協定 3-26
3.7 階層式設計(HierarchyDesign)的觀念 3-31
3.7.1 由低至高與由高至低的設計方式 3-31
3.7.2 埠對應(PortMapping)連接的方式 3-33
第四章 能否用於電路合成的Verilog語法
4.1 不能用於電路合成的Verilog語法 4-2
4.1.1 不能用於電路合成的「敘述」 4-2
4.1.2 不能用於電路合成的「運算子」 4-2
4.1.3 不能用於電路合成的「邏輯閘型態」 4-3
4.1.4 其他不能用於電路合成的建構方式 4-6
4.2 能用於電路合成的Verilog語法 4-7
4.2.1 能用於電路合成的「敘述」 4-7
4.2.2 能用於電路合成的「運算子」 4-8
4.2.3 能用於電路合成的「邏輯閘」 4-32
4.2.4 用可以電路合成的「邏輯閘」設計出電路圖Schematic 4-34
第五章 Verilog的敘述
5.1 Verilog常用的敘述 5-2
5.2 assign敘述 5-3
5.3 always敘述 5-5
5.4 if敘述 5-7
5.5 if…else…敘述 5-9
5.6 case敘述 5-10
5.7 casex敘述 5-14
5.8 casez敘述 5-17
5.9 if與case這二大類敘述的使用時機 5-22
5.10 for敘述 5-23
5.11 function敘述 5-24
5.12 task敘述 5-28
5.13 function與task敘述的差異 5-30
第六章 Verilog電路設計的基本觀念
6.1 訊號(signal)與變數(variable) 6-2
6.1.1 訊號(signal) 6-3
6.1.2 把數值/運算式指定給訊號(signal)或變數(variable) 6-7
6.1.3 變數(variable) 6-8
6.2 always中的訊號(signal)與變數(variable) 6-9
6.2.1 訊號與變數,範例1 6-10
6.2.2 訊號與變數,範例2 6-12
6.2.3 訊號與變數,範例3 6-15
6.3 使用括弧來描述複雜的電路結構 6-18
6.4 運算元的位用寬度(operatorbitwidth) 6-20
6.5 重置(Reset)訊號與預設(Preset)訊號的重要性 6-21
第七章 算術運算
7.1 『數字系統』基本介紹 7-2
7.2 『乘法』的基本觀念 7-4
7.3 『除法』的基本觀念 7-4
7.4 『無號數整數』的運算 7-5
7.4.1 無號數整數的『加法運算』 7-6
7.4.2 無號數整數的『減法運算』 7-6
7.4.3 無號數整數的『乘法運算』 7-8
7.4.4 無號數整數的『除法運算』 7-9
7.4.5 如何計算1.5倍的A、3倍的A呢? 7-10
7.4.6 如何計算A除以9? 7-10
7.4.7 四捨五入的方式 7-11
7.5 『有號數整數』的運算 7-12
7.5.1 有號數整數的『加法運算』 7-12
7.5.2 有號數整數的『減法運算』 7-13
7.5.3 有號數整數的『乘法運算』 7-14
7.5.4 無號數整數的『除法運算』 7-15
7.6 『無號數小數』的運算 7-16
7.6.1 無號數小數的『加法運算』 7-17
7.6.2 無號數小數的『減法運算』 7-18
7.6.3 無號數小數的『乘法運算』 7-18
7.6.4 無號數小數的『除法運算』 7-20
7.7 『有號數小數』的運算 7-21
7.7.1 有號數小數的『加法運算』 7-21
7.7.2 有號數小數的『減法運算』 7-22
7.7.3 有號數小數的『乘法運算』 7-23
7.7.4 有號數小數的『除法運算』 7-25
第八章 組合邏輯電路與簡易的算術邏輯運算
8.1 組合邏輯(CombinationLogic)電路 8-2
8.1.1 布林方程式之實作(implementationofBooleanEquation) 8-2
8.1.2 編碼器(Encoder) 8-4
8.1.3 解碼器(Decoder) 8-9
8.1.4 多工器(Multiplexier) 8-12
8.1.5 解多工器(DeMultiplexier) 8-20
8.1.6 比較器(Comparator) 8-29
8.1.7 累加器(Accumulator) 8-31
8.1.8 乘加器(MultiplerandAccumulator) 8-32
8.1.9 三態閘(ThreeState) 8-34
8.1.10 雙向埠(BidirectionalPort,使用inout敘述) 8-36
8.2 簡易的算術邏輯運算單元(ALU)的設計 8-37
第九章 循序邏輯電路
9.1 記憶元件設計 9-2
9.1.1 D型閂鎖(Latch) 9-2
9.1.2 D型正反器(DtypeFilp-Flop) 9-4
9.1.3 JK型正反器(JKtypeFilp-Flop) 9-11
9.1.4 T型正反器(TtypeFilp-Flop) 9-13
9.1.5 暫存器(Register) 9-14
9.2 移位暫存器(ShiftRegister) 9-20
9.2.1 串進串出(SerialInSerialOut)移位暫存器 9-20
9.2.2 串進並出(SerialInParallelOut)移位暫存器 9-22
9.2.3 並進串出(ParallelInSerialOut)移位暫存器 9-24
9.2.4 並進並出(ParallelInParallelOut)移位暫存器 9-25
9.3 計數器電路(Counter) 9-27
9.3.1 上數計數器(CountUpCounter) 9-28
9.3.2 下數計數器(CountDownCounter) 9-28
9.3.3 上數/下數計數器(Up/DownCounter) 9-28
9.4 除頻電路(FrequencyDivider) 9-38
第十章 有限狀態機器
10.1 循序電路的基本模式 10-2
10.2 同步(Synchronous)與非同步(Asynchronous)循序電路 10-4
10.3 有限的狀態機器(FiniteStateMachine,FSMs)的簡介 10-8
10.3.1 有限狀態機的種類 10-8
10.3.2 有限狀態機的表示方式 10-9
10.3.3 完全指定狀態(CompletelySpecified)與不完全指定狀態IncompletelySpecified 10-16
10.3.4 有限狀態機的編碼方式(StateAssignment或StateEncoding) 10-21
10.4 有限狀態機器的設計實例 10-29
第十一章 進階設計概念
11.1 資源共用(ResourceSharing) 11-2
11.2 Verilog的編譯命令(CompilerDirectives) 11-5
11.2.1 `include編譯命令 11-5
11.2.2 `define編譯命令 11-6
11.3 易於調整的設計方式(ScalableDesign) 11-7
11.3.1 使用defparam敘述去取代(overriding)paramete值 11-8
11.3.2 使用"#"敘述去取代(overriding)parameter值 11-8
11.4 撰寫經濟實用的HDL程式碼之原則 11-9
11.4.1 使用括弧來描述複雜的電路結構 11-9
11.4.2 將「組合指定」敘述和「循序指定」敘述的部份描述區分開來 11-11
11.4.3 善用「常數」(Constant) 11-11
11.4.4 運算元的位用寬度(OperatorBit-Width) 11-15
11.5 除彈跳電路(DeBouncecircuit)與單一脈波電路(Monopulse circuit) 11-16
11.5.1 用and閘對輸入pulse做分析(DeBouncebyand) 11-17
11.5.2 用有限狀態機(FSM)對輸入pulse做分析(DeBouncebyFSM) 11-18
11.6 非同步Reset 11-21
11.7 節省電力的基本方法 11-22
第十二章 記憶體設計與應用
12.1 隨機存取記憶體(RandomAccessMemory,RAM) 12-2
12.2 隨機存取記憶體(RAM)的擴充 12-4
12.2.1 隨機存取記憶體之位元組(Bits)的擴充方式 12-4
12.2.2 隨機存取記憶體之字組(Words)的擴充方式 12-8
12.3 隨機存取記憶體(RAM)的應用 12-12
12.3.1 堆疊(Stack)的運作:使用隨機存取記憶體來模擬 12-13
12.3.2 佇列(Queue)的運作:使用隨機存取記憶體來模擬 12-17
12.4 唯讀記憶體(ReadOnlyMemory,ROM) 12-24
12.5 唯讀記憶體(ROM)的擴充 12-26
12.5.1 唯讀記憶體之位元組(Bits)的擴充方式 12-26
12.5.2 唯讀記憶體之字組(Words)的擴充方式 12-29
12.6 唯讀記憶體(ROM)的應用 12-34
12.6.1 指令唯讀記憶體(InstructionROM) 12-34
12.6.2 資料唯讀記憶體(DataROM) 12-35
12.6.3 使用一顆指令ROM與一顆資料ROM來推動特定功能的ALU 12-35
第十三章 Verilog2001增強特色
13.1 Configuration 13-3
13.2 generate 13-5
13.3 Constantfunction 13-9
13.4 Indexedvectorpartselect 13-12
13.5 Multi-dimensionalArray 13-14
13.6 ArrayBitandPartSelect 13-16
13.7 SignedArithmeticExtension 13-18
13.8 PowerOperator 13-26
13.9 Re-entrantTaskandRecursiveFunction 13-29
13.10 Comma-separatedSensitivityList 13-30
13.11 CombinationalLogicSensitivity 13-32
13.12 EnhancedFileIO 13-35
13.13 AutomaticWidthExtensionPast32bits 13-37
13.14 DefaultNetwithContinuousAssign 13-38
13.15 DisableDefaultNetDeclaration 13-41
13.16 ExplicitIn-lineParameterPassing 13-43
13.17 CombinedPortDataTypeDeclaration 13-45
13.18 ANSI-stylePortList 13-47
13.19 RegDeclarationWithInitialization 13-51
13.20 "Register"ChangedTo"Variable" 13-52
13.21 EnhancedPLAModeling 13-52
13.22 AccurateBNF,withSubsection 13-52
13.23 EnhancedConditionalCompilation 13-53
13.24 FileandLineCompilerDirective 13-56
13.25 Attribute 13-57
13.26 StandardRandomNumberGenerator 13-60
13.27 EnhancedInvocationOptionTest 13-61
13.28 On-detectPulseErrorPropagation 13-64
13.29 NegativePulseDetection 13-66
13.30 NewTimingConstraintCheck 13-67
13.31 NegativeTimingConstraint 13-67
13.32 EnhancedSDFsupport 13-68
13.33 ExtendedVCDFilePLIEnhancement 13-69
13.34 Verilog2001新增的保留字、運算子、函數、compilerdirective以及token 13-71
第十四章 Verilog的檔案處理與除錯輔助功能
14.1 測試平台(TestBench) 14-2
14.2 Verilo的檔案處理 14-3
14.2.1 $fopen以及$fclose 14-3
14.2.2 $readmemb以及$readmemh 14-4
14.2.3 $display、$write、$fdisplay以及$fwrite 14-7
14.3 Verilog的除錯輔助功能 14-12
14.3.1 $monitor以及$fmonitor 14-12
14.3.2 $strobe以及$fstrobe 14-14
14.4 Verilog的時間格式與精確度 14-16
14.4.1 $timeformat 14-16
14.4.2 $printtimescale 14-18
14.4.3 $time、$stime以及$realtime 14-21
14.5 資料型態轉換 14-22
14.5.1 $realtobits以及$bitstoreal 14-22
14.5.2 $rtoi以及$itor 14-23
14.6 Verilog的系統任務 14-24
第十五章 UserDefinedPrimitiveS
15.1 UserDefinedPrimitiveS(UDPs) 15-2
15.1.1 UDP的特性 15-2
15.1.2 可用於UDP的邏輯值與EdgeTrigger值 15-3
15.1.3 UDP的BNF表示法 15-3
15.2 組合邏輯UDP 15-4
15.3 循序邏輯UDP 15-7
附錄A Verilog的識別字(Keywords)
|
|