⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨


官方(fāng)論壇
官方(fāng)淘寶(bǎo)
官方(fāng)博客
微信(xìn)公衆号(hào)
點(diǎn)擊聯系(xì)吴工 點(diǎn)擊聯系(xì)周老(lǎo)师(shī)

时(shí)序約束(shù)系(xì)列之D觸發(fà)器原理和(hé)FPGA时(shí)序結構-明(míng)德揚科教(minyingyiyuan.com)

發(fà)布(bù)时(shí)間(jiān):2019-12-10   作者(zhě):admin 浏覽量(liàng):

时(shí)序約束(shù)系(xì)列之D觸發(fà)器原理和(hé)FPGA时(shí)序結構


本(běn)文(wén)为(wèi)明(míng)德揚原創文(wén)章(zhāng),轉(zhuǎn)载請注明(míng)出(chū)处!作者(zhě):姬姬姬

明(míng)德揚有(yǒu)完整的(de)时(shí)序約束(shù)課程與(yǔ)理論,接下(xià)来(lái)我(wǒ)们(men)会(huì)一(yī)章(zhāng)一(yī)章(zhāng)以(yǐ)图(tú)文(wén)結合的(de)形式與(yǔ)大家(jiā)分(fēn)享时(shí)序約束(shù)的(de)知識。要(yào)掌握FPGA时(shí)序約束(shù),了(le)解(jiě)D觸發(fà)器以(yǐ)及(jí)FPGA運行原理是(shì)必備的(de)前(qián)提(tí)。今天(tiān)第(dì)一(yī)章(zhāng),我(wǒ)们(men)就(jiù)從D觸發(fà)器開(kāi)始講起。

一(yī)、D觸發(fà)器的(de)基本(běn)概念

1D觸發(fà)器結構

首先(xiān)是(shì)D觸發(fà)器的(de)結構,其硬(yìng)件(jiàn)電(diàn)路(lù)图(tú)如(rú)下(xià)所(suǒ)示,可(kě)以(yǐ)看(kàn)到(dào)D觸發(fà)器包(bāo)含複位、时(shí)鐘(zhōng)、輸入(rù)和(hé)輸出(chū);信(xìn)号(hào)由(yóu)D端輸入(rù),clk給(gěi)到(dào)上(shàng)升(shēng)沿的(de)指示,Q端輸出(chū)信(xìn)号(hào)。


D觸發(fà)器的(de)功能(néng)很簡單。

R等于(yú)0时(shí),q固定(dìng)輸出(chū)0

R等于(yú)1时(shí),遇到(dào)CLK的(de)上(shàng)升(shēng)沿时(shí),将D的(de)值賦給(gěi)QD是(shì)什麼(me)Q就(jiù)是(shì)什麼(me);非(fēi)CLK的(de)上(shàng)升(shēng)沿,Q保持(chí)不(bù)變(biàn)。

 

2D觸發(fà)器代(dài)碼

D觸發(fà)器的(de)代(dài)碼也(yě)很簡單,如(rú)下(xià)图(tú)所(suǒ)示,從代(dài)碼的(de)描述来(lái)看(kàn),依旧(jiù)是(shì)

rst_n等于(yú)0时(shí),q固定(dìng)輸出(chū)0

rst_n等于(yú)1时(shí),遇到(dào)clk的(de)上(shàng)升(shēng)沿时(shí),将d的(de)值賦給(gěi)qd是(shì)什麼(me)q就(jiù)是(shì)什麼(me);非(fēi)clk的(de)上(shàng)升(shēng)沿,q保持(chí)不(bù)變(biàn)。


3D觸發(fà)器波(bō)形

D觸發(fà)器工作波(bō)形如(rú)下(xià)所(suǒ)示,时(shí)鐘(zhōng)处于(yú)上(shàng)升(shēng)沿的(de)时(shí),如(rú)果(guǒ)輸入(rù)信(xìn)号(hào)D为(wèi)1,輸出(chū)信(xìn)号(hào)Q也(yě)为(wèi)1;如(rú)果(guǒ)輸入(rù)信(xìn)号(hào)D为(wèi)0,那(nà)麼(me)輸出(chū)信(xìn)号(hào)Q也(yě)为(wèi)0



