⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ 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í)序入(rù)門(mén)(新手(shǒu)必看(kàn))

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


1. FPGA时(shí)序的(de)基本(běn)概念

FPGA器件(jiàn)的(de)需求取(qǔ)決于(yú)系(xì)統和(hé)上(shàng)下(xià)遊(upstream and downstrem)設備。我(wǒ)们(men)的(de)設計(jì)需要(yào)和(hé)其他(tā)的(de)devices進(jìn)行數據(jù)的(de)交互,其他(tā)的(de)devices可(kě)能(néng)是(shì)FPGA外(wài)部(bù)的(de)芯片(piàn),可(kě)能(néng)是(shì)FPGA內(nèi)部(bù)的(de)硬(yìng)核。


对(duì)于(yú)FPGA design来(lái)说(shuō),必須要(yào)關(guān)注在(zài)指定(dìng)要(yào)求下(xià),它(tā)能(néng)否正(zhèng)常工作。这(zhè)个(gè)正(zhèng)常工作包(bāo)括同(tóng)步时(shí)序電(diàn)路(lù)的(de)工作頻率,以(yǐ)及(jí)輸入(rù)輸出(chū)設備的(de)时(shí)序要(yào)求。在(zài)FPGA design內(nèi)部(bù),都是(shì)同(tóng)步时(shí)序電(diàn)路(lù),各(gè)处的(de)延时(shí)等都能(néng)够估計(jì)出(chū)来(lái),但是(shì)FPGA內(nèi)部(bù)并不(bù)知道(dào)外(wài)部(bù)的(de)設備的(de)时(shí)序關(guān)系(xì)。所(suǒ)以(yǐ),TIming constraints包(bāo)括

輸入(rù)路(lù)徑(Input paths )

寄存器-寄存器路(lù)徑(Register-to-register paths )

輸出(chū)路(lù)徑(Output paths )

例外(wài)(Path specific excepTIons )

这(zhè)正(zhèng)好(hǎo)对(duì)應(yìng)了(le)上(shàng)图(tú)中(zhōng)三(sān)个(gè)部(bù)分(fēn),Path specific excepTIons 暫时(shí)不(bù)提(tí)。

Input paths对(duì)應(yìng)的(de)是(shì)OFFSET IN約束(shù),即輸入(rù)數據(jù)和(hé)时(shí)鐘(zhōng)之間(jiān)的(de)相位關(guān)系(xì)。針(zhēn)对(duì)不(bù)同(tóng)的(de)數據(jù)輸入(rù)方(fāng)式(系(xì)統同(tóng)步和(hé)源同(tóng)步,SDR和(hé)DDR)有(yǒu)不(bù)同(tóng)的(de)分(fēn)析結果(guǒ)。

Register-to-register paths 对(duì)應(yìng)的(de)是(shì)整个(gè)FPGA design的(de)工作时(shí)鐘(zhōng)。如(rú)果(guǒ)只(zhī)有(yǒu)一(yī)个(gè)时(shí)鐘(zhōng),那(nà)麼(me)只(zhī)需要(yào)指定(dìng)輸入(rù)的(de)頻率即可(kě)。如(rú)果(guǒ)有(yǒu)多(duō)个(gè)时(shí)鐘(zhōng),这(zhè)些时(shí)鐘(zhōng)是(shì)通(tòng)过(guò)DCM,MMCM,PLL生(shēng)成(chéng)的(de),那(nà)麼(me)顯然ISE知道(dào)这(zhè)些时(shí)鐘(zhōng)之間(jiān)的(de)頻率、相位關(guān)系(xì),所(suǒ)以(yǐ)也(yě)不(bù)需要(yào)我(wǒ)们(men)指定(dìng)。如(rú)果(guǒ)这(zhè)些不(bù)同(tóng)的(de)时(shí)鐘(zhōng)是(shì)通(tòng)过(guò)不(bù)同(tóng)的(de)引脚輸入(rù)的(de),ISE不(bù)知道(dào)其相位關(guān)系(xì),所(suǒ)以(yǐ)指定(dìng)其中(zhōng)一(yī)个(gè)为(wèi)主(zhǔ)时(shí)鐘(zhōng),需要(yào)指定(dìng)其間(jiān)的(de)相位關(guān)系(xì)。

Output paths对(duì)應(yìng)的(de)是(shì)OFFSET OUT 約束(shù),和(hé)OFFSET IN約束(shù)很類(lèi)似,不(bù)过(guò)方(fāng)向(xiàng)相反(fǎn)。

2.輸入(rù)时(shí)序約束(shù)


The input TIming constraints cover the data path from the external pin or pad of the package of the  FPGA device to the internal synchronous element or register that captures that data.

