
如(rú)果(guǒ)同(tóng)学们(men)的(de)問(wèn)題(tí)我(wǒ)们(men)帖子里(lǐ)面(miàn)沒(méi)有(yǒu)的(de)請第(dì)一(yī)时(shí)間(jiān)聯系(xì)我(wǒ)微信(xìn)同(tóng)步:易老(lǎo)师(shī)13112063618(微信(xìn)同(tóng)号(hào))
我(wǒ)们(men)对(duì)新問(wèn)題(tí)進(jìn)行補充!
明(míng)德揚最(zuì)近(jìn)做了(le)抖音(yīn)系(xì)列短(duǎn)視頻,感(gǎn)興趣可(kě)以(yǐ)關(guān)注明(míng)德揚抖音(yīn)号(hào):FPGA技巧分(fēn)享(87481069842)
內(nèi)容不(bù)斷更(gèng)新!點(diǎn)赞+關(guān)注,学習不(bù)迷路(lù)!
一(yī)、SDRAM和(hé)DDR專題(tí)課
【問(wèn)題(tí)1.1】DDR3那(nà)个(gè)課程,一(yī)般線(xiàn)速率能(néng)跑到(dào)多(duō)少(shǎo)?
答(dá):本(běn)課程的(de)DDR3內(nèi)容,是(shì)基于(yú)XILINX K7芯片(piàn),使用(yòng)的(de)是(shì)VIVADO平台(tái)。DDR3的(de)时(shí)鐘(zhōng)頻率是(shì)800M。用(yòng)戶側时(shí)鐘(zhōng)是(shì)200M。
【問(wèn)題(tí)1.3】 使用(yòng)DDR3 IP一(yī)定(dìng)需要(yào)读(dú)地(dì)址FIFO,读(dú)數據(jù)FIFO,写地(dì)址FIFO,写數據(jù)FIFO来(lái)先(xiān)進(jìn)行數據(jù)緩存吗?
答(dá):这(zhè)个(gè)理解(jiě)是(shì)不(bù)对(duì)的(de)。这(zhè)里(lǐ)沒(méi)有(yǒu)跨时(shí)間(jiān)域的(de)信(xìn)号(hào)傳輸的(de)。因(yīn)为(wèi)IP核会(huì)産生(shēng)一(yī)个(gè)本(běn)地(dì)时(shí)鐘(zhōng),这(zhè)个(gè)本(běn)地(dì)时(shí)鐘(zhōng)是(shì)可(kě)以(yǐ)直(zhí)接采集數據(jù)的(de),假設为(wèi)clk_ddr_local。用(yòng)戶可(kě)以(yǐ)直(zhí)接使用(yòng)clk_ddr_local来(lái)往IP核傳輸數據(jù)。好(hǎo)了(le),接下(xià)来(lái)再考慮一(yī)个(gè)场景:我(wǒ)有(yǒu)一(yī)組數據(jù)A,産生(shēng)于(yú)时(shí)鐘(zhōng)域clk;A要(yào)写到(dào)DDR,DDR的(de)时(shí)鐘(zhōng)域是(shì)clk_ddr_local。自(zì)然地(dì),A要(yào)跟时(shí)鐘(zhōng)域到(dào)clk_ddr_local,然後(hòu)才能(néng)写到(dào)DDR中(zhōng),这(zhè)就(jiù)需要(yào)用(yòng)到(dào)FIFO。接下(xià)来(lái)考慮另(lìng)一(yī)个(gè)场景:我(wǒ)有(yǒu)一(yī)組數據(jù)B,産生(shēng)于(yú)时(shí)鐘(zhōng)域clk_ddr_local;B要(yào)写到(dào)DDR,DDR的(de)时(shí)鐘(zhōng)是(shì)clk_ddr_local。由(yóu)于(yú)两(liǎng)个(gè)时(shí)鐘(zhōng)域相同(tóng),直(zhí)接写就(jiù)好(hǎo)了(le)。(通(tòng)常来(lái)说(shuō),这(zhè)已經(jīng)不(bù)屬于(yú)DDR的(de)知識了(le),而(ér)是(shì)屬于(yú)跨时(shí)鐘(zhōng)域处理的(de)知識,是(shì)FPGA工程师(shī)都應(yìng)該知道(dào)的(de)概念)。
【問(wèn)題(tí)1.4】用(yòng)戶邏輯控制DDR3读(dú)写的(de)程序不(bù)是(shì)需要(yào)自(zì)己写吗?答(dá):官方(fāng)一(yī)般提(tí)供了(le)DDR3的(de)IP核。
答(dá):用(yòng)戶可(kě)以(yǐ)通(tòng)过(guò)DDR3 IP核来(lái)進(jìn)行DDR3芯片(piàn)的(de)读(dú)写。但是(shì)用(yòng)戶需要(yào)写邏輯来(lái)控制DDR3 IP核。
【問(wèn)題(tí)1.5】課程里(lǐ)会(huì)講如(rú)何通(tòng)过(guò)DDR3 IP像写入(rù)图(tú)像吗?
答(dá):課程中(zhōng)的(de)SDRAM部(bù)分(fēn),会(huì)有(yǒu)例子講如(rú)何写入(rù)图(tú)像到(dào)SDRAM中(zhōng),DDR3/4也(yě)是(shì)類(lèi)似的(de)。但由(yóu)于(yú)每人(rén)的(de)項目不(bù)同(tóng),所(suǒ)以(yǐ)需要(yào)学員根(gēn)據(jù)自(zì)己情(qíng)況来(lái)移植。
【問(wèn)題(tí)1.6】如(rú)何知道(dào)ddr3里(lǐ)不(bù)空,可(kě)以(yǐ)读(dú)取(qǔ)了(le)?
答(dá):DDR3和(hé)RAM一(yī)樣(yàng),是(shì)一(yī)个(gè)存儲器件(jiàn),它(tā)的(de)每个(gè)內(nèi)部(bù)單元(yuán)都存儲了(le)當前(qián)的(de)數據(jù)狀态值。但DDR3和(hé)RAM本(běn)身(shēn),是(shì)沒(méi)有(yǒu)“空”、“存有(yǒu)數據(jù)”,“數據(jù)滿”等概念的(de)。只(zhī)要(yào)給(gěi)地(dì)址,它(tā)就(jiù)会(huì)把當前(qián)地(dì)址的(de)數據(jù)給(gěi)到(dào)總(zǒng)線(xiàn)上(shàng),而(ér)且这(zhè)个(gè)地(dì)址可(kě)以(yǐ)读(dú)很多(duō)次(cì)。在(zài)設計(jì)的(de)时(shí)候,是(shì)由(yóu)設計(jì)师(shī)用(yòng)自(zì)己写邏輯来(lái)判斷DDR3是(shì)否为(wèi)空。
【問(wèn)題(tí)1.7】請問(wèn)这(zhè)个(gè)sdram的(de)自(zì)動(dòng)刷新命令發(fà)送後(hòu),是(shì)不(bù)是(shì)刷新的(de)是(shì)所(suǒ)有(yǒu)bank的(de)同(tóng)一(yī)行都在(zài)執行刷新呀?也(yě)就(jiù)是(shì)说(shuō)刷新的(de)是(shì)不(bù)同(tóng)bank的(de)同(tóng)一(yī)行,是(shì)不(bù)是(shì)这(zhè)樣(yàng)理解(jiě)

答(dá):是(shì)的(de)。發(fà)送一(yī)个(gè)自(zì)動(dòng)刷新命令,所(suǒ)有(yǒu)BANK同(tóng)一(yī)行都会(huì)刷新。
【問(wèn)題(tí)1.8】請問(wèn)有(yǒu)ddr3的(de)IP核手(shǒu)册吗?(altera的(de))
答(dá):IP核不(bù)同(tóng),界面(miàn)会(huì)所(suǒ)不(bù)同(tóng),但一(yī)般都会(huì)提(tí)供下(xià)载鍊(liàn)接的(de)。VIVADO、ISE等,也(yě)是(shì)同(tóng)樣(yàng)的(de)情(qíng)況
【問(wèn)題(tí)1.9】做一(yī)个(gè)用(yòng)到(dào)ddr4的(de)項目,有(yǒu)一(yī)个(gè)ddr3的(de)例程,不(bù)知道(dào)怎麼(me)改成(chéng)ddr4?
答(dá):百(bǎi)度(dù)搜索找(zhǎo)資料,按流程配置就(jiù)好(hǎo),这(zhè)个(gè)我(wǒ)们(men)沒(méi)有(yǒu)教程,只(zhī)能(néng)看(kàn)數據(jù)手(shǒu)册
【問(wèn)題(tí)1.10】下(xià)图(tú)中(zhōng)的(de)自(zì)刷新有(yǒu)啥區(qū)别?
答(dá):上(shàng)電(diàn)後(hòu),要(yào)經(jīng)过(guò)初始化(huà),初始化(huà)中(zhōng)要(yào)有(yǒu)两(liǎng)次(cì)刷新動(dòng)作;當初始化(huà)完成(chéng)後(hòu),才是(shì)每隔一(yī)段(duàn)时(shí)間(jiān),要(yào)自(zì)刷新一(yī)次(cì)
【問(wèn)題(tí)1.11】如(rú)下(xià)图(tú)所(suǒ)示,为(wèi)什麼(me)在(zài)接口(kǒu)中(zhōng),一(yī)般要(yào)鎖存住地(dì)址addr、写數據(jù)wdata等?不(bù)鎖存不(bù)行吗?
答(dá):如(rú)上(shàng)图(tú)所(suǒ)示,假設在(zài)第(dì)2~6时(shí)鐘(zhōng)时(shí)刻,addr的(de)值为(wèi)2,表(biǎo)示此(cǐ)时(shí)要(yào)写地(dì)址2。本(běn)模块(kuài)收(shōu)到(dào)此(cǐ)請求後(hòu),会(huì)在(zài)後(hòu)面(miàn)如(rú)第(dì)7~10时(shí)鐘(zhōng),産生(shēng)写地(dì)址为(wèi)“2”的(de)时(shí)序。但注意(yì),在(zài)第(dì)7~10,addr的(de)值還(huán)是(shì)不(bù)是(shì)2呢?可(kě)能(néng)不(bù)是(shì)了(le)。
【問(wèn)題(tí)1.12】請問(wèn)連(lián)接ddr3 ip核與(yǔ)mem_burst时(shí),有(yǒu)些端口(kǒu)未定(dìng)義。內(nèi)些未定(dìng)義的(de)端口(kǒu)怎麼(me)辦(bàn)?
答(dá):
1. 本(běn)課程提(tí)示的(de)案(àn)例,經(jīng)过(guò)上(shàng)板验(yàn)證是(shì)可(kě)以(yǐ)的(de),如(rú)果(guǒ)不(bù)可(kě)以(yǐ),請及(jí)时(shí)向(xiàng)老(lǎo)师(shī)反(fǎn)映。
2. 本(běn)例程验(yàn)證过(guò)是(shì)可(kě)以(yǐ)的(de),因(yīn)此(cǐ)例化(huà)时(shí)未連(lián)接的(de)信(xìn)号(hào),就(jiù)说(shuō)明(míng)对(duì)本(běn)例程来(lái)说(shuō)不(bù)用(yòng)關(guān)心(xīn),不(bù)用(yòng)使用(yòng)。
3. 如(rú)果(guǒ)您要(yào)想(xiǎng)關(guān)心(xīn)这(zhè)些信(xìn)号(hào),可(kě)以(yǐ)閱读(dú)數據(jù)手(shǒu)册,了(le)解(jiě)該信(xìn)号(hào)含義。
【問(wèn)題(tí)1.13】問(wèn)題(tí):請問(wèn)老(lǎo)师(shī)xilinx FPGA的(de)HR bank的(de) lvds接口(kǒu)可(kě)以(yǐ)驅動(dòng)250Mhz DDR adc 吗?我(wǒ)一(yī)直(zhí)只(zhī)能(néng)跑到(dào)100Mhz ,不(bù)知道(dào)是(shì)不(bù)是(shì)我(wǒ)的(de)时(shí)序有(yǒu)問(wèn)題(tí)?
答(dá):
1、首先(xiān)請确認使用(yòng)的(de)芯片(piàn)是(shì)否支持(chí)該DDR的(de)速率;
2、如(rú)果(guǒ)支持(chí)的(de)話(huà),請嚴格按照設計(jì)規範進(jìn)行設計(jì);
3、同(tóng)时(shí)請檢查該開(kāi)發(fà)板的(de)pcb原理图(tú)的(de)設計(jì)是(shì)否合适,例如(rú)pcb的(de)走(zǒu)線(xiàn)是(shì)否等长,或(huò)者(zhě)pcb的(de)板材是(shì)否合适、阻抗是(shì)否匹(pǐ)配......这(zhè)些都会(huì)影響DDR的(de)速率。
【問(wèn)題(tí)1.14】問(wèn)題(tí): 有(yǒu) vivado 下(xià) DDR模型和(hé)參數不(bù)?用(yòng)于(yú)仿真(zhēn)?
解(jiě)答(dá):解(jiě)答(dá):vivado DDR可(kě)以(yǐ)生(shēng)成(chéng)对(duì)應(yìng)的(de)例程,可(kě)以(yǐ)用(yòng)于(yú)仿真(zhēn)。具體(tǐ)操作步驟可(kě)以(yǐ)百(bǎi)度(dù)搜索一(yī)下(xià),例如(rú):Xilinx VIVADO中(zhōng)DDR3 IP核的(de)使用(yòng)(1)_朽月(yuè)的(de)博客-CSDN博客_xilinx ddr 自(zì)動(dòng)刷新
【問(wèn)題(tí)1.15】問(wèn):SDRAM中(zhōng)将刷新时(shí)間(jiān)改为(wèi)1300的(de)意(yì)義何在(zài)?
答(dá):如(rú)果(guǒ)以(yǐ)1562个(gè)为(wèi)周期(qī),當时(shí)間(jiān)到(dào)了(le)之後(hòu),如(rú)果(guǒ)此(cǐ)时(shí)处于(yú)写或(huò)读(dú)操作狀态,就(jiù)要(yào)等一(yī)段(duàn)时(shí)間(jiān)再進(jìn)行刷新操作,这(zhè)樣(yàng)刷新間(jiān)隔就(jiù)会(huì)大于(yú)1562,不(bù)滿足要(yào)求。
【問(wèn)題(tí)1.16】問(wèn):請問(wèn)在(zài)邊(biān)緣檢测的(de)項目中(zhōng),輸入(rù)輸出(chū)數據(jù)是(shì)25M,SDRAM的(de)工作时(shí)鐘(zhōng)是(shì)100M,这(zhè)種(zhǒng)情(qíng)況下(xià)读(dú)写效能(néng)是(shì)多(duō)少(shǎo)呀?
答(dá):SDRAM读(dú)写總(zǒng)線(xiàn)效能(néng)一(yī)般計(jì)算:SDRAM的(de)工作时(shí)鐘(zhōng) * 數據(jù)位宽(kuān) *70% 。(注意(yì):其中(zhōng)70%是(shì)指減去(qù)sdram的(de)一(yī)些操作占用(yòng)後(hòu)的(de)效能(néng),70%的(de)數值是(shì)經(jīng)验(yàn)之談,請根(gēn)據(jù)实際情(qíng)況變(biàn)更(gèng)數值)
【問(wèn)題(tí)1.17】問(wèn):SDRAM工程中(zhōng),读(dú)写請求是(shì)一(yī)个(gè)脈沖,還(huán)是(shì)連(lián)續的(de)電(diàn)平?
答(dá):在(zài)MDY自(zì)定(dìng)義的(de)接口(kǒu)中(zhōng),读(dú)写請求是(shì)一(yī)个(gè)持(chí)續为(wèi)高(gāo)的(de)電(diàn)平信(xìn)号(hào),一(yī)直(zhí)拉高(gāo)直(zhí)到(dào)模块(kuài)響應(yìng)为(wèi)止。拉高(gāo)一(yī)个(gè)電(diàn)平为(wèi)表(biǎo)示读(dú)写一(yī)次(cì)。
二(èr)、高(gāo)手(shǒu)修煉專題(tí)課
【問(wèn)題(tí)2.1】計(jì)數器練習的(de)9.4节(jié)中(zhōng),第(dì)二(èr)个(gè)計(jì)數器的(de)代(dài)碼为(wèi)什麼(me)是(shì)計(jì)30个(gè)呀?我(wǒ)認为(wèi)應(yìng)該是(shì)3*(8+1)+2=29个(gè)。
答(dá):數據(jù)位一(yī)共(gòng)是(shì)27位,開(kāi)始位1位,結束(shù)位1位,還(huán)要(yào)注意(yì)看(kàn)上(shàng)图(tú)中(zhōng),第(dì)三(sān)字(zì)节(jié)x後(hòu)還(huán)有(yǒu)1位的(de)0,之後(hòu)才是(shì)結束(shù)位,所(suǒ)以(yǐ)一(yī)共(gòng)是(shì)30位。
【問(wèn)題(tí)2.2】在(zài)高(gāo)手(shǒu)修煉課中(zhōng),使用(yòng)MDY提(tí)供的(de)DO文(wén)件(jiàn)跑仿真(zhēn),提(tí)示如(rú)下(xià)錯誤:
答(dá):这(zhè)是(shì)由(yóu)于(yú)MODELSIM版本(běn)不(bù)一(yī)致(zhì)導致(zhì)的(de)。請打(dǎ)開(kāi)DO文(wén)件(jiàn),去(qù)掉下(xià)面(miàn)的(de)-novopt語(yǔ)句(jù)。
三(sān)、实用(yòng)調試技巧專題(tí)課
問(wèn)題(tí)【3.1】調試技巧訓練,signaltap練習1里(lǐ),我(wǒ)找(zhǎo)到(dào)了(le)報錯的(de)位置,但是(shì)我(wǒ)很好(hǎo)奇为(wèi)什麼(me)会(huì)出(chū)現(xiàn)这(zhè)个(gè)錯誤:dout沒(méi)有(yǒu)輸出(chū)123,連(lián)續輸出(chū)了(le)两(liǎng)个(gè)124。
答(dá):这(zhè)是(shì)signalTap工具使用(yòng)的(de)訓練習題(tí),只(zhī)需要(yào)找(zhǎo)到(dào)錯誤即可(kě),不(bù)用(yòng)修正(zhèng)錯誤。并且該練習的(de)設計(jì)文(wén)件(jiàn)已經(jīng)封(fēng)裝(zhuāng)成(chéng)IP核了(le),
无法看(kàn)到(dào)內(nèi)部(bù)設計(jì)文(wén)件(jiàn),所(suǒ)以(yǐ)不(bù)需要(yào)糾結練習問(wèn)題(tí)的(de)生(shēng)成(chéng)原因(yīn)。
問(wèn)題(tí)【3.2】調試技巧課程 - 测試文(wén)件(jiàn)編写練習3-練習要(yào)求中(zhōng)的(de)”報文(wén)之間(jiān)的(de)間(jiān)隔位3字(zì)节(jié)“ 是(shì)指3个(gè)时(shí)鐘(zhōng)周期(qī)?

