首页 > 其他分享 >3.2 逻辑设计和硬件控制语言HCL

3.2 逻辑设计和硬件控制语言HCL

时间:2023-05-27 10:35:28浏览次数:61  
标签:逻辑 组合 电路 3.2 HCL 寄存器 时钟 输入 逻辑设计

在硬件设计中,用电子电路来计算对位进行运算的函数,以及在各种存储器单元中存储位。大多数现代电路技术都是用信号线上的高电压或低电压来表示不同的位值。在当前的技术中,逻辑1是用1.0伏特左右的高电压表示的,而逻辑0是用0.0伏特左右的低电压表示的。要实现一个数字系统需要三个主要的组成部分:计算对位进行操作的函数的组合逻辑、存储位的存储器单元,以及控制存储器单元更新的时钟信号。 逻辑门 逻辑门是数字电路的基本计算单元。他们产生的输出,等于它们输入位值的某个布尔函数。逻辑门只对单个位的数进行操作,而不是整个字。逻辑门总是活动的,一个输入门变化了,在很短的时间内输出也回相应变化。 组合电路和HCL布尔表达式 将很多的逻辑门组合成一个网,就能构建计算块(computational block),称为组合电路(combinational circuits)。如何构建这些网有几个限制: 每个逻辑门的输入必须连接到下述选项之一:1)一个系统输入(称为主输入),2)某个存储器单元的输出,3)某个逻辑门的输出。 两个或多个逻辑门的输出不能连接在一起。否则它们可能会使线上的信号矛盾,可能会导致一个不合法的电压或电路故障。 这个网必须是无环的。也就是在网中不能有路径经过一系列的门而形成一个回路,这样的回路会导致该网络计算的函数有歧义。 HCL.表达式很清楚地表明了组合逻辑电路和C语言中逻辑表达式的对应之处。它们都是用布尔操作来对输入进行计算的函数。值得注意的是,这两种表达计算的方法之间有以下区别: 因为组合电路是由一系列的逻辑门组成,它的属性是输出会持续地响应输入的变化。如果电路的输入变化了,在一定的延迟之后,输出也会相应地变化。相比之下,C表达式只会在程序执行过程中被遇到时才进行求值。 C的逻辑表达式允许参数是任意整数,0表示FALSE,其他任何值都表示TRUE。而逻辑门只对位值0和1进行操作。 C的逻辑表达式有个属性就是它们可能只被部分求值。如果一个AND或OR操作的结果只用对第一个参数求值就能确定,那么就不会对第二个参数求值了。例如下面的C表达式: (a && !a) && func(b,c) 这里函数func是不会被调用的,因为表达式(a &&!a)求值为0。而组合逻辑没有部分求值这条规则,逻辑门只是简单地响应输入的变化。 字级的组合电路和HCL整数表达式
 通过将逻辑门组合成大的网,可以构造出更复杂函数的组合电路。执行字级运算的组合电路根据输入字的各个位,用逻辑门来计算字的各个位。组合逻辑电路可以设计成在字级数据上执行许多不同类型的操作。 算术逻辑单元ALU是一种很重要的组合电路,这个电路有三个输入,标号AB的两个数据输入,以及一个控制输入。根据控制输入的设置,电路会对数据输入执行不同的算术或逻辑操作。  存储器和时钟 组合电路从本质上讲,不存储任何信息。相反,它们只是简单地响应输入信号,产生等于输入的某个函数的输出。为了产生时序电路(sequential circuit),也就是有状态并且在这个状态上进行计算的系统,我们必须引入按位存储信息的设备。存储设备都是由同一个时钟控制的,时钟是一个周期性信号,决定什么时候要把新值加载到设备中。 考虑两类存储器设备: 时钟寄存器(简称寄存器)存储单个位或字。时钟信号控制寄存器加载输入值。 随机访问存储器(简称内存)存储多个字,用地址来选择该读或该写哪个字。随机访问存储器的例子包括:1)处理器的虚拟内存系统,硬件和操作系统软件结合起来使处理器可以在一个很大的地址空间内访问任意的字;2)寄存器文件,在此,寄存器标识符作为地址。在IA32或Y86-64处理器中,寄存器文件有15个程序寄存器(rax~r14)。 寄存器工作状态:大多数时候寄存器都保持在稳定状态,产生的输出等于它的当前状态。信号沿着寄存器前面的组合逻辑传播,这时产生一个新的寄存器输入,但只要时钟信号是低电位的,寄存器的输出就保持不变。当时钟变成高电位是,输入信号就加载到寄存器中,成为下一个状态,知道下一个时钟上升沿,这个状态就是寄存器的输出。寄存器是作为电路不同部分中的组合逻辑之间的屏障。 寄存器文件有两个读端口(A和B),还有一个写端口(W)。这样一个多端口随机访问存储器允许同时进行多个读和写操作。图中所示的寄存器文件中,电路可以读两个程序寄存器的值,同时更新第三个寄存器的状态。每个端口都有一个地址输入,表明该选择哪个程序寄存器,另外还有一个数据输出或对应该程序寄存器的输入值。地址是用编码表示的寄存器标识符。两个读端口有地址输入srcA和srcB(“source A”和“source B”的缩写)和数据输出va1A和va1B(“value A”和“value B”的缩写)。写端口有地址输入dstw(“destination W”的缩写),以及数据输入va1w(“value W”的缩写)。 向寄存器文件写入字是由时钟信号控制的,控制方式类似于将值加载到时钟寄存器。每次时钟上升时,输入va1W上的值会被写入输入dstW上的寄存器ID指示的程序寄存器。当dstw设为特殊的ID值0xE时,不会写任何程序寄存器。由于寄存器文件既可以读也可以写,一个很自然的问题就是“如果我们试图同时读和写同一个寄存器会发生什么?”答案简单明了:如果更新一个寄存器,同时在读端口上用同一个寄存器ID,我们会看到一个从旧值到新值的变化。  