4、建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)

       前(qián)面(miàn)波(bō)形图(tú)可(kě)以(yǐ)看(kàn)到(dào),D觸發(fà)器在(zài)上(shàng)升(shēng)沿处進(jìn)行信(xìn)号(hào)采集,为(wèi)了(le)保證采集到(dào)的(de)數據(jù)準确性(xìng),信(xìn)号(hào)D在(zài)上(shàng)升(shēng)沿前(qián)後(hòu)会(huì)保持(chí)狀态一(yī)段(duàn)时(shí)間(jiān)。在(zài)上(shàng)升(shēng)沿前(qián)的(de)这(zhè)段(duàn)时(shí)間(jiān)为(wèi)setup_time,叫做建立时(shí)間(jiān);上(shàng)升(shēng)沿後(hòu)的(de)这(zhè)段(duàn)时(shí)間(jiān)为(wèi)hold_time部(bù)分(fēn),叫做保持(chí)时(shí)間(jiān)。

關(guān)于(yú)建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)有(yǒu)幾(jǐ)个(gè)關(guān)鍵點(diǎn)需要(yào)注意(yì)。

首先(xiān)D觸發(fà)器的(de)數據(jù)輸入(rù)端必須在(zài)建立时(shí)間(jiān)前(qián)到(dào)达(dá),并且要(yào)保持(chí)到(dào)持(chí)續时(shí)間(jiān)以(yǐ)後(hòu),这(zhè)樣(yàng)才可(kě)以(yǐ)保證FPGA可(kě)以(yǐ)采集到(dào)正(zhèng)确的(de)數據(jù)。

其次(cì)建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)是(shì)D觸發(fà)器的(de)固有(yǒu)屬性(xìng),是(shì)不(bù)可(kě)改變(biàn)的(de)。注意(yì),这(zhè)里(lǐ)说(shuō)的(de)不(bù)可(kě)改變(biàn),是(shì)指不(bù)能(néng)從代(dài)碼层次(cì)去(qù)改變(biàn)。例如(rú)我(wǒ)们(men)買(mǎi)了(le)一(yī)个(gè)FPGA開(kāi)發(fà)板,其FPGA芯片(piàn)的(de)D觸發(fà)器建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)就(jiù)是(shì)固定(dìng)的(de),沒(méi)辦(bàn)法從VERILOG去(qù)修改,除非(fēi)換一(yī)个(gè)芯片(piàn)。

 

二(èr)、電(diàn)路(lù)的(de)延时(shí)

1、電(diàn)路(lù)延时(shí)原理

我(wǒ)们(men)知道(dào)從物(wù)理层面(miàn)看(kàn)電(diàn)平通(tòng)过(guò)每个(gè)階(jiē)段(duàn)都是(shì)需要(yào)一(yī)段(duàn)时(shí)間(jiān)的(de),这(zhè)就(jiù)是(shì)電(diàn)路(lù)的(de)延时(shí),我(wǒ)们(men)通(tòng)过(guò)FPGA中(zhōng)最(zuì)經(jīng)典的(de)結構来(lái)学習一(yī)下(xià)電(diàn)路(lù)的(de)延时(shí)。使用(yòng)了(le)两(liǎng)个(gè)D觸發(fà)器,中(zhōng)間(jiān)由(yóu)組合邏輯進(jìn)行相連(lián),即通(tòng)过(guò)一(yī)个(gè)組合邏輯電(diàn)路(lù)将两(liǎng)个(gè)D觸發(fà)器相連(lián)。電(diàn)路(lù)图(tú)如(rú)下(xià)图(tú)所(suǒ)示:


從图(tú)中(zhōng)可(kě)以(yǐ)看(kàn)出(chū),一(yī)个(gè)有(yǒu)效信(xìn)号(hào)經(jīng)过(guò)D觸發(fà)器1之後(hòu),接着經(jīng)过(guò)一(yī)段(duàn)組合邏輯(可(kě)以(yǐ)是(shì)加法器、選擇器、乘法器这(zhè)些電(diàn)路(lù),也(yě)可(kě)以(yǐ)僅僅是(shì)連(lián)線(xiàn))然後(hòu)到(dào)达(dá)另(lìng)一(yī)个(gè)D觸發(fà)器2D觸發(fà)器2对(duì)信(xìn)号(hào)進(jìn)行判斷後(hòu)繼續進(jìn)行輸出(chū)。下(xià)面(miàn)逐个(gè)分(fēn)析这(zhè)个(gè)基本(běn)結構里(lǐ)面(miàn)包(bāo)含的(de)时(shí)間(jiān)參數。