解(jiě)答(dá):需要(yào)根(gēn)據(jù)報文(wén)數據(jù)的(de)位宽(kuān)来(lái)确定(dìng)的(de)。例如(rú),報文(wén)數據(jù)data位宽(kuān)为(wèi)8bits,那(nà)麼(me)間(jiān)隔3字(zì)节(jié)就(jiù)需要(yào)3个(gè)时(shí)鐘(zhōng)周期(qī);假如(rú)data是(shì)其他(tā)位宽(kuān),以(yǐ)此(cǐ)類(lèi)推。
四(sì)、FIFO架構設計(jì)專題(tí)課
【問(wèn)題(tí)4.1】關(guān)于(yú)FIFO的(de)深度(dù)計(jì)算問(wèn)題(tí)?
答(dá):可(kě)以(yǐ)看(kàn)此(cǐ)贴:http://old.mdy-edu.com/jishuwenz/2020/0219/914.html
此(cǐ)答(dá)案(àn)来(lái)自(zì)于(yú)明(míng)德揚的(de)書(shū)籍《手(shǒu)把手(shǒu)教你学FPGA》,電(diàn)子版可(kě)以(yǐ)在(zài)此(cǐ)贴下(xià)载:http://old.mdy-edu.com/wentijieda/20210410/1324.html
【問(wèn)題(tí)4.2】图(tú)中(zhōng)X代(dài)表(biǎo)什麼(me)意(yì)思(sī)
答(dá):这(zhè)个(gè)X是(shì)表(biǎo)示并串轉(zhuǎn)換的(de)次(cì)數。FIFO輸出(chū)的(de)Q是(shì)32位,正(zhèng)常情(qíng)況下(xià),是(shì)有(yǒu)4个(gè)字(zì)节(jié)的(de)有(yǒu)效數據(jù),因(yīn)此(cǐ)x=4。但有(yǒu)一(yī)个(gè)情(qíng)況,在(zài)包(bāo)文(wén)的(de)最(zuì)後(hòu)一(yī)个(gè)數據(jù)时(shí),有(yǒu)可(kě)能(néng)是(shì)只(zhī)有(yǒu)1字(zì)节(jié)、或(huò)者(zhě)2字(zì)节(jié)、或(huò)3字(zì)节(jié),或(huò)4字(zì)节(jié)有(yǒu)效,这(zhè)个(gè)有(yǒu)效多(duō)少(shǎo)是(shì)取(qǔ)決于(yú)mdy的(de)值(經(jīng)过(guò)FIFO後(hòu),即是(shì)Q的(de)33和(hé)32位)。可(kě)以(yǐ)代(dài)入(rù)數據(jù)可(kě)以(yǐ)看(kàn)到(dào)x的(de)值。例如(rú):當q[33:32]=1时(shí),表(biǎo)示有(yǒu)1字(zì)节(jié)无效,即3个(gè)字(zì)节(jié)有(yǒu)效,所(suǒ)以(yǐ)此(cǐ)时(shí)x等于(yú)3。
【問(wèn)題(tí)4.3】問(wèn):FIFO仿真(zhēn)时(shí),與(yǔ)預想(xiǎng)的(de)不(bù)一(yī)樣(yàng),有(yǒu)时(shí)候会(huì)出(chū)读(dú)出(chū)的(de)不(bù)对(duì)?
答(dá):在(zài)做FIFO仿真(zhēn)的(de)时(shí)候,如(rú)果(guǒ)出(chū)現(xiàn)仿真(zhēn)出(chū)錯的(de)情(qíng)況,建議按如(rú)下(xià)方(fāng)式定(dìng)位。 1.一(yī)定(dìng)要(yào)抓取(qǔ)FIFO的(de)內(nèi)部(bù)信(xìn)号(hào)来(lái)观察。注意(yì),一(yī)定(dìng)是(shì)內(nèi)部(bù)信(xìn)号(hào),例如(rú)FIFO这(zhè)个(gè)模块(kuài)的(de)q、rdreq等。 2.要(yào)先(xiān)确認FIFO的(de)輸入(rù)端,即wrreq信(xìn)号(hào)和(hé)写數據(jù),一(yī)个(gè)时(shí)鐘(zhōng)(写时(shí)鐘(zhōng))一(yī)个(gè)时(shí)鐘(zhōng)去(qù)对(duì),最(zuì)好(hǎo)記(jì)录(lù)一(yī)下(xià)这(zhè)个(gè)數據(jù)。 3.其次(cì),确認FIFO的(de)輸出(chū)端,即读(dú)时(shí)鐘(zhōng)、rdreq和(hé)q这(zhè)三(sān)个(gè)信(xìn)号(hào),一(yī)个(gè)时(shí)鐘(zhōng)一(yī)个(gè)时(shí)鐘(zhōng)去(qù)对(duì),把數據(jù)記(jì)录(lù)下(xià)来(lái)。 4.最(zuì)後(hòu),再用(yòng)写數據(jù)和(hé)读(dú)數據(jù)進(jìn)行对(duì)比。另(lìng)外(wài),一(yī)般是(shì)不(bù)会(huì)有(yǒu)問(wèn)題(tí)的(de),請認真(zhēn)核对(duì)。請注意(yì),有(yǒu)部(bù)分(fēn)同(tóng)学反(fǎn)饋還(huán)是(shì)出(chū)錯,我(wǒ)们(men)技術(shù)經(jīng)过(guò)遠(yuǎn)程定(dìng)位後(hòu),發(fà)現(xiàn)同(tóng)学在(zài)确認數據(jù)时(shí),沒(méi)有(yǒu)按时(shí)鐘(zhōng)一(yī)个(gè)一(yī)个(gè)来(lái)數,導致(zhì)了(le)疏忽和(hé)遺漏,請确保一(yī)定(dìng)要(yào)仔细(xì)核对(duì)。
【問(wèn)題(tí)4.4】wrusedw是(shì)写側保持(chí)數據(jù)个(gè)數, rdusedw是(shì)指读(dú)出(chū)读(dú)出(chū)了(le)多(duō)个(gè)數據(jù)个(gè)數?
答(dá):无論wrusedw還(huán)是(shì)rdusedw,均表(biǎo)示FIFO內(nèi)保存有(yǒu)多(duō)少(shǎo)个(gè)數據(jù)。它(tā)们(men)之間(jiān)的(de)區(qū)别僅僅是(shì)时(shí)鐘(zhōng)域不(bù)同(tóng),wrusedw对(duì)應(yìng)的(de)写时(shí)鐘(zhōng)域,即與(yǔ)写时(shí)鐘(zhōng)对(duì)齊的(de)信(xìn)号(hào);
rdusedw对(duì)應(yìng)的(de)是(shì)读(dú)时(shí)鐘(zhōng)域,即與(yǔ)读(dú)时(shí)鐘(zhōng)对(duì)應(yìng)的(de)信(xìn)号(hào)。由(yóu)于(yú)写时(shí)鐘(zhōng)和(hé)读(dú)时(shí)鐘(zhōng)頻率、相位等不(bù)同(tóng),所(suǒ)以(yǐ)wrusedw和(hé)rdusedw是(shì)无法完成(chéng)一(yī)致(zhì)的(de),使用(yòng)时(shí)要(yào)注意(yì)。
五(wǔ)、綜合項目实踐課——温(wēn)度(dù)檢测工程
【問(wèn)題(tí)5.1】温(wēn)度(dù)控制系(xì)統:
1.串口(kǒu)進(jìn)去(qù)之後(hòu),你有(yǒu)一(yī)个(gè)ASCII 轉(zhuǎn)Hex的(de)一(yī)个(gè)模块(kuài) ,然後(hòu)進(jìn)去(qù)之後(hòu)有(yǒu)将包(bāo)头(tóu)解(jiě)析 里(lǐ)面(miàn)進(jìn)入(rù)控制模块(kuài) 可(kě)以(yǐ)直(zhí)接發(fà)送hex數據(jù) 進(jìn)入(rù) 然後(hòu)加CRC檢验(yàn)
2.原本(běn)出(chū)来(lái)的(de)數據(jù)是(shì)hex數據(jù)也(yě)就(jiù)是(shì)说(shuō)數據(jù)出(chū)来(lái)之後(hòu),在(zài)上(shàng)位機(jī)去(qù)計(jì)算一(yī)下(xià)就(jiù)好(hǎo)了(le),反(fǎn)而(ér)簡單,在(zài)这(zhè)里(lǐ)你又将HEX轉(zhuǎn)換为(wèi)ASCII 也(yě)就(jiù)是(shì)说(shuō) 你上(shàng)去(qù)之後(hòu)又很麻(má)煩,而(ér)且下(xià)面(miàn)处理也(yě)變(biàn)麻(má)煩了(le) 。直(zhí)接發(fà)送hex去(qù)上(shàng)位機(jī)解(jiě)析就(jiù)好(hǎo)了(le) 。原本(běn)一(yī)个(gè)簡單的(de)小dome最(zuì)後(hòu)反(fǎn)而(ér)變(biàn)複雜了(le)。
3.就(jiù)是(shì)原本(běn)温(wēn)度(dù)的(de)數據(jù)在(zài)采集的(de)过(guò)程中(zhōng) 可(kě)能(néng)会(huì)有(yǒu)不(bù)稳定(dìng)的(de)情(qíng)況,你比如(rú)在(zài)采集的(de)很长的(de)數據(jù)中(zhōng),有(yǒu)突變(biàn)的(de),但其实,那(nà)个(gè)是(shì)不(bù)稳定(dìng)的(de)數據(jù)。加一(yī)个(gè)濾波(bō)算法進(jìn)去(qù)。这(zhè)樣(yàng)數據(jù)就(jiù)会(huì)很稳定(dìng)。也(yě)讓这(zhè)个(gè)小dome變(biàn)的(de)有(yǒu)意(yì)義,因(yīn)为(wèi)FPGA主(zhǔ)要(yào)的(de)就(jiù)是(shì)去(qù)做算發(fà) 讓他(tā)發(fà)揮他(tā)本(běn)有(yǒu)的(de)长处,才是(shì)最(zuì)好(hǎo)的(de)做法。
答(dá):
①項目的(de)功能(néng)需求各(gè)種(zhǒng)各(gè)樣(yàng),當然去(qù)掉ASCII轉(zhuǎn)換模块(kuài)更(gèng)簡單,但是(shì)有(yǒu)的(de)項目它(tā)的(de)需求就(jiù)是(shì)ASCII碼操作,所(suǒ)以(yǐ)項目功能(néng)的(de)架構最(zuì)終(zhōng)都要(yào)根(gēn)據(jù)需求進(jìn)行設計(jì)。
②然後(hòu),我(wǒ)们(men)这(zhè)个(gè)温(wēn)度(dù)檢测工程是(shì)一(yī)个(gè)培訓項目,所(suǒ)以(yǐ)關(guān)于(yú)ASCII功能(néng)也(yě)会(huì)加入(rù)到(dào)項目中(zhōng)用(yòng)于(yú)訓練。
③同(tóng)时(shí),温(wēn)度(dù)檢测只(zhī)是(shì)該工程里(lǐ)核心(xīn)的(de)功能(néng),其他(tā)功能(néng)的(de)設計(jì)同(tóng)学们(men)也(yě)可(kě)以(yǐ)根(gēn)據(jù)自(zì)己的(de)腦洞(dòng)想(xiǎng)法、自(zì)己的(de)需求進(jìn)行設計(jì)體(tǐ)会(huì),
我(wǒ)们(men)非(fēi)常欢迎同(tóng)学们(men)在(zài)群(qún)提(tí)出(chū)和(hé)分(fēn)享自(zì)己的(de)思(sī)路(lù)想(xiǎng)法,互相讨論,共(gòng)同(tóng)進(jìn)步。
④當然同(tóng)学们(men)也(yě)可(kě)以(yǐ)蹲一(yī)下(xià)我(wǒ)们(men)不(bù)定(dìng)期(qī)開(kāi)播的(de)潘老(lǎo)师(shī)直(zhí)播間(jiān),把自(zì)己項目功能(néng)設計(jì)、架構設計(jì)等等的(de)疑問(wèn)和(hé)需求提(tí)出(chū)来(lái),跟潘老(lǎo)师(shī)進(jìn)行讨論,解(jiě)決你的(de)問(wèn)題(tí)。
【問(wèn)題(tí)5.2】問(wèn):在(zài)下(xià)面(miàn)的(de)DS18B20的(de)读(dú)时(shí)序中(zhōng),中(zhōng)間(jiān)部(bù)分(fēn)(即紅(hóng)色(sè)框部(bù)分(fēn)),是(shì)否指FPGA要(yào)輸出(chū)高(gāo)電(diàn)平 ?
答(dá):不(bù)正(zhèng)确。該时(shí)序前(qián)面(miàn)一(yī)段(duàn)是(shì)FPGA輸出(chū)低電(diàn)平(dq_out为(wèi)0,dout_out_en为(wèi)1)。然後(hòu)是(shì)FPGA釋放(fàng)總(zǒng)線(xiàn)(dq_out_en为(wèi)0,dq_out不(bù)關(guān)心(xīn))。
在(zài)後(hòu)一(yī)段(duàn),是(shì)DS18B20輸出(chū)值,FPGA读(dú)出(chū)值(dq_out_en为(wèi)0,dq_out不(bù)關(guān)心(xīn)。取(qǔ)dq_in的(de)值)。
六(liù)、綜合項目实踐課——邊(biān)緣檢测工程
【問(wèn)題(tí)6.1】點(diǎn)撥開(kāi)發(fà)板,下(xià)载工程檢测工程後(hòu),沒(méi)有(yǒu)反(fǎn)應(yìng)。
答(dá):注意(yì):下(xià)载後(hòu),需要(yào)按下(xià)矩阵(zhèn)鍵盤的(de)按鍵0(即左(zuǒ)上(shàng)角(jiǎo)第(dì)一(yī)个(gè)按鍵),才能(néng)顯示!!!
【問(wèn)題(tí)6.2】點(diǎn)撥開(kāi)發(fà)板可(kě)以(yǐ)顯示攝像头(tóu)拍攝过(guò)来(lái)的(de)图(tú)片(piàn)吗?
答(dá):由(yóu)于(yú)點(diǎn)撥開(kāi)發(fà)板的(de)資源不(bù)足,所(suǒ)以(yǐ)无法顯示攝像头(tóu)的(de)图(tú)片(piàn),如(rú)要(yào)顯示,建議購買(mǎi)MP801開(kāi)發(fà)板。
【問(wèn)題(tí)6.3】PCLK的(de)时(shí)鐘(zhōng)頻率問(wèn)題(tí)
答(dá):FPGA提(tí)供XCLK給(gěi)攝像头(tóu),攝像头(tóu)利用(yòng)XCLK産生(shēng)PCLK。所(suǒ)以(yǐ)PCLK来(lái)源于(yú)XCLK,所(suǒ)以(yǐ)XCLK是(shì)多(duō)少(shǎo),PCLK就(jiù)是(shì)多(duō)少(shǎo)。也(yě)就(jiù)是(shì)说(shuō)PCLK和(hé)XCLK頻率大小一(yī)樣(yàng),只(zhī)是(shì)说(shuō)可(kě)能(néng)不(bù)同(tóng)相
【問(wèn)題(tí)6.4】是(shì)否不(bù)使用(yòng)PLL,而(ér)是(shì)用(yòng)PCLK来(lái)作为(wèi)采集模块(kuài)的(de)时(shí)鐘(zhōng)?
答(dá):PCLK經(jīng)过(guò)插件(jiàn)連(lián)到(dào)FPGA,这(zhè)其中(zhōng)可(kě)能(néng)会(huì)不(bù)稳定(dìng)。为(wèi)解(jiě)決此(cǐ)問(wèn)題(tí),将PCLK連(lián)到(dào)PLL,産生(shēng)一(yī)个(gè)同(tóng)頻同(tóng)相的(de)时(shí)鐘(zhōng),使用(yòng)这(zhè)个(gè)时(shí)鐘(zhōng)作为(wèi)采集模块(kuài)的(de)工作时(shí)鐘(zhōng)。这(zhè)樣(yàng),即使PCLK缺少(shǎo)或(huò)者(zhě)不(bù)稳定(dìng),但産生(shēng)的(de)时(shí)鐘(zhōng)也(yě)会(huì)保持(chí)稳定(dìng)。
【問(wèn)題(tí)6.5】攝像头(tóu)寄存器配置模块(kuài)中(zhōng),配置的(de)是(shì)04对(duì)應(yìng)RGB,但是(shì)數據(jù)手(shǒu)册中(zhōng)RGB應(yìng)該是(shì)01,这(zhè)是(shì)为(wèi)什麼(me)?
答(dá):这(zhè)里(lǐ)的(de)Bayer RAW本(běn)質(zhì)上(shàng)是(shì)RAW RGB格式,也(yě)是(shì)RGB格式。RAW RGB:在(zài)攝像头(tóu)里(lǐ)沒(méi)有(yǒu)經(jīng)过(guò)任何处理的(de)數據(jù)。
RGB:在(zài)攝像头(tóu)里(lǐ)經(jīng)过(guò)了(le)ISP等算法处理的(de)數據(jù)。如(rú)果(guǒ)想(xiǎng)要(yào)最(zuì)原始的(de)數據(jù),就(jiù)使用(yòng)RAW格式;如(rú)果(guǒ)要(yào)攝像头(tóu)先(xiān)美化(huà)一(yī)下(xià),就(jiù)使用(yòng)RGB格式。想(xiǎng)要(yào)哪種(zhǒng)格式,取(qǔ)決于(yú)您的(de)需求。
【問(wèn)題(tí)6.6】邊(biān)緣檢测寄存器是(shì)怎麼(me)樣(yàng)配置的(de)呢?
答(dá):邊(biān)緣檢测中(zhōng),ov7670_cfg模块(kuài)和(hé)sccb模块(kuài),就(jiù)是(shì)用(yòng)来(lái)配置的(de),可(kě)以(yǐ)參考
【問(wèn)題(tí)6.7】邊(biān)緣檢查課程案(àn)例OV接口(kǒu)是(shì)用(yòng)MIMP還(huán)是(shì)DVP的(de)?
答(dá):OV7670是(shì)标(biāo)準的(de)SCCB接口(kǒu),兼容IIC接口(kǒu)
【問(wèn)題(tí)6.8】請問(wèn)在(zài)邊(biān)緣檢测模块(kuài)中(zhōng)的(de)vga_config模块(kuài),如(rú)果(guǒ)想(xiǎng)顯示完整的(de)一(yī)幀图(tú)像(假設为(wèi)彩条(tiáo)顯示)而(ér)ram資源不(bù)够,我(wǒ)用(yòng)的(de)多(duō)維數組来(lái)做存儲器存儲16bit 640*480个(gè)像素點(diǎn),(目的(de):在(zài)local_wr_req时(shí)将写數據(jù)按地(dì)址存進(jìn)去(qù),在(zài)local_rd_req时(shí)将數據(jù)按地(dì)址读(dú)出(chū)来(lái)),請問(wèn)以(yǐ)下(xià)代(dài)碼方(fāng)案(àn)是(shì)否可(kě)行,若不(bù)行,請問(wèn)該如(rú)何实現(xiàn)此(cǐ)目的(de)?(代(dài)碼如(rú)下(xià)图(tú)示)

答(dá):
1. 使用(yòng)二(èr)維數組代(dài)替RAM方(fāng)法:二(èr)維數據(jù)使用(yòng)的(de)是(shì)寄存器資料,通(tòng)常RAM資源是(shì)遠(yuǎn)遠(yuǎn)大于(yú)寄存器資源的(de),所(suǒ)以(yǐ)RAM不(bù)足时(shí),寄存器一(yī)般也(yě)不(bù)足。
2. 如(rú)果(guǒ)只(zhī)是(shì)仿真(zhēn)用(yòng)途,这(zhè)个(gè)是(shì)可(kě)以(yǐ)的(de),可(kě)以(yǐ)不(bù)考慮資源。既然是(shì)仿真(zhēn),那(nà)自(zì)然也(yě)可(kě)以(yǐ)增大RAM了(le)。
3. 注意(yì)上(shàng)面(miàn)代(dài)碼中(zhōng)有(yǒu)錯誤,读(dú)写地(dì)址是(shì)独立,不(bù)是(shì)共(gòng)同(tóng)一(yī)个(gè)的(de)。读(dú)哪些地(dì)址數據(jù),无關(guān)写地(dì)址。上(shàng)面(miàn)代(dài)碼中(zhōng)不(bù)正(zhèng)确,具體(tǐ)請仿真(zhēn)。
【問(wèn)題(tí)6.9】这(zhè)个(gè)關(guān)系(xì)怎麼(me)得到(dào)的(de)呢?根(gēn)據(jù)这(zhè)个(gè)图(tú)的(de)話(huà) 上(shàng)面(miàn)的(de)關(guān)系(xì)不(bù)應(yìng)該反(fǎn)过(guò)来(lái)吗?在(zài)下(xià)一(yī)拍的(de)时(shí)候應(yìng)該吧taps0_ff0賦值給(gěi)taps0x呀?


答(dá):沒(méi)有(yǒu) ff0就(jiù)是(shì)表(biǎo)示 延时(shí)一(yī)拍的(de)意(yì)思(sī),taps0_ff是(shì)taps0前(qián)一(yī)时(shí)刻的(de)值,需要(yào)得到(dào)这(zhè)種(zhǒng)結果(guǒ),就(jiù)是(shì)通(tòng)过(guò)时(shí)序邏輯打(dǎ)一(yī)拍,資料提(tí)供的(de)有(yǒu)直(zhí)播課講解(jiě),建議結合仿真(zhēn)波(bō)形去(qù)看(kàn),测試文(wén)件(jiàn)有(yǒu)提(tí)供
【問(wèn)題(tí)6.10】請問(wèn)这(zhè)一(yī)段(duàn)写在(zài)代(dài)碼的(de)哪里(lǐ)?我(wǒ)找(zhǎo)不(bù)到(dào),看(kàn)不(bù)出(chū)
答(dá):在(zài)SCCB代(dài)碼里(lǐ)
【問(wèn)題(tí)6.11】邊(biān)緣檢测課程这(zhè)个(gè)判斷读(dú)或(huò)写使能(néng)的(de)計(jì)數器的(de)rw_cnt为(wèi)什麼(me)刚好(hǎo)对(duì)應(yìng)add_wdata[16]和(hé)add_wdata[17]?


解(jiě)答(dá):在(zài)工作狀态(flag==1)时(shí),此(cǐ)时(shí)对(duì)ov7670的(de)指令進(jìn)行读(dú)写,那(nà)到(dào)底是(shì)对(duì)指令進(jìn)行读(dú)還(huán)是(shì)写,使用(yòng)读(dú)写操作計(jì)數器rw_cnt進(jìn)行計(jì)數,按順序的(de)進(jìn)行判斷。根(gēn)據(jù)模块(kuài)ov7670_para.v 里(lǐ)指令的(de)格式:{读(dú)操作(1bit),写操作(1bit),操作指令(16bits)}。當rw_cnt=0时(shí),設計(jì)上(shàng)此(cǐ)时(shí)先(xiān)判斷指令写操作是(shì)否有(yǒu)效,因(yīn)此(cǐ)对(duì)應(yìng)判斷ov7670_para.v 里(lǐ)指令的(de)add_wdata[16],确認对(duì)應(yìng)比特(tè)位的(de)写操作是(shì)否为(wèi)高(gāo)電(diàn)平,如(rú)果(guǒ)是(shì),那(nà)麼(me)需要(yào)对(duì)該指令進(jìn)行写操作,産生(shēng)一(yī)个(gè)写使能(néng)有(yǒu)效信(xìn)号(hào)(wr_en==1)。其他(tā)以(yǐ)此(cǐ)類(lèi)推。
【問(wèn)題(tí)6.12】邊(biān)緣檢测里(lǐ)面(miàn)的(de)sccb模块(kuài)中(zhōng),根(gēn)據(jù)sccb手(shǒu)册要(yào)求,读(dú)时(shí)序的(de)傳輸周期(qī)要(yào)写成(chéng)两(liǎng)段(duàn)写,为(wèi)什麼(me)代(dài)碼里(lǐ)面(miàn)省(shěng)了(le)第(dì)二(èr)段(duàn)(設備地(dì)址+读(dú)數據(jù))?

这(zhè)上(shàng)面(miàn)读(dú)时(shí)序傳輸周期(qī)只(zhī)写了(le)一(yī)段(duàn)。
解(jiě)答(dá):理解(jiě)有(yǒu)誤,代(dài)碼里(lǐ)sccb的(de)读(dú)操作是(shì)有(yǒu)两(liǎng)段(duàn)时(shí)序的(de)。請聯系(xì)信(xìn)号(hào) rd_com、count_duan、out_data、flag_sel,直(zhí)接仿真(zhēn)查看(kàn)波(bō)形一(yī)起理解(jiě),这(zhè)樣(yàng)会(huì)更(gèng)直(zhí)观。

