开始
Digital Design and Computer Architecture: RISC-V Edition chapter 1-5
数字设计和计算机架构:RISC-V 版第 1-5 章
Chapter 1 From Zero to One Chapter 2 Combinational Logic Design Chapter 3 Sequential Logic Design Chapter 4 Hardware Description Languages Chapter 5 Digital Building Blocks
第1章 从零到一 第2章 组合逻辑设计 第3章 顺序逻辑设计 第4章 硬件描述语言 第5章 数字构建模块
Chapter 1
- 0: Introduction
- 1: Managing Complexity/Design Principles
- 2: Unsigned Binary Numbers
- 3: Hexadecimal Numbers
- 4: Bytes, Nibbles & All That Jazz
- 5: Binary Addition
- 6: Signed Numbers
- 7: Extension
- 8: Logic Gates
- 9: Transistors
- 10: Gates from Transistors
- 11: Power Consumption of Digital Circuits
Chapter 2
- 1: Introduction
- 2: Combinational Circuits
- 3: Boolean Equations: SOP and POS Forms
- 4: Boolean Axioms
- 5: Boolean Theorems of One Variable
- 6: Boolean Theorems of Multiple Variables
- 7: Simplifying Equations & Proving Theorems
- 8: From Logic to Gates
- 9: Bubble Pushing
- 10: X’s and Z’s
- 11: Karnaugh Maps (K-Maps)
- 12: K-Maps with Don’t Cares
- 13: Multiplexers
- 14: Decoders
- 15: Timing of Combinational Logic
Chapter 3
- 1: Introduction
- 2: State Element 1: Bistable Circuit
- 3: State Element 2: SR Latch
- 4: State Element 3: D Latch
- 5: State Element 4: D Flip-Flop
- 6: Flip-Flop Variations
- 7: Synchronous Sequential Logic
- 8: Intro to Finite State Machines (FSMs)
- 9: Moore FSM Example 1
- 10: Moore FSM Example 2
- 11: Mealy FSM Example
- 12: Factored FSMs
- 13: Timing
- 14: Clock Skew
- 15: Metastability
- 16: Synchronizers
- 17: Parallelism
Chapter 4
- 1: Introduction
- 2: Combinational Logic
- 3: Delays in Simulation
- 4: Sequential Logic
- 5: Combinational logic using always
- 6: Signal Assignments
- 7: Finite State Machines (FSMs)
- 8: Parameterized Modules
- 9: Testbenches
Chapter 5
- 1: Introduction
- 2: Adders Introduction
- 3: Ripple-Carry Adders
- 4: Carry Lookahead Adders (CLAs)
- 5: Prefix Adders
- 6: Subtractors & Comparators
- 7: Arithmetic Logic Units (ALUs)
- 8: Shifters, Multipliers & Dividers
- 9: Fixed Point Numbers
- 10: Floating-Point Numbers
- 11: Floating-Point Addition
- 12: Counters & Shift Registers
- 13: Memory Introduction
- 14: RAM
- 15: ROM
- 16: Memory Arrays in SystemVerilog
- 17: Logic Arrays
Chapter 6
- 1: Introduction
- 2: Instructions
- 3: Operands
- 4: Memory Instructions
- 5: Immediates (Constants)
- 6: Logical Instructions
- 7: Multiply & Divide Instructions
- 8: Branches
- 9: Conditional Statements & Loops
- 10: Arrays
- 11: Functions
- 12: The Stack
- 13: Recursive Functions
- 14: More on Jumps & Pseudoinstructions
- 15: Machine Language: R-Type Instruction Formats
- 16: Machine Language: I, S/B, U/J-Type Instr. Formats
- 17: Immediate Encodings
- 18: Decoding Instructions & Addressing Modes
- 19: Compiling, Assembling & Loading Programs
- 20: Big-Endian & Little-Endian Memory
- 21: Signed & Unsigned Instructions
- 22: Compressed Instructions
- 23: Floating-Point Instructions
Chapter 7
- 1: Introduction
- 2: Single-Cycle Processor: Datapath lw Instruction
- 3: Single-Cycle Processor: Datapath Other Instructions
- 4: Single-Cycle Processor: Control
- 5: Single-Cycle Processor: Extending
- 6: Single-Cycle Processor: Performance
- 6a: Single-Cycle Processor: Testbench
- 6b: Single-Cycle Processor: SystemVerilog
- 6c: Single-Cycle Processor: Tie Celebration
- 7: Multicycle Processor: Datapath for lw
- 8: Multicycle Processor: Datapath for Other Instr.
- 9: Multicycle Processor: Control FSM for lw
- 10: Multicycle Processor: Control for Other Instr.
- 11: Multicycle Processor: Extending to other Instructions
- 12: Multicycle Processor: Performance
- 13: Pipelined Processor: Introduction
- 14: Pipelined Processor: Data Hazards
- 15: Pipelined Processor: Control Hazards
- 16: Pipelined Processor: Performance
- 17: Advanced Microarchitecture
- 18: Superscalar & Out of Order Processors
- 19: Multithreading & Multiprocessors
Chapter 8
- 1: Introduction
- 2: Memory System Performance
- 3: Cache Introduction
- 4: Direct-Mapped Caches
- 5: Associative Caches
- 6: Spatial Locality
- 7: LRU (Least-Recently Used) Replacement
- 8: Cache Summary
- 9: Virtual Memory Introduction
- 10: Address Translation
- 11: Page Tables
- 12: TLBs (Translation Lookaside Buffers)
- 13: Virtual Memory Summary
Chapter 9
- 1: Introduction
- 2: RISC-V Microcontrollers
- 3: Memory-mapped I/O
- 4: General-Purpose I/O (GPIO)
- 5: RISC-V Device Driver Library
- 6: Timers
- 7: Morse Code Example
- 8: Interfaces
- 9: SPI
- 10: SPI Accelerometer Example
目录
章节序号 | 英文标题 | 中文标题 |
---|---|---|
Chapter 1 | Introduction | 导论 |
1 | Managing Complexity/Design Principles | 复杂性管理与设计原则 |
2 | Unsigned Binary Numbers | 无符号二进制数 |
3 | Hexadecimal Numbers | 十六进制数 |
4 | Bytes, Nibbles & All That Jazz | 字节、半字节及相关概念 |
5 | Binary Addition | 二进制加法 |
6 | Signed Numbers | 有符号数 |
7 | Extension | 扩展 |
8 | Logic Gates | 逻辑门 |
9 | Transistors | 晶体管 |
10 | Gates from Transistors | 从晶体管构建逻辑门 |
11 | Power Consumption of Digital Circuits | 数字电路的功耗 |
Chapter 2 | Introduction | 导论 |
1 | Combinational Circuits | 组合电路 |
2 | Boolean Equations: SOP and POS Forms | 布尔方程:最小项与最大项形式 |
3 | Boolean Axioms | 布尔公理 |
4 | Boolean Theorems of One Variable | 单变量布尔定理 |
5 | Boolean Theorems of Multiple Variables | 多变量布尔定理 |
6 | Simplifying Equations & Proving Theorems | 化简方程与证明定理 |
7 | From Logic to Gates | 从逻辑到门电路 |
8 | Bubble Pushing | 气泡推算法 |
9 | X’s and Z’s | X和Z状态 |
10 | Karnaugh Maps (K-Maps) | 卡诺图(K图) |
11 | K-Maps with Don’t Cares | 带“无关项”的卡诺图 |
12 | Multiplexers | 多路复用器 |
13 | Decoders | 解码器 |
14 | Timing of Combinational Logic | 组合逻辑的时序 |
Chapter 3 | Introduction | 导论 |
1 | State Element 1: Bistable Circuit | 状态元件1:双稳态电路 |
2 | State Element 2: SR Latch | 状态元件2:SR锁存器 |
3 | State Element 3: D Latch | 状态元件3:D锁存器 |
4 | State Element 4: D Flip-Flop | 状态元件4:D触发器 |
5 | Flip-Flop Variations | 触发器的变种 |
6 | Synchronous Sequential Logic | 同步时序逻辑 |
7 | Intro to Finite State Machines (FSMs) | 有限状态机简介 |
8 | Moore FSM Example 1 | Moore FSM示例1 |
9 | Moore FSM Example 2 | Moore FSM示例2 |
10 | Mealy FSM Example | Mealy FSM示例 |
11 | Factored FSMs | 分解的有限状态机 |
12 | Timing | 时序 |
13 | Clock Skew | 时钟偏移 |
14 | Metastability | 亚稳态 |
15 | Synchronizers | 同步器 |
16 | Parallelism | 并行性 |
Chapter 4 | Introduction | 导论 |
1 | Combinational Logic | 组合逻辑 |
2 | Delays in Simulation | 模拟中的延迟 |
3 | Sequential Logic | 时序逻辑 |
4 | Combinational logic using always | 使用always块的组合逻辑 |
5 | Signal Assignments | 信号赋值 |
6 | Finite State Machines (FSMs) | 有限状态机(FSM) |
7 | Parameterized Modules | 参数化模块 |
8 | Testbenches | 测试平台 |
Chapter 5 | Introduction | 导论 |
1 | Adders Introduction | 加法器简介 |
2 | Ripple-Carry Adders | 波动进位加法器 |
3 | Carry Lookahead Adders (CLAs) | 超前进位加法器(CLA) |
4 | Prefix Adders | 前缀加法器 |
5 | Subtractors & Comparators | 减法器与比较器 |
6 | Arithmetic Logic Units (ALUs) | 算术逻辑单元(ALU) |
7 | Shifters, Multipliers & Dividers | 移位器、乘法器与除法器 |
8 | Fixed Point Numbers | 定点数 |
9 | Floating-Point Numbers | 浮点数 |
10 | Floating-Point Addition | 浮点加法 |
11 | Counters & Shift Registers | 计数器与移位寄存器 |
12 | Memory Introduction | 内存简介 |
13 | RAM | 随机存取存储器(RAM) |
14 | ROM | 只读存储器(ROM) |
15 | Memory Arrays in SystemVerilog | SystemVerilog中的存储器阵列 |
16 | Logic Arrays | 逻辑阵列 |
Chapter 6 | Introduction | 导论 |
1 | Instructions | 指令 |
2 | Operands | 操作数 |
3 | Memory Instructions | 内存指令 |
4 | Immediates (Constants) | 立即数(常量) |
5 | Logical Instructions | 逻辑指令 |
6 | Multiply & Divide Instructions | 乘法与除法指令 |
7 | Branches | 分支 |
8 | Conditional Statements & Loops | 条件语句与循环 |
9 | Arrays | 数组 |
10 | Functions | 函数 |
11 | The Stack | 堆栈 |
12 | Recursive Functions | 递归函数 |
13 | More on Jumps & Pseudoinstructions | 跳转与伪指令 |
14 | Machine Language: R-Type Instruction Formats | 机器语言:R型指令格式 |
15 | Machine Language: I, S/B, U/J-Type Instr. Formats | 机器语言:I、S/B、U/J型指令格式 |
16 | Immediate Encodings | 立即数编码 |
17 | Decoding Instructions & Addressing Modes | 指令解码与寻址方式 |
18 | Compiling, Assembling & Loading Programs | 编译、汇编与加载程序 |
19 | Big-Endian & Little-Endian Memory | 大端与小端内存 |
20 | Signed & Unsigned Instructions | 有符号与无符号指令 |
21 | Compressed Instructions | 压缩指令 |
22 | Floating-Point Instructions | 浮点指令 |
Chapter 7 | Introduction | 导论 |
1 | Single-Cycle Processor: Datapath lw Instruction | 单周期处理器:lw指令数据通路 |
2 | Single-Cycle Processor: Datapath Other Instructions | 单周期处理器:其他指令数据通路 |
3 | Single-Cycle Processor: Control | 单周期处理器:控制逻辑 |
4 | Single-Cycle Processor: Extending | 单周期处理器:扩展 |
5 | Single-Cycle Processor: Performance | 单周期处理器:性能 |
6a | Single-Cycle Processor: Testbench | 单周期处理器:测试平台 |
6b | Single-Cycle Processor: SystemVerilog | 单周期处理器:SystemVerilog |
6c | Single-Cycle Processor: Tie Celebration | 单周期处理器:总结庆祝 |
7 | Multicycle Processor: Datapath for lw | 多周期处理器:lw指令数据通路 |
8 | Multicycle Processor: Datapath for Other Instr. | 多周期处理器:其他指令数据通路 |
9 | Multicycle Processor: Control FSM for lw | 多周期处理器:lw指令控制FSM |
10 | Multicycle Processor: Control for Other Instr. | 多周期处理器:其他指令控制FSM |
11 | Multicycle Processor: Extending to other Instructions | 多周期处理器:扩展至其他指令 |
12 | Multicycle Processor: Performance | 多周期处理器:性能 |
13 | Pipelined Processor: Introduction | 流水线处理器:导论 |
14 | Pipelined Processor: Data Hazards | 流水线处理器:数据冒险 |
15 | Pipelined Processor: Control Hazards | 流水线处理器:控制冒险 |
16 | Pipelined Processor: Performance | 流水线处理器:性能 |
17 | Advanced Microarchitecture | 高级微架构 |
18 | Superscalar & Out of Order Processors | 超标量与乱序处理器 |
19 | Multithreading & Multiprocessors | 多线程与多处理器 |
Chapter 8 | Introduction | 导论 |
1 | Memory System Performance | 内存系统性能 |
2 | Cache Introduction | 缓存概述 |
3 | Direct-Mapped Caches | 直接映射缓存 |
4 | Associative Caches | 关联缓存 |
5 | Spatial Locality | 空间局部性 |
6 | LRU (Least-Recently Used) Replacement | LRU(最近最少使用)替换算法 |
7 | Cache Summary | 缓存总结 |
8 | Virtual Memory Introduction | 虚拟内存概述 |
9 | Address Translation | 地址翻译 |
10 | Page Tables | 页表 |
11 | TLBs (Translation Lookaside Buffers) | TLB(翻译后备缓冲器) |
12 | Virtual Memory Summary | 虚拟内存总结 |
Chapter 9 | Introduction | 导论 |
1 | RISC-V Microcontrollers | RISC-V 微控制器 |
2 | Memory-mapped I/O | 内存映射I/O |
3 | General-Purpose I/O (GPIO) | 通用输入输出(GPIO) |
4 | RISC-V Device Driver Library | RISC-V 设备驱动库 |
5 | Timers | 计时器 |
6 | Morse Code Example | 摩尔斯电码示例 |
7 | Interfaces | 接口 |
8 | SPI | SPI总线 |
9 | SPI Accelerometer Example | SPI加速度计示例 |