⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ 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ī)

FPGA时(shí)序約束(shù)分(fēn)享01_四(sì)大步驟簡述

發(fà)布(bù)时(shí)間(jiān):2023-04-13   作者(zhě):luoxiaoling 浏覽量(liàng):

第(dì)一(yī)章(zhāng)  FPGA設計(jì)之时(shí)序約束(shù)四(sì)大步驟簡述

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

本(běn)文(wén)章(zhāng)探讨一(yī)下(xià)FPGA的(de)时(shí)序約束(shù)步驟,本(běn)文(wén)章(zhāng)內(nèi)容,来(lái)源于(yú)配置的(de)明(míng)德揚时(shí)序約束(shù)專題(tí)課視頻。

时(shí)序約束(shù)是(shì)一(yī)个(gè)非(fēi)常重(zhòng)要(yào)的(de)內(nèi)容,而(ér)且內(nèi)容比較多(duō),比較雜。因(yīn)此(cǐ),很多(duō)读(dú)者(zhě)对(duì)于(yú)怎麼(me)進(jìn)行約束(shù),約束(shù)的(de)步驟过(guò)程有(yǒu)哪些等,不(bù)是(shì)很清(qīng)楚。明(míng)德揚根(gēn)據(jù)以(yǐ)往項目的(de)經(jīng)验(yàn),把时(shí)序約束(shù)的(de)步驟,概括分(fēn)成(chéng)四(sì)大步,分(fēn)别是(shì)时(shí)鐘(zhōng)的(de)約束(shù)input delays的(de)約束(shù)output delays的(de)約束(shù)和(hé)时(shí)序例外(wài)。

时(shí)序約束(shù)是(shì)有(yǒu)先(xiān)後(hòu)的(de),首先(xiān)要(yào)做时(shí)鐘(zhōng)約束(shù)、其次(cì)是(shì)input delays約束(shù)、再次(cì)是(shì)output delays約束(shù),最(zuì)後(hòu)才是(shì)时(shí)序例外(wài)的(de)約束(shù)。这(zhè)是(shì)一(yī)个(gè)完整的(de)大步驟,也(yě)就(jiù)是(shì)说(shuō)我(wǒ)们(men)在(zài)項目開(kāi)始階(jiē)段(duàn)就(jiù)可(kě)以(yǐ)約束(shù)我(wǒ)们(men)的(de)时(shí)鐘(zhōng),把我(wǒ)们(men)时(shí)鐘(zhōng)的(de)頻率、周期(qī)、来(lái)源等等定(dìng)義好(hǎo)。这(zhè)一(yī)步做完之後(hòu),先(xiān)不(bù)要(yào)做二(èr)三(sān)四(sì)步。这(zhè)时(shí)候我(wǒ)们(men)要(yào)完成(chéng)我(wǒ)们(men)的(de)設計(jì),要(yào)把我(wǒ)们(men)內(nèi)部(bù)的(de)时(shí)序都完成(chéng)之後(hòu)才做第(dì)二(èr)步設置“input delays”,比如(rú)说(shuō)我(wǒ)们(men)從外(wài)部(bù)進(jìn)来(lái)的(de)一(yī)个(gè)情(qíng)況。第(dì)三(sān)步output delays,也(yě)就(jiù)是(shì)说(shuō)要(yào)往下(xià)遊器件(jiàn)發(fà)送的(de)一(yī)个(gè)时(shí)序情(qíng)況。當这(zhè)一(yī)二(èr)三(sān)步都做完之後(hòu),我(wǒ)们(men)在(zài)最(zuì)後(hòu)項目的(de)階(jiē)段(duàn)才做一(yī)个(gè)时(shí)序例外(wài)的(de)情(qíng)況。时(shí)序例外(wài)也(yě)就(jiù)是(shì)说(shuō)哪些时(shí)序是(shì)不(bù)需要(yào)分(fēn)析的(de),这(zhè)種(zhǒng)情(qíng)況要(yào)設置好(hǎo)。最(zuì)後(hòu)我(wǒ)们(men)才能(néng)把整个(gè)时(shí)序約束(shù)完成(chéng)。

