4.3 逻辑设计与HCL

HCL:硬件控制语言

HCL(Hardware Control Language)是 CSAPP 中用于描述处理器控制逻辑的硬件控制语言。它融合了 C 语言的语法风格和硬件描述语言的核心概念,但不具备 Verilog 或 VHDL 那样的综合能力——HCL 仅用于教学性质的描述和模拟。

逻辑门

最基本的组合逻辑构件:

HCL 表达式C 风格写法
AND(与)A && BA & B
OR(或)A || BA | 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

这种表示法简化了控制逻辑:当需要判断指令码是否属于某个集合时,不必逐个写出所有比较条件。

组合逻辑的特点

  • 输出是输入的纯函数
  • 无状态、无存储
  • 传播延迟取决于最长路径
  • 不依赖时钟信号

相关笔记

链接到