(学习笔记)4.2 逻辑设计和硬件控制语言HCL(4.2.1 逻辑门4.2.2 组合电路和HCL布尔表达式)
文章目录线索栏笔记栏1.硬件设计概述与HCL1数字系统三要素2HCL硬件控制语言的角色3设计方法的演进旁注2.逻辑门与组合电路1逻辑门2组合电路3.HCL vs. C 表达式关键区别总结栏线索栏硬件设计基础一个数字系统由哪三个主要组成部分构成HCL语言角色HCL是什么它在硬件设计中扮演什么角色它与Verilog、VHDL等硬件描述语言(HDL)有何不同基本单元数字电路的计算单元是什么与AND、或OR、非NOT门在HCL中如何表示它们与C语言中的逻辑运算符有何关联与区别组合电路什么是组合电路构建组合电路需遵循哪三条核心限制/规则基础构件什么是多路复用器MUX其功能是什么如何用逻辑门构建一个1位2选1的MUX其HCL表达式是什么硬件 vs. 软件思维HCL布尔表达式与C语言逻辑表达式在行为上有哪三个本质区别笔记栏1.硬件设计概述与HCL1数字系统三要素1组合逻辑计算对位进行操作的函数。2存储单元存储位。3时钟信号控制存储单元的更新时序。2HCL硬件控制语言的角色一种用于描述处理器控制逻辑的文本语言。本章用它来指定Y86-64处理器的控制逻辑。3设计方法的演进旁注1过去手绘逻辑电路图。2现代使用硬件描述语言HDL如Verilog语法类C、VHDL语法类Ada。3逻辑合成关键突破。程序可根据HDL描述自动生成有效的电路设计极大提升了设计效率。HCL可视为一个极度简化的HDL子集专注于控制逻辑。2.逻辑门与组合电路1逻辑门1定义数字电路的基本计算单元输出是其输入位值的某个布尔函数。2基本门与HCL表达式门类型布尔函数HCL表达式说明AND (与)A·Ba b当a和b都为1时输出1OR (或)ABaNOT (非)Ā!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中选择一个输出。②逻辑若 s1输出 out a若 s0输出 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是我们用来精确描述这种协同工作规则的“蓝图语言”。掌握本节内容就掌握了打开处理器内部工作原理之门的钥匙。