广告

原创 FPGA D触发器

2012-12-2 12:08 1564 0 分类: FPGA/CPLD

先把D触发器的test bench附上

`timescale 10ns/10ns
module d_ff_flow;
reg sys_clk;
reg rst;
reg D;
wire Q;
wire Q_n;
d_ff u1(
    .sys_clk(sys_clk),
    .rst(rst),    
  .D(D),
    .Q(Q),
  .Q_n(Q_n)
       );

initial
begin
sys_clk=0;
while(1)
#1 sys_clk=~sys_clk;
end

initial
begin
rst=0;
while(1)
#2 rst=~rst;
end

initial
begin
D=0;
while(1)
#3 D=~D;
end

initial
begin
    $display($time,"sys_clk=%d D=%d rst=%d Q=%d Q_n=%d",sys_clk,D,rst,Q,Q_n);
end
endmodule

附上源文件

module d_ff(
    input sys_clk,
    input rst,
    input D,
    output reg Q,
    output  Q_n
       );
always@(posedge sys_clk)
if(!rst) Q<=1'b0;
else Q<=D;
assign Q_n=~Q;
endmodule

分析仿真结果

20121202114704958.jpg
 先把D触发器的真值表附上

20121202120610209.jpg

SD与RD相当于rst,cp相当于sys_clk,在时钟为上升沿,并且rst为高的情况下,Qn输出为低,

广告

文章评论 0条评论)

登录后参与讨论
我要评论
0
0
广告