⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ 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ī)
您的(de)當前(qián)位置:主(zhǔ)页(yè) > FPGA原創 >

需要(yào)同(tóng)时(shí)读(dú)写SDRAM的(de)解(jiě)決方(fāng)法

發(fà)布(bù)时(shí)間(jiān):2019-12-13   作者(zhě):小黑(hēi)同(tóng)学 浏覽量(liàng):


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


       工程中(zhōng)使用(yòng)过(guò)SDRAM的(de)朋友就(jiù)知道(dào),SDRAM是(shì)无法实現(xiàn)同(tóng)时(shí)读(dú)写的(de),今天(tiān)就(jiù)跟大家(jiā)分(fēn)享一(yī)下(xià)遇到(dào)需要(yào)同(tóng)时(shí)读(dú)写的(de)問(wèn)題(tí)时(shí)如(rú)何解(jiě)決。


一(yī)、SDRAM數據(jù)總(zǒng)線(xiàn)屬性(xìng)

下(xià)图(tú)为(wèi)SDRAM的(de)某一(yī)接口(kǒu)时(shí)序图(tú),我(wǒ)们(men)可(kě)以(yǐ)看(kàn)到(dào),读(dú)和(hé)写占用(yòng)的(de)都是(shì)DQ这(zhè)个(gè)數據(jù)總(zǒng)線(xiàn),对(duì)于(yú)SDRAM来(lái)说(shuō),只(zhī)有(yǒu)一(yī)根(gēn)數據(jù)總(zǒng)線(xiàn),那(nà)麼(me)當我(wǒ)们(men)需要(yào)用(yòng)这(zhè)根(gēn)線(xiàn)读(dú)取(qǔ)數據(jù)的(de)时(shí)候,读(dú)出(chū)来(lái)的(de)數據(jù)占用(yòng)了(le)總(zǒng)線(xiàn),这(zhè)个(gè)时(shí)候是(shì)必然无法写入(rù)數據(jù)的(de),同(tóng)樣(yàng)的(de)在(zài)写數據(jù)的(de)时(shí)候也(yě)无法進(jìn)行读(dú)數據(jù)的(de)操作。


二(èr)、SDRAM同(tóng)时(shí)读(dú)写需求

虽然SDRAM具有(yǒu)不(bù)可(kě)同(tóng)时(shí)读(dú)写的(de)屬性(xìng),但是(shì)在(zài)一(yī)些項目中(zhōng)需要(yào)写入(rù)的(de)數據(jù)和(hé)读(dú)出(chū)的(de)數據(jù)都是(shì)連(lián)續的(de)。比如(rú)在(zài)邊(biān)緣檢测的(de)工程中(zhōng),攝像头(tóu)一(yī)直(zhí)在(zài)傳出(chū)數據(jù),并且送到(dào)VGA的(de)图(tú)像數據(jù)也(yě)不(bù)能(néng)斷,这(zhè)时(shí)我(wǒ)们(men)既要(yào)将攝像头(tóu)傳出(chū)的(de)數據(jù)写到(dào)SDRAM,又要(yào)從SDRAM读(dú)出(chū)數據(jù)并在(zài)VGA顯示。因(yīn)此(cǐ)实際工程中(zhōng)时(shí)需要(yào)SDRAM同(tóng)时(shí)实現(xiàn)读(dú)數據(jù)和(hé)写數據(jù)功能(néng)的(de)。

前(qián)面(miàn)我(wǒ)们(men)也(yě)分(fēn)析过(guò)SDRAM的(de)接口(kǒu)时(shí)序图(tú),明(míng)确DQ總(zǒng)線(xiàn)只(zhī)能(néng)進(jìn)行读(dú)數據(jù)或(huò)者(zhě)写數據(jù),不(bù)能(néng)同(tóng)时(shí)進(jìn)行读(dú)写數據(jù),那(nà)麼(me)如(rú)果(guǒ)遇到(dào)上(shàng)述情(qíng)況,就(jiù)需要(yào)我(wǒ)们(men)在(zài)SDRAM固有(yǒu)屬性(xìng)的(de)基礎上(shàng)来(lái)解(jiě)決問(wèn)題(tí)。

三(sān)、“僞同(tóng)时(shí)读(dú)写”的(de)原理

既然SDRAM的(de)屬性(xìng)不(bù)變(biàn),那(nà)麼(me)我(wǒ)们(men)可(kě)以(yǐ)在(zài)SDRAM时(shí)序前(qián)面(miàn)加两(liǎng)个(gè)FIFOSDRAM接口(kǒu)时(shí)序和(hé)SDRAM硬(yìng)件(jiàn)之間(jiān)由(yóu)一(yī)根(gēn)數據(jù)總(zǒng)線(xiàn)DQ相連(lián),如(rú)下(xià)图(tú)所(suǒ)示。