輸入(rù)时(shí)序約束(shù)控制外(wài)部(bù)引脚到(dào)內(nèi)部(bù)模块(kuài)的(de)路(lù)徑。采用(yòng)OFFSET IN来(lái)指出(chū)輸入(rù)时(shí)序約束(shù)。也(yě)就(jiù)是(shì)说(shuō)OFFSET IN定(dìng)義了(le)时(shí)鐘(zhōng)沿河被(bèi)采集數據(jù)的(de)關(guān)系(xì)(相位)。这(zhè)里(lǐ)我(wǒ)们(men)關(guān)心(xīn)两(liǎng)類(lèi)不(bù)同(tóng)的(de)輸入(rù)方(fāng)式,系(xì)統同(tóng)步輸入(rù)和(hé)源同(tóng)步輸入(rù)。(对(duì)于(yú)SDR和(hé)DDR,即單數據(jù)速率和(hé)双(shuāng)數據(jù)速率而(ér)言,區(qū)别只(zhī)在(zài)于(yú)一(yī)个(gè)时(shí)鐘(zhōng)周期(qī)的(de)采樣(yàng)次(cì)數,不(bù)做说(shuō)明(míng))

System Synchronous inputs

系(xì)統同(tóng)步輸入(rù),指由(yóu)同(tóng)一(yī)时(shí)鐘(zhōng)傳輸和(hé)捕獲數據(jù),如(rú)下(xià)图(tú)所(suǒ)示。




上(shàng)图(tú)可(kě)以(yǐ)看(kàn)出(chū),FPGA和(hé)輸入(rù)源設備是(shì)同(tóng)源的(de),共(gòng)用(yòng)一(yī)个(gè)系(xì)統时(shí)鐘(zhōng)。这(zhè)一(yī)个(gè)系(xì)統时(shí)鐘(zhōng)在(zài)源設備觸發(fà)輸出(chū)數據(jù),同(tóng)时(shí)還(huán)作为(wèi)FPGA的(de)时(shí)鐘(zhōng)接收(shōu)輸入(rù)的(de)數據(jù)。因(yīn)此(cǐ)源設備只(zhī)需要(yào)提(tí)供輸入(rù)的(de)數據(jù)就(jiù)可(kě)以(yǐ)了(le)。

Source synchronous inputs

源同(tóng)步如(rú)下(xià)图(tú)所(suǒ)示(这(zhè)里(lǐ)是(shì)DDR,同(tóng)时(shí)在(zài)上(shàng)升(shēng)沿和(hé)下(xià)降沿采樣(yàng))



源同(tóng)步和(hé)系(xì)統同(tóng)步的(de)最(zuì)大區(qū)别在(zài)于(yú)源設備(Source Device)在(zài)輸出(chū)數據(jù)的(de)同(tóng)时(shí),輸出(chū)了(le)一(yī)路(lù)和(hé)數據(jù)同(tóng)步的(de)时(shí)鐘(zhōng)。FPGA采用(yòng)这(zhè)一(yī)路(lù)时(shí)鐘(zhōng)来(lái)進(jìn)行數據(jù)的(de)采樣(yàng)。

这(zhè)两(liǎng)種(zhǒng)輸入(rù)方(fāng)式看(kàn)起来(lái)有(yǒu)很大的(de)差别,但是(shì)OFFSET IN約束(shù)的(de)写法是(shì)一(yī)致(zhì)的(de),後(hòu)文(wén)将詳细(xì)明(míng)。

3.寄存器-寄存器的(de)时(shí)序約束(shù)

寄存器-寄存器的(de)約束(shù),在(zài)同(tóng)步时(shí)序電(diàn)路(lù)中(zhōng),就(jiù)是(shì)周期(qī)的(de)約束(shù)。对(duì)于(yú)完全(quán)采用(yòng)一(yī)个(gè)时(shí)鐘(zhōng)的(de)電(diàn)路(lù)而(ér)言,对(duì)这(zhè)一(yī)个(gè)clk指定(dìng)周期(qī)約束(shù)即可(kě)。但是(shì)如(rú)果(guǒ)采用(yòng)了(le)多(duō)个(gè)时(shí)鐘(zhōng),那(nà)麼(me)情(qíng)況就(jiù)複雜了(le)。多(duō)个(gè)时(shí)鐘(zhōng)中(zhōng)的(de)“多(duō)个(gè)”,可(kě)能(néng)由(yóu)DCM等倍/分(fēn)頻得到(dào),也(yě)有(yǒu)可(kě)能(néng)FPGA外(wài)部(bù)就(jiù)引入(rù)了(le)两(liǎng)个(gè)时(shí)鐘(zhōng)信(xìn)号(hào),還(huán)有(yǒu)可(kě)能(néng)是(shì)其他(tā)情(qíng)況。这(zhè)里(lǐ)Xilinx将其分(fēn)成(chéng)了(le)以(yǐ)下(xià)幾(jǐ)類(lèi)

自(zì)動(dòng)相關(guān)同(tóng)步时(shí)鐘(zhōng)域

手(shǒu)動(dòng)相關(guān)同(tóng)步时(shí)鐘(zhōng)域

异(yì)步时(shí)鐘(zhōng)域

自(zì)動(dòng)相關(guān)同(tóng)步时(shí)鐘(zhōng)域(DLL,DCM,PLL,MMCM)

