文章目录
- 线索栏
- 笔记栏
-
- 1.硬件设计概述与HCL
- 2.逻辑门与组合电路
- [3.HCL vs. C 表达式(关键区别)](#3.HCL vs. C 表达式(关键区别))
- 总结栏
线索栏
- 硬件设计基础:一个数字系统由哪三个主要组成部分构成?
- HCL语言角色:HCL是什么?它在硬件设计中扮演什么角色?它与Verilog、VHDL等硬件描述语言(HDL)有何不同?基本单元:数字电路的
- 计算单元是什么?与(AND)、或(OR)、非(NOT)门在HCL中如何表示?它们与C语言中的逻辑运算符有何关联与区别?
- 组合电路:什么是组合电路?构建组合电路需遵循哪三条核心限制/规则?
- 基础构件:什么是多路复用器(MUX)?其功能是什么?如何用逻辑门构建一个1位2选1的MUX?其HCL表达式是什么?
- 硬件 vs. 软件思维:HCL布尔表达式与C语言逻辑表达式在行为上有哪三个本质区别?
笔记栏
1.硬件设计概述与HCL
1)数字系统三要素
(1)组合逻辑:计算对位进行操作的函数。
(2)存储单元:存储位。
(3)时钟信号:控制存储单元的更新时序。
2)HCL(硬件控制语言)的角色
一种用于描述处理器控制逻辑的文本语言。本章用它来指定Y86-64处理器的控制逻辑。
3)设计方法的演进(旁注)
(1)过去:手绘逻辑电路图。
(2)现代:使用硬件描述语言(HDL),如Verilog(语法类C)、VHDL(语法类Ada)。
(3)逻辑合成:关键突破。程序可根据HDL描述自动生成有效的电路设计,极大提升了设计效率。HCL可视为一个极度简化的HDL子集,专注于控制逻辑。
2.逻辑门与组合电路
1)逻辑门
(1)定义:数字电路的基本计算单元,输出是其输入位值的某个布尔函数。
(2)基本门与HCL表达式:
| 门类型 | 布尔函数 | HCL表达式 | 说明 |
|---|---|---|---|
| AND (与) | A·B | a && b | 当a和b都为1时输出1 |
| OR (或) | A+B | `a | |
| NOT (非) | Ā | !a | 输出a的反 |
(3)注意:HCL表达式(如&&)操作的是单个位,而C语言运算符可操作整个字。逻辑门可以是n路输入。
2)组合电路
(1)定义:由逻辑门组合成的计算块,用于实现更复杂的布尔函数。
(2)构建规则(必须遵守):
①输入来源:每个门的输入必须连接到系统输入、存储单元输出或其他门的输出。
②输出不冲突:多个门的输出不能连在一起。
③无环:电路中不能存在回路(否则结果不确定)。
(3)示例1(位相等检测电路,图4-10):
①功能:输出eq在输入a和b相等(同为0或同为1)时为1。
②HCL表达式:bool eq = (a && b) || (!a && !b);
(4)示例2(多路复用器MUX,图4-11):
①功能:根据控制信号s,从两个数据输入a和b中选择一个输出。
②逻辑:若 s=1,输出 out = a;若 s=0,输出 out = b。
③电路实现:使用两个AND门和一个OR门。一个AND门用s和a作为输入,另一个用!s和b作为输入,两者输出接OR门。
④HCL表达式:bool out = (s && a) || (!s && b);
3.HCL vs. C 表达式(关键区别)
| 对比维度 | HCL(硬件/组合电路) | C语言(软件) | 核心差异 |
|---|---|---|---|
| 求值时机 | 持续响应。只要输入变化,经过门延迟后输出立即变化 。 | 按序触发。仅在程序执行到该表达式时求值。 | 硬件是并行、持续的;软件是串行、离散的。 |
| 操作数取值 | 只能是逻辑位(0或1)。 | 可以是任意整数(0为假,非0为真)。 | 硬件是严格的布尔代数。 |
| 求值方式 | 完全求值。所有输入必须有效,逻辑门对它们同时响应。 | 可能短路求值(部分求值)。若结果可由前半部分确定,则后半部分不被执行。 | 硬件没有"短路"概念,所有通路同时工作。 |
总结栏
本节从零构建了理解处理器硬件设计所需的基础数字逻辑概念,并引入了描述其控制逻辑的专用语言HCL。
- 硬件是布尔函数的物理实现:处理器等数字系统的核心是组合逻辑电路,它通过逻辑门的互连来实现特定的布尔函数。HCL提供了一种简洁的文本方式来描述这些电路。
- 组合电路是构建块:多路复用器(MUX)是至关重要的一种组合电路,它实现了"选择"功能。在处理器数据通路中,MUX将被大量用于根据控制信号选择不同的数据源(如选择ALU的输入是来自寄存器还是立即数)。
- 从软件思维到硬件思维的根本转变:HCL表达式在语法上模仿C语言,但语义上存在本质区别。必须牢记硬件是"持续并行、对所有输入位完全求值"的。理解这一点,是从程序员思维切换到硬件设计者思维的关键。
- 为控制逻辑设计铺路:HCL和组合电路的概念是后续章节的基础。我们将使用HCL来形式化地描述处理器控制逻辑(即那些产生信号来控制数据流、ALU操作、寄存器写入等的逻辑块),而控制逻辑本身将由组合电路实现。
核心启示:处理器并非"魔法黑盒",其行为最终可归结为大量遵循布尔代数和组合电路规则的逻辑门的协同工作。HCL是我们用来精确描述这种协同工作规则的"蓝图语言"。掌握本节内容,就掌握了打开处理器内部工作原理之门的钥匙。