首先(xiān)Tclk1是(shì)时(shí)鐘(zhōng)到(dào)D觸發(fà)器1的(de)时(shí)間(jiān)。Tclk2为(wèi)时(shí)鐘(zhōng)到(dào)达(dá)D觸發(fà)器2的(de)时(shí)間(jiān),在(zài)真(zhēn)实的(de)物(wù)理情(qíng)況下(xià),因(yīn)为(wèi)有(yǒu)線(xiàn)路(lù)的(de)延时(shí),两(liǎng)个(gè)时(shí)鐘(zhōng)采到(dào)的(de)上(shàng)升(shēng)沿其实是(shì)不(bù)同(tóng)的(de),有(yǒu)一(yī)點(diǎn)微小的(de)差别;但是(shì)FPGA里(lǐ)面(miàn),我(wǒ)们(men)經(jīng)常把这(zhè)个(gè)时(shí)間(jiān)忽略掉,因(yīn)为(wèi)我(wǒ)们(men)FPGA时(shí)鐘(zhōng)时(shí)專門(mén)优化(huà)过(guò)的(de),它(tā)们(men)之間(jiān)的(de)差别会(huì)比較小,因(yīn)此(cǐ)在(zài)这(zhè)里(lǐ)我(wǒ)们(men)先(xiān)忽略不(bù)計(jì)。Tclk1和(hé)Tclk2是(shì)时(shí)鐘(zhōng)延时(shí)。

還(huán)有(yǒu)一(yī)段(duàn)时(shí)間(jiān)为(wèi)D觸發(fà)器的(de)傳輸延时(shí),即上(shàng)升(shēng)沿之後(hòu),采集到(dào)的(de)數據(jù)從進(jìn)入(rù)到(dào)出(chū)来(lái)这(zhè)段(duàn)时(shí)間(jiān)延时(shí)。如(rú)下(xià)图(tú)所(suǒ)示,輸出(chū)信(xìn)号(hào)Q在(zài)上(shàng)升(shēng)沿後(hòu)一(yī)段(duàn)时(shí)間(jiān)由(yóu)0變(biàn)1,这(zhè)段(duàn)为(wèi)D觸發(fà)器的(de)傳輸延时(shí)。

 

接着D觸發(fà)器1之後(hòu)信(xìn)号(hào)需要(yào)通(tòng)过(guò)組合邏輯賦到(dào)D觸發(fà)器2之前(qián)的(de)位置,这(zhè)段(duàn)时(shí)間(jiān)是(shì)組合邏輯的(de)延时(shí),即信(xìn)号(hào)通(tòng)过(guò)組合邏輯这(zhè)段(duàn)时(shí)間(jiān)的(de)延时(shí)为(wèi)組合邏輯延时(shí)Tdata

最(zuì)後(hòu)還(huán)有(yǒu)前(qián)面(miàn)講到(dào)的(de)建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān),信(xìn)号(hào)在(zài)D觸發(fà)器2会(huì)有(yǒu)建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān),这(zhè)就(jiù)是(shì)D觸發(fà)器本(běn)身(shēn)的(de)延时(shí)。

 

2、时(shí)序表(biǎo)示電(diàn)路(lù)的(de)延时(shí)

这(zhè)里(lǐ)我(wǒ)们(men)可(kě)以(yǐ)用(yòng)时(shí)序来(lái)表(biǎo)示这(zhè)組結構中(zhōng)的(de)信(xìn)号(hào)變(biàn)化(huà)。如(rú)下(xià)所(suǒ)示,比如(rú)我(wǒ)们(men)有(yǒu)两(liǎng)个(gè)时(shí)鐘(zhōng)上(shàng)升(shēng)沿,在(zài)最(zuì)開(kāi)始,所(suǒ)有(yǒu)位置的(de)信(xìn)号(hào)都为(wèi)0


假設一(yī)个(gè)由(yóu)0變(biàn)1的(de)信(xìn)号(hào)需要(yào)通(tòng)过(guò)前(qián)面(miàn)的(de)組合邏輯,首先(xiān)D觸發(fà)器1前(qián)面(miàn)一(yī)段(duàn)由(yóu)0變(biàn)1,即图(tú)中(zhōng)點(diǎn)a到(dào)點(diǎn)b變(biàn)为(wèi)1,这(zhè)段(duàn)时(shí)間(jiān)在(zài)时(shí)序中(zhōng)如(rú)下(xià)图(tú)中(zhōng)點(diǎn)a與(yǔ)點(diǎn)b的(de)位置。

