FPGA名词相关

        有想法把最近看到关于FPGA相关的(名词)概念做个总结,解释内容主要来自其他博客,我只加部分个人理解,做个拾荒者,捡其重点,作为摘录,文末罗列参考资料。

一、异步复位、同步释放

        1.1.解释

        同步复位:需要时钟参与,一般只有时钟上升沿到来复位信号才有效;

        异步复位:不需要时钟参与,只要复位信号一有效就立即进行复位操作;

        1.2.优缺点

        同步复位:防止复位信号的毛刺引起误复位操作,利于静态时序分析;较异步复位更消耗逻辑资源,复位信号脉冲宽度必须大于时钟周期,同步复位依赖于时钟;

        异步复位:无需额外的逻辑资源,复位信号不依赖于时钟;容易受毛刺影响,如果复位释放恰好在时钟有效沿附近容易使寄存器输出亚稳态;

        1.3.CODE

        同步复位:

always @(posedge clk) begin
    if (!rst_n)
        q <= 1'b0;
    else
        q <= d;
end

        异步复位(代码中使用较多):

always @(posedge clk or negedge rst_n) begin
    if (!rst_n)
        q <= 1'b0;
    else
        q <= d;
end

        异步复位同步释放(Synchronized Asynchronous Reset):

always @ (posedge clk) begin
    rst_nr <= rst_n; //将异步复位信号用同步时钟打一拍
end
always @ (posedge clk or negedge rst_nr) begin
    if(!rst_nr)
        q <= 1'b0;
    else
        q <= d;
end

二、触发器与锁存器

        2.1.解释

        触发器Flip-Flop:收到输入脉冲,触发器输出根据赋值规则作出改变,保持此状态知道下一个触发。。。对时钟边沿敏感,其状态只在时钟的上升沿或者下降沿的瞬间改变;

        锁存器Latch:两输入,EN和DATA_IN,当电平EN有效时,锁存器处于使能状态,输出数据Q随输入数据DATA_IN变化,否则数据被锁存;

        2.2.区别

        latch跟它所有的输入信号有关,当输入信号变化时,latch就变化,没有时钟触发;flip_flop受时钟控制,只有时钟沿触发时才采样当前输入,产生输出。

        1)latch由电平触发,非同步控制。在使能信号有效时latch等效于通路,使能信号无效时latch保持输出状态;flip_flop由时钟沿触发,同步控制;

        2)latch对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产生;flip_flop不易产生毛刺;

        3)latch消耗的门资源比flip_flop少,但是其静态时序分析更为复杂;


        


参考Reference:

1.https://blog.csdn.net/kobesdu/article/details/16356997

猜你喜欢

转载自blog.csdn.net/LWF729882492/article/details/80623484