4.3 逻辑设计与HCL
HCL:硬件控制语言
HCL(Hardware Control Language)是 CSAPP 中用于描述处理器控制逻辑的硬件控制语言。它融合了 C 语言的语法风格和硬件描述语言的核心概念,但不具备 Verilog 或 VHDL 那样的综合能力——HCL 仅用于教学性质的描述和模拟。
逻辑门
最基本的组合逻辑构件:
| 门 | HCL 表达式 | C 风格写法 |
|---|---|---|
| AND(与) | A && B | A & B |
| OR(或) | A || B | A | B |
| NOT(非) | !A | ~A |
逻辑门是组合逻辑的基本单元,输出只取决于当前输入,没有存储能力。
多路选择器:情况表达式
HCL 使用情况表达式(case expression)来描述多路选择器(Multiplexer, MUX):
[
选择条件1 : 输出值1;
选择条件2 : 输出值2;
...
1 : 默认输出值;
]
每个选择条件按顺序求值;当第一个条件为真时,对应的输出值被选中。最后一个条件通常写为 1,表示默认情况。
集合关系表示
在 HCL 中,{A, B, C} 表示集合包含。例如:
icode in { 3, 5 }
等价于:
icode == 3 || icode == 5
这种表示法简化了控制逻辑:当需要判断指令码是否属于某个集合时,不必逐个写出所有比较条件。
组合逻辑的特点
- 输出是输入的纯函数
- 无状态、无存储
- 传播延迟取决于最长路径
- 不依赖时钟信号
相关笔记
链接到
- 上一个知识点:4.2 Y86-64指令集详解
- 下一个知识点:4.4 存储器和时钟