【問(wèn)題(tí)6.13】問(wèn):邊(biān)緣檢测工程中(zhōng),配置ov7670的(de)寄存器順序是(shì)固定(dìng),修改順序要(yào)重(zhòng)新修改代(dài)碼後(hòu)上(shàng)電(diàn),有(yǒu)沒(méi)有(yǒu)辦(bàn)法可(kě)以(yǐ)不(bù)上(shàng)電(diàn)直(zhí)接修改?
答(dá):目前(qián)代(dài)碼就(jiù)需要(yào)重(zhòng)新上(shàng)電(diàn)。 不(bù)重(zhòng)新上(shàng)電(diàn)的(de)方(fāng)式,就(jiù)參考温(wēn)度(dù)檢测工程,需要(yào)上(shàng)位機(jī)配合
【問(wèn)題(tí)6.14】問(wèn):邊(biān)沿檢测課程里(lǐ),VGA_driver里(lǐ)面(miàn)的(de)行同(tóng)步场同(tóng)步信(xìn)号(hào)为(wèi)什麼(me)需要(yào)打(dǎ)拍延时(shí)産生(shēng)?
答(dá):在(zài)本(běn)模块(kuài)中(zhōng),使用(yòng)了(le)行計(jì)數器和(hé)场計(jì)數器来(lái)産生(shēng)了(le)读(dú)地(dì)址rd_addr。
1.該地(dì)址送給(gěi)上(shàng)遊模块(kuài)vga_config,然後(hòu)将數據(jù)返回(huí)給(gěi)本(běn)模块(kuài)会(huì)有(yǒu)幾(jǐ)个(gè)时(shí)鐘(zhōng)的(de)延时(shí)。
2.为(wèi)了(le)讓返回(huí)的(de)數據(jù),與(yǔ)最(zuì)終(zhōng)的(de)信(xìn)号(hào)vga_vys和(hé)vga_hys对(duì)齊,所(suǒ)以(yǐ)要(yào)延时(shí)一(yī)下(xià),打(dǎ)了(le)两(liǎng)拍再産生(shēng)行场同(tóng)步信(xìn)号(hào)。
3.具體(tǐ)可(kě)以(yǐ)通(tòng)过(guò)整體(tǐ)工程仿真(zhēn)来(lái)檢查确認。檢查返回(huí)的(de)第(dì)一(yī)个(gè)數據(jù)是(shì)否有(yǒu)延时(shí);第(dì)一(yī)个(gè)數據(jù)與(yǔ)行场同(tóng)步信(xìn)号(hào)是(shì)否有(yǒu)就(jiù)是(shì)对(duì) 。
【問(wèn)題(tí)6.15】邊(biān)IP核配置代(dài)碼中(zhōng),下(xià)面(miàn)部(bù)分(fēn)的(de) 3'b110,8'h02,32'h00800020 110,02分(fēn)别屬于(yú)什麼(me)功能(néng)呢
答(dá):
1. 前(qián)面(miàn)3比特(tè)的(de)3'b110用(yòng)于(yú)定(dìng)義读(dú)写屬性(xìng):分(fēn)别是(shì)表(biǎo)示读(dú)、写和(hé)等待位。當对(duì)應(yìng)位为(wèi)1,表(biǎo)示使能(néng)。
a. 例如(rú),3'b110,表(biǎo)示读(dú)使能(néng)、写使能(néng)、等待不(bù)使能(néng)。那(nà)麼(me)在(zài)代(dài)碼中(zhōng),将会(huì)对(duì)寄存器先(xiān)執行写操作,然後(hòu)再執行读(dú)操作。读(dú)操作的(de)目的(de),是(shì)为(wèi)了(le)檢查写的(de)对(duì)不(bù)对(duì)。
b.例如(rú),3'b001,表(biǎo)示读(dú)不(bù)使能(néng),写不(bù)使能(néng),等級使能(néng)。在(zài)代(dài)碼中(zhōng),不(bù)对(duì)寄存器操作,只(zhī)用(yòng)于(yú)延时(shí)。
2. 中(zhōng)間(jiān)的(de)8位是(shì)读(dú)写地(dì)址。即寄存器的(de)地(dì)址,对(duì)應(yìng)着IP核數據(jù)手(shǒu)册中(zhōng)的(de)寄存器地(dì)址。
3. 後(hòu)面(miàn)的(de)32位是(shì)写數據(jù)或(huò)者(zhě)延时(shí)值。當写寄存器时(shí),是(shì)写到(dào)寄存器的(de)數據(jù)。當读(dú)寄存器,不(bù)關(guān)心(xīn),可(kě)填充为(wèi)0。當是(shì)延时(shí)操作时(shí),表(biǎo)示要(yào)延时(shí)的(de)值,單位为(wèi)时(shí)鐘(zhōng)周期(qī)。
【問(wèn)題(tí)6.16】問(wèn):請問(wèn)邊(biān)緣檢测中(zhōng),对(duì)于(yú)SDRAM模块(kuài)的(de)读(dú)写,涉及(jí)到(dào)仲裁內(nèi)容吗?(邊(biān)緣檢测)
答(dá):涉及(jí)到(dào),就(jiù)是(shì)读(dú)写怎麼(me)判斷的(de)問(wèn)題(tí)
七(qī)、綜合項目实踐課——千(qiān)兆(zhào)网(wǎng)項目專題(tí)課
【問(wèn)題(tí)7.1】千(qiān)兆(zhào)网(wǎng)課程里(lǐ)的(de)udp和(hé)百(bǎi)兆(zhào)网(wǎng)通(tòng)用(yòng)的(de)吗?
答(dá):本(běn)課程講述的(de)是(shì)千(qiān)兆(zhào)网(wǎng),对(duì)于(yú)百(bǎi)兆(zhào)网(wǎng)来(lái)说(shuō),UDP IP MAC和(hé)ARP協議都是(shì)相同(tóng)的(de),
不(bù)同(tóng)的(de)是(shì)MAC IP核、FPGA和(hé)PHY芯片(piàn)的(de)接口(kǒu)不(bù)同(tóng)。 本(běn)課程提(tí)供的(de)是(shì)千(qiān)兆(zhào)网(wǎng)的(de)工程,如(rú)果(guǒ)要(yào)使用(yòng)百(bǎi)兆(zhào)网(wǎng),需要(yào)根(gēn)據(jù)上(shàng)面(miàn)的(de)內(nèi)容来(lái)修改。
【問(wèn)題(tí)7.2】千(qiān)兆(zhào)网(wǎng)課程有(yǒu)实現(xiàn)TCP協議吗?
答(dá):本(běn)千(qiān)兆(zhào)网(wǎng)課程实現(xiàn)的(de)是(shì)UDP協議,沒(méi)有(yǒu)TCP協議。
【問(wèn)題(tí)7.3】請問(wèn)下(xià),三(sān)速以(yǐ)太网(wǎng)IP核配置时(shí),32bit对(duì)齊選項的(de)意(yì)義在(zài)哪里(lǐ)?
答(dá):在(zài)接口(kǒu)为(wèi)32bit时(shí),每个(gè)VLD有(yǒu)效时(shí)的(de)數量(liàng)是(shì)4个(gè)字(zì)节(jié)。由(yóu)于(yú)MAC头(tóu)是(shì)14字(zì)节(jié),不(bù)是(shì)4的(de)整數倍,在(zài)發(fà)送方(fāng)向(xiàng),在(zài)補上(shàng)MAC头(tóu)後(hòu),
必須調整數據(jù)(拿出(chū)2字(zì)节(jié)與(yǔ)MAC头(tóu)最(zuì)後(hòu)2字(zì)节(jié)湊成(chéng)一(yī)个(gè)4字(zì)节(jié)的(de)有(yǒu)效數據(jù)),这(zhè)樣(yàng)处理比較麻(má)煩。 同(tóng)时(shí)道(dào)理,接收(shōu)方(fāng)向(xiàng),去(qù)掉14字(zì)节(jié)MAC头(tóu)後(hòu),
会(huì)有(yǒu)一(yī)个(gè)VLD多(duō)出(chū)2字(zì)节(jié)的(de)有(yǒu)效數據(jù),这(zhè)樣(yàng)調整也(yě)麻(má)煩。为(wèi)此(cǐ),MAC IP核里(lǐ)有(yǒu)一(yī)个(gè)功能(néng),就(jiù)是(shì)32位对(duì)齊功能(néng)。該功能(néng)決定(dìng),在(zài)SOP位置时(shí),
最(zuì)高(gāo)2字(zì)节(jié)是(shì)否为(wèi)无效數據(jù)。 當是(shì)无效數據(jù)模式时(shí),發(fà)送方(fāng)向(xiàng)插入(rù)2字(zì)节(jié)无效數據(jù)+14字(zì)节(jié)MAC头(tóu);在(zài)接收(shōu)方(fāng)向(xiàng),删除前(qián)16字(zì)节(jié)MAC头(tóu),剩下(xià)就(jiù)是(shì)效數據(jù)。这(zhè)樣(yàng)处理就(jiù)方(fāng)便很多(duō)了(le)。
【問(wèn)題(tí)7.4】 只(zhī)要(yào)勾選了(le)32bit对(duì)齊功能(néng),IP核自(zì)動(dòng)添加2字(zì)节(jié)的(de)无效數據(jù)?
答(dá):勾選对(duì)齊後(hòu),接收(shōu)方(fāng)向(xiàng)将删除无效數據(jù),直(zhí)接輸出(chū)數據(jù),即SOP位置的(de)高(gāo)2字(zì)节(jié)也(yě)是(shì)有(yǒu)效的(de),一(yī)直(zhí)到(dào)EOP位置。發(fà)送方(fāng)向(xiàng),認为(wèi)從SOP到(dào)EOP的(de)位置都是(shì)有(yǒu)效的(de)。
不(bù)勾選的(de)話(huà),接收(shōu)方(fāng)向(xiàng),IP核輸出(chū)、SOP位置的(de)高(gāo)2字(zì)节(jié)是(shì)无效數據(jù)。發(fà)送方(fāng)向(xiàng),進(jìn)到(dào)IP核的(de)數據(jù)里(lǐ),将SOP位置的(de)高(gāo)2字(zì)节(jié)視为(wèi)无效數據(jù)。
【問(wèn)題(tí)7.5】如(rú)下(xià)图(tú)所(suǒ)示,當使用(yòng)了(le)PAD_EN功能(néng)时(shí),接收(shōu)方(fāng)向(xiàng),会(huì)将PAD去(qù)掉,但实際上(shàng)沒(méi)有(yǒu)去(qù)除,是(shì)怎麼(me)回(huí)事(shì)?

答(dá):請看(kàn)下(xià)面(miàn)描述:第(dì)一(yī)段(duàn),當值小于(yú)600,該域反(fǎn)映的(de)是(shì)长度(dù),才会(huì)繼續檢查PAYLOAD长度(dù),
進(jìn)而(ér)才会(huì)有(yǒu)REMOVAL。當值大于(yú)600时(shí),該域反(fǎn)映的(de)是(shì)類(lèi)型而(ér)已,則不(bù)会(huì)REMOVAL。

【問(wèn)題(tí)7.6】課程里(lǐ)会(huì)包(bāo)含TCP協議吗?
答(dá):TCP協議使用(yòng)邏輯实現(xiàn)非(fēi)常複雜,所(suǒ)以(yǐ)本(běn)課程不(bù)会(huì)包(bāo)含此(cǐ)部(bù)分(fēn)內(nèi)容。
【問(wèn)題(tí)7.7】RGMII支持(chí)10M/100M/1000M三(sān)種(zhǒng)模式吗?
答(dá):RGMII是(shì)"吉比特(tè)介質(zhì)独立接口(kǒu)"的(de)含義,即1000M的(de)傳輸接口(kǒu)。其他(tā)幾(jǐ)種(zhǒng)接口(kǒu)包(bāo)括GMII、MII等。注意(yì)一(yī)下(xià),10M/100M/1000M三(sān)種(zhǒng)模式,指的(de)是(shì)該“芯片(piàn)”支持(chí)这(zhè)三(sān)種(zhǒng)接口(kǒu),不(bù)是(shì)说(shuō)RGMII支持(chí)。當芯片(piàn)采用(yòng)了(le)RGMII或(huò)GMII时(shí),就(jiù)傳輸1000M;當采用(yòng)了(le)MII 100M时(shí),就(jiù)是(shì)傳輸100M。注意(yì)的(de)是(shì),RGMII和(hé)MII的(de)部(bù)分(fēn)管(guǎn)脚是(shì)可(kě)以(yǐ)複用(yòng)的(de)。
【問(wèn)題(tí)7.8】千(qiān)兆(zhào)网(wǎng)配置寄存器的(de)定(dìng)義代(dài)碼中(zhōng),下(xià)面(miàn)两(liǎng)个(gè)IP核數據(jù)手(shǒu)册中(zhōng)沒(méi)有(yǒu)说(shuō)明(míng),是(shì)什麼(me)作用(yòng)的(de)?

答(dá):第(dì)一(yī)行語(yǔ)句(jù)的(de)作用(yòng)是(shì)“等待10000个(gè)时(shí)鐘(zhōng)周期(qī)”。目的(de)是(shì)當完成(chéng)前(qián)面(miàn)的(de)配置後(hòu),等待10000个(gè)时(shí)鐘(zhōng)後(hòu),再去(qù)配置下(xià)面(miàn)的(de)寄存器。这(zhè)是(shì)因(yīn)为(wèi)有(yǒu)时(shí)
候,配置完上(shàng)面(miàn)寄存器後(hòu),有(yǒu)可(kě)能(néng)要(yào)等一(yī)段(duàn)时(shí)間(jiān)才起作用(yòng),所(suǒ)以(yǐ)要(yào)等一(yī)等。这(zhè)个(gè)“等待”功能(néng)是(shì)FPGA里(lǐ)面(miàn)代(dài)碼实現(xiàn)的(de)。
第(dì)二(èr)句(jù)作用(yòng)是(shì)测試使用(yòng)的(de),可(kě)以(yǐ)删除,在(zài)調試时(shí)看(kàn)看(kàn)接口(kǒu)是(shì)否正(zhèng)确。
【問(wèn)題(tí)7.9】本(běn)項目有(yǒu)沒(méi)有(yǒu)配置外(wài)部(bù)的(de)PHY芯片(piàn)?
答(dá):本(běn)項目是(shì)沒(méi)有(yǒu)配置的(de),因(yīn)为(wèi)默認PHY芯片(piàn)是(shì)不(bù)用(yòng)配置就(jiù)能(néng)正(zhèng)确使用(yòng)的(de)。
【問(wèn)題(tí)7.10】、百(bǎi)兆(zhào)网(wǎng)和(hé)千(qiān)兆(zhào)网(wǎng)的(de)區(qū)别是(shì)什麼(me)?
答(dá):
1. IP核是(shì)一(yī)樣(yàng)的(de)
2. 千(qiān)兆(zhào)网(wǎng)使用(yòng)的(de)是(shì)GMII接口(kǒu),百(bǎi)兆(zhào)网(wǎng)則是(shì)MII接口(kǒu)。gmii數據(jù)線(xiàn)是(shì)8位;MII接口(kǒu)使用(yòng)是(shì)4位數據(jù)線(xiàn),也(yě)就(jiù)是(shì)TXD低4位和(hé)RXD低4位。
3. 时(shí)鐘(zhōng)頻率不(bù)同(tóng),千(qiān)兆(zhào)网(wǎng)是(shì)125M,百(bǎi)兆(zhào)网(wǎng)是(shì)25M时(shí)鐘(zhōng)。
4. 百(bǎi)兆(zhào)网(wǎng)的(de)TX时(shí)鐘(zhōng)来(lái)自(zì)于(yú)PHY芯片(piàn),芯片(piàn)管(guǎn)脚使用(yòng)的(de)是(shì)tx_clk,而(ér)不(bù)是(shì)gtx_clk。
5. MII接口(kǒu)的(de)4位數據(jù)線(xiàn),是(shì)先(xiān)發(fà)1个(gè)字(zì)节(jié)的(de)低4位,再發(fà)高(gāo)4位。
【問(wèn)題(tí)7.11】老(lǎo)师(shī),咱们(men)千(qiān)兆(zhào)网(wǎng)項目中(zhōng),为(wèi)啥用(yòng)sharkwire抓包(bāo)的(de)时(shí)候 最(zuì)大傳輸速率到(dào)不(bù)了(le)千(qiān)兆(zhào)呢?
答(dá):因(yīn)为(wèi)包(bāo)文(wén)傳輸的(de)时(shí)候,会(huì)有(yǒu)消耗的(de),例如(rú)包(bāo)與(yǔ)包(bāo)之間(jiān)有(yǒu)幀間(jiān)隙,并且每个(gè)包(bāo)会(huì)有(yǒu)前(qián)導碼和(hé)FCS部(bù)分(fēn)。因(yīn)此(cǐ)达(dá)不(bù)到(dào)理論的(de)千(qiān)兆(zhào)。
【問(wèn)題(tí)7.12】請問(wèn)一(yī)下(xià)在(zài)千(qiān)兆(zhào)网(wǎng)工程里(lǐ),初始化(huà)mac IP核时(shí),signaltapii有(yǒu)些reg_cnt刚開(kāi)始时(shí),add_wdata会(huì)出(chū)現(xiàn)一(yī)小段(duàn)莫名其妙的(de)數據(jù),是(shì)怎麼(me)回(huí)事(shì) ?
答(dá):請注意(yì)这(zhè)个(gè)signaltap采樣(yàng)的(de)时(shí)鐘(zhōng)一(yī)定(dìng)要(yào)跟代(dài)碼模块(kuài)的(de)时(shí)鐘(zhōng)一(yī)致(zhì)。
SignalTap使用(yòng)教程:http://old.mdy-edu.com/jishuwenz/2019/1210/107.html
【問(wèn)題(tí)7.13】在(zài)千(qiān)兆(zhào)网(wǎng)的(de)rx_filter模块(kuài)中(zhōng),读(dú)數據(jù)的(de)时(shí)候为(wèi)什麼(me)用(yòng)add_cnt=m_empty==0,这(zhè)个(gè)信(xìn)息FIFO的(de)不(bù)空作为(wèi)读(dú)条(tiáo)件(jiàn)?

答(dá):信(xìn)息FIFO非(fēi)空,表(biǎo)示數據(jù)FIFO中(zhōng)存有(yǒu)一(yī)个(gè)完整的(de)包(bāo)文(wén),因(yīn)为(wèi)需要(yào)判斷包(bāo)文(wén)是(shì)否正(zhèng)确,所(suǒ)以(yǐ)需要(yào)數據(jù)FIFO中(zhōng)保存一(yī)个(gè)完整包(bāo)文(wén)之後(hòu)再读(dú)出(chū)。
由(yóu)于(yú)本(běn)模块(kuài)需要(yào)将32位的(de)數據(jù)轉(zhuǎn)成(chéng)16位的(de),計(jì)數器cnt數两(liǎng)次(cì),表(biǎo)示數據(jù)FIFO需要(yào)两(liǎng)个(gè)时(shí)鐘(zhōng)读(dú)出(chū)一(yī)次(cì),當遇到(dào)最(zuì)後(hòu)eop的(de)时(shí)候,由(yóu)于(yú)可(kě)能(néng)存在(zài)无效字(zì)节(jié),所(suǒ)以(yǐ)當无效字(zì)节(jié)为(wèi)2个(gè)或(huò)者(zhě)3个(gè)的(de)时(shí)候,計(jì)數器只(zhī)需要(yào)數一(yī)次(cì)就(jiù)够了(le)。
【問(wèn)題(tí)7.14】在(zài)千(qiān)兆(zhào)网(wǎng)的(de)rx_filter模块(kuài)中(zhōng),信(xìn)息FIFO深度(dù)为(wèi)什麼(me)設置为(wèi)32,設置为(wèi)1就(jiù)可(kě)以(yǐ)了(le)吧?
答(dá):这(zhè)里(lǐ)設置为(wèi)32只(zhī)是(shì)順手(shǒu)而(ér)为(wèi),而(ér)且占用(yòng)的(de)資源也(yě)不(bù)是(shì)很多(duō),所(suǒ)以(yǐ)就(jiù)沒(méi)有(yǒu)進(jìn)行修改,深度(dù)改为(wèi)1也(yě)是(shì)可(kě)以(yǐ)的(de)。
【問(wèn)題(tí)7.15】在(zài)udp發(fà)送的(de)过(guò)程中(zhōng),假設源端口(kǒu)为(wèi)0x1234,目的(de)端口(kǒu)为(wèi)0x5678,那(nà)麼(me)發(fà)送的(de)是(shì)12345678還(huán)是(shì)56781234?
答(dá):發(fà)送的(de)时(shí)候是(shì)按照12345678来(lái)發(fà)送的(de)
【問(wèn)題(tí)7.16】为(wèi)什麼(me)udp協議在(zài)發(fà)送和(hé)接收(shōu)的(de)时(shí)候,源端口(kǒu)和(hé)目的(de)端口(kǒu)順序会(huì)反(fǎn)?
答(dá):包(bāo)文(wén)的(de)協議时(shí)固定(dìng)的(de),只(zhī)会(huì)按照源地(dì)址加目的(de)地(dì)址的(de)格式發(fà)送。
1.FPGA發(fà)送的(de)时(shí)候,FPGA産生(shēng)包(bāo)文(wén),端源端口(kǒu)是(shì)1234,目的(de)端口(kǒu)是(shì)5678。然後(hòu)發(fà)送格式是(shì)源+目,因(yīn)此(cǐ)發(fà)送的(de)是(shì)1234_5678
2.FPGA接收(shōu)的(de)时(shí)候,PC産生(shēng)包(bāo)文(wén),源端口(kǒu)是(shì)5678,目的(de)是(shì)1234,然後(hòu)發(fà)送的(de)是(shì)源+目,因(yīn)此(cǐ)是(shì)5678_1234。
【問(wèn)題(tí)7.17】請問(wèn)一(yī)下(xià),我(wǒ)編譯千(qiān)兆(zhào)以(yǐ)太网(wǎng)的(de)时(shí)候,为(wèi)什麼(me)把这(zhè)个(gè)clogb2文(wén)件(jiàn)添加進(jìn)去(qù)就(jiù)会(huì)報錯,说(shuō)是(shì)sv文(wén)件(jiàn)?還(huán)有(yǒu)这(zhè)个(gè)文(wén)件(jiàn)有(yǒu)什麼(me)作用(yòng)?謝謝
答(dá):clogb2不(bù)是(shì)一(yī)个(gè)完整的(de)module文(wén)件(jiàn),它(tā)是(shì)被(bèi)用(yòng)include的(de)方(fāng)法加入(rù)代(dài)碼中(zhōng)的(de)。它(tā)不(bù)需要(yào)加到(dào)工程上(shàng),所(suǒ)以(yǐ)可(kě)以(yǐ)把它(tā)去(qù)掉。
【問(wèn)題(tí)7.18】請問(wèn)下(xià),在(zài)做練習工程的(de)时(shí)候,需要(yào)自(zì)己設計(jì)MAC首部(bù)發(fà)送電(diàn)路(lù),MAC首部(bù)14字(zì)节(jié),但數據(jù)位是(shì)4字(zì)节(jié)的(de),我(wǒ)需要(yào)定(dìng)義 發(fà)送首部(bù)的(de)計(jì)數器,这(zhè)里(lǐ)4是(shì)不(bù)能(néng)被(bèi)14整除的(de),我(wǒ)應(yìng)該怎麼(me)处理?
答(dá):
1、可(kě)以(yǐ)在(zài)設計(jì)代(dài)碼的(de)时(shí),把産生(shēng)的(de)mac头(tóu)、IP头(tóu)、UDP头(tóu)拼接起来(lái)的(de)时(shí)候,在(zài)最(zuì)高(gāo)位補2字(zì)节(jié)的(de)无效數據(jù)零(líng)。
2、或(huò)者(zhě)在(zài)mac_ip核進(jìn)行相關(guān)的(de)設置,具體(tǐ)可(kě)以(yǐ)查看(kàn)相關(guān)數據(jù)手(shǒu)册附:數據(jù)手(shǒu)册在(zài)打(dǎ)開(kāi)IP核後(hòu)如(rú)图(tú)所(suǒ)示位置查看(kàn)