以(yǐ)上(shàng)是(shì)大的(de)步驟,但事(shì)实上(shàng)每一(yī)个(gè)步驟又可(kě)以(yǐ)细(xì)分(fēn)成(chéng)很多(duō)種(zhǒng)情(qíng)況。例如(rú)时(shí)鐘(zhōng)約束(shù),时(shí)鐘(zhōng)可(kě)以(yǐ)分(fēn)很多(duō)種(zhǒng),一(yī)種(zhǒng)是(shì)差分(fēn)时(shí)鐘(zhōng),一(yī)種(zhǒng)是(shì)管(guǎn)脚進(jìn)来(lái)的(de)时(shí)鐘(zhōng)、還(huán)有(yǒu)我(wǒ)们(men)PLL産生(shēng)时(shí)鐘(zhōng)等等。還(huán)有(yǒu)一(yī)種(zhǒng)是(shì)有(yǒu)數據(jù)但沒(méi)有(yǒu)时(shí)鐘(zhōng)的(de)情(qíng)況。input delays、output delays 也(yě)有(yǒu)很多(duō)種(zhǒng),我(wǒ)们(men)到(dào)底要(yào)怎麼(me)樣(yàng)去(qù)分(fēn)析,怎麼(me)去(qù)看(kàn)。明(míng)德揚就(jiù)把这(zhè)四(sì)个(gè)步驟再進(jìn)行细(xì)化(huà),就(jiù)是(shì)根(gēn)據(jù)情(qíng)況来(lái)分(fēn)别列出(chū)来(lái)。


下(xià)面(miàn)分(fēn)别展(zhǎn)開(kāi)描述。

第(dì)1节(jié) 时(shí)鐘(zhōng)

时(shí)鐘(zhōng)約束(shù)可(kě)以(yǐ)分(fēn)成(chéng)很多(duō)種(zhǒng)情(qíng)況,不(bù)同(tóng)的(de)情(qíng)況就(jiù)有(yǒu)不(bù)同(tóng)的(de)約束(shù)方(fāng)法,一(yī)般有(yǒu)哪幾(jǐ)種(zhǒng)情(qíng)況呢?


如(rú)上(shàng)图(tú),时(shí)鐘(zhōng)約束(shù)概括地(dì),可(kě)以(yǐ)分(fēn)成(chéng)三(sān)種(zhǒng)情(qíng)況,分(fēn)别是(shì)輸入(rù)时(shí)鐘(zhōng)、PLL等衍生(shēng)时(shí)鐘(zhōng)以(yǐ)及(jí)自(zì)己分(fēn)步的(de)时(shí)鐘(zhōng)。

1.1 輸入(rù)时(shí)鐘(zhōng)

輸入(rù)时(shí)鐘(zhōng)是(shì)指时(shí)鐘(zhōng)從FPGA管(guǎn)脚進(jìn)来(lái)的(de)情(qíng)形,这(zhè)也(yě)是(shì)最(zuì)常見(jiàn)的(de)情(qíng)況。根(gēn)據(jù)輸入(rù)的(de)管(guǎn)脚的(de)不(bù)同(tóng),輸入(rù)时(shí)鐘(zhōng)情(qíng)況又可(kě)以(yǐ)分(fēn)成(chéng):輸入(rù)管(guǎn)脚是(shì)單端的(de)、輸入(rù)管(guǎn)脚是(shì)差分(fēn)的(de),以(yǐ)及(jí)GT或(huò)者(zhě)恢複时(shí)鐘(zhōng)三(sān)種(zhǒng)情(qíng)況。

第(dì)一(yī)種(zhǒng):輸入(rù)管(guǎn)脚是(shì)單端的(de),即时(shí)鐘(zhōng)直(zhí)接從管(guǎn)脚進(jìn)来(lái)、并且是(shì)單端信(xìn)号(hào)。例如(rú)普通(tòng)低速晶振,大部(bù)分(fēn)是(shì)这(zhè)種(zhǒng)情(qíng)況,明(míng)德揚的(de)FPGA ALTERA学習板,如(rú)MP801、MP603,其时(shí)鐘(zhōng)均是(shì)由(yóu)晶振産生(shēng),送到(dào)FPGA,并且是(shì)單端的(de)信(xìn)号(hào)。

第(dì)二(èr)種(zhǒng):輸入(rù)管(guǎn)脚是(shì)差分(fēn)的(de),即时(shí)鐘(zhōng)直(zhí)接從管(guǎn)脚進(jìn)来(lái),并且是(shì)差分(fēn)信(xìn)号(hào)。大部(bù)分(fēn)高(gāo)速晶振、LVDS接口(kǒu)等,屬于(yú)此(cǐ)情(qíng)形。例如(rú)明(míng)德揚FPGA XILINX学習板,如(rú)MP802,其包(bāo)含了(le)PCIE管(guǎn)脚,其輸入(rù)的(de)时(shí)鐘(zhōng)就(jiù)是(shì)差分(fēn)的(de);这(zhè)个(gè)板子的(de)DDR的(de)驅動(dòng)时(shí)鐘(zhōng),时(shí)鐘(zhōng)頻率在(zài)200M左(zuǒ)右(yòu),也(yě)是(shì)屬于(yú)此(cǐ)種(zhǒng)以(yǐ)情(qíng)形。

