精华内容
下载资源
问答
  • latch锁存器
    2020-06-25 14:54:06

    结论:

    不是IF不ELSE或者CASE中不加default就产生Latch,也不是说加上else就不产生Latch。

    看当前时刻数据会不会保持(a=a如果有数据的保持就会产生锁存器

    仿真:

    设计1:

    module latch_test(
    input sel,
    input a,
    output reg b
        );
    
    always@(*)
    begin
        if(sel)
            b = a;
    
    end
    endmodule

     

    设计2:

    module latch_test(
    input sel,
    input a,
    output reg b
        );
    
    always@(*)
    begin
        if(sel)
            b = a;
        else
            b = b;
    end
    endmodule
    

     

    设计3:

    module latch_test(
    input sel,
    input a,
    output reg b
        );
    
    always@(*)
    begin
        b = 1'b0;
        if(sel)
            b = a;
    end
    endmodule

     

     

    更多相关内容
  • 在很多地方都能看到,verilog中if与case语句必须完整,即if要加上else,case后要加上default语句,以防止锁存器的发生,接下来就来说说其中原因。
  • FPGA和Verilog设计中的latch锁存器的问题讲解 fpga开发.pdf
  • FPGA 中的latch 锁存器

    千次阅读 2018-04-05 11:19:16
    一直都知道fpga中有latch这么一回事,但是一直都不太清楚到底什么是锁存器,它是怎么产生的,它到底和寄存器有多少区别,它怎么消除。为什么说他不好? 一,是什么 锁存器是一种在异步时序电路系统中,对输入信号...
    一直都知道fpga中有latch这么一回事,但是一直都不太清楚到底什么是锁存器,它是怎么产生的,它到底和寄存器有多少区别,它怎么消除。为什么说他不好?

                   一,是什么

                       锁存器是一种在异步时序电路系统中,对输入信号电平敏感的单元,用来存储信息。一个锁存器可以存储1bit的信息通常,锁存器会多个一起出现,如4位锁存器,8位锁存器。

                   锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据被锁存,输入信号不起作用。因此,锁存器也被称为透明锁存器,指的是不锁存时输出对于输入是透明的。

           二   锁存器与寄存器的区别:

                          两者都是基本存储单元,单锁存器是电平触发的存储器,触发器是边沿触发的存储器。本质是,两者的基本功能是一样的,都可以存储数据。意思是说一个是组合逻辑的,一个是在时序电路中用的,时钟出发的。

          三,锁存器的危害:          

             对毛刺敏感,不能异步复位,所以上电以后处于不确定的状态;

            Latch会使静态时序分析变得非常复杂;

            在PLD芯片中,基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源。

            第三条也是最基本的原因。

          四,产生的原因  ********ps重重之重

                 上面说了那没多只是觉得网上的没把锁存器说明白。下面的才是重点。

                1,case

                 2,if-------else if

                 3,always@(敏感信号表)

              五 解决

                  1.case——————加default:

                                          关于defalut的情况:一是可以 default:data=1‘bx;这个x表示未知,在综合时可以避免产生锁存器。在仿真时是红线表示。

                                                                              二是   default:data=0;这样产生一个默认的情况。

                   2.if-----------------------一定要有else语句。

                   3.always---------如是说道:在赋值表达式右边参与赋值的信号都必须在always@(敏感电平列表)中列出。

    如果在赋值表达式右端引用了敏感电平列表中没有列出的信号,那么在综合时,将会为该没有列出的信号隐含地产生一个透明锁存器。

                4. 付初值。好用的

             六,怎么看到锁存器。

                    其实我挺讨厌网上说了好多的废话,到最后我都不知道是啥。所以我建议大家自己编成,在看看综合后的RTL图,以及技术RTL图,看看到底有什么不同,到底锁存器长啥样,漂亮不漂亮,嘿嘿。以下是我的截图。供参考:

    这个是我在case语句中加入了default语句的综合结果。

    以上两个图是没有加入的情况,可以看出明显不同。在上面的图中有由组合电路产生的与门,提供了电平触发锁存器。同时在技术RTL中多了一个LUT查找表,是为了锁存器提供使能的,当使能输出为1时锁存,使能为0时,输出正常。

        不好意思代码我就不贴了。嘿嘿。ps:关键是我忘了是啥了,我就是一坑货呀。

    其实挺简单地就是啊,a,b为输入,y输出。由a和b组成case({a,b})决定状态。

             七,我们讨论一下到底锁存器是不是就是没用的

     

    1. Latch的本质

     

    Latch作为一种电路单元,必然有其存在的理由及应用场景,在实际应用中,有些设计不可避免的要使用Latch,特别是总线应用上,例如,地址锁存器,数据锁存器,复位信号锁存器等。但是在更多的情况下,很容易产生未预料到的锁存器,使逻辑功能不满足要求,浪费大量时间。比较好的应用规则是:要学会分析是否需要Latch以及代码是否会产生意外的Latch。

    通过Verilog HDL实现序列最大值搜索程序,并保持检测到的最大值

    [plain]  view plain copy
     
    1. module two_max(  
    2.         a,rst_n,abmax  
    3.     );  
    4.   
    5.         input   [7:0]  a;  
    6.         input          rst_n;  
    7.         output  [7:0]  abmax;  
    8.   
    9.         reg     [7:0]  abmax_tmp;  
    10.   
    11.        always @ (a or rst_n) begin  
    12.                if (!rst_n)  
    13.                    abmax_tmp = 8'h00;  
    14.                else  
    15.                   if (a>abmax_tmp)  
    16.                       abmax_tmp = a;  
    17.        end  
    18. endmodule  

    上述代码在ISE中的综合结果会给出设计中包含Latch的警告。但实际上,abmax_tmp锁存器正是我们需要的,所以,虽然有警告,但是代码设计是没有问题的。将上述代码的if语句补全:

    [plain]  view plain copy
     
    1. if (a > abmax_tmp)  
    2.     abmax_tmp = a;  
    3. else  
    4.     abmax_tmp = abmax_tmp;  

    经过综合后,仍然有Latch的警告。无论Latch是否是用户需要的,ISE都会给出警告,主要原因就是Latch对整个设计的时序性能影响较大。所以,在设计中要尽量避免Latch,但是确实需要使用的情况,也可以使用。

     

    2. “不期望”latch

     

    指的是与设计意图不符,产生的Latch。主要问题在于设计人员没有合理使用Verilog HDL语言,常见的原因是对条件语句(if、casse)的分支描述不完整。典型例子:用Verilog HDL实现一个锁存器,当输入数据大于127时,将输入数据输出,否则输出0

    [plain]  view plain copy
     
    1. module latch_demo(  
    2.         din,dout  
    3.     );  
    4.     input   [7:0] din;  
    5.     output [7:0] dout;  
    6.   
    7.     reg      [7:0] dout;  
    8.   
    9. always @ (din) begin  
    10.      if (din>127)  
    11.           dout <= din;  
    12. end  
    13.   
    14. endmodule  

    综合后的结果,在比较器后面级联了锁存器,这是因为if语句缺少else分支造成的。查看仿真结果,当输入小于127时,输出保持了上次的127,不是0,没有达到设计要求。修改方法很简单,就是讲if-else补全。

    [plain]  view plain copy
     
    1. if (din > 127 )  
    2.     dout = din;  
    3. else  
    4.     dout = 0;  

    在ISE中综合后的结果中,可以看到补全if-else后,在比较器后面级联了与门,代替原来的锁存器,仿真结果也正确。

     

     

    至此,可以得到一个结论:Latch作为一种基本电路单元,会影响到电路的时序性能,应该尽量避免使用,但出现Latch造成设计与意图不符的情况,是由于设计人员代码不正确造成的。

    展开全文
  • FPGA-锁存器latch理解

    2022-04-09 17:50:58
    锁存器 latch,由电平触发,非同步控制。在使能信号有效时latch相当于通路,在使能信号无效时latch保持输出状态。如allways(a),a就是使能信号。 1、latch与lut查找表均属于组合逻辑与时钟无关。 1)LUT可以理解为RAM...

    锁存器
    latch,由电平触发,非同步控制。在使能信号有效时latch相当于通路,在使能信号无效时latch保持输出状态。如always(a),a就是使能信号。
    1、latch与lut查找表均属于组合逻辑与时钟无关。
    1)LUT可以理解为RAM。它把数据事先写入RAM后, 每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。
    2)DFF就是D类触发器。它是边沿触发的,归为时序逻辑。
    3)reg就是由DFF组成的。一个8位的寄存器,就是用了8个同步的D触发器。
    2、always ()组合逻辑或者 assign 综合出的就是LUT构建的东西,可认为就是LUT。
    3、在always (
    )组合逻辑的情况下,如果if 或者cace 不完整的话,会综合出latch,也就是输入情况并没有完全列举,这时候未被列举出的输入情况就会导致输出不变形成锁存,如组合逻辑中if语句缺少else、组合逻辑中case中情况列举不全、组合逻辑中输出赋值给自己out=out、组合逻辑always中case里面赋值右边的变量未添加入always敏感信号里等情况都可能形成锁存器。
    锁存器最大的危害便是,如果输入都列举完全,通过LUT等综合生成后资源节省,生成锁存器后会造成资源浪费,可自己写一个然后rtl综合看电路。至于锁存器易造成毛刺,其实组合逻辑均容易因竞争冒险而生成毛刺。
    4、在always (posedge CLK)时序逻辑的情况下,综合出的是reg,即使if,或者case不完整,也不会综合出latch。
    5、不要用latch作为模块名,会报错,这个名字已经被Quartus占用了。
    6、注意latch在组合逻辑中才会产生,在异步电路中可以在没有时钟的情况下代替寄存器用做数据的存储。
    7、latch的产生在quartus工程仿真,或者modelsim内添加工程后仿真,均会产生警告信息。
    8、latch肯定有其应用背景,在一些应用场景中希望使用latch,如通过Verilog HDL实现序列最大值搜索程序,并保持检测到的最大值。在一些场景中则避免,如用Verilog HDL实现一个锁存器,当输入数据大于127时,将输入数据输出,否则输出0。具体情况视需求,但大部分情况应在组合逻辑中避免latch。具体查看参考3示例。

    附1,参考4野火视频部分截图
    在这里插入图片描述
    在这里插入图片描述
    附2,case语句情况不全且缺少default语句,rtl视图对比:上图为情况全,下图为情况不全且缺少default
    在这里插入图片描述
    在这里插入图片描述
    参考1:
    FPGA中LUT、 LATCH 、FF
    参考2:
    verilog中的latch到底是个啥??简直快疯了!!!!!
    参考3:
    FPGA 中的latch 锁存器
    参考4:
    野火第十讲-避免latch的产生

    展开全文
  • 数字电路基础:关于锁存器latch

    万次阅读 多人点赞 2019-09-05 12:14:21
    一个锁存器可以存储1bit的信息,通常,锁存器会多个一起出现,如4位锁存器,8位锁存器锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据被锁存,输入信号不起...

            锁存器是电平触发的控制器件,这与边沿触发的触发器是有着本质的区别的。锁存器是一种在异步时序电路系统中,对输入信号电平敏感的单元,用来存储信息。一个锁存器可以存储1bit的信息通常,锁存器会多个一起出现,如4位锁存器,8位锁存器。锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据被锁存,输入信号不起作用。因此,锁存器也被称为透明锁存器,指的是不锁存时输出对于输入是透明的。与触发器的区别:两者都是基本存储单元,单锁存器是电平触发的存储器,触发器是边沿触发的存储器。本质是,两者的基本功能是。一样的,都可以存储数据。意思是说一个是组合逻辑的,一个是在时序电路中用的,时钟触发的

    verilog对锁存器的描述(建模):

                  常见的锁存器包括三个端口:数据输入口、数据输出

    always@(E or D)
    begin
         if(E)
            Q = D ;
    end
    

    1. 什么情况下会生成锁存器?

                 在组合逻辑中,若是存在某个信号需要保持不变的时候,就会生成锁存器。

    看几个Verilog描述:

    描述方式1:

    always@(*)
    begin
        if(sl)
           begin
               q = a ;
           end
    end

     根据组合逻辑的描述,假设生成如下的选择器,即sl =1 时候,q = a,如下所示:

    描述方式2:

    这里需要注意一点,以上的verilog描述中其实隐含了 else 即若sl =0时,q保持不变即 q=q,也就是上述的verilog描述与下面的verilog描述是一样的:

    always@(*)
    begin
        if(sl) 
           begin
              q = a ;
           end
        else 
           begin
              q = q ;
           end
    end

    如何实现呢?最直接的想法似乎是如下的电路实现:

    这是不可以的,组合逻辑中是不能有回路的,要求都是正向的。严格说来,Verilog描述组合逻辑“有反馈 ”时,这段代码可以被编译和实现 出组合路,但是编译器肯定给出警告 ,因为这段代码的结果没有实际意义 根本不知道结果是多少。

    CAUSE: The TimeQuest Timing Analyzer found latches implemented using non-optimal resources (look-up tables (LUTs) with combinational feedback).  The TimeQuest analyzer replaces the combinational loop with an equivalent latch. The TimeQuest analyzer treats this logic as asynchronous endpoint, and will not analyze the path through the node. 
    ACTION: You must implement these latches with registers using asynchronous load and 
    data signals, or remove them from your design. For more information, run the check_timing tcl command in the TimeQuest analyzer. 

    原因:TimeQuest时序分析器发现使用非最佳资源(具有组合反馈的查找表(LUT))实现锁存器。 TimeQuest分析器用等效的锁存器替换组合循环。 TimeQuest分析器将此逻辑视为异步端点,并且不会分析通过该节点的路径。
    操作:您必须使用异步加载数据信号的寄存器来实现这些锁存器,或者从设计中删除它们。 有关更多信息,请在TimeQuest分析器中运行check_timing tcl命令

    以加法为例,那生成的加法电路会执行几次呢?还是一直在加?怎么控制呢?

    描述方式3:

    always@(*)
    begin
        a = a + 1;
    end

    我在尝试综合时,综合工具会将Latch优化掉,这将会造成前、后仿真结果不一致。

    描述方式4:

    always @ (A,B)
        C = A & B;

    只要A或B有变化就会触发对C的赋值。

    描述方式5:

    always@(*)
    begin
         case(d)
          2'b00: a=b>>1; //这里没有对C描述,因此c保持不变,会生成锁存器
          2'b11: c=b>>1;//a保持不变
         default:
            begin
               a = b ;
               c = b;
            end
    end

    看到一篇博文中有一个问题,感觉挺值得注意的:

          如下的设计中,采用了时序逻辑设计,却生成了锁存器

    module Decode(
    input A,
    input B,
    input C,
    output reg[31:0] edata,
    output reg[31:0] eCapData,
    input bCap,
    output reg CapSt,
    input n_rst,
    input [31:0] rstVal,
    input clk);
    
    reg[1:0] state;
    
    always@(posedge clk or negedge n_rst)
    begin
        if(!n_rst)
        begin
            edata <= rstVal;
            state <= {A,C};
        end
        else
        begin
            state <= {A,B};
            edata <= {31'd0,A};
        *****此处省略一万*****
        end
    ————————————————
    版权声明:本文为CSDN博主「江东风又起」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ysgjiangsu/article/details/82718462

    他分析后得出原因:表面上是按照触发器的方式在写代码,实则不然。在异步复位代码段,我的输出依然由外界输入决定,因此综合之后产生了锁存器。
    将代码作如下修改,问题解决:

    module Decode(
    input A,
    input B,
    input C,
    output reg[31:0] edata,
    output reg[31:0] eCapData,
    input bCap,
    output reg CapSt,
    input n_rst,
    input [31:0] rstVal,
    input clk);
    
    reg[1:0] state;
    
    always@(posedge clk or negedge n_rst)
    begin
        if(!n_rst)
        begin
            edata <= 32'd0;
            state <= 2'd0;
        end
        else
        begin
            state <= {A,B};
            edata <= {31'd0,A};
        *****此处省略一万*****
        end
    ————————————————
    版权声明:本文为CSDN博主「江东风又起」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ysgjiangsu/article/details/82718462

     

     

    2. 锁存器的危害?

    首先声明,latch并非完全有害,不然FPGA中也不会既有latch和flip-flop,在支持DDR的IOB中,利用latch实现DDIO。那为什么明明锁存器比触发器节省面积却还要去避免使用latch而采用触发器呢?

    对时序分析的影响:

           我们尽可能的避免使用或者生成锁存器,主要还是因为锁存器的存在不利于时序的分析。下图中,做时序分析时候,若组合逻辑不生成latch,那么在分析该时序是否符合时候,就可以根据分析原理去分析寄存器输出延迟Tco,组合逻辑延迟Tcomb,触发器的建立时间Ts,要求延迟的综合不超过时钟周期,这都是可预知的。假如在下图两个触发器间的组合逻辑中生成了latch,那么该路径的时序就很难分析,因为latch是电平触发,而不是时钟的边沿去触发,latch很可能在时钟的有效沿之间被触发,这就导致无法确定latch的输出什么时候为低,什么时候为高(与时钟不同步了),这是锁存器的特性所导致的。而采用D触发器,分析的时候只需考虑触发器之间的路径即可。

    还有种说法:

     锁存器为电平触发,无效电平则锁存,有效电平输入即反应到输出,由于延时不同容易产生毛刺。组合逻辑中数据不需要锁存,需要避免产生锁存器。FPGA资源中木有锁存器,需要触发器加逻辑门构成,消耗逻辑资源较多,但有时为了需要满足一些规范协议,会用到锁存器,总之FPGA用的很少。 而ASIC设计中,由于锁存器构成较简单,传输速度快,用锁存器可以有效提高集成度,所以用的比较多!

    总结:

    •   对毛刺敏感,不能异步复位,所以上电以后处于不确定的状态;

    •        Latch会使静态时序分析变得非常复杂;

    •        在PLD芯片中,基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源。

    •        第三条也是最基本的原因。

     

    3. 如何避免生成锁存器

         组合逻辑生成锁存器的原因是逻辑中有信号需要保持不变,组合逻辑不能有环路(即反馈),因而通过生成锁存器达到保持不变的目的。

    这样的话,可以从两个角度入手:(1)采用时序逻辑,即在组合逻辑中插入触发器,多用触发器来实现信号的寄存;(2)尽可能避免在组合逻辑中某个信号需要保持不变,或者说避免组合逻辑存在环路。

    【注】:

    经常看到说组合逻辑中,if-else语句不要省略else,而case语句中条件分支也不要缺省,否则容易产生锁存器。其本质上说的是不要出现保持不变的信号,因为缺省后就默认会保持不变。组合逻辑的if语句缺省else导致描述变为else时候信号保持不变,因而生成锁存器,但如果组合逻辑中if-else语句的else中还描述的还是信号保持不变,那就算有else依旧会生成锁存器。

    贴一个其他博主的总结:链接

    简述组合逻辑的注意事项:

    (1)避免组合逻辑反馈环路(容易毛刺、振荡、时序违规等)。

         解决:A. 牢记任何反馈回路必须包含寄存器 ; B.检查综合、实现报告的warning信息,发现反馈回路(combinaTIonal loops)后进行相应修改。

    (2) 替换延迟链。

         解决:用倍频、分频或者同步计数器完成。

    (3)替换异步脉冲产生单元(毛刺生成器)。

         解决:用同步时序设计脉冲电路。

    (4)慎用锁存器。

         解决方式:

    A、使用完备的if…else语句;

    B、检查设计中是否含有组合逻辑反馈环路;

    C、对每个输入条件,设计输出操作,对case语句设置default 操作。特别是在状态机设计中,最好有一个default的状态转移,而且每个状态最好也有一个default的操作。

    D、如果使用case语句时,特别是在设计状态机时,尽量附加综合约束属性,综合为完全条件case语句

    小技巧:仔细检查综合器的综合报告,目前大多数的综合器对所综合出的latch都会报“warning”,通过综合报告可以较为方便地找出无意中生成的latch。

    展开全文
  • D 触发器,是时序逻辑电路是必备的一个基本单元,学好 D 触发器,是学好时序逻辑电路的前提条件,其重要性不亚于加法,二者共同构成数字组合、时序逻辑电路的基础。  触发器(Flip - Flop): 即能够存储 1位二...
  • FPGA和Verilog设计中的latch锁存器的问题一直都知道fpga中有latch这么一回事,但是一直都不太清楚到底什么是锁存器,它是怎么产生的,它到底和寄存器有多少区别,它怎么消除。为什么说他不好?一,是什么锁存器是一...
  • 1 SR 锁存器
  • 介绍 使用场景 同步电路 场景 同步电路 怎么样避免Latch产生
  • 锁存器latch):是电平触发的存储单元,数据存储的动作(状态转换)取决于输入时钟(或者使能)信号的电平值,尽当锁存器处于使能状态时,输出才会随着数据输入发生变化。   分为普通锁存器和门控锁存...
  • 以下这篇文章讲述了锁存器的一些概念和注意事项。原文标题及链接: FPGA 中的latch 锁存器 ... 一直都知道fpga中有latch这么一回事,但是一直都不太清楚到底什么是锁存器,它是怎么产生的,它到底和寄存器有多少区...
  • FPGA开发中,使用Verilog编程语言编程时,产生锁存器Latch)原理、危害及避免
  • 【FPGA】锁存器、触发器和寄存器

    千次阅读 2022-05-22 21:56:08
    锁存器latch)—对脉冲电平敏感,在时钟脉冲的电平作用下改变状态 锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,当锁存器处于使能状态时,输出才会随着数据输入发生变化...
  • 一,设计如下图所示电路 ...内部封装:我把第一排寄存器命名为R11,R12,R13,第二排寄存器命名为R21,R22,R23,复用命名为M1,M2,M3,加法命名为A1,A2,最后还有一个R3。比如说,从寄存器R11到复用M1...
  • Verilog时序逻辑硬件建模设计(一)锁存器D-latch和触发器Flip-Flop没有任何寄存器逻辑,RTL设计是不完整的。RTL是寄存器传输级或逻辑,用于描述依赖于当前输入和过去输出...
  • 今天诳论坛,突然发现了一个有关latch的问题,由于对D Flip-Flop和Latch还有些疑问,就点击了进去,一看果然有些意思,也挺有学习意义的,于是本文就诞生了。喊出口号~Just note it. 有意思的问题图 两个问题。 ...
  • 锁存器latch)和触发器(lip-flop)的概念与区别 锁存器latch锁存器latch)是一种对脉冲电平敏感的存储单元电路,可以在特定输入脉冲电平作用下改变状态,锁存,就是把信号暂存以维持某种电平状态。所存的...
  • 基础——(4)D Latch(D锁存器)

    千次阅读 2019-09-23 23:00:30
    S-R Latch Put a inverter there: Invertor的组成: tie both of the inputs together加上一个nor gate 就能组成一个invertor 按下就能亮 松开就会灭,这个东东还不是特别有用处,但是可以作为一个...
  • 锁存器latch) :是电平触发的存储单元, 数据存储的动作只取决于 输入信号 的电平值 ,只有当锁存器处于使能 状态, 输出才会随着 输入发生变化; 触发器(Flip flops 或者FF): 当收到 输入脉冲时,又称为触发。...
  • 锁存器latch):锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或使能信号)信号的电平值,即当锁存器处于使能状态时,输出才会随着数据的输入发生变化。 触发器(flipflop):触发器是边沿敏感...
  • 组合逻辑避免latch
  • 二、常见的锁存器 2.1 SR锁存器 2.1.1 输入R=0,S=0(保持) 2.1.2 输入S=1,R=0(置位,set) 2.1.3 S=0,R=1(复位,reset) 2.1.4 S=1,R=1(无意义) 2.1.5 SR锁存器 总结 2.2 D锁存器 2.2.1 clk=0...
  • Digital logic gets really interesting when we connect the output of gates back to an ... The SR latch is one of the most basic memory circuits that we can build on to make counters, registers, and ...
  • Latch知识点总结
  • 数字电路基本知识,包含触发器与锁存器的原理及使用方法,是一个不错的学习资料

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,309
精华内容 1,723
关键字:

latch锁存器