【問(wèn)題(tí)7.19】千(qiān)兆(zhào)网(wǎng)轉(zhuǎn)百(bǎi)兆(zhào)网(wǎng)的(de)时(shí)候,需要(yào)給(gěi)phy芯片(piàn)一(yī)个(gè)參考时(shí)鐘(zhōng),是(shì)怎麼(me)給(gěi)的(de)?
答(dá):開(kāi)發(fà)板上(shàng)有(yǒu)一(yī)个(gè)12M的(de)时(shí)鐘(zhōng)芯片(piàn),是(shì)給(gěi)phy芯片(piàn)的(de)。外(wài)部(bù)晶振的(de)事(shì),跟FPGA无關(guān)
【問(wèn)題(tí)7.20】我(wǒ)的(de)采樣(yàng)时(shí)鐘(zhōng)就(jiù)是(shì)模块(kuài)的(de)工作时(shí)鐘(zhōng)(always块(kuài)里(lǐ)的(de));現(xiàn)在(zài)從MAC_IP核輸出(chū)的(de)數據(jù)不(bù)正(zhèng)确,根(gēn)據(jù)常見(jiàn)問(wèn)題(tí)PDF里(lǐ)問(wèn)題(tí)1和(hé)6的(de)解(jiě)答(dá),
有(yǒu)两(liǎng)種(zhǒng)情(qíng)況,如(rú)果(guǒ)时(shí)鐘(zhōng)沒(méi)問(wèn)題(tí)那(nà)就(jiù)有(yǒu)可(kě)能(néng)是(shì)IP核的(de)輸入(rù)信(xìn)号(hào)有(yǒu)問(wèn)題(tí)。我(wǒ)对(duì)應(yìng)的(de)代(dài)碼和(hé)signaltap采集到(dào)的(de)數據(jù)如(rú)图(tú):
請問(wèn)这(zhè)種(zhǒng)情(qíng)況下(xià),輸入(rù)的(de)數據(jù)算是(shì)正(zhèng)确的(de)吗?
答(dá):結果(guǒ)是(shì)正(zhèng)确的(de)。原因(yīn)同(tóng)上(shàng)【問(wèn)題(tí)9】
【問(wèn)題(tí)7.21】再設置好(hǎo)電(diàn)腦的(de)IP地(dì)址之後(hòu),把界面(miàn)關(guān)掉,然後(hòu)再打(dǎ)開(kāi)就(jiù)沒(méi)有(yǒu)了(le),需要(yào)重(zhòng)新設置,怎麼(me)解(jiě)決?
答(dá):
1、點(diǎn)擊左(zuǒ)下(xià)角(jiǎo)的(de)WIN图(tú)标(biāo),輸入(rù)CMD然後(hòu)回(huí)車,打(dǎ)開(kāi)DOS模式窗(chuāng)口(kǒu)。
2、在(zài)DOS命令行提(tí)示符下(xià)直(zhí)接輸入(rù):“netsh winsock
3、reset”,然後(hòu)回(huí)車,会(huì)提(tí)示需要(yào)重(zhòng)啟,不(bù)要(yào)管(guǎn)它(tā)。
4、在(zài)DOS命令行提(tí)示符下(xià)直(zhí)接輸入(rù):“netsh int ip reset
5、reset.log”,然後(hòu)回(huí)車,提(tí)示重(zhòng)新啟動(dòng)計(jì)算機(jī)完成(chéng)此(cǐ)操作。
6、關(guān)閉DOS窗(chuāng)口(kǒu),重(zhòng)新啟動(dòng)計(jì)算機(jī),問(wèn)題(tí)解(jiě)決。
【問(wèn)題(tí)7.22】千(qiān)兆(zhào)网(wǎng)我(wǒ)们(men)的(de)和(hé)用(yòng)mdio接口(kǒu)的(de)有(yǒu)什麼(me)區(qū)别? 我(wǒ)们(men)的(de)教程是(shì)沒(méi)有(yǒu)用(yòng)到(dào)这(zhè)个(gè)接口(kǒu)的(de)
答(dá):MDIO接口(kǒu)是(shì)用(yòng)来(lái)配置外(wài)部(bù)的(de)PHY芯片(piàn)的(de),不(bù)是(shì)用(yòng)来(lái)傳輸數據(jù)的(de),也(yě)就(jiù)不(bù)是(shì)做网(wǎng)絡協議使用(yòng)的(de)。當您需要(yào)配置外(wài)部(bù)的(de)PHY芯片(piàn)时(shí),可(kě)以(yǐ)使用(yòng)MDIO接口(kǒu),否則可(kě)以(yǐ)不(bù)用(yòng)。
【問(wèn)題(tí)7.23】請問(wèn)千(qiān)兆(zhào)网(wǎng)工程里(lǐ),輸入(rù)給(gěi)MAC_IP核的(de)ff_rx_rdy信(xìn)号(hào)为(wèi)什麼(me)直(zhí)接置1?跟速率和(hé)带(dài)宽(kuān)有(yǒu)關(guān)吗?
答(dá):rdy表(biǎo)示下(xià)遊模块(kuài)準備好(hǎo)指示信(xìn)号(hào),如(rú)果(guǒ)準備好(hǎo)了(le)就(jiù)为(wèi)1,沒(méi)準備好(hǎo)就(jiù)为(wèi)0。 在(zài)本(běn)案(àn)例中(zhōng),下(xià)遊模块(kuài)是(shì)rx_mac_analy模块(kuài),該模块(kuài)支持(chí)rtl8122_a_mac_ip模块(kuài)任意(yì)速度(dù)的(de)數據(jù),
即无論怎麼(me)来(lái),下(xià)遊模块(kuài)都能(néng)接收(shōu)并正(zhèng)确处理,所(suǒ)以(yǐ)在(zài)此(cǐ)处置为(wèi)1(时(shí)刻準備好(hǎo))就(jiù)可(kě)以(yǐ)了(le)
【問(wèn)題(tí)7.24】請問(wèn),一(yī)个(gè)基礎問(wèn)題(tí),千(qiān)兆(zhào)网(wǎng)工程里(lǐ)多(duō)个(gè)模块(kuài)都調用(yòng)了(le)FIFO,在(zài)不(bù)同(tóng)模块(kuài)里(lǐ)調用(yòng)的(de)fifo的(de)例化(huà)名(比如(rú):u_dfifo)能(néng)否重(zhòng)複?
答(dá):可(kě)以(yǐ)試試操作,在(zài)不(bù)同(tóng)模块(kuài)是(shì)可(kě)以(yǐ)重(zhòng)複的(de)。
【問(wèn)題(tí)7.25】这(zhè)个(gè)是(shì)因(yīn)为(wèi)IP核沒(méi)有(yǒu)破解(jiě)吗?
答(dá):这(zhè)个(gè)錯誤就(jiù)是(shì)高(gāo)版本(běn)生(shēng)成(chéng)的(de)工程在(zài)低版本(běn)中(zhōng)打(dǎ)開(kāi)出(chū)現(xiàn)的(de)編譯錯誤,用(yòng)高(gāo)版本(běn)的(de)quartus打(dǎ)開(kāi)即可(kě)(如(rú)18版本(běn)的(de))
【問(wèn)題(tí)7.26】千(qiān)兆(zhào)网(wǎng)課程使用(yòng)的(de)是(shì)哪个(gè)PHY芯片(piàn)?
答(dá):本(běn)課程使用(yòng)的(de)是(shì)MP801芯片(piàn),使用(yòng)提(tí)RTL8211芯片(piàn)。但課程中(zhōng),幾(jǐ)乎沒(méi)有(yǒu)涉及(jí)到(dào)PHY芯片(piàn)的(de)內(nèi)容,PHY芯片(piàn)使用(yòng)的(de)是(shì)默認配置。对(duì)于(yú)其他(tā)PHY芯片(piàn),也(yě)是(shì)通(tòng)用(yòng)的(de)。
【問(wèn)題(tí)7.27】千(qiān)兆(zhào)网(wǎng)課程是(shì)ALTERA,是(shì)否與(yǔ)XILINX的(de)通(tòng)用(yòng)?
答(dá):本(běn)課程主(zhǔ)要(yào)涉及(jí)到(dào)各(gè)个(gè)協議的(de)RTL实現(xiàn),这(zhè)部(bù)分(fēn)代(dài)碼是(shì)通(tòng)用(yòng)的(de)。但有(yǒu)一(yī)个(gè)MAC IP核,本(běn)課程的(de)工程是(shì)使用(yòng)ALTERA的(de),XILINX的(de)亦有(yǒu)相同(tóng)的(de)IP,需要(yào)您移植。總(zǒng)的(de)来(lái)说(shuō),MAC IP占整个(gè)課程的(de)比重(zhòng)不(bù)大,大概是(shì)5%的(de)內(nèi)容。
【問(wèn)題(tí)7.28】您的(de)UDP教程里(lǐ)面(miàn)包(bāo)不(bù)包(bāo)含ARP和(hé)CRC328bit这(zhè)两(liǎng)个(gè)地(dì)方(fāng)的(de)講解(jiě)?
答(dá):有(yǒu)arp的(de)講解(jiě),但crc就(jiù)不(bù)包(bāo)括。
【問(wèn)題(tí)7.29】千(qiān)兆(zhào)网(wǎng)課程的(de)源碼中(zhōng)有(yǒu)相應(yìng)的(de)tb仿真(zhēn)代(dài)碼嘛?
答(dá):沒(méi)有(yǒu),但如(rú)果(guǒ)要(yào)验(yàn)證功能(néng)正(zhèng)确性(xìng)可(kě)以(yǐ)上(shàng)板验(yàn)證和(hé)仿真(zhēn)文(wén)件(jiàn)
【問(wèn)題(tí)7.30】請問(wèn)下(xià)载程序後(hòu),電(diàn)腦檢测不(bù)到(dào)本(běn)地(dì)以(yǐ)太网(wǎng),把程序删除又可(kě)以(yǐ)檢测?
答(dá):可(kě)能(néng)程序里(lǐ)有(yǒu)複位管(guǎn)脚,把这(zhè)些PHY芯片(piàn)複位了(le)。
【問(wèn)題(tí)7.31】以(yǐ)太网(wǎng)通(tòng)信(xìn)中(zhōng),抓包(bāo)工具wireshark能(néng)抓到(dào) 但网(wǎng)絡調試助手(shǒu)收(shōu)不(bù)到(dào) 是(shì)怎麼(me)回(huí)事(shì)?

答(dá):可(kě)能(néng)性(xìng)有(yǒu)如(rú)下(xià)幾(jǐ)種(zhǒng),請逐一(yī)排除。
1. IP地(dì)址不(bù)正(zhèng)确,請檢查IP地(dì)址,尤其注意(yì)目的(de)IP和(hé)源IP的(de)區(qū)别
2. 端口(kǒu)号(hào)不(bù)正(zhèng)确,請檢查端口(kǒu)号(hào),尤其注意(yì)目的(de)端口(kǒu)和(hé)源端口(kǒu)的(de)區(qū)分(fēn)。
3. 目的(de)MAC地(dì)址不(bù)正(zhèng)确,可(kě)以(yǐ)嘗試發(fà)送廣播包(bāo)文(wén)(非(fēi)ARP包(bāo)文(wén))测試。
4. 包(bāo)文(wén)过(guò)短(duǎn),小于(yú)60字(zì)节(jié)。
【問(wèn)題(tí)7.32】工程仿真(zhēn)的(de)前(qián)導碼後(hòu)为(wèi)什麼(me)有(yǒu)两(liǎng)个(gè)字(zì)节(jié)的(de)0呢? 按理说(shuō)應(yìng)該緊跟目的(de)MAC地(dì)址 图(tú)中(zhōng)e8 6a就(jiù)是(shì)目的(de)MAC開(kāi)头(tóu).

答(dá):MAC IP核的(de)有(yǒu)一(yī)个(gè)32bit对(duì)齊的(de)功能(néng),關(guān)于(yú)該功能(néng)意(yì)義,請看(kàn)【問(wèn)題(tí)7.3】。如(rú)果(guǒ)出(chū)現(xiàn)上(shàng)图(tú)中(zhōng)問(wèn)題(tí),有(yǒu)可(kě)能(néng)是(shì)MAC IP核中(zhōng)的(de)32bit对(duì)齊功能(néng)設置有(yǒu)誤。
【問(wèn)題(tí)7.33】千(qiān)兆(zhào)网(wǎng)項目中(zhōng),是(shì)否包(bāo)括TCP協議实現(xiàn)?
答(dá):千(qiān)兆(zhào)网(wǎng)項目是(shì)使用(yòng)的(de)UDP協議,而(ér)非(fēi)TCP協議。目前(qián)来(lái)说(shuō),TCP協議由(yóu)于(yú)有(yǒu)握手(shǒu)機(jī)制、重(zhòng)發(fà)機(jī)制等功能(néng),在(zài)邏輯上(shàng)实現(xiàn)相當困難,暫未看(kàn)到(dào)商用(yòng)的(de)案(àn)例。
【問(wèn)題(tí)7.34】高(gāo)速采集後(hòu)的(de)數據(jù) 是(shì)存到(dào)內(nèi)存或(huò)者(zhě)flash吗 ?
答(dá):激光(guāng)項目:采集到(dào)數據(jù)後(hòu),內(nèi)部(bù)進(jìn)行計(jì)算和(hé)处理,并将結果(guǒ)通(tòng)过(guò)千(qiān)兆(zhào)网(wǎng)上(shàng)傳到(dào)上(shàng)位機(jī)。大數據(jù)采集項目:從光(guāng)纤采集到(dào)數據(jù)後(hòu),保存到(dào)DDR3中(zhōng),然後(hòu)读(dú)出(chū)送到(dào)PCIE上(shàng)位機(jī)。
【問(wèn)題(tí)7.35】請問(wèn)插上(shàng)千(qiān)兆(zhào)网(wǎng)模块(kuài)後(hòu),PING不(bù)通(tòng)?
答(dá):千(qiān)兆(zhào)网(wǎng)模块(kuài)是(shì)一(yī)个(gè)基于(yú)PHY层的(de)模块(kuài),不(bù)是(shì)完整的(de)网(wǎng)卡(kǎ),实現(xiàn)的(de)是(shì)PHY层的(de)協議,沒(méi)有(yǒu)实現(xiàn)MAC层、TCP/IP层協議。
因(yīn)此(cǐ),不(bù)可(kě)能(néng)PING通(tòng)(因(yīn)为(wèi)PING功能(néng)是(shì)在(zài)TCP/IP层实現(xiàn)的(de))。要(yào)实現(xiàn)PING功能(néng),需要(yào)編写FPGA程序来(lái)实現(xiàn)。
【問(wèn)題(tí)7.36】插上(shàng)設備後(hòu),電(diàn)腦識别成(chéng)百(bǎi)兆(zhào)网(wǎng)問(wèn)題(tí)?
答(dá):上(shàng)電(diàn)後(hòu),電(diàn)腦與(yǔ)千(qiān)兆(zhào)网(wǎng)模块(kuài)之間(jiān)会(huì)開(kāi)展(zhǎn)自(zì)協商对(duì)話(huà),根(gēn)據(jù)双(shuāng)方(fāng)的(de)环(huán)境确定(dìng)通(tòng)信(xìn)速率。如(rú)果(guǒ)希望工作在(zài)1G,而(ér)实質(zhì)協商成(chéng)100M,則依次(cì)按如(rú)下(xià)檢查。
1. 檢查電(diàn)腦网(wǎng)卡(kǎ)是(shì)否支持(chí)1G,具體(tǐ)請看(kàn)网(wǎng)卡(kǎ)設置
2. 檢查网(wǎng)線(xiàn)是(shì)否支持(chí)1G,有(yǒu)類(lèi)型的(de)要(yào)求。
3. 換台(tái)電(diàn)腦試試
4. 以(yǐ)上(shàng)都测試过(guò)後(hòu)還(huán)不(bù)行,請找(zhǎo)指導老(lǎo)师(shī)确認。
【問(wèn)題(tí)7.37】請問(wèn)千(qiān)兆(zhào)网(wǎng)的(de)rx_ip_analy.v文(wén)件(jiàn),getlen是(shì)獲取(qǔ)總(zǒng)长度(dù),第(dì)二(èr)个(gè)图(tú)片(piàn)get_len_4byte是(shì)完全(quán)不(bù)懂,請老(lǎo)师(shī)給(gěi)个(gè)提(tí)示?還(huán)有(yǒu)+5又是(shì)什麼(me)意(yì)思(sī)呢?

答(dá):IP长度(dù)是(shì)20字(zì)节(jié),get_len_byte是(shì)实質(zhì)獲取(qǔ)到(dào)的(de)數據(jù)长度(dù)(不(bù)包(bāo)括IP头(tóu)),單位为(wèi)字(zì)节(jié);get_len_4byte是(shì)实質(zhì)獲取(qǔ)到(dào)的(de)长度(dù)(包(bāo)括IP头(tóu)),單位为(wèi)32bite。
【問(wèn)題(tí)7.38】你好(hǎo),这(zhè)个(gè)rx_ip_analy部(bù)分(fēn)的(de),我(wǒ)不(bù)太清(qīng)楚到(dào)底是(shì)实際的(de)采集长度(dù)小于(yú)等于(yú)輸入(rù)獲取(qǔ)的(de)长度(dù)還(huán)是(shì)輸入(rù)獲取(qǔ)的(de)长度(dù)小于(yú)等于(yú)实際采集的(de)长度(dù)。
感(gǎn)覺上(shàng)面(miàn)说(shuō)應(yìng)該cnt <get_len_4byte,下(xià)面(miàn)又说(shuō)act_len_byte < get_len是(shì)錯的(de)。
答(dá):get_len:從长度(dù)字(zì)段(duàn)獲取(qǔ)到(dào)的(de)长度(dù);
get_len_4byte:從长度(dù)字(zì)段(duàn)獲取(qǔ)到(dào)的(de)长度(dù),單位为(wèi)4字(zì)节(jié);
act_len_byte:從數據(jù)字(zì)段(duàn)中(zhōng)獲取(qǔ)到(dào)的(de)长度(dù);
所(suǒ)以(yǐ),從數據(jù)中(zhōng)獲取(qǔ)到(dào)的(de)长度(dù),小于(yú)“字(zì)段(duàn)指示的(de)长度(dù)”,就(jiù)是(shì)錯的(de)。
【問(wèn)題(tí)7.39】請教大家(jiā)一(yī)个(gè)問(wèn)題(tí),以(yǐ)太网(wǎng)調試的(de)时(shí)候,主(zhǔ)機(jī)网(wǎng)卡(kǎ)不(bù)是(shì)realtek PCIE FE Family,主(zhǔ)機(jī)接收(shōu)不(bù)到(dào)fpga發(fà)送的(de)報文(wén)怎麼(me)辦(bàn)?
答(dá):一(yī)般来(lái)说(shuō),只(zhī)要(yào)發(fà)送端發(fà)送的(de)包(bāo)文(wén)符合网(wǎng)口(kǒu)傳輸協議,无論什麼(me)网(wǎng)卡(kǎ)都可(kě)以(yǐ)都到(dào)包(bāo)文(wén)。可(kě)以(yǐ)檢查一(yī)下(xià)
①fpga發(fà)送的(de)包(bāo)文(wén)協議是(shì)否正(zhèng)确;
②檢查网(wǎng)口(kǒu)識别的(de)速率是(shì)否與(yǔ)工程速率匹(pǐ)配;
③檢查网(wǎng)卡(kǎ)是(shì)否有(yǒu)問(wèn)題(tí)
【問(wèn)題(tí)7.40】千(qiān)兆(zhào)网(wǎng)工程使用(yòng)sgmii接口(kǒu),請問(wèn)在(zài)vivado中(zhōng)用(yòng)哪个(gè)ip核呀?
解(jiě)答(dá):GMII和(hé)RGMII接口(kǒu)使用(yòng)的(de)VIVADO IP核为(wèi):tri_mode_ethernet_mac。而(ér)SGMII接口(kǒu)使用(yòng)的(de)IP核为(wèi):1G/2.5G Ethernet PCS/PMA OR SGMII。注意(yì):SGMII模式,使用(yòng)上(shàng)面(miàn)的(de)这(zhè)个(gè)IP核。注意(yì),SGMII協議会(huì)與(yǔ)本(běn)課程中(zhōng)的(de)MAC協議不(bù)同(tóng),要(yào)特(tè)别留意(yì)。
【問(wèn)題(tí)7.41】問(wèn):千(qiān)兆(zhào)网(wǎng)課程的(de)MAC是(shì)使用(yòng)的(de)官方(fāng)IP核,還(huán)是(shì)自(zì)己RTL写的(de)?
答(dá):本(běn)課程的(de)UDP、IP、ARP等協議,是(shì)MDY的(de)RTL代(dài)碼写的(de)。而(ér)MAC部(bù)分(fēn),使用(yòng)的(de)是(shì)官方(fāng)IP核。在(zài)平时(shí)使用(yòng)中(zhōng),MDY也(yě)自(zì)己写了(le)簡化(huà)版的(de)MAC层部(bù)分(fēn)代(dài)碼,主(zhǔ)要(yào)实現(xiàn)的(de)是(shì)添加前(qián)導碼和(hé)校(xiào)验(yàn)和(hé)。 这(zhè)一(yī)部(bù)分(fēn)沒(méi)有(yǒu)文(wén)字(zì)说(shuō)明(míng),也(yě)沒(méi)有(yǒu)教程,如(rú)果(guǒ)有(yǒu)疑問(wèn),請自(zì)行消化(huà)。下(xià)载鍊(liàn)接如(rú)下(xià):http://fpgabbs.com/forum.php?mod=viewthread&tid=4481&page=1&extra=#pid5534
【問(wèn)題(tí)7.42】問(wèn)題(tí):以(yǐ)太网(wǎng)約束(shù)中(zhōng),建立时(shí)間(jiān)的(de)时(shí)序報告如(rú)图(tú)一(yī),請問(wèn)下(xià)为(wèi)什麼(me)上(shàng)面(miàn)是(shì)4ns,下(xià)面(miàn)又是(shì)加8ns呢? 保持(chí)时(shí)間(jiān)分(fēn)析如(rú)图(tú)二(èr),为(wèi)什麼(me)这(zhè)两(liǎng)个(gè)都加4?
图(tú)一(yī)