标签:逻辑,组合,电路,3.2,HCL,寄存器,时钟,输入,逻辑设计
From: https://www.cnblogs.com/LCAB/p/17433820.html

相关文章

  • 交叉编译内存分析工具 valgrind3.21.0 (aarch64-linux-gnu-gcc)
    交叉编译工具编译机器:ubuntuServer22LTS编译目标:ARM64开发板https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/注:如果使用7.5以上的GCC,请到ARM官网下载:https://developer.arm.com/downloads/-/gnu-agcc版本(7.5)需对应板子......
  • HCL华三模拟器BGP配置更新源
    peerconnect-interface命令用来指定与对等体/对等体组创建BGP会话时建立TCP连接使用的源接口,即采用指定源接口的IP地址/IPv6地址与对等体/对等体组建立TCP连接。本命令的作用与peersource-address命令的作用类似:peersource-address命令直接指定建立TCP连接的源地址;本命令通过......
  • 3.2 线性回归从零开始实现
    %matplotlibinlineimportrandomimporttorchfromd2limporttorchasd2l3.2.1生成数据集为了简单起见,使用易于可视化的低维数据。使用线性模型\(\boldsymbol{y}=\boldsymbol{Xw}+b+\epsilon\)生成数据集及其标签,其中合成的数据集是一个矩阵\(\boldsymbol{X}\in\R^{1......
  • BGP线路有什么优势?43.248.187.x
       1、消除南北访问障碍由于BGP可以将联通、电信、移动等运营商的线路“合并”,使得中国南北无障碍通讯成为可能,对接入层来说,可使“联通、电信”这类区别消失,更能使一个网站资源无限制的在全国范围内无障碍访问,而不需要在异地部署VPN或者异地加速站来实现异地无障碍访问2、高......
  • Cisco Identity Services Engine (ISE) 3.2 Patch2 发布 - 思科身份服务引擎
    CiscoIdentityServicesEngine(ISE)3.2Patch2发布-思科身份服务引擎请访问原文链接:https://sysin.org/blog/cisco-ise-3/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org工作场所零信任安全的核心所在任何零信任策略的一个关键组成部分是确保所有人和所有设......
  • 5.24 3.2
    一、问题如果整数A的全部因子(包括1,不括A本身)之和等于B;且整数B的全部因子(包括1不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。二、分析根据问题描述,该问题可以转化为:给定整数A,判断A是否有亲密数。为解决该问题,首先定义变量a,并为......
  • 【2023.03.20】P4710 「物理」平抛运动
    题目传送门:【洛谷】P4710[物理]平抛运动Step1:前置芝士您需要知道并了解以下芝士:数学:三角函数;物理:加速度公式;位移公式;那么如果您并不了解以上芝士,那么请继续向下看;如果您已经掌握以上芝士,那么请跳至“Step2”。三角函数讲解:注意,本题为物理题解,故不会放出......
  • 二:用电信号传输TCP/IP数据-3.2-ACK号的管理
    上一节讲了数据收发的大概过程,实际上网络的错误检测和补偿机制非常复杂,这一节讲三个关键点。一、返回ACK号的等待时间返回ACK号的等待时间叫超时时间。当网络传输繁忙时ACK号的返回会变慢,这时就要将等待时间设置得长一点,不然可能已经重传了,ACK号才到达。这样的重传是多余的,虽然......
  • 2023.20 纪念技术大牛耗子叔
    5.15日,在小众消息的公众号中得知消息,开始有点震惊不信,于是上网搜索发现可能是真的,再后面看到各种报道,才发现他确实因为心梗离开了……看过他的访谈,学习过专栏《左耳听风》,也看过很多coolshell博客上文章,收获颇丰,帮曾经的自己开阔了视野,提升了认知,他是少有的一直坚持技术输出分享的......
  • 报表控件FastReport VCL v2023.2 - 将Delphi 产品整合到单一系统
    FastReport 是功能齐全的报表控件,可以帮助开发者可以快速并高效地为.NET,VCL,COM,ActiveX应用程序添加报表支持,由于其独特的编程原则,现在已经成为了Delphi平台最优秀的报表控件,支持将编程开发中的报表信息输出为TXT、PDF等多种文件格式,是编程开发人员必备的报表工具。FastReportVC......