FIFO是(shì)在(zài)FPGA中(zhōng)比較常用(yòng)的(de)存儲器,FIFO写入(rù)和(hé)读(dú)出(chū)都由(yóu)时(shí)鐘(zhōng)控制,而(ér)且可(kě)以(yǐ)用(yòng)不(bù)同(tóng)的(de)时(shí)鐘(zhōng),那(nà)麼(me)當读(dú)出(chū)的(de)时(shí)鐘(zhōng)大于(yú)写入(rù)时(shí)鐘(zhōng)的(de)时(shí)候,我(wǒ)可(kě)以(yǐ)一(yī)直(zhí)往里(lǐ)面(miàn)写,但是(shì)由(yóu)于(yú)读(dú)出(chū)的(de)速率要(yào)快(kuài),那(nà)就(jiù)不(bù)必要(yào)一(yī)直(zhí)读(dú),FIFO的(de)深度(dù)越深,我(wǒ)就(jiù)可(kě)以(yǐ)等待越多(duō)的(de)时(shí)間(jiān)。

上(shàng)图(tú)結構中(zhōng),設置FIFO左(zuǒ)邊(biān)时(shí)鐘(zhōng)是(shì)25M,右(yòu)邊(biān)时(shí)鐘(zhōng)为(wèi)100M。写命令和(hé)写數據(jù)先(xiān)保存到(dào)FIFO1中(zhōng),读(dú)命令保存到(dào)FIFO2中(zhōng),在(zài)SDRAM接口(kǒu)时(shí)序里(lǐ)面(miàn),会(huì)判斷FIFO1和(hé)FIFO2中(zhōng)谁有(yǒu)數據(jù),谁有(yǒu)數據(jù)就(jiù)執行哪个(gè)命令;如(rú)果(guǒ)都同(tóng)时(shí)有(yǒu)數據(jù),那(nà)工程师(shī)可(kě)以(yǐ)決定(dìng)一(yī)个(gè)优先(xiān)級,選擇其中(zhōng)一(yī)个(gè)命令執行。而(ér)沒(méi)有(yǒu)選中(zhōng)的(de)命令,則保留到(dào)FIFO中(zhōng)緩存,等候被(bèi)選中(zhōng)執行。

簡單来(lái)講就(jiù)是(shì)數據(jù)都暫时(shí)的(de)存在(zài)FIFO中(zhōng),FIFO左(zuǒ)邊(biān)和(hé)右(yòu)邊(biān)的(de)工作时(shí)鐘(zhōng)不(bù)同(tóng),同(tóng)樣(yàng)一(yī)組數據(jù),如(rú)果(guǒ)左(zuǒ)邊(biān)读(dú)写數據(jù)都需要(yào)一(yī)个(gè)时(shí)鐘(zhōng),那(nà)麼(me)右(yòu)邊(biān)读(dú)写數據(jù)就(jiù)需要(yào)四(sì)倍时(shí)鐘(zhōng)即四(sì)个(gè)时(shí)鐘(zhōng)。这(zhè)樣(yàng)一(yī)来(lái),看(kàn)FIFO右(yòu)側的(de)接口(kǒu),永遠(yuǎn)都是(shì)要(yào)不(bù)就(jiù)是(shì)写,要(yào)不(bù)就(jiù)是(shì)读(dú),DQ不(bù)会(huì)被(bèi)读(dú)写同(tóng)时(shí)使用(yòng)(也(yě)就(jiù)是(shì)读(dú)写不(bù)同(tóng)时(shí))。而(ér)在(zài)左(zuǒ)側的(de)接口(kǒu)看(kàn)来(lái),写命令和(hé)读(dú)命令是(shì)可(kě)以(yǐ)同(tóng)时(shí)有(yǒu)效的(de)(也(yě)就(jiù)是(shì)读(dú)写同(tóng)时(shí))。

