今天我們來研究一下D觸發(fā)器都有哪幾種類型?又對(duì)應(yīng)什么樣的代碼?
在Xilinx的FPGA中,D觸發(fā)器是下面這個(gè)樣子:
![pYYBAGGYHUCACwH4AABNXaJw9xE634.png](https://file.elecfans.com/web2/M00/1F/68/pYYBAGGYHUCACwH4AABNXaJw9xE634.png)
其中,D是數(shù)據(jù)輸入端口,CE是使能端口,CLK是時(shí)鐘輸入,SR是Set/Reset的意思,可用作置位或者復(fù)位,置位和復(fù)位又分同步和異步,因此D觸發(fā)器有如下四種應(yīng)用類型:
- 異步復(fù)位(FDCE)
- 異步置位(FDPE)
- 同步復(fù)位(FDRE)
- 同步置位(FDSE)
在Vivado的Language Templates中我們也可以看到,D觸發(fā)器有下面四種類型:
![poYBAGGYHUKAK6VgAADjD-ip_H4363.png](https://file.elecfans.com/web2/M00/1F/60/poYBAGGYHUKAK6VgAADjD-ip_H4363.png)
那這四種觸發(fā)器都對(duì)應(yīng)什么樣的代碼?
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
綜合后:
![pYYBAGGYHUOAZVe-AAIIK1ttxS4155.png](https://file.elecfans.com/web2/M00/1F/68/pYYBAGGYHUOAZVe-AAIIK1ttxS4155.png)
-
FPGA
+關(guān)注
關(guān)注
1630文章
21799瀏覽量
606208 -
Xilinx
+關(guān)注
關(guān)注
71文章
2171瀏覽量
122191 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2016瀏覽量
61370 -
代碼
+關(guān)注
關(guān)注
30文章
4830瀏覽量
69094
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論