因(yīn)为(wèi)它(tā)是(shì)自(zì)動(dòng)的(de),從字(zì)面(miàn)意(yì)思(sī)上(shàng)看(kàn)就(jiù)是(shì)自(zì)動(dòng)分(fēn)析。當我(wǒ)们(men)例化(huà)了(le)一(yī)个(gè)DCM,DCM的(de)輸入(rù)輸出(chū)信(xìn)号(hào)之間(jiān)的(de)關(guān)系(xì)就(jiù)已近(jìn)确定(dìng)了(le),譬如(rú)頻率關(guān)系(xì)和(hé)相位關(guān)系(xì)。當指定(dìng)了(le)DCM輸入(rù)时(shí)鐘(zhōng)的(de)頻率和(hé)相關(guān)信(xìn)息之後(hòu),再去(qù)指定(dìng)輸出(chū)的(de)相对(duì)關(guān)系(xì)就(jiù)有(yǒu)画(huà)蛇添足的(de)感(gǎn)覺了(le),因(yīn)为(wèi)这(zhè)些關(guān)系(xì)以(yǐ)及(jí)在(zài)生(shēng)成(chéng)DCM的(de)时(shí)候确定(dìng)了(le)。对(duì)于(yú)PLL,MMCM来(lái)说(shuō)也(yě)是(shì)一(yī)樣(yàng)的(de)。

手(shǒu)動(dòng)相關(guān)同(tóng)步时(shí)鐘(zhōng)域

对(duì)應(yìng)上(shàng)文(wén)的(de)“自(zì)動(dòng)”,这(zhè)里(lǐ)的(de)“手(shǒu)動(dòng)”指需要(yào)人(rén)为(wèi)指定(dìng)时(shí)鐘(zhōng)之間(jiān)的(de)關(guān)系(xì)。在(zài)什麼(me)情(qíng)況下(xià),ISE套(tào)件(jiàn)无法知道(dào)时(shí)鐘(zhōng)之間(jiān)的(de)關(guān)系(xì)?如(rú)果(guǒ)两(liǎng)組时(shí)鐘(zhōng)都是(shì)由(yóu)FPGA外(wài)部(bù)引入(rù)的(de),那(nà)麼(me)它(tā)们(men)之間(jiān)的(de)相位關(guān)系(xì)是(shì)未知的(de),需要(yào)認为(wèi)指定(dìng)。时(shí)鐘(zhōng)之間(jiān)的(de)相位關(guān)系(xì)都是(shì)相对(duì)的(de),因(yīn)此(cǐ)这(zhè)个(gè)过(guò)程需要(yào)指定(dìng)一(yī)个(gè)主(zhǔ)时(shí)鐘(zhōng),之後(hòu)定(dìng)義其他(tā)时(shí)鐘(zhōng)和(hé)主(zhǔ)时(shí)鐘(zhōng)之間(jiān)的(de)相对(duì)相位關(guān)系(xì)。

NET “PrimaryClock” TNM_NET = “TNM_Primary”;

NET “RelatedClock” TNM_NET = “TNM_Related”;

TIMESPEC “TS_primary” = PERIOD “TNM_Primary” PeriodValue HIGH HighValue%;

TIMESPEC TS_related” = PERIOD “TNM_Related” TS_Primary_relation PHASE value;

异(yì)步时(shí)鐘(zhōng)域

xilinx无法分(fēn)析,具體(tǐ)咨詢明(míng)德揚資深老(lǎo)师(shī)

4.輸出(chū)时(shí)序約束(shù)

輸出(chū)就(jiù)是(shì)輸入(rù)的(de)逆,因(yīn)此(cǐ)分(fēn)析的(de)过(guò)程是(shì)類(lèi)似的(de),分(fēn)類(lèi)也(yě)是(shì)類(lèi)似的(de)。針(zhēn)对(duì)时(shí)鐘(zhōng)的(de)不(bù)同(tóng),有(yǒu)系(xì)統同(tóng)步和(hé)源同(tóng)步两(liǎng)種(zhǒng)。此(cǐ)处不(bù)再詳细(xì)说(shuō)明(míng)。

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




源同(tóng)步DDR(一(yī)般来(lái)说(shuō)不(bù)給(gěi)約束(shù)就(jiù)可(kě)以(yǐ))


5. 綜上(shàng)所(suǒ)述:

时(shí)序收(shōu)斂的(de)目的(de)是(shì)讓FPGA design 按預設的(de)邏輯正(zhèng)常的(de)工作。

为(wèi)了(le)使其正(zhèng)常工作,需要(yào)考慮至(zhì)少(shǎo)三(sān)处:FPGA內(nèi)部(bù)的(de)寄存器-寄存器时(shí)序要(yào)求,FPGA輸入(rù)數據(jù)的(de)时(shí)序要(yào)求,FPGA輸出(chū)信(xìn)号(hào)的(de)要(yào)求。



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

⁧⁨⁥⁨