第(dì)三(sān)種(zhǒng):GT或(huò)者(zhě)恢複时(shí)鐘(zhōng),即使用(yòng)了(le)高(gāo)速收(shōu)發(fà)器的(de)情(qíng)形。在(zài)高(gāo)速收(shōu)發(fà)器管(guǎn)脚中(zhōng),是(shì)沒(méi)有(yǒu)时(shí)鐘(zhōng)的(de),时(shí)鐘(zhōng)已經(jīng)嵌入(rù)到(dào)數據(jù)里(lǐ)面(miàn),使用(yòng)FPGA的(de)GTX IP核接收(shōu)數據(jù),并且從數據(jù)恢複出(chū)时(shí)鐘(zhōng)。这(zhè)个(gè)恢複出(chū)来(lái)的(de)时(shí)鐘(zhōng)就(jiù)是(shì)此(cǐ)種(zhǒng)情(qíng)形。最(zuì)常見(jiàn)的(de)就(jiù)是(shì)光(guāng)纤接口(kǒu)。

1.2 PLL等衍生(shēng)时(shí)鐘(zhōng)

那(nà)假如(rú)说(shuō)我(wǒ)不(bù)是(shì)輸入(rù)管(guǎn)脚,而(ér)是(shì)PLL産生(shēng)的(de)輸出(chū)时(shí)鐘(zhōng),这(zhè)个(gè) 就(jiù)是(shì)PLL等衍生(shēng)时(shí)鐘(zhōng)。这(zhè)種(zhǒng)时(shí)鐘(zhōng),FPGA的(de)工具,会(huì)自(zì)行推導,一(yī)般无需約束(shù),但实質(zhì)應(yìng)用(yòng)中(zhōng),強(qiáng)烈建議約束(shù),会(huì)有(yǒu)好(hǎo)处的(de),好(hǎo)处在(zài)下(xià)一(yī)篇(piān)文(wén)章(zhāng)中(zhōng)说(shuō)明(míng)。

1.3 自(zì)己分(fēn)頻的(de)时(shí)鐘(zhōng)

還(huán)有(yǒu)一(yī)種(zhǒng)情(qíng)況是(shì)自(zì)己分(fēn)頻的(de)时(shí)鐘(zhōng),假如(rú)说(shuō)我(wǒ)们(men)自(zì)己写了(le)一(yī)个(gè)計(jì)數器,把它(tā)二(èr)分(fēn)頻、四(sì)分(fēn)頻、八(bā)分(fēn)頻等,分(fēn)頻出(chū)来(lái)的(de)信(xìn)号(hào)當为(wèi)时(shí)鐘(zhōng),这(zhè)種(zhǒng)情(qíng)況就(jiù)是(shì)自(zì)己分(fēn)頻的(de)时(shí)鐘(zhōng)。

首先(xiān)说(shuō)明(míng),明(míng)德揚不(bù)推薦使用(yòng)此(cǐ)方(fāng)法来(lái)産生(shēng)时(shí)鐘(zhōng)。但确实要(yào)用(yòng)到(dào)分(fēn)頻时(shí)鐘(zhōng)时(shí),那(nà)就(jiù)要(yào)記(jì)得做时(shí)鐘(zhōng)約束(shù)。这(zhè)種(zhǒng)情(qíng)況下(xià)要(yào)怎麼(me)進(jìn)行約束(shù)呢?


以(yǐ)上(shàng)概括了(le)说(shuō)明(míng)了(le)时(shí)鐘(zhōng)的(de)幾(jǐ)種(zhǒng)情(qíng)況,每種(zhǒng)情(qíng)況下(xià),其約束(shù)方(fāng)法都有(yǒu)些不(bù)同(tóng)以(yǐ)及(jí)注意(yì)點(diǎn)。具體(tǐ)約束(shù)方(fāng)法,可(kě)以(yǐ)看(kàn)後(hòu)續文(wén)章(zhāng)的(de)內(nèi)容。

第(dì)2节(jié) input delays

input delay約束(shù),即輸入(rù)延时(shí)約束(shù)是(shì)时(shí)序約束(shù)的(de)重(zhòng)點(diǎn)input delay 又分(fēn)幾(jǐ)種(zhǒng)呢?


如(rú)上(shàng)图(tú),input delay約束(shù)概括地(dì),可(kě)以(yǐ)分(fēn)成(chéng)三(sān)種(zhǒng)情(qíng)況,分(fēn)别是(shì)系(xì)統同(tóng)步、源同(tóng)步和(hé)有(yǒu)數據(jù)无时(shí)鐘(zhōng)。


2.1 系(xì)統同(tóng)步

第(dì)一(yī)个(gè)是(shì)系(xì)統同(tóng)步方(fāng)式,也(yě)就(jiù)是(shì)说(shuō)整个(gè)電(diàn)路(lù)板上(shàng)FPGA以(yǐ)及(jí)上(shàng)遊器件(jiàn)都共(gòng)用(yòng)一(yī)个(gè)时(shí)鐘(zhōng),并且相位嚴格相同(tóng),这(zhè)个(gè)就(jiù)是(shì)系(xì)統同(tóng)步的(de)方(fāng)式。

2.2 源同(tóng)步