图(tú)二(èr)
答(dá):
1. 这(zhè)項目是(shì)RGMII模式,时(shí)鐘(zhōng)为(wèi)125M,上(shàng)升(shēng)沿和(hé)下(xià)降沿均采樣(yàng),相當于(yú)时(shí)鐘(zhōng)周期(qī)是(shì)4ns。
2. 建議时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)都是(shì)從4ns開(kāi)始計(jì)算,可(kě)能(néng)是(shì)約束(shù)时(shí)鐘(zhōng)时(shí)指定(dìng)的(de),指定(dìng)從4,可(kě)以(yǐ)看(kàn)时(shí)鐘(zhōng)約束(shù)。(有(yǒu)些是(shì)從0開(kāi)始)
3. 建立时(shí)間(jiān)分(fēn)析时(shí),目的(de)时(shí)鐘(zhōng)路(lù)徑要(yào)加上(shàng)时(shí)鐘(zhōng)周期(qī)(4ns),保持(chí)时(shí)間(jiān)分(fēn)析时(shí),目的(de)时(shí)鐘(zhōng)路(lù)徑不(bù)需要(yào)加上(shàng)时(shí)鐘(zhōng)周期(qī)。 原因(yīn)請看(kàn)时(shí)序約束(shù)問(wèn)題(tí)彙總(zǒng)贴8.16 (http://old.mdy-edu.com/wentijieda/20210410/1294.html)。
【問(wèn)題(tí)7.43】請問(wèn)一(yī)下(xià),IP校(xiào)验(yàn)和(hé),校(xiào)验(yàn)和(hé)字(zì)段(duàn)不(bù)加,这(zhè)部(bù)分(fēn)應(yìng)該是(shì)5吧,16*5。

解(jiě)答(dá): 如(rú)图(tú)所(suǒ)示,ip_head[16*5-1 -:16]对(duì)應(yìng)的(de)是(shì)IP校(xiào)验(yàn)和(hé)的(de)值,但此(cǐ)时(shí)還(huán)未計(jì)算出(chū)IP校(xiào)验(yàn)和(hé)的(de)值,所(suǒ)以(yǐ)ip_sum=0,因(yīn)此(cǐ)可(kě)以(yǐ)省(shěng)略对(duì)ip_head[16*5-1 -:16]的(de)求和(hé)計(jì)算。

【問(wèn)題(tí)7.44】想(xiǎng)請問(wèn)一(yī)下(xià),以(yǐ)太网(wǎng)tx_pack模块(kuài)的(de)测試文(wén)件(jiàn),这(zhè)条(tiáo)語(yǔ)句(jù)是(shì)什麼(me)作用(yòng)呀?

解(jiě)答(dá):用(yòng)于(yú)計(jì)算长度(dù)的(de)有(yǒu)多(duō)少(shǎo)个(gè)2字(zì)节(jié)长度(dù)的(de)數據(jù)。length表(biǎo)示长度(dù)有(yǒu)多(duō)少(shǎo)字(zì)节(jié),而(ér)len_2b表(biǎo)示长度(dù)有(yǒu)多(duō)少(shǎo)个(gè)2字(zì)节(jié)。信(xìn)号(hào)length不(bù)取(qǔ)最(zuì)低位,相當于(yú)數據(jù)除以(yǐ)2。
【問(wèn)題(tí)7.45】問(wèn):當把板子和(hé)電(diàn)腦的(de)网(wǎng)線(xiàn)相連(lián)後(hòu),電(diàn)腦那(nà)里(lǐ)顯示“未識别网(wǎng)絡”,如(rú)何解(jiě)決“未識别网(wǎng)絡”問(wèn)題(tí)?
答(dá):“未識别网(wǎng)絡”这(zhè)是(shì)正(zhèng)常現(xiàn)象(xiàng)。當把FPGA板子和(hé)電(diàn)腦相連(lián)後(hòu),无論FPGA有(yǒu)沒(méi)有(yǒu)程序,此(cǐ)时(shí)双(shuāng)方(fāng)通(tòng)信(xìn)均是(shì)“MAC层”的(de)協議。該层協議只(zhī)識别出(chū)速率,即1G還(huán)是(shì)100M速率。
而(ér)“未識别网(wǎng)絡”是(shì)指TCP/IP层的(de)協議,需要(yào)TCP/IP层的(de)完整協議支持(chí),这(zhè)是(shì)FPGA板子沒(méi)有(yǒu)的(de),也(yě)難以(yǐ)实現(xiàn)的(de)功能(néng),所(suǒ)以(yǐ)肯定(dìng)是(shì)处于(yú)“未識别网(wǎng)絡”狀态。在(zài)真(zhēn)正(zhèng)應(yìng)用(yòng)中(zhōng),FPGA板子和(hé)電(diàn)腦只(zhī)是(shì)點(diǎn)对(duì)點(diǎn)通(tòng)信(xìn),不(bù)需要(yào)組网(wǎng)。
【問(wèn)題(tí)7.46】問(wèn):如(rú)果(guǒ)我(wǒ)想(xiǎng)将GMII口(kǒu)換成(chéng)RGMII口(kǒu)的(de)話(huà),是(shì)只(zhī)需要(yào)将位宽(kuān)以(yǐ)及(jí)MAC重(zhòng)新配置一(yī)下(xià)就(jiù)可(kě)以(yǐ)了(le)吗?由(yóu)于(yú)RGMII口(kǒu)是(shì)双(shuāng)邊(biān)沿采樣(yàng),所(suǒ)以(yǐ)不(bù)确定(dìng)需不(bù)需要(yào)加額外(wài)的(de)操作。
我(wǒ)看(kàn)网(wǎng)上(shàng)用(yòng)vivado的(de)时(shí)候還(huán)需要(yào)用(yòng)原語(yǔ)将phy給(gěi)的(de)rxclk处理一(yī)下(xià)才行。
答(dá):将GMII口(kǒu)換成(chéng)RGMII口(kǒu)的(de)話(huà),除了(le)需要(yào)将位宽(kuān)以(yǐ)及(jí)MAC重(zhòng)新配置一(yī)下(xià),還(huán)需要(yào)更(gèng)換一(yī)下(xià)硬(yìng)件(jiàn)電(diàn)路(lù)部(bù)分(fēn)電(diàn)阻。
【問(wèn)題(tí)7.47】問(wèn):就(jiù)是(shì)这(zhè)个(gè)選項卡(kǎ)里(lǐ)面(miàn),勾選local loopback的(de)时(shí)候,这(zhè)个(gè)回(huí)环(huán)是(shì)MAC側回(huí)环(huán)還(huán)是(shì)phy側的(de)回(huí)环(huán)呀

答(dá):这(zhè)个(gè)回(huí)环(huán)是(shì)MAC側回(huí)环(huán)。
【問(wèn)題(tí)7.48】問(wèn):千(qiān)兆(zhào)网(wǎng)工程里(lǐ)有(yǒu)一(yī)个(gè)用(yòng)戶时(shí)鐘(zhōng):100M。这(zhè)个(gè)100M时(shí)鐘(zhōng)是(shì)否可(kě)以(yǐ)用(yòng)125M代(dài)替。
答(dá):用(yòng)戶时(shí)鐘(zhōng)只(zhī)要(yào)大于(yú)75M即可(kě)。在(zài)提(tí)供的(de)參考工程文(wén)檔里(lǐ),有(yǒu)这(zhè)个(gè)说(shuō)明(míng),可(kě)以(yǐ)看(kàn)文(wén)檔。
【問(wèn)題(tí)7.49】問(wèn):为(wèi)什麼(me)是(shì)干(gàn)什麼(me)用(yòng)的(de)?是(shì)不(bù)是(shì)IP头(tóu)?
答(dá):僞首部(bù)僅是(shì)參與(yǔ)校(xiào)验(yàn)和(hé)計(jì)算而(ér)使用(yòng)的(de),不(bù)会(huì)放(fàng)到(dào)包(bāo)文(wén)中(zhōng)進(jìn)行傳輸。
【問(wèn)題(tí)7.50】問(wèn):如(rú)下(xià)图(tú),UDP包(bāo)文(wén)協議中(zhōng),各(gè)部(bù)分(fēn)的(de)位置在(zài)哪?
答(dá):按照一(yī)个(gè)包(bāo)文(wén)的(de)先(xiān)後(hòu)順序,其包(bāo)文(wén)字(zì)段(duàn)分(fēn)别是(shì): 前(qián)導碼+MAC头(tóu)+IP头(tóu)+UDP头(tóu)(不(bù)包(bāo)括僞首部(bù))+UDP數據(jù)+校(xiào)验(yàn)碼。
【問(wèn)題(tí)7.51】問(wèn):接收(shōu)方(fāng)向(xiàng)做CRC校(xiào)验(yàn),是(shì)如(rú)何确認結果(guǒ)的(de)正(zhèng)确性(xìng)的(de)?
答(dá):CRC接收(shōu)校(xiào)验(yàn)有(yǒu)两(liǎng)種(zhǒng)方(fāng)式。 第(dì)一(yī)種(zhǒng),接收(shōu)过(guò)来(lái)的(de)數據(jù)做CRC校(xiào)验(yàn),結果(guǒ)與(yǔ)接收(shōu)过(guò)来(lái)的(de)CRC校(xiào)验(yàn)值比較,相同(tóng)則接受正(zhèng)确,第(dì)二(èr)種(zhǒng),數據(jù)和(hé)接受过(guò)来(lái)的(de)CRC結果(guǒ)一(yī)起做CRC校(xiào)验(yàn),結果(guǒ)應(yìng)該为(wèi)“固定(dìng)數”。注意(yì),这(zhè)里(lǐ)是(shì)固定(dìng)一(yī)个(gè)數,不(bù)一(yī)定(dìng)是(shì)0,因(yīn)为(wèi)CRC算法里(lǐ),還(huán)存在(zài)輸出(chū)結果(guǒ)反(fǎn)轉(zhuǎn)和(hé)异(yì)或(huò)等操作,会(huì)導致(zhì)結果(guǒ)不(bù)一(yī)定(dìng)为(wèi)0。
【問(wèn)題(tí)7.52】問(wèn):接收(shōu)方(fāng)向(xiàng)做CRC校(xiào)验(yàn),将數據(jù)和(hé)CRC位一(yī)起計(jì)算,結果(guǒ)一(yī)定(dìng)是(shì)0吗?
答(dá):數據(jù)和(hé)接受过(guò)来(lái)的(de)CRC結果(guǒ)一(yī)起做CRC校(xiào)验(yàn),結果(guǒ)應(yìng)該为(wèi)“固定(dìng)數”。注意(yì),这(zhè)里(lǐ)是(shì)固定(dìng)一(yī)个(gè)數,不(bù)一(yī)定(dìng)是(shì)0,因(yīn)为(wèi)CRC算法里(lǐ),還(huán)存在(zài)輸出(chū)結果(guǒ)反(fǎn)轉(zhuǎn)和(hé)异(yì)或(huò)等操作,会(huì)導致(zhì)結果(guǒ)不(bù)一(yī)定(dìng)为(wèi)0。
【問(wèn)題(tí)7.53】問(wèn):在(zài)千(qiān)兆(zhào)网(wǎng)工程中(zhōng),很多(duō)模块(kuài)都有(yǒu)使用(yòng)到(dào)了(le)rdy信(xìn)号(hào),該信(xìn)号(hào)的(de)産生(shēng)有(yǒu)些是(shì)跟FIFO的(de)存儲數據(jù)个(gè)數關(guān)聯。如(rú)FIFO深度(dù)为(wèi)4096,當存儲數據(jù)大于(yú)4086时(shí),rdy为(wèi)0;小于(yú)4086时(shí),rdy为(wèi)1。为(wèi)什麼(me)这(zhè)樣(yàng)設計(jì)?
答(dá):rdy是(shì)本(běn)模块(kuài)準備好(hǎo)信(xìn)号(hào),为(wèi)1时(shí)表(biǎo)示可(kě)以(yǐ)接收(shōu)數據(jù),并且保證能(néng)够正(zhèng)确处理。为(wèi)0时(shí),要(yào)求上(shàng)遊模块(kuài)不(bù)能(néng)發(fà)送。 當FIFO滿了(le)的(de)話(huà),進(jìn)来(lái)的(de)數據(jù)无法保存,就(jiù)会(huì)丢失。所(suǒ)以(yǐ)滿了(le)當然rdy为(wèi)0。为(wèi)了(le)讓上(shàng)遊模块(kuài)有(yǒu)一(yī)定(dìng)的(de)緩沖时(shí)間(jiān),将提(tí)示的(de)水(shuǐ)線(xiàn)設置小一(yī)些,例如(rú)4096的(de),就(jiù)設为(wèi)4086,这(zhè)樣(yàng)上(shàng)遊模块(kuài)可(kě)以(yǐ)晚(wǎn)幾(jǐ)个(gè)时(shí)鐘(zhōng)響應(yìng)也(yě)是(shì)可(kě)以(yǐ)的(de)。 至(zhì)于(yú)是(shì)4086,還(huán)是(shì)4090,根(gēn)據(jù)項目情(qíng)況自(zì)己設置。
【問(wèn)題(tí)7.54】問(wèn):千(qiān)兆(zhào)以(yǐ)太网(wǎng)的(de)macIP核部(bù)分(fēn)的(de)完整視頻有(yǒu)沒(méi)有(yǒu)?我(wǒ)看(kàn)这(zhè)个(gè)IP核说(shuō)是(shì)也(yě)需要(yào)配置,還(huán)有(yǒu)ctc校(xiào)验(yàn),这(zhè)些都是(shì)自(zì)動(dòng)完成(chéng)的(de)吗?
答(dá):沒(méi)有(yǒu),这(zhè)部(bù)分(fēn)不(bù)是(shì)直(zhí)接使用(yòng)就(jiù)可(kě)以(yǐ)了(le),我(wǒ)们(men)工程里(lǐ)有(yǒu)一(yī)个(gè)配置表(biǎo)代(dài)碼 直(zhí)接可(kě)以(yǐ)用(yòng)的(de),ctc是(shì)自(zì)動(dòng)完成(chéng)的(de) 不(bù)需要(yào)參與(yǔ)
【問(wèn)題(tí)7.55】問(wèn):請問(wèn)老(lǎo)师(shī)这(zhè)部(bù)分(fēn)講解(jiě)有(yǒu)吗,找(zhǎo)不(bù)到(dào)?
答(dá):沒(méi)有(yǒu)講解(jiě),直(zhí)接使用(yòng)
【問(wèn)題(tí)7.56】問(wèn):麻(má)煩問(wèn)下(xià)千(qiān)兆(zhào)以(yǐ)太网(wǎng)接收(shōu)mac地(dì)址是(shì)0是(shì)怎麼(me)回(huí)事(shì)呢?

答(dá):廣播包(bāo)應(yìng)該是(shì)这(zhè)麼(me)顯示的(de)
【問(wèn)題(tí)7.57】問(wèn):这(zhè)个(gè)代(dài)碼里(lǐ)的(de)注釋要(yào)怎麼(me)打(dǎ)開(kāi)才看(kàn)得到(dào)呢?

答(dá):注釋變(biàn)成(chéng)亂碼:http://fpgabbs.com/forum.php?mod=viewthread&tid=813&highlight=%C2%D2%C2%EB
【問(wèn)題(tí)7.58】千(qiān)兆(zhào)网(wǎng)課程提(tí)供工程源代(dài)碼吗? 在(zài)課程网(wǎng)盤沒(méi)有(yǒu)找(zhǎo)到(dào),是(shì)哪个(gè)文(wén)件(jiàn)?
答(dá): 
八(bā)、时(shí)序約束(shù)專題(tí)課
【問(wèn)題(tí)8.1】 VIVADO的(de)时(shí)鐘(zhōng)約束(shù)向(xiàng)導,常无法找(zhǎo)到(dào)时(shí)鐘(zhōng),如(rú)下(xià)图(tú)所(suǒ)示,位置1中(zhōng)應(yìng)該要(yào)識别出(chū)时(shí)鐘(zhōng)。




答(dá):請注意(yì),位置1的(de)地(dì)方(fāng)是(shì)列出(chū)的(de)是(shì)“沒(méi)有(yǒu)被(bèi)約束(shù)的(de)时(shí)鐘(zhōng)”,如(rú)果(guǒ)該时(shí)鐘(zhōng)已經(jīng)被(bèi)約束(shù)了(le),就(jiù)不(bù)会(huì)在(zài)这(zhè)里(lǐ)列出(chū)来(lái)了(le)。注意(yì)上(shàng)图(tú)中(zhōng)3的(de)位置,該列说(shuō)明(míng)了(le)有(yǒu)2条(tiáo)时(shí)鐘(zhōng)約束(shù)。可(kě)以(yǐ)點(diǎn)擊这(zhè)里(lǐ)看(kàn)看(kàn),是(shì)不(bù)是(shì)已經(jīng)对(duì)时(shí)鐘(zhōng)進(jìn)行約束(shù)了(le)。为(wèi)什麼(me)会(huì)有(yǒu)时(shí)鐘(zhōng)被(bèi)約束(shù)了(le)呢?因(yīn)为(wèi)該工程已經(jīng)有(yǒu)約束(shù)文(wén)件(jiàn)。
【問(wèn)題(tí)8.2】VIVADO/QUARTUS練習中(zhōng),rst_n是(shì)否需要(yào)約束(shù)?
答(dá):一(yī)个(gè)完整的(de)約束(shù),其基本(běn)要(yào)求是(shì):所(suǒ)有(yǒu)的(de)路(lù)徑都覆蓋,包(bāo)括所(suǒ)有(yǒu)的(de)輸入(rù)管(guǎn)脚和(hé)輸出(chū)管(guǎn)脚。所(suǒ)以(yǐ),rst_n需要(yào)約束(shù)。注意(yì)的(de)是(shì),該信(xìn)号(hào)是(shì)輸入(rù)信(xìn)号(hào),但沒(méi)有(yǒu)随路(lù)时(shí)鐘(zhōng)進(jìn)来(lái)。所(suǒ)以(yǐ)該信(xìn)号(hào)可(kě)以(yǐ)認为(wèi)是(shì)无时(shí)鐘(zhōng)的(de)情(qíng)形,按照課程理論,應(yìng)該定(dìng)義一(yī)个(gè)虛拟时(shí)鐘(zhōng)。定(dìng)義了(le)虛拟时(shí)鐘(zhōng)後(hòu),再重(zhòng)新使用(yòng)約束(shù)向(xiàng)導,約束(shù)rst_n。
【問(wèn)題(tí)8.3】在(zài)VIVADO中(zhōng),如(rú)何設置虛拟时(shí)鐘(zhōng)?
答(dá):虛拟时(shí)鐘(zhōng)不(bù)能(néng)在(zài)时(shí)序約束(shù)向(xiàng)導中(zhōng)添加,需要(yào)在(zài)下(xià)面(miàn)窗(chuāng)口(kǒu)添加
在(zài)Edit Timing Constraints中(zhōng)點(diǎn)擊,然後(hòu)在(zài)creat clock窗(chuāng)口(kǒu)中(zhōng),双(shuāng)擊“Double click to create a Create Clock Constrtaint”。在(zài)弹出(chū)的(de)窗(chuāng)口(kǒu)中(zhōng)

Clock name为(wèi)該时(shí)鐘(zhōng)命一(yī)个(gè)名字(zì),Source objects是(shì)不(bù)需要(yào)填的(de),因(yīn)为(wèi)是(shì)虛拟时(shí)鐘(zhōng),就(jiù)是(shì)沒(méi)对(duì)象(xiàng)了(le)。
【問(wèn)題(tí)8.4】时(shí)序約束(shù)出(chū)現(xiàn)时(shí)序違例(Slack为(wèi)負數),如(rú)何处理?
答(dá):首先(xiān)指出(chū)一(yī)个(gè)誤區(qū):當約束(shù)出(chū)現(xiàn)錯誤时(shí),想(xiǎng)當然地(dì)認为(wèi)是(shì)“时(shí)序約束(shù)做得不(bù)对(duì)”,所(suǒ)以(yǐ)應(yìng)該怎麼(me)去(qù)改“时(shí)序約束(shù)”,從而(ér)讓这(zhè)些錯誤消失,这(zhè)是(shì)一(yī)个(gè)錯誤的(de)观念。时(shí)序約束(shù)的(de)作用(yòng):在(zài)于(yú)檢查“設計(jì)是(shì)否滿足时(shí)序要(yào)求”,它(tā)是(shì)用(yòng)来(lái)審視自(zì)己設計(jì)的(de),很多(duō)情(qíng)況是(shì),要(yào)改設計(jì)代(dài)碼来(lái)滿足时(shí)序要(yào)求。當时(shí)序約束(shù)提(tí)示有(yǒu)錯誤时(shí),應(yìng)該閱读(dú)“时(shí)序報告”,從報告中(zhōng)分(fēn)析时(shí)序路(lù)徑(數據(jù)到(dào)达(dá)时(shí)間(jiān)、时(shí)鐘(zhōng)到(dào)达(dá)时(shí)間(jiān)和(hé)數據(jù)要(yào)求时(shí)間(jiān)等),根(gēn)據(jù)報告分(fēn)析錯誤的(de)原因(yīn),并根(gēn)據(jù)原因(yīn)来(lái)实行不(bù)同(tóng)的(de)方(fāng)法。
以(yǐ)建立时(shí)間(jiān)違例,说(shuō)明(míng)具體(tǐ)方(fāng)法如(rú)下(xià)
1. 时(shí)序報告中(zhōng),找(zhǎo)到(dào)提(tí)示錯誤的(de)路(lù)徑,即目的(de)寄存器,以(yǐ)及(jí)源寄存器。注意(yì),这(zhè)是(shì)两(liǎng)个(gè)寄存器的(de)點(diǎn)。
2. 首先(xiān)判斷,源寄存器的(de)时(shí)鐘(zhōng),與(yǔ)目的(de)寄存器的(de)时(shí)鐘(zhōng),是(shì)否相同(tóng)。如(rú)果(guǒ)不(bù)同(tóng),可(kě)以(yǐ)認为(wèi)是(shì)异(yì)步时(shí)序,見(jiàn)步驟3;如(rú)果(guǒ)是(shì)相同(tóng),則看(kàn)步驟4。
3. 如(rú)果(guǒ)是(shì)异(yì)步電(diàn)路(lù),那(nà)麼(me)处理方(fāng)法如(rú)下(xià):
A. 确認做了(le)异(yì)步处理。对(duì)于(yú)數據(jù),則是(shì)通(tòng)过(guò)异(yì)步FIFO来(lái)做异(yì)步处理;如(rú)果(guǒ)是(shì)控制信(xìn)号(hào),則要(yào)經(jīng)过(guò)打(dǎ)两(liǎng)拍来(lái)处理。
B. 确認做了(le)异(yì)步处理後(hòu),仍然会(huì)報“时(shí)序違例”的(de)。这(zhè)个(gè)时(shí)候,可(kě)以(yǐ)該路(lù)徑設置成(chéng)set false path,不(bù)用(yòng)再檢查。
4. 同(tóng)步電(diàn)路(lù)下(xià),具體(tǐ)处理如(rú)下(xià):
A. 查看(kàn)两(liǎng)个(gè)寄存器點(diǎn)之間(jiān),經(jīng)过(guò)了(le)多(duō)少(shǎo)加法器、乘法器、除法器等。
B. 对(duì)于(yú)除法器,要(yào)特(tè)别留意(yì),一(yī)般是(shì)1个(gè)时(shí)鐘(zhōng)計(jì)算不(bù)完的(de)。那(nà)麼(me)可(kě)以(yǐ) a.想(xiǎng)辦(bàn)法不(bù)用(yòng)除法;b. 通(tòng)过(guò)使能(néng)信(xìn)号(hào)控制獲取(qǔ)除法器結果(guǒ)的(de)时(shí)間(jiān)。
C. 对(duì)于(yú)乘法器和(hé)加法器,或(huò)者(zhě)其他(tā)組合電(diàn)路(lù)較多(duō)的(de)。想(xiǎng)辦(bàn)法分(fēn)隔成(chéng)流水(shuǐ)線(xiàn)来(lái)实現(xiàn)。可(kě)以(yǐ)參考MDY 流水(shuǐ)線(xiàn)的(de)內(nèi)容。
5. 如(rú)果(guǒ)是(shì)IP核的(de)違例,檢查是(shì)否时(shí)鐘(zhōng)不(bù)滿足IP核的(de)要(yào)求。如(rú)果(guǒ)沒(méi)問(wèn)題(tí),就(jiù)不(bù)用(yòng)管(guǎn)。
6. 如(rú)果(guǒ)是(shì)ILA等在(zài)線(xiàn)調試工具路(lù)線(xiàn)的(de)違例,則一(yī)般不(bù)用(yòng)处理。
7. 如(rú)果(guǒ)是(shì)線(xiàn)延时(shí)太长的(de),可(kě)以(yǐ)嘗試打(dǎ)一(yī)拍处理。即A->B的(de)線(xiàn)太长,可(kě)以(yǐ)打(dǎ)一(yī)拍,變(biàn)成(chéng)A->C->B,这(zhè)樣(yàng)線(xiàn)延时(shí)就(jiù)小了(le)。
【問(wèn)題(tí)8.5】VIVADO中(zhōng),如(rú)何查詢未約束(shù)的(de)时(shí)鐘(zhōng)、未約束(shù)的(de)輸入(rù)延时(shí)和(hé)輸出(chū)延时(shí)等?
答(dá):如(rú)下(xià)图(tú),在(zài)VIVADO的(de)时(shí)序約束(shù)界面(miàn)中(zhōng),在(zài)下(xià)面(miàn)欄目可(kě)顯示未約束(shù)的(de)地(dì)方(fāng)。

【問(wèn)題(tí)8.6】如(rú)下(xià)图(tú)所(suǒ)示,跨时(shí)鐘(zhōng)域打(dǎ)两(liǎng)拍的(de)方(fāng)法,其实只(zhī)是(shì)一(yī)个(gè)信(xìn)号(hào)的(de)傳遞,當第(dì)一(yī)个(gè)信(xìn)号(hào)出(chū)現(xiàn)不(bù)稳之後(hòu)或(huò)者(zhě)錯誤之後(hòu),後(hòu)面(miàn)就(jiù)会(huì)把这(zhè)个(gè)錯誤的(de)信(xìn)号(hào)繼續傳遞下(xià)去(qù),并沒(méi)有(yǒu)起到(dào)糾錯的(de)作用(yòng)

答(dá):上(shàng)图(tú)中(zhōng)打(dǎ)两(liǎng)拍的(de)方(fāng)法,其本(běn)質(zhì)不(bù)是(shì)为(wèi)了(le)“糾錯”,它(tā)的(de)作用(yòng)是(shì)为(wèi)了(le)防止“亞稳态”。防止亞稳态的(de)本(běn)質(zhì):防止中(zhōng)間(jiān)狀态过(guò)长。之所(suǒ)以(yǐ)采用(yòng)两(liǎng)級觸發(fà)器的(de)方(fāng)法,是(shì)因(yīn)为(wèi)D觸發(fà)器出(chū)現(xiàn)亞稳态的(de)可(kě)能(néng)性(xìng)非(fēi)常小,而(ér)两(liǎng)級D觸發(fà)器出(chū)現(xiàn)亞稳态的(de)概率就(jiù)更(gèng)小了(le)。
【問(wèn)題(tí)8.7】既然打(dǎ)两(liǎng)拍的(de)方(fāng)法不(bù)能(néng)糾錯,那(nà)“打(dǎ)两(liǎng)拍”還(huán)有(yǒu)什麼(me)意(yì)義?
答(dá):錯誤有(yǒu)很多(duō)種(zhǒng),有(yǒu)些錯誤是(shì)1次(cì)性(xìng)錯誤,而(ér)有(yǒu)些是(shì)系(xì)統性(xìng)錯誤。傳輸过(guò)程中(zhōng),如(rú)果(guǒ)發(fà)了(le)0,如(rú)果(guǒ)全(quán)部(bù)接收(shōu)模块(kuài)都認为(wèi)是(shì)1,这(zhè)并不(bù)是(shì)問(wèn)題(tí),这(zhè)是(shì)可(kě)以(yǐ)預防和(hé)可(kě)控的(de)(例如(rú)檢测多(duō)幾(jǐ)次(cì)就(jiù)行了(le))。
但是(shì)亞稳态的(de)时(shí)候,如(rú)果(guǒ)發(fà)了(le)0,但部(bù)分(fēn)接收(shōu)認为(wèi)認为(wèi)是(shì)1,而(ér)另(lìng)一(yī)部(bù)分(fēn)模块(kuài)認为(wèi)是(shì)0,至(zhì)于(yú)哪些模块(kuài)認为(wèi)是(shì)1哪些是(shì)0,这(zhè)是(shì)随機(jī)的(de),不(bù)可(kě)預知的(de),这(zhè)就(jiù)是(shì)災難。
更(gèng)詳细(xì)的(de)內(nèi)容,建議參考:FPGA知識大串講 http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=581
【問(wèn)題(tí)8.8】模块(kuài)A的(de)时(shí)鐘(zhōng)clka为(wèi)100MHz,模块(kuài)B的(de)时(shí)鐘(zhōng)clkb为(wèi)300MHz。現(xiàn)在(zài)模块(kuài)A要(yào)把32bit的(de)數據(jù)送給(gěi)模块(kuài)B。模块(kuài)A要(yào)如(rú)何發(fà)送,模块(kuài)B要(yào)如(rú)何接收(shōu)呢?
答(dá):
方(fāng)法1:采用(yòng)异(yì)步FIFO的(de)方(fāng)法。
方(fāng)法2:采用(yòng)指令信(xìn)号(hào)的(de)方(fāng)法傳輸,模块(kuài)A産生(shēng)vld信(xìn)号(hào)給(gěi)模块(kuài)B,模块(kuài)B对(duì)vld進(jìn)行同(tóng)步化(huà)处理(打(dǎ)两(liǎng)拍)後(hòu),檢测同(tóng)步化(huà)信(xìn)号(hào)的(de)上(shàng)升(shēng)沿。
需要(yào)注意(yì)的(de),VLD的(de)信(xìn)号(hào)是(shì)讓模块(kuài)B周期(qī)的(de)三(sān)倍或(huò)以(yǐ)上(shàng)。由(yóu)于(yú)clka是(shì)100M,産生(shēng)的(de)vld是(shì)10ns,而(ér)clkb是(shì)300M,周期(qī)是(shì)3.33ns。所(suǒ)以(yǐ)模块(kuài)A只(zhī)要(yào)産生(shēng)1个(gè)时(shí)鐘(zhōng)的(de)vld給(gěi)模块(kuài)B即可(kě)。
【問(wèn)題(tí)8.9】模块(kuài)A的(de)时(shí)鐘(zhōng)clka为(wèi)300MHz,模块(kuài)B的(de)时(shí)鐘(zhōng)clkb为(wèi)100MHz。現(xiàn)在(zài)模块(kuài)A要(yào)把32bit的(de)數據(jù)送給(gěi)模块(kuài)B。模块(kuài)A要(yào)如(rú)何發(fà)送,模块(kuài)B要(yào)如(rú)何接收(shōu)呢?
答(dá):
方(fāng)法1:采用(yòng)异(yì)步FIFO的(de)方(fāng)法。
方(fāng)法2:采用(yòng)指令信(xìn)号(hào)的(de)方(fāng)法傳輸,模块(kuài)A産生(shēng)vld信(xìn)号(hào)給(gěi)模块(kuài)B,模块(kuài)B对(duì)vld進(jìn)行同(tóng)步化(huà)处理(打(dǎ)两(liǎng)拍)後(hòu),檢测同(tóng)步化(huà)信(xìn)号(hào)的(de)上(shàng)升(shēng)沿。需要(yào)注意(yì)的(de),VLD的(de)信(xìn)号(hào)是(shì)讓模块(kuài)B周期(qī)的(de)三(sān)倍或(huò)以(yǐ)上(shàng)。
由(yóu)于(yú)clka是(shì)300M,産生(shēng)的(de)vld是(shì)3.33ns,而(ér)clkb是(shì)100M,周期(qī)是(shì)10ns。所(suǒ)以(yǐ)模块(kuài)A要(yào)産生(shēng)10个(gè)时(shí)鐘(zhōng)的(de)vld給(gěi)模块(kuài)B。
【問(wèn)題(tí)8.10】一(yī)块(kuài)電(diàn)路(lù)板上(shàng),有(yǒu)两(liǎng)个(gè)芯片(piàn),芯片(piàn)A的(de)时(shí)鐘(zhōng)clka为(wèi)100MHz,芯片(piàn)B的(de)时(shí)鐘(zhōng)clkb为(wèi)100MHz。現(xiàn)在(zài)芯片(piàn)A要(yào)把32bit的(de)數據(jù)送給(gěi)芯片(piàn)B。模块(kuài)A要(yào)如(rú)何發(fà)送,模块(kuài)B要(yào)如(rú)何接收(shōu)呢?
答(dá):
方(fāng)法1:采用(yòng)异(yì)步FIFO的(de)方(fāng)法。
方(fāng)法2:采用(yòng)指令信(xìn)号(hào)的(de)方(fāng)法傳輸,模块(kuài)A産生(shēng)vld信(xìn)号(hào)給(gěi)模块(kuài)B,模块(kuài)B对(duì)vld進(jìn)行同(tóng)步化(huà)处理(打(dǎ)两(liǎng)拍)後(hòu),檢测同(tóng)步化(huà)信(xìn)号(hào)的(de)上(shàng)升(shēng)沿。需要(yào)注意(yì)的(de),VLD的(de)信(xìn)号(hào)是(shì)讓模块(kuài)B周期(qī)的(de)三(sān)倍或(huò)以(yǐ)上(shàng)。
虽然clka和(hé)clkb都是(shì)100M,但他(tā)们(men)不(bù)是(shì)同(tóng)一(yī)个(gè)晶振産生(shēng)的(de),因(yīn)此(cǐ)都是(shì)异(yì)步时(shí)鐘(zhōng)。为(wèi)了(le)滿足以(yǐ)上(shàng)要(yào)求,所(suǒ)以(yǐ)模块(kuài)A要(yào)産生(shēng)3个(gè)时(shí)鐘(zhōng)的(de)vld給(gěi)模块(kuài)B。
【問(wèn)題(tí)8.11】A, B时(shí)鐘(zhōng)都是(shì)50M,但是(shì)他(tā)们(men)不(bù)相關(guān),为(wèi)了(le)防止編譯器把他(tā)们(men)默認为(wèi)同(tóng)一(yī)个(gè)时(shí)鐘(zhōng),是(shì)不(bù)是(shì)要(yào)用(yòng)一(yī)个(gè)异(yì)步时(shí)鐘(zhōng)組約束(shù),来(lái)告訴編譯器他(tā)们(men)是(shì)不(bù)同(tóng)的(de)两(liǎng)个(gè)时(shí)鐘(zhōng)?
答(dá):一(yī)般分(fēn)别産生(shēng)A和(hé)B的(de)时(shí)鐘(zhōng)約束(shù)即可(kě)。
【問(wèn)題(tí)12】 建立时(shí)間(jiān)可(kě)以(yǐ)是(shì)負值吗?
答(dá):建立时(shí)間(jiān)當然可(kě)以(yǐ)是(shì)負數了(le)。負數表(biǎo)示,可(kě)以(yǐ)在(zài)时(shí)鐘(zhōng)上(shàng)升(shēng)沿後(hòu)數據(jù)才變(biàn)化(huà)。(建立时(shí)間(jiān)是(shì)器件(jiàn)的(de)屬性(xìng),至(zhì)于(yú)怎麼(me)器件(jiàn)怎麼(me)做到(dào)的(de),那(nà)就(jiù)要(yào)問(wèn)器件(jiàn)工程师(shī)了(le))
【問(wèn)題(tí)13】 程序原本(běn)时(shí)序可(kě)以(yǐ)通(tòng)过(guò),加上(shàng)singalTap节(jié)點(diǎn)之後(hòu)时(shí)序不(bù)通(tòng)过(guò)是(shì)什麼(me)原因(yīn)
答(dá):增加signaltap ILA等在(zài)線(xiàn)調試工具时(shí),需要(yào)使用(yòng)到(dào)內(nèi)部(bù)的(de)資源,例如(rú)RAM、選擇器、寄存器等,增加後(hòu)再去(qù)綜合和(hé)布(bù)局(jú)布(bù)線(xiàn)。由(yóu)于(yú)改變(biàn)了(le)資源,因(yīn)此(cǐ)肯定(dìng)对(duì)时(shí)序是(shì)有(yǒu)影響的(de),有(yǒu)可(kě)能(néng)改善了(le)也(yě)有(yǒu)可(kě)能(néng)惡化(huà)了(le)。如(rú)果(guǒ)时(shí)序有(yǒu)問(wèn)題(tí),分(fēn)析路(lù)徑,如(rú)果(guǒ)是(shì)在(zài)線(xiàn)調試工具路(lù)徑,評估是(shì)否会(huì)有(yǒu)风险,沒(méi)风险就(jiù)算了(le)
【問(wèn)題(tí)8.14】时(shí)序約束(shù)什麼(me)时(shí)候要(yào)做?
答(dá):
1.在(zài)需要(yào)的(de)时(shí)鐘(zhōng)頻率下(xià),如(rú)果(guǒ)邏輯功能(néng)不(bù)稳定(dìng),那(nà)麼(me)就(jiù)需要(yào)时(shí)序約束(shù)。
2.一(yī)般时(shí)鐘(zhōng)大于(yú)100M的(de)时(shí)候,我(wǒ)们(men)就(jiù)要(yào)做一(yī)下(xià)时(shí)序約束(shù)。
【問(wèn)題(tí)8.15】时(shí)序約束(shù)建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)的(de)生(shēng)活案(àn)例。
答(dá):可(kě)以(yǐ)想(xiǎng)象(xiàng),有(yǒu)一(yī)个(gè)人(rén)從家(jiā)里(lǐ)出(chū)發(fà)去(qù)機(jī)场,搭乘13點(diǎn)的(de)飛機(jī)。
1. 13點(diǎn)起飛,起飛前(qián)15分(fēn)鐘(zhōng)要(yào)到(dào)機(jī)场,这(zhè)个(gè)15分(fēn)鐘(zhōng),就(jiù)類(lèi)似于(yú)建立时(shí)間(jiān)要(yào)求。
2. 機(jī)场每小时(shí)有(yǒu)要(yào)飛一(yī)趟(tàng)飛機(jī),每个(gè)小时(shí)表(biǎo)示的(de)是(shì)时(shí)鐘(zhōng)周期(qī)。
3. 飛機(jī)起飛後(hòu),機(jī)场要(yào)保持(chí)10分(fēn)鐘(zhōng),之後(hòu)才能(néng)来(lái)下(xià)一(yī)批乘客,这(zhè)个(gè)10分(fēn)鐘(zhōng)就(jiù)是(shì)保持(chí)时(shí)間(jiān)。
4. 这(zhè)个(gè)人(rén)出(chū)發(fà)去(qù)搭13點(diǎn)的(de)飛機(jī),因(yīn)此(cǐ)他(tā)要(yào)在(zài)12點(diǎn)45分(fēn)之前(qián)到(dào)機(jī)场,并且是(shì)12點(diǎn)10分(fēn)之後(hòu)到(dào)機(jī)场。既不(bù)能(néng)早(zǎo)到(dào),也(yě)不(bù)能(néng)晚(wǎn)到(dào)機(jī)场。
5. 如(rú)果(guǒ)这(zhè)个(gè)人(rén)12點(diǎn)45分(fēn)之後(hòu)才到(dào)機(jī)场,那(nà)就(jiù)搭不(bù)上(shàng)本(běn)趟(tàng)飛機(jī),即違反(fǎn)了(le)建立时(shí)間(jiān)要(yào)求。(建立时(shí)間(jiān)影響的(de)是(shì)自(zì)己坐飛機(jī))
6. 如(rú)果(guǒ)这(zhè)个(gè)人(rén)12點(diǎn)10分(fēn)前(qián)就(jiù)到(dào)了(le)機(jī)场,那(nà)就(jiù)会(huì)因(yīn)此(cǐ)上(shàng)一(yī)趟(tàng)飛機(jī)的(de)起飛,即違反(fǎn)了(le)保持(chí)时(shí)間(jiān)要(yào)求。(保持(chí)时(shí)間(jiān)不(bù)滿足,影響的(de)是(shì)上(shàng)一(yī)批乘客坐飛機(jī))
7. 这(zhè)个(gè)人(rén)是(shì)計(jì)劃(huà)去(qù)機(jī)场,因(yīn)此(cǐ)他(tā)要(yào)估算幾(jǐ)點(diǎn)能(néng)到(dào)機(jī)场。首先(xiān)他(tā)会(huì)算所(suǒ)有(yǒu)情(qíng)況下(xià)的(de)最(zuì)大延遲,如(rú)刚到(dào)路(lù)口(kǒu)紅(hóng)燈(dēng)就(jiù)来(lái)了(le)、走(zǒu)路(lù)最(zuì)慢(màn)等,在(zài)这(zhè)種(zhǒng)最(zuì)慢(màn)的(de)情(qíng)況下(xià),如(rú)果(guǒ)能(néng)在(zài)12點(diǎn)45分(fēn)前(qián)到(dào),说(shuō)明(míng)建立时(shí)間(jiān)沒(méi)問(wèn)題(tí)。然後(hòu),他(tā)会(huì)算所(suǒ)有(yǒu)情(qíng)況下(xià)的(de)最(zuì)小延遲,如(rú)刚到(dào)路(lù)口(kǒu)綠(lǜ)燈(dēng),走(zǒu)路(lù)最(zuì)快(kuài),在(zài)这(zhè)種(zhǒng)最(zuì)快(kuài)的(de)情(qíng)況下(xià),如(rú)果(guǒ)能(néng)在(zài)12點(diǎn)10分(fēn)後(hòu)才,那(nà)说(shuō)明(míng)保持(chí)时(shí)間(jiān)沒(méi)問(wèn)題(tí)。
【問(wèn)題(tí)8.16】为(wèi)什麼(me)建立时(shí)間(jiān)分(fēn)析的(de)时(shí)鐘(zhōng)到(dào)达(dá)时(shí)間(jiān)要(yào)加一(yī)个(gè)时(shí)鐘(zhōng)周期(qī)而(ér)保持(chí)时(shí)間(jiān)分(fēn)析則不(bù)用(yòng)呢?
答(dá): 因(yīn)为(wèi)建立时(shí)間(jiān)是(shì)源寄存器發(fà)出(chū)數據(jù),目的(de)寄存器采集,也(yě)就(jiù)是(shì)上(shàng)一(yī)个(gè)时(shí)鐘(zhōng)發(fà)出(chū)来(lái),本(běn)时(shí)鐘(zhōng)采集。这(zhè)里(lǐ)有(yǒu)一(yī)个(gè)时(shí)鐘(zhōng)周期(qī)的(de)因(yīn)素,所(suǒ)以(yǐ)要(yào)加1个(gè)时(shí)鐘(zhōng)周期(qī)。而(ér)保持(chí)时(shí)間(jiān)分(fēn)析,則是(shì)“本(běn)个(gè)时(shí)鐘(zhōng)”發(fà)出(chū)數據(jù)後(hòu),如(rú)果(guǒ)延时(shí)太小,会(huì)影響“本(běn)个(gè)时(shí)鐘(zhōng)”对(duì)上(shàng)一(yī)个(gè)數據(jù)的(de)采集,因(yīn)为(wèi)不(bù)需要(yào)加1个(gè)时(shí)鐘(zhōng)周期(qī)。另(lìng)外(wài),要(yào)注意(yì)一(yī)點(diǎn),保持(chí)时(shí)間(jiān)是(shì)跟时(shí)鐘(zhōng)周期(qī)无關(guān)的(de)。
【問(wèn)題(tí)8.17】一(yī)个(gè)外(wài)部(bù)的(de)信(xìn)号(hào),經(jīng)过(guò)狀态機(jī)的(de)“組合邏輯”,这(zhè)也(yě)要(yào)做同(tóng)步处理吗?
答(dá):需要(yào)做同(tóng)步处理的(de)。首先(xiān)明(míng)白一(yī)點(diǎn),FPGA里(lǐ)的(de)时(shí)序邏輯=組合邏輯 + D觸發(fà)器。組合邏輯的(de)最(zuì)終(zhōng)結果(guǒ),還(huán)是(shì)要(yào)發(fà)D觸發(fà)器的(de)。所(suǒ)以(yǐ)還(huán)要(yào)做同(tóng)步化(huà)处理的(de)。