1D觸發(fà)器傳輸延时(shí)

接着是(shì)D觸發(fà)器的(de)傳輸延时(shí),在(zài)时(shí)鐘(zhōng)上(shàng)升(shēng)沿处,信(xìn)号(hào)1D觸發(fà)器1後(hòu)輸出(chū),即下(xià)图(tú)中(zhōng)信(xìn)号(hào)從c點(diǎn)輸出(chū),这(zhè)段(duàn)时(shí)間(jiān)的(de)延时(shí)在(zài)时(shí)序中(zhōng)为(wèi)时(shí)鐘(zhōng)上(shàng)升(shēng)沿处到(dào)信(xìn)号(hào)輸出(chū)的(de)延时(shí),即下(xià)面(miàn)时(shí)序图(tú)中(zhōng)Tco部(bù)分(fēn)。


2)組合邏輯延时(shí)間(jiān)

之後(hòu)信(xìn)号(hào)会(huì)通(tòng)过(guò)組合邏輯,这(zhè)段(duàn)时(shí)間(jiān)为(wèi)組合邏輯的(de)延时(shí)Tdata。如(rú)下(xià)图(tú)所(suǒ)示,此(cǐ)信(xìn)号(hào)由(yóu)點(diǎn)c通(tòng)过(guò)組合邏輯接着傳輸到(dào)點(diǎn)d,在(zài)时(shí)序图(tú)中(zhōng)为(wèi)Tdata部(bù)分(fēn)。




3)建立时(shí)間(jiān)

當然不(bù)要(yào)忘記(jì)我(wǒ)们(men)前(qián)面(miàn)講的(de)D觸發(fà)器傳輸信(xìn)号(hào)会(huì)有(yǒu)一(yī)段(duàn)的(de)建立时(shí)間(jiān),因(yīn)此(cǐ)在(zài)时(shí)序中(zhōng)信(xìn)号(hào)1会(huì)提(tí)前(qián)到(dào)达(dá)d點(diǎn),即信(xìn)号(hào)到(dào)达(dá)d點(diǎn)时(shí),到(dào)达(dá)下(xià)一(yī)个(gè)时(shí)鐘(zhōng)上(shàng)升(shēng)沿還(huán)有(yǒu)一(yī)段(duàn)时(shí)間(jiān),如(rú)下(xià)面(miàn)时(shí)序图(tú)中(zhōng)Tus部(bù)分(fēn)所(suǒ)示。


當然像上(shàng)图(tú)中(zhōng)这(zhè)樣(yàng)信(xìn)号(hào)到(dào)达(dá)d點(diǎn)的(de)时(shí)間(jiān)與(yǔ)建立时(shí)間(jiān)相等的(de)情(qíng)況是(shì)比較理想(xiǎng)的(de)狀态,現(xiàn)实工程中(zhōng)大多(duō)數情(qíng)況下(xià)信(xìn)号(hào)1都会(huì)提(tí)前(qián)到(dào)达(dá)d點(diǎn),等待建立时(shí)間(jiān)的(de)到(dào)来(lái),即时(shí)間(jiān)預量(liàng)。实際的(de)时(shí)序图(tú)如(rú)下(xià)所(suǒ)示,可(kě)以(yǐ)看(kàn)到(dào)信(xìn)号(hào)达(dá)到(dào)d點(diǎn)的(de)时(shí)間(jiān)與(yǔ)D觸發(fà)器建立时(shí)間(jiān)并不(bù)重(zhòng)合,中(zhōng)間(jiān)会(huì)有(yǒu)一(yī)段(duàn)时(shí)間(jiān)預量(liàng),这(zhè)才是(shì)实際工程中(zhōng)可(kě)以(yǐ)見(jiàn)到(dào)的(de)情(qíng)況。