第(dì)二(èr)種(zhǒng)是(shì)源同(tóng)步的(de)方(fāng)式,源同(tóng)步是(shì)怎麼(me)樣(yàng)?就(jiù)是(shì)上(shàng)遊器件(jiàn),把數據(jù)和(hé)时(shí)鐘(zhōng)信(xìn)号(hào)一(yī)起送到(dào)FPGA上(shàng)来(lái)的(de),那(nà)这(zhè)種(zhǒng)就(jiù)是(shì)源同(tóng)步。

源同(tóng)步是(shì)更(gèng)常用(yòng)的(de)一(yī)種(zhǒng)方(fāng)式,系(xì)統同(tóng)步比較少(shǎo)用(yòng),为(wèi)什麼(me)呢?因(yīn)为(wèi)要(yào)做到(dào)上(shàng)遊器件(jiàn)跟FPGA的(de)相位差为(wèi)0,沒(méi)有(yǒu)一(yī)點(diǎn)时(shí)鐘(zhōng)差,这(zhè)種(zhǒng)要(yào)求非(fēi)常高(gāo)。而(ér)源同(tóng)步是(shì)數據(jù)跟时(shí)鐘(zhōng)都是(shì)從上(shàng)遊器件(jiàn)一(yī)起輸送过(guò)来(lái)給(gěi)FPGA,这(zhè)是(shì)一(yī)種(zhǒng)更(gèng)常用(yòng)的(de)方(fāng)式。

这(zhè)个(gè)源同(tóng)步,又有(yǒu)很多(duō)種(zhǒng),具體(tǐ)SDR、DDR和(hé)有(yǒu)數據(jù)无时(shí)鐘(zhōng)三(sān)種(zhǒng)情(qíng)況。

第(dì)一(yī)種(zhǒng):SDR。SDR是(shì)指时(shí)鐘(zhōng)是(shì)單沿有(yǒu)效的(de)方(fāng)式,比如(rú)说(shuō)我(wǒ)只(zhī)用(yòng)上(shàng)升(shēng)延或(huò)者(zhě)下(xià)降延的(de)一(yī)个(gè)方(fāng)式,SDR約束(shù)的(de)參數,其獲取(qǔ)的(de)方(fāng)法有(yǒu)两(liǎng)種(zhǒng):查看(kàn)上(shàng)遊器件(jiàn)手(shǒu)册(通(tòng)过(guò)查看(kàn)上(shàng)遊器的(de)數據(jù)手(shǒu)册,獲取(qǔ)參數)以(yǐ)及(jí)通(tòng)过(guò)示波(bō)器测量(liàng)(通(tòng)过(guò)示波(bō)器测量(liàng)信(xìn)号(hào)的(de)相位差,獲取(qǔ)參數)。


第(dì)二(èr)種(zhǒng):DDR。DDR是(shì)另(lìng)一(yī)種(zhǒng)方(fāng)式,它(tā)是(shì)一(yī)種(zhǒng)时(shí)鐘(zhōng)双(shuāng)沿有(yǒu)效的(de)一(yī)个(gè)方(fāng)式。也(yě)就(jiù)说(shuō)即用(yòng)它(tā)的(de)上(shàng)升(shēng)延,也(yě)用(yòng)它(tā)的(de)下(xià)降延。例如(rú)说(shuō)我(wǒ)们(men)的(de)DDR2、DDR3的(de)时(shí)鐘(zhōng),都是(shì)上(shàng)下(xià)降沿一(yī)直(zhí)采數據(jù)的(de);包(bāo)括千(qiān)兆(zhào)网(wǎng)的(de)RGMII接口(kǒu),也(yě)是(shì)通(tòng)过(guò)双(shuāng)沿的(de)方(fāng)式。

DDR的(de)这(zhè)種(zhǒng)情(qíng)況,我(wǒ)们(men)還(huán)可(kě)以(yǐ)繼續劃(huà)分(fēn)成(chéng)中(zhōng)心(xīn)对(duì)齊和(hé)邊(biān)沿对(duì)齊两(liǎng)種(zhǒng)情(qíng)況。

中(zhōng)心(xīn)对(duì)齊是(shì)指:时(shí)鐘(zhōng)邊(biān)沿始終(zhōng)在(zài)數據(jù)的(de)中(zhōng)間(jiān),时(shí)鐘(zhōng)上(shàng)升(shēng)沿的(de)左(zuǒ)右(yòu)两(liǎng)邊(biān),數據(jù)都是(shì)稳定(dìng)的(de)。邊(biān)沿对(duì)齊是(shì)指:时(shí)鐘(zhōng)和(hé)數據(jù)邊(biān)沿对(duì)齊的(de),在(zài)时(shí)鐘(zhōng)變(biàn)化(huà)沿两(liǎng)邊(biān),其數據(jù)是(shì)不(bù)稳定(dìng)的(de)。

