【时序逻辑】-D触发器

一、设计文件

 //======================================================================
 // --- 名称 : D
 // --- 作者 : liuxiaoyan_fpga
 // --- 日期 : 2022-03-29
 // --- 描述 : D触发器
 // --- 用途 : 搞清D触发器输出和输入之间的延迟
 //======================================================================
 
module D 

//---------------------<端口声明>---------------------------------------

(

    input            Clk                    , 
    input            Rst_n                     ,
    input            a                        ,
    
    output        reg out

);

always @(posedge Clk or negedge Rst_n) begin
    if (Rst_n == 1'b0) 
        out <= 1'b0;
    else 
    out <= a;
end
    
endmodule 

二、仿真文件

`timescale 1ns/1ns //时间精度

module D_tb;
//---------------------<端口定义>---------------------------------------
reg Clk;//时钟,50Mhz
reg Rst_n;//复位,低电平有效
reg a;

wire letout;


initial begin

Clk = 1'b0;
Rst_n = 1'b0;
#10;
Rst_n = 1'b1;
a = 1'b0;

end

always # 10 Clk = ~ Clk;
always # 20 a = {$random}%2;

//----------------------------------------------------------------------
//--   模块例化
//----------------------------------------------------------------------
D  a1
(
    //system signals
    .Clk(Clk)                   , 
    .Rst_n(Rst_n)                 ,
    .a(a)                           ,

    .out(letout)

);

endmodule 

三、仿真波形

1. 异步复位信号优先级最高

2. D触发器的输入改变,需要等下一个时钟上升沿到来才改变输出

3. 输出比输入慢10ns

 四、RTL图

 

posted @ 2022-03-29 16:59  刘小颜  阅读(461)  评论(0)    收藏  举报