在Xilinx的FPGA中D触发器都有哪几种类型?对应什么样的代码?-Xilinx-AMD社区-FPGA CPLD-ChipDebug

在Xilinx的FPGA中D触发器都有哪几种类型?对应什么样的代码?

  今天我们来研究一下D触发器都有哪几种类型?又对应什么样的代码?

  在Xilinx的FPGA中,D触发器是下面这个样子:

图片[1]-在Xilinx的FPGA中D触发器都有哪几种类型?对应什么样的代码?-Xilinx-AMD社区-FPGA CPLD-ChipDebug

image-20210811092718845

其中,D是数据输入端口,CE是使能端口,CLK是时钟输入,SR是Set/Reset的意思,可用作置位或者复位,置位和复位又分同步和异步,因此D触发器有如下四种应用类型:

  • 异步复位(FDCE)
  • 异步置位(FDPE)
  • 同步复位(FDRE)
  • 同步置位(FDSE)

  在Vivado的Language Templates中我们也可以看到,D触发器有下面四种类型:

图片[2]-在Xilinx的FPGA中D触发器都有哪几种类型?对应什么样的代码?-Xilinx-AMD社区-FPGA CPLD-ChipDebug
image-20210811091026227

那这四种触发器都对应什么样的代码?

module top(
 input clk,
 input rst,
 input in1,
 output reg out1,
 output reg out2,
 output reg out3,
 output reg out4
 );

 // FDCE
 always @ ( posedge clk or posedge rst)begin
    if(rst)
        out1 <= 1'b0;
    else
        out1 <= in1;
 end

 // FDPE
 always @ ( negedge clk or posedge rst )begin
    if(rst)
        out2 <= 1'b1;
    else
        out2 <= in1;
 end

 // FDRE
 always @ ( posedge clk )begin
    if(rst)
        out3 <= 1'b0;
    else
        out3 <= in1;
 end

 // FDSE
 always @ ( posedge clk )begin
    if(rst)
        out4 <= 1'b1;
    else
        out4 <= in1;
 end

endmodule

 

合后:

图片[3]-在Xilinx的FPGA中D触发器都有哪几种类型?对应什么样的代码?-Xilinx-AMD社区-FPGA CPLD-ChipDebug
image-20210811093944333

 

 

请登录后发表评论

    没有回复内容