以(yǐ)上(shàng)就(jiù)是(shì)由(yóu)0變(biàn)1的(de)信(xìn)号(hào)通(tòng)过(guò)两(liǎng)个(gè)D觸發(fà)器和(hé)一(yī)段(duàn)組合邏輯的(de)流程。在(zài)理想(xiǎng)狀态下(xià)整个(gè)过(guò)程的(de)延时(shí)與(yǔ)时(shí)間(jiān)周期(qī)是(shì)相等的(de),但是(shì)实際情(qíng)況下(xià)会(huì)有(yǒu)一(yī)定(dìng)的(de)變(biàn)化(huà),这(zhè)时(shí)需要(yào)我(wǒ)们(men)具體(tǐ)問(wèn)題(tí)具體(tǐ)分(fēn)析。

 

三(sān)、D觸發(fà)器在(zài)FPGA中(zhōng)的(de)使用(yòng)

1FPGA的(de)電(diàn)路(lù)結構

了(le)解(jiě)了(le)两(liǎng)个(gè)D觸發(fà)器的(de)組合使用(yòng),下(xià)面(miàn)学習FPGA的(de)基本(běn)電(diàn)路(lù)結構。

FPGA的(de)基本(běn)電(diàn)路(lù)結構如(rú)上(shàng)图(tú)所(suǒ)示。我(wǒ)们(men)可(kě)以(yǐ)把電(diàn)路(lù)分(fēn)成(chéng)两(liǎng)个(gè)部(bù)分(fēn):D觸發(fà)器和(hé)組合邏輯。每两(liǎng)个(gè)D觸發(fà)器之間(jiān),都会(huì)有(yǒu)或(huò)多(duō)或(huò)少(shǎo)的(de)組合邏輯。組合邏輯可(kě)以(yǐ)是(shì)乘法器、加法器、RAM,甚至(zhì)就(jiù)是(shì)一(yī)条(tiáo)簡單的(de)連(lián)線(xiàn)。前(qián)一(yī)个(gè)D觸發(fà)器的(de)輸出(chū)端,經(jīng)过(guò)組合邏輯運算後(hòu),給(gěi)了(le)下(xià)一(yī)个(gè)D觸發(fà)器的(de)輸入(rù)端,等待时(shí)鐘(zhōng)上(shàng)升(shēng)沿的(de)时(shí)候,再傳遞給(gěi)D觸發(fà)器的(de)輸出(chū)端。

上(shàng)图(tú)中(zhōng),所(suǒ)有(yǒu)的(de)D觸發(fà)器都統一(yī)受时(shí)鐘(zhōng)CLK的(de)控制,都是(shì)在(zài)CLK的(de)上(shàng)升(shēng)沿把輸入(rù)的(de)值傳遞給(gěi)輸出(chū)端。

FPGA中(zhōng)有(yǒu)4个(gè)組合邏輯ABCD ,邏輯與(yǔ)邏輯之間(jiān),共(gòng)使用(yòng)了(le)5个(gè)D觸發(fà)器傳輸數據(jù)。其中(zhōng)組合邏輯A持(chí)續20納秒(miǎo),組合邏輯B持(chí)續40納秒(miǎo),組合邏輯C持(chí)續50納秒(miǎo),組合邏輯D持(chí)續35納秒(miǎo)。时(shí)鐘(zhōng)周期(qī)为(wèi)100納秒(miǎo),即上(shàng)升(shēng)沿100納秒(miǎo)産生(shēng)一(yī)次(cì);每个(gè)觸發(fà)器的(de)建立时(shí)間(jiān)为(wèi)5納秒(miǎo),保持(chí)时(shí)間(jiān)为(wèi)25納秒(miǎo)。

 

2、現(xiàn)实案(àn)例

为(wèi)了(le)便于(yú)理解(jiě),我(wǒ)们(men)用(yòng)一(yī)个(gè)生(shēng)活中(zhōng)的(de)例子類(lèi)比一(yī)下(xià)D觸發(fà)器與(yǔ)組合邏輯的(de)關(guān)系(xì)。如(rú)下(xià)图(tú)所(suǒ)示,現(xiàn)在(zài)有(yǒu)一(yī)个(gè)生(shēng)産線(xiàn)生(shēng)産一(yī)款産品,一(yī)共(gòng)需要(yào)4个(gè)步驟,分(fēn)别由(yóu)員工ABCD来(lái)完成(chéng),其中(zhōng)A做完一(yī)个(gè)工序需要(yào)2小时(shí),B需要(yào)1小时(shí),C需要(yào)3小时(shí),D是(shì)0.5小时(shí)。工廠(chǎng)統一(yī)規定(dìng)每隔5个(gè)小时(shí)交接一(yī)次(cì);为(wèi)了(le)避免交接混亂,要(yào)求交接點(diǎn)前(qián)5分(fēn)鐘(zhōng)交接,交接點(diǎn)後(hòu)10分(fēn)鐘(zhōng)才能(néng)繼續工作。