第(dì)三(sān)種(zhǒng):有(yǒu)數據(jù)无时(shí)鐘(zhōng)。第(dì)三(sān)種(zhǒng)就(jiù)是(shì)有(yǒu)數據(jù)无时(shí)鐘(zhōng)的(de)情(qíng)況。例如(rú)说(shuō)常見(jiàn)的(de)串口(kǒu)。串口(kǒu)是(shì)直(zhí)接數據(jù)过(guò)来(lái)的(de),它(tā)是(shì)沒(méi)有(yǒu)随路(lù)时(shí)鐘(zhōng)过(guò)来(lái)的(de)。而(ér)我(wǒ)们(men)用(yòng)本(běn)地(dì)时(shí)鐘(zhōng)去(qù)采樣(yàng),就(jiù)会(huì)出(chū)現(xiàn)有(yǒu)數據(jù)无时(shí)鐘(zhōng)。那(nà)对(duì)于(yú)这(zhè)種(zhǒng)我(wǒ)们(men)應(yìng)該怎麼(me)去(qù)約束(shù),又是(shì)另(lìng)一(yī)種(zhǒng)情(qíng)況。

第(dì)3节(jié) output delays

輸出(chū)延时(shí)約束(shù)和(hé)輸入(rù)延时(shí)一(yī)樣(yàng),也(yě)是(shì)約束(shù)的(de)重(zhòng)點(diǎn)。output  delay 我(wǒ)们(men)主(zhǔ)要(yào)分(fēn)两(liǎng)種(zhǒng),系(xì)統同(tóng)步和(hé)源同(tóng)步。

3.1 系(xì)統同(tóng)步

整个(gè)電(diàn)路(lù)板上(shàng)FPGA以(yǐ)及(jí)下(xià)遊器件(jiàn)都共(gòng)用(yòng)一(yī)个(gè)时(shí)鐘(zhōng),并且相位嚴格相同(tóng),这(zhè)个(gè)就(jiù)是(shì)系(xì)統同(tóng)步的(de)方(fāng)式。此(cǐ)时(shí)FPGA往下(xià)遊器件(jiàn)發(fà)送數據(jù),这(zhè)时(shí)候只(zhī)傳送數據(jù)線(xiàn)就(jiù)可(kě)以(yǐ)了(le)。而(ér)时(shí)鐘(zhōng)跟FPGA共(gòng)用(yòng)一(yī)个(gè)的(de),不(bù)需要(yào)傳时(shí)鐘(zhōng)。


3.2 源同(tóng)步

源同(tóng)步就(jiù)是(shì)FPGA往这(zhè)个(gè)器件(jiàn)發(fà)數據(jù),在(zài)發(fà)數據(jù)过(guò)程中(zhōng)也(yě)發(fà)一(yī)个(gè)时(shí)鐘(zhōng)过(guò)去(qù),这(zhè)是(shì)一(yī)个(gè)随路(lù)时(shí)鐘(zhōng)的(de)一(yī)个(gè)方(fāng)式,是(shì)源同(tóng)步。

源同(tóng)步我(wǒ)们(men)還(huán)分(fēn)SDR和(hé)DDR。

第(dì)一(yī)種(zhǒng):SDR。SDR是(shì)指时(shí)鐘(zhōng)是(shì)單沿有(yǒu)效的(de)方(fāng)式,比如(rú)说(shuō)我(wǒ)只(zhī)用(yòng)上(shàng)升(shēng)延或(huò)者(zhě)下(xià)降延的(de)一(yī)个(gè)方(fāng)式,SDR約束(shù)的(de)參數,其獲取(qǔ)的(de)方(fāng)法有(yǒu)两(liǎng)種(zhǒng):查看(kàn)上(shàng)遊器件(jiàn)手(shǒu)册(通(tòng)过(guò)查看(kàn)上(shàng)遊器的(de)數據(jù)手(shǒu)册,獲取(qǔ)參數)以(yǐ)及(jí)通(tòng)过(guò)示波(bō)器测量(liàng)(通(tòng)过(guò)示波(bō)器测量(liàng)信(xìn)号(hào)的(de)相位差,獲取(qǔ)參數)。示波(bō)器测量(liàng)比較少(shǎo)用(yòng)。


第(dì)二(èr)種(zhǒng):DDR。DDR是(shì)另(lìng)一(yī)種(zhǒng)方(fāng)式,它(tā)是(shì)一(yī)種(zhǒng)时(shí)鐘(zhōng)双(shuāng)沿有(yǒu)效的(de)一(yī)个(gè)方(fāng)式。也(yě)就(jiù)说(shuō)即用(yòng)它(tā)的(de)上(shàng)升(shēng)延,也(yě)用(yòng)它(tā)的(de)下(xià)降延。例如(rú)说(shuō)我(wǒ)们(men)的(de)DDR2、DDR3的(de)时(shí)鐘(zhōng),都是(shì)上(shàng)下(xià)降沿一(yī)直(zhí)采數據(jù)的(de);包(bāo)括千(qiān)兆(zhào)网(wǎng)的(de)RGMII接口(kǒu),也(yě)是(shì)通(tòng)过(guò)双(shuāng)沿的(de)方(fāng)式。