【問(wèn)題(tí)8.18】請教下(xià),做时(shí)序約束(shù),做到(dào)这(zhè)步时(shí),这(zhè)些都要(yào)勾選上(shàng)吗?
答(dá):當然不(bù)是(shì),要(yào)逐个(gè)分(fēn)析确認,沒(méi)有(yǒu)一(yī)選就(jiù)全(quán)選上(shàng)的(de)道(dào)理。
【問(wèn)題(tí)8.19】下(xià)面(miàn)的(de)生(shēng)成(chéng)时(shí)鐘(zhōng)約束(shù),是(shì)否一(yī)定(dìng)要(yào)勾選?

答(dá):这(zhè)應(yìng)該看(kàn)生(shēng)成(chéng)时(shí)鐘(zhōng)那(nà)一(yī)节(jié)視頻,里(lǐ)面(miàn)重(zhòng)點(diǎn)強(qiáng)調了(le)“什麼(me)叫时(shí)鐘(zhōng)”? 上(shàng)面(miàn)的(de)图(tú)里(lǐ),您應(yìng)該要(yào)搞清(qīng)楚,它(tā)被(bèi)識别出(chū)时(shí)鐘(zhōng)了(le),正(zhèng)不(bù)正(zhèng)常?如(rú)果(guǒ)是(shì)正(zhèng)常,那(nà)您肯定(dìng)是(shì)要(yào)添加約束(shù),定(dìng)義頻率吧。如(rú)果(guǒ)它(tā)不(bù)應(yìng)該識别出(chū)时(shí)鐘(zhōng)了(le),
那(nà)您應(yìng)該檢查您的(de)代(dài)碼,看(kàn)是(shì)不(bù)是(shì)代(dài)碼不(bù)規範引起,或(huò)者(zhě)有(yǒu)沒(méi)有(yǒu)潛在(zài)的(de)問(wèn)題(tí)。注意(yì)一(yī)下(xià):約束(shù)不(bù)是(shì)目的(de),約束(shù)是(shì)为(wèi)了(le)查看(kàn)報告,看(kàn)設計(jì)有(yǒu)沒(méi)有(yǒu)問(wèn)題(tí)的(de)。
【問(wèn)題(tí)8.20】系(xì)統同(tóng)步只(zhī)可(kě)能(néng)是(shì)單沿采集?沒(méi)法像DDR那(nà)樣(yàng)双(shuāng)沿采集?
答(dá):系(xì)統同(tóng)步也(yě)是(shì)可(kě)以(yǐ)是(shì)双(shuāng)沿采集的(de),但比較少(shǎo)。課程里(lǐ),只(zhī)是(shì)介紹了(le)部(bù)分(fēn)情(qíng)形。如(rú)果(guǒ)想(xiǎng)看(kàn)所(suǒ)有(yǒu)情(qíng)形有(yǒu)哪些,可(kě)以(yǐ)打(dǎ)開(kāi)VIVADO的(de)时(shí)序約束(shù)向(xiàng)導,可(kě)以(yǐ)設置INPUT DELAY窗(chuāng)口(kǒu)查看(kàn)。
【問(wèn)題(tí)8.21】QUARTUS生(shēng)成(chéng)SDC时(shí),默認出(chū)現(xiàn)的(de)那(nà)条(tiáo)时(shí)鐘(zhōng)約束(shù)是(shì)正(zhèng)常的(de)麼(me)?我(wǒ)自(zì)己删掉就(jiù)行了(le)?
答(dá):默認生(shēng)成(chéng)的(de)當然是(shì)不(bù)正(zhèng)常。
【問(wèn)題(tí)8.22】老(lǎo)师(shī)問(wèn)一(yī)下(xià),我(wǒ)画(huà)的(de)後(hòu)邊(biān)那(nà)个(gè)部(bù)分(fēn),我(wǒ)認为(wèi)應(yìng)該沒(méi)有(yǒu)數據(jù)吧?

答(dá):不(bù)是(shì) 这(zhè)个(gè)不(bù)是(shì)有(yǒu)沒(méi)有(yǒu)數據(jù)的(de)概念 而(ér)是(shì)數據(jù)是(shì)否稳定(dìng)的(de)概念。
【問(wèn)題(tí)8.23】請問(wèn)下(xià)有(yǒu)沒(méi)有(yǒu)針(zhēn)对(duì)SDC时(shí)序約束(shù)語(yǔ)法的(de)講解(jiě)吗?
答(dá):时(shí)序約束(shù)里(lǐ),只(zhī)講解(jiě)了(le)用(yòng)到(dào)的(de)部(bù)分(fēn)。如(rú)果(guǒ)想(xiǎng)看(kàn)更(gèng)多(duō)部(bù)分(fēn),我(wǒ)估計(jì)你要(yào)看(kàn)这(zhè)个(gè)語(yǔ)法的(de)權威資料了(le)。
【問(wèn)題(tí)8.24】老(lǎo)师(shī)您好(hǎo),我(wǒ)在(zài)学習时(shí)序約束(shù)視頻,看(kàn)到(dào)第(dì)一(yī)个(gè)視頻这(zhè)块(kuài)“流水(shuǐ)線(xiàn)設計(jì)思(sī)路(lù):乘法器可(kě)以(yǐ)分(fēn)成(chéng)加法器,然後(hòu)加法器還(huán)可(kě)以(yǐ)分(fēn)成(chéng)什麼(me),一(yī)直(zhí)听(tīng)不(bù)清(qīng)”
答(dá):最(zuì)後(hòu)可(kě)以(yǐ)分(fēn)成(chéng)與(yǔ)門(mén)这(zhè)些最(zuì)簡單的(de)門(mén)電(diàn)路(lù)。
【問(wèn)題(tí)8.25】老(lǎo)师(shī)請問(wèn)紅(hóng)色(sè)的(de)是(shì)不(bù)是(shì)不(bù)滿足时(shí)序要(yào)求?

