精华内容
下载资源
问答
  • 1)组合逻辑电路:输出只与当时的输入有关,如与门、非门、或门等各种门电路; 2)触发器:一个具有记忆功能的、具有两个稳定状态(0或1)的信息存储器件,构成多种时序逻辑电路的基本逻辑单元,由门电路组成,...
    1)组合逻辑电路:输出只与当时的输入有关,如与门、非门、或门等各种门电路;
    2)触发器:是一个具有记忆功能的、具有两个稳定状态(0或1)的信息存储器件,是构成多种时序逻辑电路的基本逻辑单元,由门电路组成,包含D触发器、JK触发器、RS触发器等;
    3)时序逻辑电路:输出不仅与当时的输入有关,还与电路原来的状态有关,可以理解包含触发器的电路称作时序逻辑电路;
    4)寄存器:寄存器是CPU内部用来存放数据的一些小型存储区域,基本单元是D触发器,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
    5)存储器:是CPU外部用来存放数据的存储区域,基本单元为触发器,用来存储数据,分为RAM和ROM。
    展开全文
  • 也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能。 ↓ 在VHDL语言中,不完整条件语句对他们二者的影响分别什么?组合逻辑中可能生成锁存器,因为不完整语句的没写的一部分视为保持原值,需要锁存器...

    简单的说,组合电路,没有时钟;时序电路,有时钟。

    也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能。

    在VHDL语言中,不完整条件语句对他们二者的影响分别是什么?
    组合逻辑中可能生成锁存器,因为不完整语句的没写的一部分视为保持原值,需要锁存器来保存,锁存器的出发边沿就是写了的那部分的触发条件来控制;
    时序逻辑本身是寄存器,可以储存值的。

     

    转载于:https://www.cnblogs.com/tenderwx/p/6729617.html

    展开全文
  • 在数字逻辑设计中,本节介绍绝对值运算函数如何用Verilog硬件描述语言来实现,本质上补码的问题。 而取对数问题,可以归结为移位寄存器的问题。 最后介绍一下取整函数的实现。 一、用Verilog硬件描述语言来实现 ...

    数字电路基础知识——组合逻辑电路实现一些简单逻辑电路 (一)(用Verilog实现:绝对值函数运算(补码问题),取对数函数(移位寄存器),取整函数)

    在数字逻辑设计中,本节介绍绝对值运算函数如何用Verilog硬件描述语言来实现,本质上是补码的问题。

    而取对数问题,可以归结为移位寄存器的问题。具体可以参考之前的一篇博文:数字电路基础知识——组合逻辑电路(数据选择器MUX、多路复用器)

    最后介绍一下取整函数的实现。

    一、用Verilog硬件描述语言来实现 取绝对值函数

    基本算法思路:

    function [7:0]  abs;
         input [8:0] data_in;
         if(data_in[8]) abs=1+(~data[7:0]);
         else               abs=data[7:0];
         // abs = (data_in[8] == 1'b1) ? (1+(~data[7:0]):(data[7:0]);
    endfunction
    

    对于如下 二输入差的绝对值的函数。
    z = abs(x - y)

    1. 如果考虑到两个输入均为无符号8bit数
    module abs(
        input   [7:0]   dina,
        input   [7:0]   dinb,
        output  [7:0]   dout
        );
    
    assign  dout = (dina > dinb)? (dina - dinb): (dinb - dina); //使用2-MUX即可解决
    
    endmodule
    
    1. 如果考虑到两个输入均为8bit有符号数(2进制补码)
      那么对于负数 A (二进制补码形式),其补码应该为 |A| = ~A + 1(按位取反加一 )
    module abs(
        input  signed [7:0]   dina,
        input  signed [7:0]   dinb,
        output      [8:0]   dout // 至多9位
        );
    
    wire   signed [8:0]   dout_r; 	//dout_r是九位二进制补码
    assign  dout_r = (dina >dinb)? (dina - dinb): (dinb - dina);  
    assign  dout = (dout_r[8] == 1'b1)? (~dout_r + 1): {1'b0, dout_r[7:0]};
    
    endmodule
    
    二、取对数函数(求log以2为低的整数)

    求log以2为低的整数,具体方法上面用到的是移位寄存器,即将数据向右移位即可以得到所需最大的整数。
    也可以利用下面两种方法:

    1. 利用移位寄存器
    //以下两个函数任用一个
    //求2的对数函数
    function integer log2;
      input integer value;
      begin
        value = value-1;
        for (log2=0; value>0; log2=log2+1)
          value = value>>1;
      end
    
    endfunction
    
    1. 利用数值比较器(常见算法)
     function integer log2(input integer x);
            integer i;
            begin
                log2 = 1;
                for (i = 0; 2**i < x; i = i + 1) //不用移位寄存器,只用比较器 
                begin
                    log2 = i + 1;
                end
            end
     endfunction
    
    三、用Verilog实现取整函数

    用Verilog实现取整函数(ceil、floor、round)。

    1. Floor Function: the greatest integer that is less than or equal to x
    2. Ceiling Function: the least integer that is greater than or equal to x

    以5bit为例,小数部分1位,取整后保留4bit。

    wire [4:0] data; 
    wire [3:0] data_ceil;
    wire [3:0] data_floor; 
    wire [3:0] data_round;
    /*
    ceil(x)函数,返回不小于x的最小整数值。向上取整
    floor(x)函数,返回不大于x的最大整数值。向下取整
    round(x)函数,返回x的四舍五入值。四舍五入取整
    */
    module Ceil_floor_Round(
        input       [4:0]   data,
        output      [3:0]   data_ceil,
        output      [3:0]   data_floor,
        output      [3:0]   data_round
        );
    
    assign  data_ceil   =   (data[0] == 0)? data[4:1]: data[4:1]+1;
    assign  data_floor  =   data[4:1];
    assign  data_round  =   (data[0] == 1)? (data[4:1]+1): data[4:1];
    // data_round = data_ceil
    endmodule
    
    展开全文
  • 组合逻辑电路中,输出仅仅与输入有关;而在时序逻辑电路中,输出不仅与输入有关,还与之前的状态有关。 其实,时序逻辑电路还有一个名字,那就是状态机(State Machine ,SM)或者有限状态机(Finite State ...

    时序逻辑电路

    在组合逻辑电路中,输出仅仅与输入有关;而在时序逻辑电路中,输出不仅与输入有关,还与之前的状态有关。

    其实,时序逻辑电路还有一个名字,那就是状态机(State Machine ,SM)或者有限状态机(Finite State Machine,FSM)。

    状态机Verilog设计实例

    时序逻辑电路由两个部分组成,组合电路和存储电路,其中存储电路是必不可少的,并且存储电路的输出必须反馈到组合电路的输入端,与输入信号一起决定组合逻辑的输出。
    在这里插入图片描述
    而根据时序逻辑电路的输出信号的特点,又将其分为Mealy型和Moore型
    Mealy型:输出不仅与存储电路的状态有关,还与输入有关;
    Moore型:仅与存储电路的状态有关。

    在时序电路的设计中,同步时序逻辑电路是使用最多的。

    同步时序逻辑电路

    同步时序逻辑电路就是时序逻辑电路中所有的触发器都工作在同一时钟下。

    分析同步时序逻辑电路的步骤如下:
    1、从给定的逻辑图中写出每个触发器的驱动方程(即每个触发输入端的方程,常用另外触发器的输出和最终输出表示);
    2、将驱动方程带入每个触发器的特性方程;
    3、根据逻辑图写出电路的输出方程。

    以下图为例

    在这里插入图片描述

    而为了能够直观地看出状态的变换,常常使用以下四种方式来观察:
    1、状态转换表
    在这里插入图片描述

    2、状态转换图
    在这里插入图片描述

    3、状态机流程图(SM图)
    在这里插入图片描述

    4、时序图(要注意触发器是电平触发还是边沿触发

    例图就是高电平触发
    在这里插入图片描述

    异步时序逻辑电路

    异步时序电路就是触发器的触发时钟不一致
    在这里插入图片描述

    异步时序电路的分析相对来说要稍难,步骤还是差不多,只是具体方法不一样
    1、写出驱动方程;
    2、将驱动方程带入特性方程(注意,这个时候的输出跟触发器的输入时钟有关了,用时序图分析最为直观)
    3、写出输出方程

    画时序图步骤:
    1、先画出初始Q0、Q1、Q2、Q3;
    2、画出clk0,在通过clk0的触发画出Q0的输出;
    3、画出clk1,再通过clk1的触发画出Q1;
    4、画出clk2,通过clk2的触发画出Q2;
    5、画出clk3,通过clk3的触发画出Q3;
    6、最后直接画出组合输出Y。

    常用时序电路

    1、移位寄存器

    在这里插入图片描述
    分析一下具体实现,假设CLK同时到达所有寄存器(D1依次输入1101),假设Q默认为0000
    1、第一个CLK上升沿到来,Q0 = D1 = 1,这时Q1、Q2、Q3还为默认值;
    2、第二个CLK上升沿到来,Q0 = D1 = 1,这时Q1 = Q0 = 1;Q2、Q3还为默认值;
    3、第三个CLK上升沿到来,Q0 = D1 = 0,这时Q1 = Q0 = 1;Q2 = Q1 = 1,Q3还为默认值;
    4、第四个CLK上升沿到来,Q0 = D1 = 1,这时Q1 = Q0 = 0;Q2 = Q1 = 1,Q3 = Q2 = 1。
    最终并行Q输出序列为1101 ,与串行D1输入一致

    可以看到最先输入的D1,是先到高位Q3

    2、计数器

    N进制计数器就是一种在每个时钟上升沿加1,并且又在等于N-1的时候清零。即在这个时钟沿检测到计数为N-1,就将计数清零。

    计数器分为同步计数器和异步计数器,其中,同步计数器使用最为广泛。

    同步计数器

    同步二进制计数器
    二进制计数器全名为N位二进制计数器。假设4位二进制计数器,那么计数到1111就会清零,并且输出计数标志。

    在这里插入图片描述
    在这里插入图片描述
    Q初始为0000,由状态方程可以知道:
    1、当第一个上升沿到来,Q0 = 1,Q1 = 0,Q2 = 0,Q3= 0;
    2、当第二个上升沿到来,将第1步的Q带入,Q0 = 0,Q1 = 1,Q2 = 0,Q3= 0;

    15、当第15个上升沿到来,将第14步的Q带入,Q0 = 1,Q1 = 1,Q2 = 1,Q3= 1;
    16、当第16个上升沿到来,将第15步的Q带入,Q0 = 0,Q1 = 0,Q2 = 0,Q3= 0;

    时序图如下,因为是同步,所以Q均在时钟边沿发生改变
    在这里插入图片描述
    同步十进制计数器

    同步十进制计数器就是计数到9(1001)的时候就清零,1010到1111的状态全部跳过。
    在这里插入图片描述
    在这里插入图片描述
    同步任意进制计数器
    其他进制计数器原理和同步十进制计数器类似

    异步计数器

    异步计数器原理和同步计数器原理一样,只是状态转换的时间不同,不同的Q在不同的时钟边沿输出。
    下面以异步二进制计数器为例
    在这里插入图片描述
    在这里插入图片描述
    移位计数器

    环形计数器
    假设是4位环形移位计数器,那么其状态转换为0001—0010—0100—1000—0001;
    D0 = Q(n-1)
    在这里插入图片描述
    扭环形计数器(约翰逊计数器)
    D0 = Q(n-1)’
    4位扭环形计数器状态转换如下:0000—1000—1100—1110—1111—0111—0011—0001—0000
    在这里插入图片描述

    3、顺序脉冲发生器

    有时候系统需要按照事先规定的顺序进行一系列操作。顺序脉冲发生器是生成一组有先后顺序的脉冲信号。

    如下:可以看到Q0脉冲最先,其次是Q1、Q2、Q3;然后又是Q0。
    如果在Q的触发下进行操作,就可以实现顺序执行。
    在这里插入图片描述

    4、序列信号发生器

    有时候一个系统需要在指定的时间间隔下执行一定操作,这时候设计一个序列脉冲发生器就很必要了。

    假设一个系统要每1s内的,要产生一个序列组1011000101,这样,在1的时候执行操作。我们一般都是基于时钟来进行操作,而在这种情况下,因为时间间隔不等,没有规律,如果在时钟的触发下操作会显得麻烦。

    自启动

    自启动的意思就是,当芯片上电能马上进行计数等操作,而不会等待自己使能才开始执行计数等操作。

    假设设计一个10进制计数器,上电的时候不知道是在哪个状态,可能是0000,也可能是1111。
    但因为是10进制计数器在0000—1001之间进行状态转换,在这之中可以有序地转换。而当上电时处于1010—1111的时候,不知道该往哪个状态转换,会卡死。
    所以如果要设计自启动,就需要将1010—1111的下一个状态设计为0000—1001中的一个,一般设计为初始状态0000.

    展开全文
  • 逻辑电路常识整理

    2020-10-07 16:49:03
    主要包括内容有数字电子技术(几种逻辑电路)、门电路基础(半导体特性,分立元件、TTL集成电路CMOS集成门电路)、组合逻辑电路(加法器、编码器、译码器等集成逻辑功能)时序逻辑电路(计数器、寄存器)以及数模和...
  • 1.组合逻辑概念组合逻辑电路在逻辑功能上的特点任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关,不涉及对信号跳变沿的处理,无存储电路,也没有反馈电路。通常可以通过真值表的形式表达出来。 2....
  • 组合逻辑

    2020-06-14 11:36:37
    产生组合逻辑环路的原因有两个,一个组合逻辑电路的输出端又通过组合逻辑反馈到输入端,另一个寄存器的输出端通过组合逻辑反馈到同一个寄存器的异步端(异步复位或异步置位)。 1) assign q = a&b; ...
  • (三)常见的数字逻辑电路器件及属性

    千次阅读 2019-11-06 13:59:33
    目录 #组合逻辑电路 编码器 译码器 ...只读存储器(ROM是组合逻辑电路寄存器与存储器的比较 #时序逻辑电路 按功能/用途分为 寄存器(以移位寄存器为例) 计数器 顺序脉冲发生器(节拍发生...
  • 嵌入式硬件(三)数字逻辑电路一、组合逻辑电路1.非门2.与门3.与非门4.或门5.或非门6.异或门7.三态门二、时序逻辑电路1.触发器(flip-flop)(1)RS触发器(2)D触发器2.锁存器(latch)3.移位寄存器4.计数器(1)二...
  • 硬件寄存器是如何工作的

    千次阅读 2016-06-03 15:14:46
    信号沿着寄存器前面的组合逻辑传播,这时,产生了一个新的寄存器输入。但只要时钟地电位的,寄存器的输出就会保持不变。当时钟变成高电位时,输入信号就加载到寄存器中,成为下一个状态,直到下一个时钟的上升沿,...
  • 到目前为止,要想掌握组合逻辑,就请先掌握本文列出的计数器、触发器、锁存器、寄存器分频器等简单的组合逻辑电路。 1.触发器 包括RS触发器、JK触发器、D触发器、T触发器。 2.锁存器和寄存器 锁存器的功能同触发器...
  • 无论多么复杂的FPGA设计,如果我们将其中具有存储功能的机构(寄存器、RAM、FIFO等)全部拿掉,那么剩下的若干独立数字电路网络则都组合逻辑电路,对应的,我们称FPGA设计中这些具有存储功能的结构为纯时序逻辑...
  • 如果组合逻辑是同步电路中的组合成分,那么其输入直接由寄存器驱动的,而其输出也直接输送给寄存器的。因此,无论该组合逻辑是否会产生险象,我们都需要在时序分析中确保延迟最大的那条路径在下一次时...
  • 寄存器 SRAM DRAM存储单元区别

    千次阅读 2019-11-21 11:37:09
    寄存器 寄存器的功能存储二进制代码,它由具有存储...其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路由锁存器或触发器构成的,因为一个锁存器或触发器能存储1...
  • 无论多么复杂的FPGA设计,如果我们将其中具有存储功能的结构全部拿掉(寄存器、RAM、FIFO等等),那么剩下的若干独立数字电路网络则都组合逻辑电路,对应的,我们称FPGA设计中这些具有存储功能的结构为纯时序...
  • 上一篇我们实现了一系列组合逻辑芯片和CPU的运算大脑:ALU,但是组合逻辑芯片一个实时系统,只要输入值改变了输出值也马上跟着改变,上一秒辛苦计算出来的值,下一秒就消失不见了,因此我们需要一个具备"记忆功能...
  • 寄存器数据类型 Verilog中规定,凡是在程序块中被赋值的变量,都必须是寄存器类型的。...如果该程序块描述的是组合逻辑,该寄存器变量对应为硬件逻辑;如果该程序块描述的是不完全组合逻辑,那么该寄存器变量...
  • SEU新生研讨课笔记...数字电路组合逻辑(无存储的)/时序逻辑(有存储的) 寄存器最小化技术 一个例子(转置矩阵的电路设计): 另一个例子使用寿命图的例子: 若要转换成一个矩阵: [gdahebifc] \left[ \begi
  • 基础数字电路设计

    千次阅读 2017-12-07 12:18:59
    1.基础知识:数制与码制,特殊码制;基本代数化简公式和定理;基本门电路,特别CMOS门电路特性。...组合电路与时序逻辑电路系统分析与设计。 5.ADC和DAC基本原理。 6.用Verilog语言设计基础逻辑电路
  • FPGA设计层次分析

    2021-01-19 23:08:09
    而数字电路本质上可视为由寄存器组合逻辑电路组成,其中寄存器负责信号存储,组合逻辑电路负责信号传输。寄存器传输层描述正是从信号存储、传输的角度去描述整个系统。寄存器和组合逻辑本质上由逻辑门构成,逻辑
  • 而数字电路本质上可视为由寄存器组合逻辑电路组成,其中寄存器负责信号存储,组合逻辑电路负责信号传输。寄存器传输层描述正是从信号存储、传输的角度去描述整个系统。寄存器和组合逻辑本质上由逻辑门构成
  • 一、同步时序电路  1.时序电路与组合电路 - 在电路中包含环路(输出直接反馈到输入)的时序电路,而不是...- 为了避免这些问题,设计师们在环路中插入寄存器以断开环路,将电路变成了组合逻辑电路寄存器的组合。
  • 逻辑器件的同步设计

    2021-01-19 23:09:48
    在设计逻辑和电路时,经常会遇到这样的问题。即采用普通集成电路实现的设计移植到FPGA/CPLD逻辑...例如,当把一个寄存器输出通过组合逻辑反馈给同一个寄存器的异步引脚时,就会产生组合环路,如图1所示。  图1 组
  • 在数字电路中,我们可以运用移位寄存器,触发器,全加器等逻辑器件进行组合,来实现串行累加器。这里小编给大家分享如何运用FPGA实现串行累加器的功能。一、设计任务设计一个4位串行累加器,通过开关K设置串行输入...
  • 状态机由状态寄存器组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,协调相关信号动作、完成特定操作的控制中心。有限状态机简写为FSM(Finite State Machine),主要分为两大类:  第一...
  • 计算机组成原理 — CPU 中央处理器

    千次阅读 多人点赞 2019-07-18 16:25:32
    文章目录目录前文列表逻辑电路部件组合逻辑电路时序逻辑电路阵列逻辑电路中央处理器(CPU)控制单元(控制器)运算单元(运算器) 前文列表 《计算机组成原理 — 冯诺依曼体系结构》 《计算机组成的基本硬件设备》 ...
  • 这就是涉及到51单片机的内部结构了,学过数字电子技术的同学知道,集成电路的结构太复杂了,简单的逻辑与或非还行,什么锁存器、时序电路组合电路简直让人头疼。请先不要害怕,51单片机虽然也个很复杂
  • 片上系统1、工具使用 Altera:Quartus II Xlinx: Vivado2、语法学习 Verilog HDL(FPGA设计的是电路)3、 逻辑设计 组合逻辑:多路选择器、加法器、译码器、乘法器 ······· 时序逻辑:计数...
  • 同步电路由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都在严格的时钟控制 下完成的。这些时序电路共享同一个时钟CLK,而所有的状态变化都在时钟的上升沿(或下降沿
  • 在设计逻辑和电路时,经常会遇到这样的问题。即采用普通集成电路实现的设计移植到FPGA/CPLD逻辑器件...例如,当把一个寄存器输出通过组合逻辑反馈给同一个寄存器的异步引脚时,就会产生组合环路,如图1所示。  图1

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 241
精华内容 96
关键字:

寄存器是组合逻辑电路