DDR的(de)这(zhè)種(zhǒng)情(qíng)況,我(wǒ)们(men)還(huán)可(kě)以(yǐ)繼續劃(huà)分(fēn)成(chéng)中(zhōng)心(xīn)对(duì)齊和(hé)邊(biān)沿对(duì)齊两(liǎng)種(zhǒng)情(qíng)況。

中(zhōng)心(xīn)对(duì)齊是(shì)指:时(shí)鐘(zhōng)邊(biān)沿始終(zhōng)在(zài)數據(jù)的(de)中(zhōng)間(jiān),时(shí)鐘(zhōng)上(shàng)升(shēng)沿的(de)左(zuǒ)右(yòu)两(liǎng)邊(biān),數據(jù)都是(shì)稳定(dìng)的(de)。邊(biān)沿对(duì)齊是(shì)指:时(shí)鐘(zhōng)和(hé)數據(jù)邊(biān)沿对(duì)齊的(de),在(zài)时(shí)鐘(zhōng)變(biàn)化(huà)沿两(liǎng)邊(biān),其數據(jù)是(shì)不(bù)稳定(dìng)的(de)。

第(dì)4节(jié) 时(shí)序例外(wài)

时(shí)序例外(wài)一(yī)般用(yòng)在(zài)clock與(yǔ)IO都約束(shù)後(hòu),還(huán)是(shì)不(bù)滿足时(shí)序要(yào)求的(de)情(qíng)況下(xià)。主(zhǔ)要(yào)包(bāo)括多(duō)周期(qī)路(lù)徑、不(bù)需要(yào)檢查的(de)路(lù)徑和(hé)組合電(diàn)路(lù)延时(shí)等三(sān)種(zhǒng)情(qíng)況,如(rú)下(xià)图(tú)。


4.1 多(duō)周期(qī)路(lù)徑

多(duō)周期(qī)路(lù)徑是(shì)指完成(chéng)一(yī)个(gè)運算需要(yào)超过(guò)1个(gè)时(shí)鐘(zhōng)周期(qī)的(de)情(qíng)形,多(duō)周期(qī)路(lù)徑在(zài)IC設計(jì)領域運用(yòng)較多(duō),但在(zài)FPGA里(lǐ)應(yìng)用(yòng)較少(shǎo)。

4.2 不(bù)需要(yào)檢查的(de)路(lù)徑

有(yǒu)一(yī)些路(lù)徑是(shì)不(bù)需要(yào)分(fēn)析的(de),具體(tǐ)可(kě)以(yǐ)分(fēn)成(chéng)三(sān)種(zhǒng):常量(liàng)或(huò)僞常量(liàng)信(xìn)号(hào)、互斥路(lù)徑和(hé)异(yì)步时(shí)鐘(zhōng)。

第(dì)一(yī)種(zhǒng):常量(liàng)或(huò)僞常量(liàng)信(xìn)号(hào)。某些信(xìn)号(hào)虽然不(bù)滿足时(shí)序要(yào)求,但实質(zhì)上(shàng)該信(xìn)号(hào)在(zài)應(yìng)用(yòng)场景中(zhōng),是(shì)不(bù)会(huì)改變(biàn)的(de),例如(rú)某个(gè)開(kāi)關(guān)信(xìn)号(hào),它(tā)在(zài)上(shàng)電(diàn)时(shí)打(dǎ)開(kāi)後(hòu),就(jiù)一(yī)直(zhí)保持(chí)打(dǎ)開(kāi)狀态,不(bù)会(huì)變(biàn)来(lái)變(biàn)去(qù)。那(nà)麼(me)这(zhè)个(gè)信(xìn)号(hào)就(jiù)可(kě)以(yǐ)認为(wèi)是(shì)僞常量(liàng)信(xìn)号(hào)。假設它(tā)不(bù)滿足时(shí)序要(yào)求,也(yě)是(shì)无所(suǒ)謂的(de),因(yīn)为(wèi)不(bù)会(huì)變(biàn),不(bù)会(huì)變(biàn)就(jiù)意(yì)味着建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)肯定(dìng)滿足,所(suǒ)以(yǐ)不(bù)存在(zài)問(wèn)題(tí)。这(zhè)種(zhǒng)信(xìn)号(hào)是(shì)不(bù)需要(yào)檢查 的(de)。

第(dì)二(èr)種(zhǒng):互斥的(de)路(lù)徑。可(kě)以(yǐ)簡單認为(wèi)是(shì)双(shuāng)向(xiàng)端口(kǒu),即代(dài)碼中(zhōng),使用(yòng)inout定(dìng)義的(de)信(xìn)号(hào)。

