精华内容
下载资源
问答
  • 缓冲器

    千次阅读 2012-09-12 11:47:39
     缓冲器 缓冲器(Three-state-buffer),又称为态门、态驱动器,其态输出受到使能输出端的控制,当使能输出有效时,器件实现正常逻辑状态输出(逻辑0、逻辑1),当使能输入无效时,输出处于高阻状态...

    三态缓冲器

      三态缓冲器  三态缓冲器(Three-state-buffer),又称为三态门、三态驱动器,其三态输出受到使能输出端的控制,当使能输出有效时,器件实现正常逻辑状态输出(逻辑0、逻辑1),当使能输入无效时,输出处于高阻状态,即等效于与所连的电路断开。  缓冲器是数字元件的其中一种,它对输入值不执行任何运算,其输出值和输入值一样,但它在计算机的设计中有着重要作用。  缓冲器分为两种,常用缓冲器(常规缓冲器)和三态缓冲器。常规缓冲器总是将值直接输出,用在推进电流到高一级的电路系统。三态缓冲器除了常规缓冲器的功能外,还有一个选项卡通输入端,用E表示。当E=0和E=1时有不同的输出值。  缓冲器又可以分为输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于缓冲器接在数据总线上,故必须具有三态输出功能。  当E=1时,选通,其输入直接送到输出;  若E=0,缓冲器被阻止,无论输入什么值,输出的总是高阻态,用Z表示。高阻态能使电流降到足够低,以致于类似缓冲器的输出没有与任何东东相连。
    展开全文
  • 缓冲器的工作原理

    万次阅读 2018-07-25 15:07:01
    转载自---百家号 态缓冲器(Three-state buffer),又称为态门、态驱动器,其态输出受到使能输出端的控制,当使能输出有效时,器件实现正常逻辑状态输出(逻辑0、逻辑1),当...缓冲器分为两常用缓冲器...

    转载自---百家号

    三态缓冲器(Three-state buffer),又称为三态门、三态驱动器,其三态输出受到使能输出端的控制,当使能输出有效时,器件实现正常逻辑状态输出(逻辑0、逻辑1),当使能输入无效时,输出处于高阻状态,即等效于与所连的电路断开。

    缓冲器是数字元件的其中一种,它对输入值不执行任何运算,其输出值和输入值一样,但它在计算机的设计中有着重要作用。

    缓冲器分为两种,常用缓冲器(常规缓冲器)和三态缓冲器。常规缓冲器总是将值直接输出,用于将电流输出到高一级电路系统。三态缓冲器除了常规缓冲器的功能外,还有一个选项卡通输入端,用E表示。当E=0和E=1时有不同的输出值。

    缓冲器又可以分为输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于缓冲器接在数据总线上,故必须具有三态输出功能。

    当E=1时,选通,其输入直接送到输出;

    若E=0,缓冲器被阻止,无论输入什么值,输出的总是高阻态,用Z表示。高阻态能使电流降到足够低,以致于类似缓冲器的输出没有与任何东东相连。

    为减少信息传输线的数目,大多数计算机中的信息传输线均采用总线形式,即凡要传输的同类信息都走同一组传输线,且信息是分时传送的。在计算机中一般有三组总线,即数据总线、地址总线和控制总线。为防止信息相互干扰,要求凡挂在总线上的寄存器或存储器等,它的传输端不仅能呈现0、1两个信息状态,而且还应能呈现第三种状态——高阻抗状态(又称高阻状态),即此时好像它们的输出被断开,对总线状态不起作用,此时总线可由其它器件占用。即可实现上述的功能,它除具有输入输出端之外,还有一控制端,请看下图。

    当控制端E=1时,输出=输入,此时总线由该器件驱动,总线上的数据由输入数据决定;

    当控制端E=0时,输出端呈高阻抗状态,该器件对总线不起作用。当寄存器输出端接至三态门,再由三态门输出端与总线连接起来,就构成三态输出的级冲寄存器。如下图所示就是一个4位的三态输出缓冲寄存器。由于这里采用的是单向三态门,所以数据只能从寄存器输出到数据总线。如果要实现双向传送,则要用双向三态门。

    展开全文
  • 缓冲器可以处于以下三种状态之一:逻辑0,逻辑1和Z(高阻抗)。它们的使用允许多个驱动程序共享一条公共线路。这使得它们在半双工通信中特别有用。让我们首先讨论半双工和全双工通信之间的区别。


    写在前面

    下面用举例子的方式引出三态门,内容过长,大家可直接跳过,进入正文!

    三态门在FPGA以及ASIC设计中十分常用,随便举一个例子,在RAM的设计中(无论是同步读写RAM还是异步读写RAM设计),我们常将数据总线设计成inout类型,下面是一个设计程序实例:

    `timescale 1ns / 1ps
    //
    // Engineer: Reborn Lee
    // Module Name: single_port_syn_ram
    /
    module single_port_syn_ram#(
    	parameter ADDR_WIDTH = 4,
    	parameter DATA_WIDTH = 16,
    	parameter DEPTH = 2**ADDR_WIDTH
    	)(
    	input  i_clk,
    	input [ADDR_WIDTH - 1 : 0] addr,
    	inout [DATA_WIDTH - 1 : 0] data,
    	input cs,
    	input wr,
    	input oe
    
        );
    
        reg [DATA_WIDTH - 1 : 0] mem[0 : DEPTH - 1];
        reg [DATA_WIDTH - 1 : 0] mid_data;
    
    	// write part
    	always@(posedge i_clk) begin
    		if(cs&wr) begin
    			mem[addr] <= data;
    		end
    	end
    
    	// read part
    	always@(posedge i_clk) begin
    		if(cs & !wr) begin
    			mid_data <= mem[addr];
    		end
    	end
    
    	assign data = (cs & oe & !wr)? mid_data: 'hz;
    
    endmodule
    
    
    

    在读数据的时候,我们需要设计一个三态缓冲器,如下:

    assign data = (cs & oe & !wr)? mid_data: 'hz;
    

    读使能有效时,我们将从缓冲区读出的数据放到mid_data中,之后通过一个三态门来将数据mid_data输出到三态总线上,此三态门的使能条件为读使能!
    这条语句在综合工具中就会被推断为一个三态缓冲器!
    在读使能有效时,将读取数据放在总线上,否则呈现为高阻态,避免占用此数据总线。

    在testbench文件中,我们同样需要作出类似的操作,如下针对上面的ram的测试文件:

    `timescale 1ns / 1ps
    ///
    // Engineer: Reborn Lee
    // Module Name: ram_tb
    //
    module ram_tb(
        );
    	parameter ADDR_WIDTH = 4;
    	parameter DATA_WIDTH = 16;
    	parameter DEPTH = 2**ADDR_WIDTH;
    
    	reg i_clk;
    	reg [ADDR_WIDTH - 1 : 0] addr;
    	wire [DATA_WIDTH - 1 : 0] data;
    	reg cs;
    	reg wr;
    	reg oe;
    
    	reg [DATA_WIDTH-1:0] tb_data;
    
    	//generate system clock
    	initial begin
    		i_clk = 0;
    		forever begin
    			# 5 i_clk = ~i_clk;
    		end
    	end
    
    	assign data = !oe ? tb_data : 'hz;
    
    	initial begin
        {cs, wr, addr, tb_data, oe} = 0;
     
        repeat (2) @ (posedge i_clk);
    
        //write test
     
        for (integer i = 0; i < 2**ADDR_WIDTH; i= i+1) begin
          repeat (1) @(negedge i_clk) addr = i; wr = 1; cs =1; oe = 0; tb_data = $random;
        end
    
        //read test
        repeat (2) @ (posedge i_clk);
     
        for (integer i = 0; i < 2**ADDR_WIDTH; i= i+1) begin
          repeat (1) @(posedge i_clk) addr = i; wr = 0; cs = 1; oe = 1;
        end
     
        #20 $finish;
      end
    
    	single_port_syn_ram #(
    			.ADDR_WIDTH(ADDR_WIDTH),
    			.DATA_WIDTH(DATA_WIDTH),
    			.DEPTH(DEPTH)
    		) inst_single_port_syn_ram (
    			.i_clk (i_clk),
    			.addr  (addr),
    			.data  (data),
    			.cs    (cs),
    			.wr    (wr),
    			.oe    (oe)
    		);
    
    endmodule
    
    

    由于inout端口在测试文件中必须设置为wire类型,因此,我们在设计写数据时,需要定义一个中间reg类型变量,这个变量在写使能有效时候输入给写数据端口,如下:

    	assign data = !oe ? tb_data : 'hz;
    

    否则,也就是写使能无效时,就为高阻态,不占用数据总线!
    注:上面用了oe无效代替写使能有效,有点不太严谨,但也没问题 ,仅供各位参考!


    正文

    三态缓冲器可以处于以下三种状态之一:逻辑0,逻辑1和Z(高阻抗)。它们的使用允许多个驱动程序共享一条公共线路。这使得它们在半双工通信中特别有用。让我们首先讨论半双工和全双工通信之间的区别。

    全双工与半双工

    全双工和半双工的区别可以使用下面的两幅图来说明:

    在全双工系统中,有两个路径用于在两个芯片之间发送数据。从芯片1到芯片2有一条专用路径,从芯片2到芯片1有一条专用路径。在半双工系统中,只有一条路径可以在两个芯片之间发送数据。因此,这两个芯片必须在要传输的对象上达成共识。如果两者尝试同时传输,则线路上将发生冲突,并且数据将丢失。

    全双工框图

    半双工框图

    在以上两个图中,三角形是您的缓冲区。注意,在半双工框图中,存在信号Tx En。这是控制三态发送缓冲器的信号。在全双工块图中,此信号不是必需的,因为两个发送器都可以在100%的时间内打开,而不会在线路上发生冲突。

    FPGA和ASIC中的三态缓冲器

    如下为三态缓冲器的真值表:

    Tx DataTx EnableOutput
    010
    111
    X0Z (high impedance)

    请注意,如果两个Tx En同时都为高,则两个发送器都将在驱动并且线路上将发生冲突。 使用半双工三态缓冲器时,至关重要的是,共享线路的模块必须制定出一种避免数据冲突的通信方案。

    如何在VHDL和Verilog中推断出三态缓冲区

    综合工具可以推断出三态缓冲器。这是在VHDL中推断三态缓冲区的方法。信号io_data 在实体的端口映射部分中声明为inout。在VHDL中,“ Z”为高阻抗。

    inout io_data : std_logic; --port declaration of bidirectional data line
     
    io_data   <= w_Tx_Data when w_Tx_En = '1' else 'Z';
    w_Rx_Data <= io_data;
    

    这是在Verilog中推断三态缓冲区的方法。信号io_data 在模块的端口声明部分中声明为inout。在Verilog中,1’bZ是高阻抗。

    inout io_data; //port declaration of bidirectional data line
     
    assign io_data = Tx_En ? Tx_Data : 1'bZ;
    assign Rx_Data = io_data;
    

    三态缓冲器常用于半双工UART和I2C接口等电路中。它们是数字设计师了解的非常有用的工具。您应该知道如何在VHDL和Verilog中推断三态缓冲区。


    参考资料


    交个朋友

    展开全文
  • 锁存器和缓冲器区别

    2018-09-10 14:47:53
    锁存器是在某时刻采样,输出端保持采样结果的器件,clock上升沿锁存,下降沿锁存两。主要是主从触发器组成... 缓冲寄存器又称缓冲器,它分输入缓冲器和输出缓冲器。 前者的作用是将外设送来的数据暂时存放...

    锁存器是在某时刻采样,输出端保持采样结果的器件,有clock上升沿锁存,下降沿锁存两种。主要是主从触发器组成的,如RJ,SK触发器组成的D锁存器.       

           缓冲器是跟随输入而输出的随时和输入保持一定关系(等于或相反)。其主要目的是加大负载,一般是一个(RJ/SK。。。)触发器。   缓冲寄存器又称缓冲器,它分输入缓冲器和输出缓冲器两种。

    前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于缓冲器接在数据总线上,故必须具有三态输出功能。

    锁存器锁存器:输出端的状态不会随输入端的状态变化而变化,只有在有锁存信号时输入的状态 被保存到输出,直到下一个锁存信号。通常只有0和1两个值。典型的逻辑电路是D触发器。                  

    缓冲寄存器又称缓冲器,它分输入缓冲器和输出缓冲器两种。         

    缓冲器的另一种分类方式:          缓冲器是数字元件的其中一种,它对输入值不执行任何运算,其输出值和输入值一样,但它在计算机的设计中有着重要作用。    缓冲器分为两种,常用缓冲器(常说缓冲器)和三态缓冲器。常规缓冲器总是将值直接输出,用在推进电流到高一级的电路系统。三态缓冲器除了常规缓冲器的功能外,还有一个选项卡通输入端,用E表示。当E=0和E=1时有不同的输出值。   当E=1时,选通,其输入直接送到输出;    若E=0,缓冲器被阻止,无论输入什么值,输出的总是高阻态,用Z表示。高阻态能使电流降到足够低,以致于象缓冲器的输出没有与任何东东相连。         

    缓冲器的作用: 1. 完成速度的匹配。 2. 提供一个暂存的空间。  3. 放大信号,提高驱动能力。减少传输及负载对信号源的影响。 4. 信号隔离的作用,消除负载对信号源的影响。

    展开全文
  • 一、锁存器 ...锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器...
  • vi编辑,中命令模式,编辑模式,末行模式,常用命令以及三种模式的相互切换
  • 微机中锁存器和缓冲器的区别

    千次阅读 2017-12-23 17:08:26
    锁存器和缓冲器的作用是什么? 锁存器广泛用于计算机与数字系统的输入缓冲电路,其作用是将输入信号暂时寄存,等待处理,这一方面因为计算机或数字系统的操作都是有序进行的,通常不可能信号一到即刻处理,另一...
  • 原文地址:基本概念:线与逻辑、锁存器、缓冲器、...缓冲器:多用在总线上,提高驱动能力、隔离前后级,缓冲器多半有三态输出功能。 缓冲器就是典型的线与逻辑器件,可允许多个器件挂在一条总线上,当然OC输出也可
  • 锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是
  • 几种常用加密算法比较

    千次阅读 2017-11-07 13:06:24
    由于计算机软件的非法复制,通信的泄密、数据安全...现在我们就几种常用的加密算法给大家比较一下。 DES加密算法 DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。
  • 初学者刚进入vi不要乱点键盘,vi的三种模式和各种命令很容易弄混@@ vi编辑是Unix系统最初的编辑。它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。 vi共分为...
  • shell的几种常用工具

    万次阅读 2018-08-02 10:36:58
    最近在学习shell脚本语言,在学习的过程中了解了关于shell的几种常用工具,就总结了一下。 1、sort 功能:顾名思义,sort是对文本进行排序操作的。 原则:sort将文件的每一行作为一个单位,相互比较,比较原则是...
  • 锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是...
  • 缓冲区是一块特定的内存区域,其目的是通过缓解应用程序上下层之间的性能差异,减少上层对下层的等待时间,以此提高系统性能。... java中常见的缓冲有一下几种: 1.BufferWriter为FileWriter增加缓冲功能。 ...
  • 1、几种常用加密算法比较

    千次阅读 2017-09-12 15:50:36
    由于计算机软件的非法复制,通信的泄密、...现在我们就几种常用的加密算法给大家比较一下。DES加密算法DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对
  • 几种常用的地理信息软件比较

    万次阅读 2012-07-19 11:12:39
    几种常用的地理信息软件比较: 地理信息系统是信息科学与信息技术发展的一个重要组成部分,是信息高速公路上的节点 和重要基础设施。作为在信息社会中的一种集地理空间特征和各种统计信息于一体的特殊 信息...
  • 几种常用的接口协议的积累,欢迎补充

    万次阅读 多人点赞 2018-02-18 22:02:46
    总的来说,UART用在与主机(比如计算机)接口外设相连。I2C是由飞利浦公司提出的,用于与芯片与芯片之间的通信。spi是摩托罗拉最先提出的,用于芯片与芯片间的通信,与i2c不同的是...就像人体内很多肌肉。但由于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,942
精华内容 51,976
关键字:

常用的缓冲器有哪三种