有(yǒu)的(de)朋友会(huì)講,这(zhè)種(zhǒng)方(fāng)法并不(bù)是(shì)真(zhēn)正(zhèng)的(de)同(tóng)时(shí)读(dú)写呀。其实,能(néng)不(bù)能(néng)同(tóng)时(shí)读(dú)写,是(shì)在(zài)不(bù)同(tóng)的(de)时(shí)間(jiān)精度(dù)来(lái)看(kàn)待的(de)。例如(rú)右(yòu)側的(de)接口(kǒu),在(zài)某一(yī)个(gè)时(shí)鐘(zhōng)沿看(kàn)来(lái),其狀态不(bù)是(shì)读(dú)就(jiù)是(shì)写,无法实現(xiàn)读(dú)写同(tóng)时(shí);但如(rú)果(guǒ)把时(shí)間(jiān)拉长,例如(rú)在(zài)1秒(miǎo)的(de)时(shí)間(jiān)內(nèi)来(lái)看(kàn),在(zài)这(zhè)一(yī)秒(miǎo)鐘(zhōng)內(nèi)既有(yǒu)读(dú)數據(jù)狀态,又有(yǒu)写數據(jù),就(jiù)会(huì)令我(wǒ)们(men)感(gǎn)覺到(dào)它(tā)是(shì)可(kě)以(yǐ)同(tóng)时(shí)读(dú)和(hé)写的(de)。将这(zhè)樣(yàng)一(yī)个(gè)結構當作一(yī)个(gè)整體(tǐ)来(lái)看(kàn),可(kě)以(yǐ)認为(wèi)实現(xiàn)了(le)SDRAM的(de)同(tóng)时(shí)读(dú)写,我(wǒ)们(men)将其稱之为(wèi)“僞同(tóng)时(shí)读(dú)写”。

其实这(zhè)種(zhǒng)“僞同(tóng)时(shí)读(dú)写”我(wǒ)们(men)還(huán)是(shì)經(jīng)常会(huì)遇到(dào)的(de)。例如(rú)電(diàn)腦CPU,衆所(suǒ)周知,它(tā)是(shì)串行執行指令的(de),一(yī)次(cì)只(zhī)能(néng)处理一(yī)个(gè)指令。但我(wǒ)们(men)在(zài)使用(yòng)電(diàn)腦时(shí),可(kě)以(yǐ)感(gǎn)覺到(dào)QQ、浏覽器和(hé)電(diàn)影是(shì)同(tóng)时(shí)工作的(de),这(zhè)也(yě)就(jiù)是(shì)时(shí)間(jiān)精度(dù)的(de)問(wèn)題(tí)。


四(sì)、現(xiàn)实案(àn)例

学会(huì)了(le)利用(yòng)FIFO的(de)存儲特(tè)點(diǎn)来(lái)实現(xiàn)“僞同(tóng)时(shí)读(dú)写”,我(wǒ)们(men)也(yě)就(jiù)解(jiě)決了(le)最(zuì)開(kāi)始提(tí)到(dào)的(de)SDRAM在(zài)邊(biān)緣檢测中(zhōng)实現(xiàn)同(tóng)时(shí)读(dú)写的(de)問(wèn)題(tí)。我(wǒ)们(men)在(zài)写側接收(shōu)的(de)像素數據(jù)在(zài)25M时(shí)鐘(zhōng)域的(de),在(zài)FIFO1的(de)读(dú)側是(shì)100M的(de)时(shí)鐘(zhōng)域,读(dú)写速率相差4倍,當FIFO緩存一(yī)定(dìng)量(liàng)的(de)數據(jù)之後(hòu),就(jiù)读(dú)出(chū)来(lái)写到(dào)SDRAM中(zhōng),写完之後(hòu),就(jiù)可(kě)以(yǐ)利用(yòng)FIFO1读(dú)写的(de)时(shí)間(jiān)差,来(lái)将SDRAM中(zhōng)的(de)數據(jù)读(dú)出(chū),然後(hòu)再放(fàng)到(dào)一(yī)个(gè)写側时(shí)鐘(zhōng)100M,读(dú)側时(shí)鐘(zhōng)25M的(de)FIFO2中(zhōng),就(jiù)可(kě)以(yǐ)保證FIFO2一(yī)直(zhí)有(yǒu)數據(jù)读(dú)出(chū),而(ér)FIFO1又一(yī)直(zhí)有(yǒu)數據(jù)写入(rù)。这(zhè)樣(yàng)以(yǐ)来(lái)就(jiù)实現(xiàn)了(le)攝像头(tóu)一(yī)直(zhí)采集數據(jù)并且一(yī)直(zhí)有(yǒu)數據(jù)傳輸到(dào)VGA


以(yǐ)上(shàng)就(jiù)是(shì)通(tòng)过(guò)FIFO实現(xiàn)SDEAM同(tóng)时(shí)读(dú)写的(de)解(jiě)決方(fāng)案(àn),更(gèng)多(duō)關(guān)于(yú)FPGA的(de)欢迎加Q:1817866119N老(lǎo)师(shī))進(jìn)行交流讨論!

  •   
  •   
  •   
  •  
  • FPGA教育領域第(dì)一(yī)品牌(pái)
  • 咨詢热(rè)線(xiàn):020-39002701
  • 技術(shù)交流Q群(qún):544453837
⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ 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⁥⁠⁢

⁧⁨⁥⁨