第(dì)三(sān)種(zhǒng):异(yì)步时(shí)鐘(zhōng)。即信(xìn)号(hào)從一(yī)个(gè)时(shí)鐘(zhōng)域,跨到(dào)另(lìng)一(yī)个(gè)时(shí)鐘(zhōng)域的(de)情(qíng)況。这(zhè)也(yě)是(shì)不(bù)需要(yào)檢查 的(de)。注意(yì),这(zhè)里(lǐ)说(shuō)不(bù)用(yòng)檢查,是(shì)指完成(chéng)异(yì)步信(xìn)号(hào)同(tóng)步化(huà)後(hòu),不(bù)用(yòng)檢查的(de)意(yì)思(sī)。

4.3 組合電(diàn)路(lù)延时(shí)

還(huán)有(yǒu)一(yī)種(zhǒng)是(shì)組合電(diàn)路(lù)的(de)延时(shí)。組合電(diàn)路(lù)延时(shí)就(jiù)是(shì)说(shuō)我(wǒ)從这(zhè)个(gè)管(guǎn)脚到(dào)另(lìng)一(yī)个(gè)管(guǎn)脚之間(jiān),另(lìng)一(yī)个(gè)管(guǎn)脚進(jìn)来(lái),这(zhè)个(gè)管(guǎn)脚出(chū)去(qù)中(zhōng)間(jiān)沒(méi)有(yǒu)任何一(yī)个(gè)时(shí)鐘(zhōng),这(zhè)是(shì)組合電(diàn)路(lù)給(gěi)延时(shí)的(de)一(yī)種(zhǒng)情(qíng)況。


第(dì)5节(jié) 總(zǒng)結與(yǔ)建議

前(qián)面(miàn)我(wǒ)们(men)講了(le)时(shí)鐘(zhōng)約束(shù)、輸入(rù)延时(shí)、輸出(chū)延时(shí)還(huán)时(shí)序例外(wài)的(de)情(qíng)況。每一(yī)種(zhǒng)情(qíng)況又分(fēn)了(le)很多(duō)種(zhǒng),根(gēn)據(jù)它(tā)的(de)不(bù)同(tóng)類(lèi)型来(lái)區(qū)分(fēn),每次(cì)約束(shù)的(de)时(shí)候都是(shì)其中(zhōng)的(de)一(yī)種(zhǒng)情(qíng)況。比如(rú)说(shuō)CLK差分(fēn),就(jiù)去(qù)找(zhǎo)时(shí)鐘(zhōng),然後(hòu)根(gēn)據(jù)差分(fēn)管(guǎn)脚怎麼(me)約束(shù),来(lái)找(zhǎo)到(dào)对(duì)應(yìng)情(qíng)況,按照要(yào)求進(jìn)行約束(shù)。这(zhè)相當于(yú)我(wǒ)已經(jīng)提(tí)供一(yī)个(gè)表(biǎo)給(gěi)你,你按照这(zhè)个(gè)表(biǎo)去(qù)核对(duì)。找(zhǎo)到(dào)对(duì)應(yìng)的(de)情(qíng)況,按要(yào)求進(jìn)行約束(shù)就(jiù)可(kě)以(yǐ)了(le)。


記(jì)住:開(kāi)始的(de)时(shí)候,只(zhī)是(shì)配置时(shí)鐘(zhōng),不(bù)配置input  delay 、 output  delays和(hé)持(chí)續例外(wài)。因(yīn)为(wèi)我(wǒ)们(men)開(kāi)始的(de)时(shí)候是(shì)專心(xīn)于(yú)內(nèi)部(bù)電(diàn)路(lù),我(wǒ)们(men)时(shí)序的(de)一(yī)个(gè)設計(jì),滿足內(nèi)部(bù)要(yào)求之後(hòu),再去(qù)配置我(wǒ)们(men)的(de)接口(kǒu)。在(zài)时(shí)鐘(zhōng)完全(quán)通(tòng)过(guò)之後(hòu)再配置input  delay 和(hé)output delays 。


时(shí)序例外(wài)是(shì)最(zuì)後(hòu)差不(bù)多(duō)要(yào)完工了(le)再進(jìn)行配置的(de)。而(ér)且这(zhè)个(gè)配置是(shì)要(yào)很小心(xīn)。因(yīn)为(wèi)我(wǒ)们(men)实際例外(wài),比如(rú)说(shuō)不(bù)用(yòng)檢查,我(wǒ)们(men)set false path这(zhè)種(zhǒng)情(qíng)況,設置好(hǎo)就(jiù)是(shì)表(biǎo)示不(bù)用(yòng)檢查。如(rú)果(guǒ)在(zài)開(kāi)始的(de)时(shí)候,就(jiù)設置好(hǎo)了(le),万(wàn)一(yī)中(zhōng)間(jiān)又要(yào)改變(biàn),你改變(biàn)的(de)話(huà),那(nà)你忘了(le)把这(zhè)个(gè)約束(shù)給(gěi)干(gàn)掉了(le),这(zhè)種(zhǒng)情(qíng)況就(jiù)会(huì)出(chū)現(xiàn)有(yǒu)錯誤也(yě)提(tí)示不(bù)出(chū)来(lái)的(de)情(qíng)況。所(suǒ)以(yǐ)说(shuō)时(shí)序例外(wài)應(yìng)該是(shì)最(zuì)後(hòu)情(qíng)況下(xià)進(jìn)行的(de)。