此(cǐ)生(shēng)産線(xiàn)就(jiù)像是(shì)前(qián)面(miàn)我(wǒ)们(men)講到(dào)的(de)FPGA電(diàn)路(lù)結構,四(sì)个(gè)員工就(jiù)相當于(yú)FPGA中(zhōng)四(sì)个(gè)組合邏輯,大家(jiā)在(zài)同(tóng)一(yī)个(gè)环(huán)境下(xià)工作,被(bèi)同(tóng)一(yī)个(gè)时(shí)鐘(zhōng)所(suǒ)支配,相互間(jiān)又有(yǒu)着傳輸關(guān)系(xì)。

要(yào)求每5个(gè)小时(shí)交接一(yī)次(cì)相當于(yú)100納秒(miǎo)産生(shēng)一(yī)次(cì)时(shí)鐘(zhōng)上(shàng)升(shēng)沿;每一(yī)位員工交接給(gěi)下(xià)一(yī)位員工的(de)这(zhè)个(gè)过(guò)程就(jiù)相當于(yú)D觸發(fà)器将輸入(rù)的(de)值賦給(gěi)輸出(chū)。

所(suǒ)有(yǒu)員工在(zài)交接點(diǎn)前(qián)5分(fēn)鐘(zhōng)都停下(xià)手(shǒu)中(zhōng)工作,進(jìn)入(rù)準備交接狀态,5分(fēn)鐘(zhōng)相當于(yú)D觸發(fà)器的(de)建立时(shí)間(jiān)5納秒(miǎo);交接點(diǎn)後(hòu)10分(fēn)鐘(zhōng),大家(jiā)依旧(jiù)保持(chí)交接狀态,10分(fēn)鐘(zhōng)相當于(yú)D觸發(fà)器的(de)保持(chí)时(shí)間(jiān)25納秒(miǎo)。

公司的(de)規定(dìng)必須提(tí)前(qián)5分(fēn)鐘(zhōng),等待10分(fēn)鐘(zhōng)進(jìn)行交接,就(jiù)和(hé)D觸發(fà)器的(de)硬(yìng)件(jiàn)特(tè)性(xìng)相同(tóng),交接时(shí)間(jiān)是(shì)不(bù)能(néng)因(yīn)为(wèi)个(gè)人(rén)改變(biàn)的(de);不(bù)論工作什麼(me)时(shí)候完成(chéng),在(zài)交接點(diǎn)前(qián)5分(fēn)鐘(zhōng)一(yī)定(dìng)要(yào)準備交接,交接點(diǎn)後(hòu)保持(chí)交接狀态10分(fēn)鐘(zhōng)才可(kě)以(yǐ)繼續工作,这(zhè)樣(yàng)才可(kě)以(yǐ)保證整个(gè)生(shēng)産線(xiàn)可(kě)以(yǐ)流暢進(jìn)行。

我(wǒ)们(men)用(yòng)了(le)一(yī)个(gè)簡單的(de)案(àn)例比較清(qīng)晰的(de)理解(jiě)了(le)D觸發(fà)器,通(tòng)俗来(lái)说(shuō)就(jiù)是(shì)需要(yào)傳輸的(de)數據(jù)等待在(zài)D觸發(fà)器前(qián),D觸發(fà)器每个(gè)时(shí)鐘(zhōng)都会(huì)在(zài)門(mén)口(kǒu)進(jìn)行檢测,檢测到(dào)了(le)有(yǒu)效數據(jù)後(hòu),在(zài)此(cǐ)时(shí)鐘(zhōng)上(shàng)升(shēng)沿進(jìn)行數據(jù)輸出(chū)。

 

以(yǐ)上(shàng)就(jiù)是(shì)明(míng)德揚时(shí)序約束(shù)課程中(zhōng)D觸發(fà)器部(bù)分(fēn)的(de)相關(guān)知識,想(xiǎng)要(yào)獲取(qǔ)时(shí)序約束(shù)相關(guān)資料的(de)同(tóng)学可(kě)以(yǐ)加Q 1744527324(明(míng)德揚小冉)了(le)解(jiě)!

   拓展(zhǎn)閱读(dú)
⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