答(dá):不(bù)是(shì)的(de),setup和(hé)hold时(shí)間(jiān)形成(chéng)一(yī)个(gè)时(shí)間(jiān)窗(chuāng),只(zhī)要(yào)在(zài)这(zhè)个(gè)时(shí)間(jiān)窗(chuāng)里(lǐ)信(xìn)号(hào)稳定(dìng)就(jiù)餓可(kě)以(yǐ)了(le) 在(zài)使用(yòng)时(shí)序分(fēn)析工具的(de)时(shí)候,字(zì)體(tǐ)为(wèi)紅(hóng)色(sè)时(shí)間(jiān)提(tí)示是(shì)不(bù)滿足时(shí)序要(yào)求
【問(wèn)題(tí)8.26】什麼(me)樣(yàng)的(de)信(xìn)号(hào)会(huì)被(bèi)工具判斷为(wèi)时(shí)鐘(zhōng)?
答(dá):一(yī)个(gè)信(xìn)号(hào)被(bèi)VIVADO QUARTUS判斷为(wèi)时(shí)鐘(zhōng),不(bù)是(shì)看(kàn)名稱里(lǐ)是(shì)否带(dài)有(yǒu)“clk”等字(zì)母。而(ér)是(shì)主(zhǔ)要(yào)看(kàn)其是(shì)否用(yòng)于(yú)“时(shí)鐘(zhōng)”的(de)行为(wèi)中(zhōng),主(zhǔ)要(yào)有(yǒu)如(rú)下(xià)幾(jǐ)種(zhǒng)情(qíng)況。
1. 被(bèi)關(guān)聯到(dào)always敏感(gǎn)列表(biǎo)里(lǐ)的(de)时(shí)鐘(zhōng)信(xìn)号(hào)。说(shuō)明(míng)会(huì)被(bèi)連(lián)到(dào)觸發(fà)器的(de)时(shí)鐘(zhōng)端,所(suǒ)以(yǐ)会(huì)被(bèi)認为(wèi)为(wèi)时(shí)鐘(zhōng)。
2. 被(bèi)連(lián)到(dào)PLL和(hé)MMCM等时(shí)鐘(zhōng)管(guǎn)理器的(de)輸入(rù)端,这(zhè)会(huì)被(bèi)認为(wèi)是(shì)时(shí)鐘(zhōng)。
3. 被(bèi)連(lián)到(dào)鎖存器的(de)条(tiáo)件(jiàn)端,例如(rú)一(yī)个(gè)沒(méi)有(yǒu)補全(quán)的(de)組合邏輯代(dài)碼,其条(tiáo)件(jiàn)就(jiù)会(huì)被(bèi)認为(wèi)时(shí)鐘(zhōng)。
【問(wèn)題(tí)8.27】用(yòng)ila抓取(qǔ)信(xìn)号(hào)分(fēn)析,發(fà)現(xiàn)异(yì)常,而(ér)时(shí)序約束(shù)報告正(zhèng)常,因(yīn)此(cǐ)可(kě)以(yǐ)認为(wèi)时(shí)序報告正(zhèng)常,而(ér)时(shí)序会(huì)有(yǒu)問(wèn)題(tí)?
答(dá):
1.在(zài)線(xiàn)邏輯分(fēn)析儀是(shì)用(yòng)于(yú)判斷邏輯是(shì)否出(chū)現(xiàn)問(wèn)題(tí),可(kě)以(yǐ)認为(wèi)是(shì)檢查时(shí)鐘(zhōng)节(jié)拍下(xià)的(de)邏輯判斷。而(ér)时(shí)序約束(shù)是(shì)解(jiě)決D觸發(fà)器的(de)建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)問(wèn)題(tí),是(shì)一(yī)个(gè)时(shí)鐘(zhōng)內(nèi)的(de)时(shí)序問(wèn)題(tí)。所(suǒ)以(yǐ),不(bù)能(néng)用(yòng)ila来(lái)推導时(shí)序約束(shù),这(zhè)是(shì)不(bù)同(tóng)层次(cì)的(de)問(wèn)題(tí)。
2.官方(fāng)可(kě)以(yǐ)保證,用(yòng)戶代(dài)碼和(hé)时(shí)序約束(shù)的(de)生(shēng)成(chéng)結果(guǒ)是(shì)正(zhèng)确,即在(zài)輸入(rù)的(de)代(dài)碼和(hé)約束(shù),給(gěi)出(chū)来(lái)的(de)報告一(yī)定(dìng)是(shì)正(zhèng)确的(de)。但时(shí)序約束(shù)对(duì)不(bù)对(duì),这(zhè)是(shì)客戶保證的(de)。
3.出(chū)現(xiàn)結果(guǒ)不(bù)对(duì),可(kě)能(néng)性(xìng)很多(duō),不(bù)一(yī)定(dìng)是(shì)时(shí)序問(wèn)題(tí),要(yào)注意(yì)“充分(fēn)必要(yào)条(tiáo)件(jiàn)”。
【問(wèn)題(tí)8.28】同(tóng)樣(yàng)的(de)工程不(bù)做任何改動(dòng),有(yǒu)时(shí)編譯後(hòu)下(xià)板验(yàn)證正(zhèng)确,有(yǒu)时(shí)編譯後(hòu)下(xià)板验(yàn)證不(bù)正(zhèng)确,是(shì)不(bù)是(shì)时(shí)序問(wèn)題(tí)呢?
答(dá):有(yǒu)可(kě)能(néng)是(shì),但又不(bù)一(yī)定(dìng)是(shì)。这(zhè)是(shì)时(shí)序不(bù)滿足的(de)一(yī)種(zhǒng)現(xiàn)象(xiàng)。但反(fǎn)过(guò)来(lái),沒(méi)有(yǒu)说(shuō),出(chū)現(xiàn)这(zhè)種(zhǒng)現(xiàn)象(xiàng),就(jiù)一(yī)定(dìng)是(shì)时(shí)序問(wèn)題(tí)。
【問(wèn)題(tí)8.29】設置时(shí)鐘(zhōng)約束(shù)时(shí),假如(rú)有(yǒu)虛拟时(shí)鐘(zhōng)的(de)情(qíng)況,虛拟时(shí)鐘(zhōng)是(shì)必須要(yào)設置的(de)吗?
答(dá):
1.原則上(shàng)所(suǒ)有(yǒu)接口(kǒu)有(yǒu)應(yìng)有(yǒu)約束(shù)。
2.設置虛拟时(shí)鐘(zhōng),可(kě)以(yǐ)方(fāng)便将对(duì)應(yìng)信(xìn)号(hào)歸到(dào)該虛拟时(shí)鐘(zhōng)好(hǎo),这(zhè)樣(yàng)方(fāng)便做分(fēn)析,例如(rú)看(kàn)有(yǒu)沒(méi)有(yǒu)跨时(shí)鐘(zhōng)域等。
3.是(shì)不(bù)是(shì)一(yī)定(dìng)要(yào)做,取(qǔ)決于(yú)項目老(lǎo)大要(yào)求,不(bù)做不(bù)一(yī)定(dìng)有(yǒu)問(wèn)題(tí)。
【問(wèn)題(tí)8.30】一(yī)个(gè)always模块(kuài)下(xià),if 、else if,,,else ,写的(de)太多(duō)了(le) ,是(shì)不(bù)是(shì)会(huì)容易造成(chéng)时(shí)序問(wèn)題(tí)呢?这(zhè)種(zhǒng)说(shuō)法对(duì)吗?
答(dá):这(zhè)里(lǐ)有(yǒu)一(yī)个(gè)定(dìng)義要(yào)搞清(qīng)楚的(de),什麼(me)叫“多(duō)”?
1. 是(shì)3个(gè)就(jiù)多(duō),還(huán)是(shì)10个(gè)?每个(gè)人(rén)标(biāo)準不(bù)同(tóng)。
2. 即使是(shì)同(tóng)一(yī)个(gè)人(rén),使用(yòng)不(bù)同(tóng)的(de)器件(jiàn),这(zhè)个(gè)“多(duō)”也(yě)是(shì)不(bù)同(tóng)的(de)。有(yǒu)些高(gāo)級的(de)器件(jiàn),10个(gè)IF也(yě)不(bù)多(duō),有(yǒu)些低端器件(jiàn),3个(gè)也(yě)多(duō)。
3. 即使同(tóng)一(yī)个(gè)人(rén),同(tóng)一(yī)个(gè)器件(jiàn),但if里(lǐ)的(de)判斷条(tiáo)件(jiàn)也(yě)有(yǒu)講究。如(rú)果(guǒ)判斷条(tiáo)件(jiàn)里(lǐ)一(yī)个(gè)除法器,那(nà)1个(gè)if也(yě)多(duō),如(rú)果(guǒ)只(zhī)是(shì)判斷0和(hé)1,那(nà)麼(me)10个(gè)也(yě)算少(shǎo)。
4. 最(zuì)具可(kě)操作性(xìng)的(de)做法,給(gěi)定(dìng)时(shí)鐘(zhōng)約束(shù),看(kàn)时(shí)序報告。報告沒(méi)問(wèn)題(tí),那(nà)就(jiù)是(shì)沒(méi)問(wèn)題(tí);否則会(huì)有(yǒu)时(shí)序違例的(de)錯誤。
【問(wèn)題(tí)8.31】output latency一(yī)般設置成(chéng)多(duō)少(shǎo)呢?pipeline 有(yǒu)啥用(yòng)?
答(dá):由(yóu)于(yú)除法器占用(yòng)資源較大,難以(yǐ)在(zài)一(yī)个(gè)时(shí)鐘(zhōng)周期(qī)內(nèi)計(jì)算完畢,需要(yào)多(duō)个(gè)时(shí)鐘(zhōng)才計(jì)算完,这(zhè)个(gè)pipeline就(jiù)是(shì)設置多(duō)少(shǎo)个(gè)时(shí)鐘(zhōng)周期(qī)的(de)。
如(rú)果(guǒ)您不(bù)清(qīng)楚要(yào)多(duō)少(shǎo)个(gè),設置填一(yī)个(gè)較大的(de)數,然後(hòu)看(kàn)时(shí)序報告是(shì)否正(zhèng)确。如(rú)果(guǒ)正(zhèng)确,就(jiù)沒(méi)問(wèn)題(tí)。
【問(wèn)題(tí)8.32】請問(wèn):MDY的(de)案(àn)例中(zhōng),为(wèi)什麼(me)串口(kǒu)需要(yào)对(duì)din進(jìn)行同(tóng)步化(huà),而(ér)SCCB就(jiù)不(bù)需要(yào)对(duì)sio_din進(jìn)行同(tóng)步化(huà)?sio_din也(yě)是(shì)外(wài)部(bù)器件(jiàn)進(jìn)来(lái)的(de)吗?
答(dá): 是(shì)否要(yào)对(duì)信(xìn)号(hào)進(jìn)行同(tóng)步化(huà),最(zuì)核心(xīn)的(de)理解(jiě)是(shì)“該信(xìn)号(hào)是(shì)否能(néng)够保證滿足建立时(shí)間(jiān)和(hé)保持(chí)时(shí)間(jiān)要(yào)求”,也(yě)就(jiù)是(shì)“該信(xìn)号(hào)的(de)變(biàn)化(huà)和(hé)时(shí)鐘(zhōng)存在(zài)确定(dìng)性(xìng)相位關(guān)系(xì)”。
以(yǐ)串口(kǒu)为(wèi)例,串口(kǒu)的(de)輸入(rù)信(xìn)号(hào)與(yǔ)FPGA时(shí)鐘(zhōng)是(shì)沒(méi)有(yǒu)任何聯系(xì)的(de),該輸入(rù)信(xìn)号(hào)可(kě)以(yǐ)在(zài)任意(yì)时(shí)刻變(biàn)化(huà),也(yě)就(jiù)有(yǒu)可(kě)能(néng)刚好(hǎo)在(zài)时(shí)鐘(zhōng)上(shàng)升(shēng)沿變(biàn)化(huà),從而(ér)不(bù)滿足建立时(shí)間(jiān)要(yào)求,
因(yīn)此(cǐ)要(yào)做同(tóng)步化(huà)处理。而(ér)SCCB案(àn)例中(zhōng),由(yóu)FPGA时(shí)鐘(zhōng)里(lǐ)産生(shēng)了(le)sio_dout、SCK等信(xìn)号(hào),而(ér)sio_din在(zài)sck作用(yòng)下(xià)變(biàn)化(huà),所(suǒ)以(yǐ)sio_din與(yǔ)FPGA时(shí)鐘(zhōng)是(shì)有(yǒu)一(yī)定(dìng)關(guān)系(xì)的(de)。
可(kě)以(yǐ)認真(zhēn)看(kàn)时(shí)序图(tú),在(zài)FPGA对(duì)sio_din有(yǒu)采樣(yàng)时(shí)刻,时(shí)序已經(jīng)要(yào)求sio_din要(yào)稳定(dìng)不(bù)變(biàn)的(de),所(suǒ)以(yǐ)可(kě)以(yǐ)不(bù)用(yòng)做同(tóng)化(huà)处理。
【問(wèn)題(tí)8.33】請問(wèn)工程中(zhōng)使用(yòng)了(le)PLL,在(zài)做时(shí)序約束(shù)时(shí),generate clocks窗(chuāng)口(kǒu)顯示沒(méi)有(yǒu)PLL産生(shēng)的(de)时(shí)鐘(zhōng),如(rú)下(xià)图(tú),为(wèi)什麼(me)?

答(dá):PLL、MMCM等産生(shēng)的(de)时(shí)鐘(zhōng),默認是(shì)由(yóu)工具自(zì)動(dòng)推導約束(shù)的(de),不(bù)用(yòng)用(yòng)戶来(lái)約束(shù)。虽然用(yòng)戶沒(méi)有(yǒu)約束(shù),事(shì)实上(shàng)是(shì)做了(le)分(fēn)析的(de)。例如(rú)下(xià)图(tú)中(zhōng),
可(kě)以(yǐ)看(kàn)到(dào)c0_my_pll这(zhè)个(gè)时(shí)鐘(zhōng)。其中(zhōng),c0_my_pll是(shì)工具自(zì)動(dòng)命名的(de)。

用(yòng)戶也(yě)可(kě)以(yǐ)自(zì)己約束(shù)PLL/MMCM産生(shēng)的(de)时(shí)鐘(zhōng),方(fāng)法如(rú)下(xià)图(tú)。