这(zhè)个(gè)順序是(shì)明(míng)德揚經(jīng)验(yàn)的(de)一(yī)个(gè)順序,我(wǒ)们(men)的(de)項目基本(běn)上(shàng)是(shì)按照这(zhè)个(gè)順序做的(de)。但是(shì)不(bù)同(tóng)的(de)公司也(yě)会(huì)有(yǒu)不(bù)同(tóng)的(de)做法。例如(rú)说(shuō)我(wǒ)一(yī)開(kāi)始全(quán)部(bù)都不(bù)約束(shù),到(dào)最(zuì)後(hòu)再生(shēng)約束(shù),这(zhè)也(yě)是(shì)可(kě)以(yǐ)的(de)。这(zhè)種(zhǒng)做法沒(méi)有(yǒu)統一(yī)标(biāo)準,反(fǎn)正(zhèng)学明(míng)德揚的(de)課程,你就(jiù)按这(zhè)个(gè)步驟做,去(qù)到(dào)其他(tā)公司,再根(gēn)據(jù)公司要(yào)求去(qù)做就(jiù)可(kě)以(yǐ)了(le)。


本(běn)文(wén)章(zhāng)是(shì)基于(yú)赛靈思(sī)的(de)一(yī)个(gè)时(shí)序約束(shù),ALTERA也(yě)是(shì)相似的(de),甚至(zhì)IC芯片(piàn)設計(jì)領域,也(yě)是(shì)同(tóng)樣(yàng)的(de)思(sī)路(lù)。

有(yǒu)句(jù)話(huà)講的(de)很好(hǎo),我(wǒ)们(men)的(de)时(shí)序是(shì)設計(jì)出(chū)来(lái)的(de),不(bù)是(shì)約束(shù)出(chū)来(lái)的(de)。所(suǒ)以(yǐ)说(shuō)时(shí)序重(zhòng)要(yào)還(huán)是(shì)不(bù)重(zhòng)要(yào)?當然重(zhòng)要(yào)。但是(shì)它(tā)不(bù)是(shì)非(fēi)常重(zhòng)要(yào),更(gèng)重(zhòng)要(yào)的(de)是(shì)假如(rú)说(shuō)我(wǒ)时(shí)序出(chū)現(xiàn)例外(wài),不(bù)滿足的(de)时(shí)候,更(gèng)重(zhòng)要(yào)是(shì)改變(biàn)你的(de)設計(jì),而(ér)不(bù)是(shì)要(yào)求約束(shù)。


下(xià)一(yī)篇(piān)文(wén)章(zhāng),我(wǒ)们(men)将具體(tǐ)探讨“时(shí)鐘(zhōng)約束(shù)”的(de)內(nèi)容,講解(jiě)各(gè)種(zhǒng)情(qíng)況下(xià)的(de)时(shí)序約束(shù)方(fāng)法。需要(yào)更(gèng)多(duō)更(gèng)詳细(xì)的(de)資料和(hé)原文(wén)檔的(de),可(kě)以(yǐ)找(zhǎo)作者(zhě)了(le)解(jiě)和(hé)領取(qǔ)。





温(wēn)馨提(tí)示:明(míng)德揚除了(le)培訓学習還(huán)有(yǒu)項目承接業务,擅长的(de)項目
主(zhǔ)要(yào)包(bāo)括的(de)方(fāng)向(xiàng)有(yǒu)以(yǐ)下(xià)幾(jǐ)个(gè)方(fāng)面(miàn):


1. MIPI視頻拼接


2. SLVS-EC轉(zhuǎn)MIPI接口(kǒu)(IMX472 IMX492)

3. PCIE采集系(xì)統

4. 图(tú)像項目

5. 高(gāo)速多(duō)通(tòng)道(dào)ADDA系(xì)統

6. 基于(yú)FPGA板卡(kǎ)研發(fà)

7. 前(qián)端模拟采集、射頻、電(diàn)荷靈敏前(qián)置放(fàng)大器


需要(yào)了(le)解(jiě)相關(guān)信(xìn)息可(kě)以(yǐ)聯系(xì)江老(lǎo)师(shī)18022859964(微信(xìn)同(tóng)号(hào))
明(míng)德揚科技教育


   拓展(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⁥⁠⁢

⁧⁨⁥⁨