使用verilog編寫鎖存器與觸發器

須要注意的地方有四點:

一、關於鎖存器與觸發器在原理上的不一樣點,以及代碼的不一樣點異步

二、關於高電平有效與低電平有效以前的區別spa

三、理解實現復位與實現D觸發器之間的區別code

四、理解同步與異步之間的區別blog

鎖存器代碼編寫

       Module D_latch(d,clk,q);ci

        Input d;input

Input lck;同步

Output reg q;table

 always@(clk or d)module

if(clk) q<=d;原理

endmodule

D觸發器,標準

  Module D_ff(d,clk,q);

        Input d;

Input lck;

Output reg q;

 always@( posedge clk)

q<=d;

endmodule

異步低有效D觸發器

注意高電平有效跟低電平有效之間的區別

module code(clk,rst_n,d,q);

input clk;

input rst_n;

input d;

output reg q;

always @( posedge clk or negedge rst_n)

begin

if(!rst_n) q <= 1'b0;

else q <= d;

end

endmodule

 

 

異步高有效D觸發器

module code(clk,rst,d,q); //關於高有效仍是低有效,都是驅動clk對輸出端進行使能,有效     即爲輸                                              出爲0,並非輸出要等於復位信號的值。

input clk;

input rst;

input d;

output reg q;

always @( posedge clk or posedge rst )  //注意這裏是兩個上升沿,高電平有效

begin

if(rst) q <= 1'b0;

 else q <= d;

end

endmodule

 

同步高有效D觸發器

也就是說同步復位觸發器時,必須使用觸發器以外的門邏輯,才能構成同步觸發器。

module code(clk,rst,d,q);

input clk;

input rst;

input d;

output reg q;

always @( posedge clk)

begin

    if(rst) q <= 1'b0;

    else q <= d;

end

endmodule

 

相關文章
相關標籤/搜索