按照方(fāng)面(miàn)方(fāng)法,約束(shù)好(hǎo),重(zhòng)新分(fēn)析就(jiù)可(kě)以(yǐ)了(le)。
【問(wèn)題(tí)8.34】問(wèn):如(rú)果(guǒ)使用(yòng)的(de)IP核內(nèi)部(bù)代(dài)碼出(chū)現(xiàn)了(le)时(shí)序約束(shù)違例,該如(rú)何解(jiě)決?
答(dá):IP核是(shì)由(yóu)官方(fāng)提(tí)供的(de)代(dài)碼,一(yī)般用(yòng)戶不(bù)能(néng)修改,如(rú)果(guǒ)該IP核出(chū)現(xiàn)違例,可(kě)以(yǐ)從以(yǐ)下(xià)方(fāng)向(xiàng)入(rù)手(shǒu):
1. 一(yī)般IP核是(shì)有(yǒu)指定(dìng)的(de)頻率範圍,可(kě)以(yǐ)從數據(jù)手(shǒu)册找(zhǎo)到(dào),請看(kàn)是(shì)否滿足了(le)數據(jù)手(shǒu)册要(yào)求。
2. 如(rú)果(guǒ)頻率正(zhèng)确,還(huán)会(huì)出(chū)現(xiàn)報錯,可(kě)以(yǐ)檢查时(shí)鐘(zhōng)和(hé)複位管(guǎn)脚有(yǒu)沒(méi)有(yǒu)正(zhèng)确使用(yòng),根(gēn)據(jù)經(jīng)验(yàn),这(zhè)通(tòng)常是(shì)引起問(wèn)題(tí)的(de)原因(yīn)。
3. 嘗試修改編譯策略,重(zhòng)新綜合看(kàn)看(kàn)。
【問(wèn)題(tí)8.35】問(wèn):請問(wèn)时(shí)序約束(shù)只(zhī)是(shì)針(zhēn)对(duì)FPGA輸入(rù)與(yǔ)輸出(chū)端進(jìn)行約束(shù),而(ér)不(bù)是(shì)針(zhēn)对(duì)FPGA內(nèi)部(bù)模块(kuài)之間(jiān)或(huò)者(zhě)模块(kuài)里(lǐ)面(miàn)。这(zhè)樣(yàng)理解(jiě)是(shì)否正(zhèng)确?
答(dá):不(bù)是(shì)的(de),內(nèi)部(bù)肯定(dìng)也(yě)跟約束(shù)有(yǒu)關(guān)。
【問(wèn)題(tí)8.36】問(wèn):老(lǎo)师(shī),想(xiǎng)問(wèn)下(xià)时(shí)序約束(shù),DDR4的(de)uiclk需要(yào)时(shí)鐘(zhōng)約束(shù)吗?
答(dá):需要(yào)的(de),設置好(hǎo)时(shí)鐘(zhōng)頻率,周期(qī)就(jiù)可(kě)以(yǐ)了(le),就(jiù)是(shì)需要(yào)create clock就(jiù)好(hǎo)了(le)
【問(wèn)題(tí)8.37】問(wèn):關(guān)于(yú)input delay的(de)抖動(dòng)解(jiě)釋。
答(dá):需要(yào)理解(jiě)的(de)抖動(dòng),不(bù)是(shì)指一(yī)个(gè)波(bō)形的(de)結果(guǒ),是(shì)多(duō)个(gè)波(bō)形疊加的(de)結果(guǒ)。假設说(shuō)一(yī)个(gè)PWM波(bō)形,周期(qī)为(wèi)10ns,理想(xiǎng)情(qíng)況下(xià)變(biàn)高(gāo)为(wèi)2.5ns,變(biàn)低在(zài)7.5ns。由(yóu)于(yú)存在(zài)不(bù)确定(dìng)延时(shí)情(qíng)況,所(suǒ)以(yǐ)有(yǒu)时(shí)候變(biàn)高(gāo)在(zài)2.6ns,變(biàn)低在(zài)7.6ns。有(yǒu)时(shí)候變(biàn)高(gāo)在(zài)2.4ns,變(biàn)低在(zài)7.4ns。有(yǒu)时(shí)變(biàn)高(gāo)在(zài)2.3ns,變(biàn)低在(zài)7.3ns。數个(gè)波(bō)形疊加,就(jiù)看(kàn)到(dào)了(le)抖動(dòng)的(de)現(xiàn)象(xiàng)。
| 九、PCIE專題(tí)課 【問(wèn)題(tí)9.1】 PCIE視頻教程是(shì)否有(yǒu)講簡單的(de)pio數據(jù)交互? 【問(wèn)題(tí)9.2】多(duō)少(shǎo)通(tòng)道(dào)都可(kě)以(yǐ)吗? 【問(wèn)題(tí)9.3】为(wèi)什麼(me)我(wǒ)得pcie板卡(kǎ)驅動(dòng)識别为(wèi)PCI standard RAM Controller而(ér)不(bù)是(shì)pci設備或(huò)者(zhě)未知設備呢? 【問(wèn)題(tí)9.4】請問(wèn)課程可(kě)以(yǐ)在(zài)VIVADO平台(tái)開(kāi)發(fà)是(shì)吗?
十(shí)、就(jiù)業班項目-光(guāng)纤項目 【問(wèn)題(tí)10.1】光(guāng)纤項目主(zhǔ)要(yào)是(shì)培訓內(nèi)容是(shì)哪些接口(kǒu)?
【問(wèn)題(tí)10.4】光(guāng)纤ip 核的(de)輸入(rù)时(shí)鐘(zhōng)是(shì)156.25M hz,輸出(chū)时(shí)鐘(zhōng)是(shì)多(duō)少(shǎo)呢?
【問(wèn)題(tí)10.10】老(lǎo)师(shī)您好(hǎo),高(gāo)速光(guāng)纤通(tòng)信(xìn)項目通(tòng)过(guò)光(guāng)纤接口(kǒu)進(jìn)来(lái)的(de)數據(jù)量(liàng)是(shì)多(duō)大的(de)?DDR中(zhōng)需要(yào)存放(fàng)多(duō)少(shǎo)數據(jù)呢?
【問(wèn)題(tí)10.12】老(lǎo)师(shī)您好(hǎo),高(gāo)速光(guāng)纤通(tòng)信(xìn)項目通(tòng)过(guò)光(guāng)纤接口(kǒu)進(jìn)来(lái)的(de)是(shì)什麼(me)數據(jù),出(chū)去(qù)的(de)又是(shì)什麼(me)數據(jù)呢?
【問(wèn)題(tí)10.15】問(wèn):使用(yòng)同(tóng)步碼(charisk)有(yǒu)沒(méi)有(yǒu)使用(yòng)規則,或(huò)者(zhě)有(yǒu)沒(méi)有(yǒu)注意(yì)事(shì)項,要(yào)注意(yì)什麼(me)?
【問(wèn)題(tí)10.17】光(guāng)纤項目里(lǐ)的(de)学員笔(bǐ)記(jì),是(shì)用(yòng)什麼(me)工具画(huà)的(de)阿
【問(wèn)題(tí)10.19】問(wèn):光(guāng)纤項目中(zhōng),GTX是(shì)使用(yòng)的(de)哪个(gè)IP核? 【問(wèn)題(tí)10.20】問(wèn):整體(tǐ)流程用(yòng)了(le)k7多(duō)少(shǎo)資源?
十(shí)一(yī)、就(jiù)業班項目-精密儀器項目(JESD204B) 【問(wèn)題(tí)11.1】JESD204B專題(tí)課有(yǒu)交流群(qún)吗? 【問(wèn)題(tí)11.2】交流群(qún)会(huì)解(jiě)答(dá)哪方(fāng)面(miàn)的(de)內(nèi)容? 【問(wèn)題(tí)11.3】FPGA的(de)JESD204B參考文(wén)檔是(shì)PG066吗?
答(dá):要(yào)使用(yòng)AD9144成(chéng)功,可(kě)以(yǐ)依次(cì)檢查以(yǐ)下(xià)AD9144的(de)幾(jǐ)个(gè)寄存器。 地(dì)址OX470:該寄存器用(yòng)于(yú)表(biǎo)示LANE有(yǒu)沒(méi)有(yǒu)檢测到(dào)K28.5同(tóng)步字(zì)。如(rú)果(guǒ)说(shuō)FPGA管(guǎn)脚配置錯誤、时(shí)鐘(zhōng)有(yǒu)問(wèn)題(tí)、LANE速率有(yǒu)問(wèn)題(tí)(例如(rú)双(shuāng)方(fāng)配置的(de)LANE速率不(bù)同(tóng),一(yī)端为(wèi)2G,另(lìng)一(yī)端为(wèi)2.5G;或(huò)者(zhě)信(xìn)号(hào)質(zhì)量(liàng)不(bù)高(gāo),傳輸有(yǒu)誤碼等),則读(dú)到(dào)的(de)值将不(bù)正(zhèng)确。 地(dì)址OX471:檢查是(shì)否所(suǒ)有(yǒu)的(de)LANE都已經(jīng)同(tóng)步。如(rú)果(guǒ)地(dì)址0X470正(zhèng)确,本(běn)寄存器不(bù)正(zhèng)确,則可(kě)能(néng)是(shì)速率、时(shí)鐘(zhōng)有(yǒu)問(wèn)題(tí)。 地(dì)址OX472:檢查checksum,即校(xiào)验(yàn)和(hé)是(shì)否正(zhèng)确。如(rú)果(guǒ)说(shuō)FPGA和(hé)AD9144的(de)參數不(bù)同(tóng),或(huò)者(zhě)是(shì)傳遞有(yǒu)錯誤,則此(cǐ)寄存器值不(bù)正(zhèng)确。 地(dì)址OX473: 檢查ILAS。如(rú)果(guǒ)说(shuō)此(cǐ)正(zhèng)确,基本(běn)上(shàng)都正(zhèng)确了(le)。
答(dá): 本(běn)工程有(yǒu)一(yī)个(gè)功能(néng),通(tòng)过(guò)按下(xià)按鍵,可(kě)以(yǐ)改變(biàn)信(xìn)号(hào)的(de)頻率。工程一(yī)共(gòng)支持(chí)6種(zhǒng)頻率,cnt1值为(wèi)0~5,分(fēn)别用(yòng)来(lái)表(biǎo)示6種(zhǒng)頻率。上(shàng)面(miàn)代(dài)碼中(zhōng)的(de)cnt0控制頻率的(de),其是(shì)通(tòng)过(guò)控制同(tóng)一(yī)值重(zhòng)複的(de)次(cì)數来(lái)达(dá)到(dào)控制頻率的(de)目的(de),例如(rú)假設某信(xìn)号(hào)值为(wèi)01234为(wèi)100M信(xìn)号(hào)頻率,讓每个(gè)點(diǎn)重(zhòng)複一(yī)次(cì),即0011223344,信(xìn)号(hào)頻率就(jiù)變(biàn)为(wèi)50M。cnt0的(de)值根(gēn)據(jù)cnt1来(lái)改變(biàn),例如(rú)當cnt1为(wèi)0时(shí),cnt0的(de)值为(wèi)0~31,當cnt1为(wèi)1时(shí),cnt0的(de)值为(wèi)0~15,當cnt2为(wèi)2时(shí),cnt0的(de)值为(wèi)0~7。
上(shàng)图(tú)中(zhōng),依次(cì)是(shì)确定(dìng)需求,即您希望的(de)信(xìn)号(hào)頻率、采樣(yàng)率DAC个(gè)數分(fēn)别是(shì)多(duō)少(shǎo),然後(hòu)據(jù)此(cǐ)确定(dìng)需要(yào)多(duō)少(shǎo)条(tiáo)LANE;進(jìn)而(ér)确定(dìng)AD9144的(de)配置;lane的(de),速率;sample时(shí)鐘(zhōng)等等。本(běn)課程有(yǒu)对(duì)應(yìng)的(de)視頻講解(jiě),可(kě)以(yǐ)詳细(xì)理解(jiě)。請理解(jiě)視頻中(zhōng)介紹的(de)思(sī)想(xiǎng),從而(ér)應(yìng)用(yòng)到(dào)您自(zì)己的(de)項目中(zhōng)。实用(yòng)建議:建議您在(zài)我(wǒ)们(men)提(tí)供的(de)案(àn)例基礎上(shàng),每次(cì)改動(dòng)一(yī)點(diǎn)點(diǎn),看(kàn)到(dào)正(zhèng)确效果(guǒ)後(hòu),再做下(xià)一(yī)下(xià),最(zuì)終(zhōng)完成(chéng)最(zuì)終(zhōng)的(de)目标(biāo)。 【問(wèn)題(tí)11.7】案(àn)例中(zhōng),插值为(wèi)2的(de)意(yì)義?为(wèi)什麼(me)要(yào)插值?
答(dá):CS是(shì)指一(yī)个(gè)SAMPLE中(zhōng)的(de)控制位比特(tè)數,上(shàng)面(miàn)两(liǎng)種(zhǒng)情(qíng)況,每个(gè)SAMPLE都加了(le)2位的(de)控制比特(tè),即图(tú)中(zhōng)的(de)C1和(hé)C0。 注意(yì),图(tú)中(zhōng)的(de)“Cr0:3[C1:C0]”,是(shì)指Cr0的(de)[C1:C0]+Cr1的(de)[C1:C0]+Cr2的(de)[C1:C0]+Cr3的(de)[C1:C0]。CF是(shì)指一(yī)个(gè)FRAME CLK中(zhōng)的(de)控制字(zì)个(gè)數,單位为(wèi)字(zì)节(jié)。注意(yì),这(zhè)里(lǐ)的(de)CF的(de)限定(dìng)条(tiáo)件(jiàn)是(shì)一(yī)个(gè)“FRAME CLK”。一(yī)个(gè)FRAME CLK,即上(shàng)图(tú)中(zhōng)的(de)一(yī)列數據(jù)。 從第(dì)一(yī)个(gè)图(tú)可(kě)以(yǐ)看(kàn)出(chū),第(dì)一(yī)列控制字(zì)是(shì)Cr0:3[C1:C0],共(gòng)8比特(tè),所(suǒ)以(yǐ)为(wèi)CF=1。 從第(dì)二(èr)个(gè)图(tú)可(kě)以(yǐ)看(kàn)出(chū),第(dì)一(yī)列控制字(zì)是(shì)Cr0:3[C1:C0]和(hé)Cr8:11[C1:C0],一(yī)列共(gòng)有(yǒu)16比特(tè),所(suǒ)以(yǐ)CF=2 【問(wèn)題(tí)11.9】在(zài)講解(jiě)需求时(shí),下(xià)面(miàn)的(de)16是(shì)什麼(me)含義?
首先(xiān),明(míng)确概念,SERDIN0~7指的(de)是(shì)AD9144芯片(piàn)上(shàng)定(dìng)義的(de)管(guǎn)脚,是(shì)物(wù)理的(de),可(kě)以(yǐ)去(qù)看(kàn)管(guǎn)脚图(tú)。LANE0~7,是(shì)指內(nèi)部(bù)表(biǎo)示的(de)LANE編号(hào)。 估計(jì)是(shì)为(wèi)了(le)靈活性(xìng),LANE0~7不(bù)是(shì)與(yǔ)SDRDIN0~7不(bù)是(shì)一(yī)个(gè)一(yī)个(gè)对(duì)應(yìng)的(de),其对(duì)應(yìng)關(guān)系(xì)是(shì)可(kě)以(yǐ)配置的(de),上(shàng)面(miàn)幾(jǐ)个(gè)寄存器就(jiù)是(shì)起这(zhè)種(zhǒng)作用(yòng)。 例如(rú),LANE0可(kě)以(yǐ)與(yǔ)SERDIN0对(duì)應(yìng),这(zhè)个(gè)时(shí)候的(de)0X308[2:0]=0,也(yě)可(kě)以(yǐ)和(hé)SERDIN4对(duì)應(yìng)起来(lái),这(zhè)个(gè)时(shí)候0X308[2:0]=4。 其次(cì),理解(jiě)了(le)上(shàng)面(miàn)關(guān)系(xì)後(hòu)。你可(kě)以(yǐ)根(gēn)據(jù)实際情(qíng)況来(lái)配置,例如(rú),本(běn)案(àn)例中(zhōng)的(de)AD9144子板,它(tā)的(de)SERDIN0~3是(shì)沒(méi)有(yǒu)用(yòng)的(de),只(zhī)使用(yòng)了(le)SERDIN4~7,这(zhè)是(shì) 固定(dìng)死的(de)。然後(hòu)內(nèi)部(bù)的(de)配置,您可(kě)以(yǐ)使用(yòng)LANE4~7来(lái)对(duì)應(yìng)SERDIN4~7,也(yě)可(kě)以(yǐ)使用(yòng)LANE0~3来(lái)对(duì)應(yìng)SERDIN4~7,这(zhè)由(yóu)您来(lái)決定(dìng),都是(shì)可(kě)以(yǐ)实現(xiàn)的(de)。 最(zuì)後(hòu),再強(qiáng)調一(yī)下(xià)工程思(sī)維:芯片(piàn)提(tí)供了(le)很多(duō)功能(néng),您用(yòng)也(yě)可(kě)以(yǐ),不(bù)用(yòng)也(yě)可(kě)以(yǐ),您会(huì)怎麼(me)做?你就(jiù)選擇最(zuì)簡單的(de)来(lái)做,甚至(zhì)就(jiù)是(shì)忽視它(tā)存在(zài),也(yě)就(jiù)是(shì)使用(yòng)默認值。
【問(wèn)題(tí)11.16】为(wèi)什麼(me)v5版本(běn)是(shì)6.4Glane速率,而(ér)v7就(jiù)是(shì)3.2Glane速率了(le),都是(shì)10~40M的(de)正(zhèng)弦波(bō)啊?
【問(wèn)題(tí)11.27】204b,通(tòng)过(guò)lane傳輸的(de)时(shí)候,fpga不(bù)用(yòng)單独給(gěi)DAC提(tí)供时(shí)鐘(zhōng),而(ér)是(shì)通(tòng)过(guò)CDR從lane數據(jù)線(xiàn)中(zhōng)恢複出(chū)时(shí)鐘(zhōng),这(zhè)樣(yàng)理解(jiě)对(duì)吗?那(nà)還(huán)有(yǒu)output delay吗?
|
【問(wèn)題(tí)11.33】是(shì)否包(bāo)含有(yǒu)高(gāo)速AD/DA的(de)項目?最(zuì)高(gāo)速率是(shì)多(duō)少(shǎo)?有(yǒu)多(duō)少(shǎo)路(lù)?
答(dá):激光(guāng)工程項目中(zhōng),包(bāo)含有(yǒu)高(gāo)速ADC AD9684,速率是(shì)500M,目前(qián)是(shì)支持(chí)一(yī)路(lù)的(de)实現(xiàn)。精密儀器項目中(zhōng),包(bāo)含有(yǒu)高(gāo)速的(de)DAC AD9144,目前(qián)实現(xiàn)的(de)最(zuì)高(gāo)速率是(shì)1G,支持(chí)2路(lù)輸出(chū)。
【問(wèn)題(tí)11.34】精密儀器項目中(zhōng),AD9144的(de)AD测量(liàng)範圍,DA輸出(chū)的(de)範圍,以(yǐ)及(jí)采樣(yàng)率分(fēn)别是(shì)多(duō)少(shǎo)?
答(dá):AD9144是(shì)一(yī)款DAC芯片(piàn),所(suǒ)以(yǐ)沒(méi)有(yǒu)AD测量(liàng)範圍。DA采樣(yàng)率我(wǒ)们(men)实現(xiàn)的(de)是(shì)1G,实質(zhì)可(kě)达(dá)1.8G。DA輸出(chū)範圍以(yǐ)及(jí)更(gèng)多(duō)信(xìn)息,請參考以(yǐ)下(xià)數據(jù)手(shǒu)册。
AD9144-FMC-EBZ RevB Schematic.pdf (79.85 KB, 下(xià)载次(cì)數: 0)
AD9144.pdf (2.79 MB, 下(xià)载次(cì)數: 0)2020-11-4 10:55 上(shàng)傳,點(diǎn)擊文(wén)件(jiàn)名下(xià)载附件(jiàn)
【問(wèn)題(tí)11.35】JESD204B課程中(zhōng),是(shì)那(nà)種(zhǒng)并口(kǒu)高(gāo)速adc用(yòng)的(de)那(nà)種(zhǒng)協議麼(me)?
答(dá):不(bù)是(shì)高(gāo)速并行口(kǒu),而(ér)是(shì)高(gāo)速串行口(kǒu),即SERDES接口(kǒu)来(lái)实現(xiàn),單根(gēn)線(xiàn)的(de)速率可(kě)达(dá)到(dào)10G。
【問(wèn)題(tí)11.36】就(jiù)業班企業項目里(lǐ)視頻拼接MIPI項目有(yǒu)用(yòng)到(dào)IP核吗?需要(yào)額外(wài)交IP核費用(yòng)吗?
答(dá):MIPI項目是(shì)用(yòng)的(de)lattice芯片(piàn),lattice的(de)此(cǐ)IP是(shì)免費的(de),学習此(cǐ)項目无需額外(wài)繳費。
【問(wèn)題(tí)11.37】申請JESD的(de)臨时(shí)License提(tí)示不(bù)符合出(chū)口(kǒu)規定(dìng),有(yǒu)沒(méi)有(yǒu)什麼(me)其它(tā)辦(bàn)法?
答(dá):換了(le)个(gè)企業邮(yóu)箱賬号(hào)就(jiù)行了(le)
【問(wèn)題(tí)11.38】一(yī),首先(xiān)我(wǒ)得读(dú)9156寄存器,二(èr),我(wǒ)的(de)读(dú)9154{我(wǒ)自(zì)己的(de)dac}三(sān),用(yòng) dpg..現(xiàn)在(zài)dpg软(ruǎn)件(jiàn)駛不(bù)了(le),麻(má)煩解(jiě)答(dá)一(yī)下(xià)
答(dá):我(wǒ)们(men)提(tí)供的(de)例程,已集成(chéng)在(zài)工程里(lǐ)面(miàn)的(de),全(quán)部(bù)代(dài)碼是(shì)FPGA代(dài)碼。
【問(wèn)題(tí)11.39】請問(wèn)9144用(yòng)的(de)是(shì)mose0,配置完後(hòu),CGS可(kě)以(yǐ)过(guò),可(kě)以(yǐ)读(dú)到(dào)寄存器470是(shì)FF,8个(gè)lane都收(shōu)到(dào)了(le)k28.5,但是(shì)寄存器023的(de)bit1一(yī)直(zhí)在(zài)01之間(jiān)不(bù)停的(de)跳動(dòng),代(dài)表(biǎo)FIFO的(de)读(dú)写一(yī)直(zhí)有(yǒu)錯誤,查看(kàn)30c和(hé)30d也(yě)能(néng)看(kàn)到(dào)錯誤标(biāo)記(jì),此(cǐ)时(shí)發(fà)送sysref的(de)話(huà),ILAS也(yě)能(néng)过(guò),但是(shì)470,471,472,473都在(zài)不(bù)停的(de)跳動(dòng),sync标(biāo)記(jì)也(yě)是(shì)忽高(gāo)忽低,此(cǐ)时(shí)鍊(liàn)路(lù)不(bù)稳定(dìng),給(gěi)tx核送數據(jù),在(zài)頻谱儀上(shàng)能(néng)看(kàn)到(dào)9144的(de)輸出(chū),但是(shì)因(yīn)为(wèi)鍊(liàn)路(lù)不(bù)稳定(dìng),輸出(chū)会(huì)不(bù)停的(de)閃爍,理論上(shàng)講,鍊(liàn)路(lù)稳定(dìng)的(de)話(huà),470.471.472.473都應(yìng)該回(huí)读(dú)FF才对(duì),我(wǒ)想(xiǎng)請教一(yī)下(xià),是(shì)什麼(me)導致(zhì)了(le)9144配置完後(hòu)fifo的(de)读(dú)写标(biāo)記(jì)一(yī)直(zhí)報錯呢?也(yě)就(jiù)是(shì)寄存器023的(de)bit 1
答(dá):如(rú)果(guǒ)是(shì)自(zì)己做的(de)硬(yìng)件(jiàn)板,則有(yǒu)可(kě)能(néng)是(shì)硬(yìng)件(jiàn)的(de)稳定(dìng)性(xìng)問(wèn)題(tí)。請檢查硬(yìng)件(jiàn)電(diàn)路(lù)。
【問(wèn)題(tí)11.40】請教一(yī)个(gè)問(wèn)題(tí),204b时(shí)序不(bù)行。12.5g,312.5M的(de)核时(shí)鐘(zhōng)。一(yī)个(gè)dac时(shí)序違例不(bù)嚴重(zhòng)能(néng)工作,另(lìng)一(yī)个(gè)不(bù)行,怎麼(me)处理
答(dá):解(jiě)決时(shí)序違例,其思(sī)路(lù)是(shì)減少(shǎo)組合電(diàn)路(lù)邏輯。如(rú)果(guǒ)确实无法減小,那(nà)就(jiù)只(zhī)能(néng)降低时(shí)鐘(zhōng)頻率了(le)。您使用(yòng)的(de)315.5M是(shì)工作时(shí)鐘(zhōng)的(de)話(huà),那(nà)确实是(shì)太高(gāo)了(le),建議可(kě)以(yǐ)将工作时(shí)鐘(zhōng)降为(wèi)156.25M
【問(wèn)題(tí)11.41】請問(wèn)按鍵是(shì)有(yǒu)4位., 但代(dài)碼中(zhōng)只(zhī)使用(yòng)了(le)0位和(hé)1位, 这(zhè)按鍵有(yǒu)沒(méi)有(yǒu)順序要(yào)求, 先(xiān)按哪个(gè)再按哪个(gè)? 然後(hòu)这(zhè)个(gè)这(zhè)个(gè)按鍵信(xìn)号(hào)作为(wèi)使能(néng)信(xìn)号(hào), 是(shì)只(zhī)持(chí)續一(yī)个(gè)时(shí)鐘(zhōng), 還(huán)是(shì)需要(yào)一(yī)直(zhí)为(wèi)高(gāo)?
答(dá):先(xiān)按啟動(dòng)有(yǒu)效的(de)按鍵,再按改變(biàn)頻率的(de)按鍵,具體(tǐ)請看(kàn)使用(yòng)说(shuō)明(míng)。
【問(wèn)題(tí)11.42】請問(wèn)在(zài)給(gěi)JESD204C IP核配置的(de)时(shí)候,读(dú)取(qǔ)0x020 RESET寄存器的(de)值,读(dú)到(dào)的(de)值是(shì)0x081,说(shuō)明(míng)这(zhè)个(gè)IP一(yī)直(zhí)处于(yú)複位狀态,无法從複位狀态退(tuì)出(chū),可(kě)能(néng)是(shì)什麼(me)問(wèn)題(tí)呢?
答(dá):檢查一(yī)下(xià)所(suǒ)有(yǒu)的(de)时(shí)鐘(zhōng)和(hé)複位信(xìn)号(hào),一(yī)般都是(shì)跟这(zhè)些信(xìn)号(hào)有(yǒu)關(guān)
【問(wèn)題(tí)11.43】請問(wèn)FPGA中(zhōng)的(de)204B IP核,其配置是(shì)在(zài)哪里(lǐ)定(dìng)義?
答(dá):JESD204B的(de)IP核配置,其地(dì)址在(zài)addr.coe文(wén)件(jiàn)中(zhōng)定(dìng)義;其寄存器值在(zài)data.coe文(wén)件(jiàn)中(zhōng)定(dìng)義。
【問(wèn)題(tí)11.44】device clock是(shì)什麼(me)意(yì)思(sī)?
答(dá):可(kě)以(yǐ)認为(wèi)是(shì)AD9516給(gěi)FPGA的(de)一(yī)个(gè)多(duō)幀时(shí)鐘(zhōng),用(yòng)于(yú)同(tóng)步多(duō)幀的(de),可(kě)以(yǐ)認为(wèi)D个(gè)多(duō)幀就(jiù)發(fà)一(yī)个(gè)上(shàng)升(shēng)沿,这(zhè)樣(yàng)就(jiù)好(hǎo)同(tóng)步了(le)。具體(tǐ)有(yǒu)一(yī)个(gè)視頻,可(kě)以(yǐ)看(kàn)JESD204B協議04_实踐_協議各(gè)个(gè)时(shí)鐘(zhōng)的(de)關(guān)系(xì)。
【問(wèn)題(tí)11.45】:課程提(tí)供的(de)上(shàng)位機(jī)软(ruǎn)件(jiàn)是(shì)直(zhí)接和(hé)dac連(lián)接用(yòng)于(yú)檢测dac里(lǐ)寄存器的(de)值吗?還(huán)是(shì)dac通(tòng)过(guò)傳數據(jù)到(dào)fpga通(tòng)过(guò)fpga連(lián)接呢?
答(dá):
做法1:上(shàng)位機(jī)将寄存器配置值写到(dào)FPGA,FPGA再写到(dào)DAC里(lǐ)。
做法2:FPGA內(nèi)部(bù)有(yǒu)配置表(biǎo),上(shàng)電(diàn)後(hòu)自(zì)動(dòng)配置DAC的(de)寄存器。 以(yǐ)上(shàng)两(liǎng)種(zhǒng)方(fāng)法都有(yǒu)。
【問(wèn)題(tí)11.46】:如(rú)果(guǒ)是(shì)通(tòng)过(guò)fpga連(lián)接的(de),是(shì)走(zǒu)的(de)uart還(huán)是(shì)ethernet呢?
答(dá):走(zǒu)的(de)是(shì)网(wǎng)口(kǒu)。
【問(wèn)題(tí)11.47】:vc707可(kě)不(bù)可(kě)以(yǐ)兼容我(wǒ)们(men)的(de)程序?
答(dá):只(zhī)要(yào)有(yǒu)HPC接口(kǒu)的(de),均支持(chí)
【問(wèn)題(tí)11.48】:是(shì)不(bù)是(shì)地(dì)址8的(de)ILA support設为(wèi)1就(jiù)代(dài)表(biǎo)在(zài)CGS之後(hòu)開(kāi)啟ILAS的(de)功能(néng)?
答(dá):該地(dì)址設为(wèi)1,表(biǎo)示啟動(dòng)ILA功能(néng),設为(wèi)0表(biǎo)示不(bù)啟用(yòng)。
【問(wèn)題(tí)11.49】:地(dì)址20的(de)ILA multiframe是(shì)選擇ILAS一(yī)共(gòng)發(fà)送幾(jǐ)組8位數據(jù)?我(wǒ)们(men)設为(wèi)3就(jiù)代(dài)表(biǎo)發(fà)送4組8位數據(jù)?
答(dá):这(zhè)里(lǐ)不(bù)是(shì)以(yǐ)8位數據(jù)为(wèi)音(yīn)位,而(ér)是(shì)multiframe为(wèi)單位。所(suǒ)以(yǐ)設为(wèi)3,表(biǎo)示發(fà)送4个(gè)多(duō)幀數據(jù)。
【問(wèn)題(tí)11.50】:地(dì)址2060和(hé)2072的(de)ILA config data 3 和(hé) 6 功能(néng)似乎是(shì)Sets the values to be transmitted in the ILA sequence for all lanes. 这(zhè)两(liǎng)个(gè)寄存器是(shì)用(yòng)于(yú)設置ILAS發(fà)送的(de)數據(jù)吗?
两(liǎng)个(gè)寄存器都是(shì)0那(nà)發(fà)送的(de)ILAS是(shì)全(quán)0,還(huán)是(shì)某个(gè)默認值?我(wǒ)看(kàn)到(dào)网(wǎng)上(shàng)有(yǒu)说(shuō)是(shì)k28.0到(dào)k28.4順序發(fà)送的(de),但我(wǒ)看(kàn)我(wǒ)的(de)一(yī)个(gè)TI的(de)dac好(hǎo)像默認是(shì)0x1C也(yě)就(jiù)是(shì)K28.0
答(dá):这(zhè)里(lǐ)是(shì)設置需要(yào)的(de)L、BID、LID和(hé)DID等參數。從字(zì)面(miàn)上(shàng)理解(jiě),發(fà)送方(fāng)向(xiàng)就(jiù)会(huì)把这(zhè)些數據(jù)當成(chéng)ILA數據(jù)發(fà)給(gěi)对(duì)端。按真(zhēn)实要(yào)求配置即可(kě)。設了(le)什麼(me)值,就(jiù)会(huì)打(dǎ)包(bāo)成(chéng)对(duì)應(yìng)數據(jù)發(fà)送給(gěi)对(duì)端。至(zhì)于(yú)如(rú)何打(dǎ)包(bāo),我(wǒ)这(zhè)還(huán)沒(méi)有(yǒu)研究。
【問(wèn)題(tí)11.51】:multiframe包(bāo)含幾(jǐ)个(gè)frame?
答(dá):这(zhè)个(gè)每个(gè)工程不(bù)同(tóng),是(shì)可(kě)以(yǐ)靈活設計(jì)的(de)參數,并且是(shì)與(yǔ)时(shí)鐘(zhōng)頻率、其他(tā)參數相關(guān)聯的(de)。
【問(wèn)題(tí)11.52】:BID这(zhè)些參數具體(tǐ)就(jiù)要(yào)從DAC那(nà)邊(biān)找(zhǎo)到(dào)对(duì)應(yìng)的(de)然後(hòu)两(liǎng)邊(biān)匹(pǐ)配就(jiù)可(kě)以(yǐ)了(le),是(shì)吗?
答(dá):BID DID 这(zhè)些,两(liǎng)邊(biān)匹(pǐ)配即可(kě)。
【問(wèn)題(tí)11.53】麻(má)煩問(wèn)一(yī)下(xià)这(zhè)个(gè)sin_data數據(jù)是(shì)怎麼(me)来(lái)的(de)?自(zì)己造的(de)數據(jù)吗?
答(dá):sin_data是(shì)正(zhèng)弦波(bō)的(de)數據(jù),該正(zhèng)弦波(bō)數據(jù)用(yòng)matlab産生(shēng),模块(kuài)这(zhè)里(lǐ)是(shì)轉(zhuǎn)化(huà)成(chéng)verilog語(yǔ)言後(hòu)的(de)。
【問(wèn)題(tí)11.54】減得那(nà)个(gè)8'h80是(shì)什麼(me)意(yì)思(sī)呢?为(wèi)什麼(me)要(yào)減那(nà)个(gè)8'h80呢?
答(dá):如(rú)图(tú)紅(hóng)色(sè)波(bō)形所(suǒ)示,該正(zhèng)弦波(bō)數據(jù)用(yòng)8bit位宽(kuān)表(biǎo)示,0~8'hff是(shì)它(tā)的(de)幅度(dù)值範圍,中(zhōng)間(jiān)的(de)幅度(dù)值为(wèi)8'h7f。 而(ér)在(zài)工程需求里(lǐ),接口(kǒu)要(yào)求輸出(chū)的(de)正(zhèng)弦波(bō)數據(jù)为(wèi)補碼形式,那(nà)麼(me)正(zhèng)弦波(bō)的(de)補碼波(bō)形如(rú)图(tú)藍(lán)色(sè)波(bō)形所(suǒ)示, 補碼表(biǎo)示的(de)最(zuì)高(gāo)點(diǎn)數值为(wèi)8'h7f,最(zuì)低點(diǎn)數值8'h80。对(duì)于(yú)數值8'h80+1=8'h01,8'h80-1=8'h7f,那(nà)麼(me)将正(zhèng)弦波(bō)數據(jù)sin_data-8'h80得到(dào)的(de)就(jiù)是(shì)如(rú)图(tú)藍(lán)色(sè)的(de)波(bō)形數據(jù),也(yě)是(shì)一(yī)个(gè)補碼的(de)數據(jù)。
【問(wèn)題(tí)11.55】問(wèn)題(tí):請問(wèn)jesd204 phy能(néng)選擇具體(tǐ)某一(yī)个(gè)quad吗?具體(tǐ)如(rú)何選?
答(dá):JESD204 PHY是(shì)可(kě)以(yǐ)選擇QUAD的(de),在(zài)IP核界面(miàn)里(lǐ)可(kě)以(yǐ)選擇使用(yòng)哪个(gè),具體(tǐ)可(kě)以(yǐ)教程里(lǐ)的(de)視頻
【問(wèn)題(tí)11.56】JESD204B課程是(shì)ADC采樣(yàng),還(huán)是(shì)DAC采樣(yàng)?(模數轉(zhuǎn)換是(shì)ADC,數模轉(zhuǎn)換是(shì)DAC)
答(dá):是(shì)DAC采樣(yàng)
【問(wèn)題(tí)11.57】Jesd204B那(nà)个(gè)項目里(lǐ)的(de)以(yǐ)太网(wǎng)通(tòng)信(xìn)是(shì)不(bù)是(shì)沒(méi)有(yǒu)調用(yòng)MAC ip核,自(zì)己写的(de)
答(dá):是(shì)的(de)。該代(dài)碼沒(méi)有(yǒu)調用(yòng)IP核,純RTL实現(xiàn),模块(kuài)名为(wèi)gmii
【問(wèn)題(tí)11.58】fmcAD9144模块(kuài)從jp2送入(rù)AD9516的(de)时(shí)鐘(zhōng)信(xìn)号(hào)需要(yào)多(duō)大幅值的(de)?1.8V够吗?
答(dá):一(yī)般JP2的(de)时(shí)鐘(zhōng)幅值为(wèi)1.5V。1.8V也(yě)是(shì)可(kě)以(yǐ)的(de)
【問(wèn)題(tí)11.59】問(wèn):我(wǒ)JESD204B ADC接受的(de)數據(jù)全(quán)是(shì)0咋回(huí)事(shì)?
答(dá):
1.确認接收(shōu)到(dào)了(le)數據(jù)?
2.基于(yú)1後(hòu),再确認是(shì) 0
【問(wèn)題(tí)11.60】問(wèn):这(zhè)个(gè)sysref信(xìn)号(hào)必須由(yóu)外(wài)部(bù)提(tí)供吗?我(wǒ)们(men)板子沒(méi)有(yǒu)这(zhè)个(gè)信(xìn)号(hào),能(néng)不(bù)能(néng)用(yòng)device clk这(zhè)个(gè)信(xìn)号(hào)分(fēn)頻得到(dào)?
1.时(shí)鐘(zhōng)要(yào)稳定(dìng);
2. 两(liǎng)邊(biān)都是(shì)完全(quán)同(tóng)頻同(tóng)步的(de)时(shí)鐘(zhōng)
【問(wèn)題(tí)11.61】問(wèn):老(lǎo)师(shī)我(wǒ)想(xiǎng)問(wèn)一(yī)下(xià)jesd項目里(lǐ)的(de)9516和(hé)9144的(de)配置視頻里(lǐ)講的(de)是(shì)通(tòng)过(guò)ACE工具和(hé)上(shàng)位機(jī)软(ruǎn)件(jiàn)配置的(de),那(nà)vivado程序中(zhōng)又有(yǒu)配置模块(kuài),这(zhè)是(shì)怎麼(me)回(huí)事(shì)?
答(dá):前(qián)期(qī)工程是(shì)由(yóu)上(shàng)位機(jī)配置的(de),後(hòu)面(miàn)提(tí)供的(de)工程 由(yóu)內(nèi)部(bù)模块(kuài)配置的(de)
温(wēn)馨提(tí)示:明(míng)德揚2023推出(chū)了(le)全(quán)新課程——邏輯設計(jì)基本(běn)功修煉課,降低学習FPGA門(mén)檻的(de)同(tóng)时(shí),增加了(le)学習的(de)趣味性(xìng),并組織了(le)考試赢積分(fēn)活動(dòng)
http://www.minyingyiyuan.com/ffkc/415.html
(點(diǎn)擊→了(le)解(jiě)課程詳情(qíng)☝)感(gǎn)興趣請聯系(xì)易老(lǎo)师(shī):13112063618(微信(xìn)同(tóng)步)
明(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. 多(duō)通(tòng)道(dào)高(gāo)靈敏電(diàn)荷放(fàng)大器
8. 射頻前(qián)端










