|
通(tòng)过(guò)平时(shí)同(tóng)学们(men)反(fǎn)饋学習中(zhōng)經(jīng)常用(yòng)到(dào)的(de)学習點(diǎn),因(yīn)此(cǐ)明(míng)德揚最(zuì)近(jìn)做了(le)抖音(yīn)系(xì)列短(duǎn)視頻,都是(shì)一(yī)些FPGA学習技巧分(fēn)享.
【問(wèn)題(tí)2】这(zhè)是(shì)出(chū)了(le)什麼(me)問(wèn)題(tí)?din輸入(rù)的(de)值出(chū)問(wèn)題(tí)了(le)? ![]()
答(dá):这(zhè)種(zhǒng)情(qíng)況的(de)錯誤提(tí)示,如(rú)果(guǒ)是(shì)三(sān)态門(mén)(inout)管(guǎn)脚例化(huà)时(shí),請按如(rú)下(xià)方(fāng)法進(jìn)行: 【問(wèn)題(tí)4】如(rú)何在(zài)测試文(wén)件(jiàn)中(zhōng),读(dú)取(qǔ)TXT文(wén)檔的(de)數據(jù)? 答(dá):integer r_file;initial beginr_file = $fopen("../din_sim.txt", "r");endalways@(posedge clk) begin$fscanf(r_file, "%d", din);end上(shàng)面(miàn)就(jiù)实現(xiàn)了(le)将din_sim.txt里(lǐ)面(miàn)的(de)數據(jù)給(gěi)到(dào)din的(de)功能(néng) 【問(wèn)題(tí)5】點(diǎn)撥教程的(de)测試文(wén)件(jiàn)編号(hào)練習2中(zhōng),提(tí)供的(de)設計(jì)文(wén)件(jiàn)在(zài)哪里(lǐ)下(xià)载? 答(dá):請看(kàn)如(rú)下(xià)練習:03 测試文(wén)件(jiàn)的(de)編写:http://old.mdy-edu.com/wentijieda/20210409/1213.html?1618046547請看(kàn)以(yǐ)太网(wǎng)测試文(wén)件(jiàn)部(bù)分(fēn),其中(zhōng)的(de)baowen.v就(jiù)是(shì)了(le)
答(dá):这(zhè)是(shì)为(wèi)了(le)避免时(shí)鐘(zhōng)上(shàng)升(shēng)沿和(hé)信(xìn)号(hào)上(shàng)升(shēng)沿同(tóng)时(shí)出(chū)現(xiàn),同(tóng)时(shí)出(chū)現(xiàn)的(de)話(huà),在(zài)时(shí)鐘(zhōng)上(shàng)升(shēng)沿就(jiù)这(zhè)个(gè)信(xìn)号(hào)是(shì)0還(huán)是(shì)1(这(zhè)種(zhǒng)情(qíng)況,实質(zhì)的(de)硬(yìng)件(jiàn)電(diàn)路(lù)是(shì)不(bù)会(huì)出(chū)現(xiàn)的(de))。
【問(wèn)題(tí)7】在(zài)看(kàn)波(bō)形时(shí),部(bù)分(fēn)信(xìn)号(hào)只(zhī)有(yǒu)“半个(gè)时(shí)鐘(zhōng)周期(qī)”,是(shì)怎麼(me)回(huí)事(shì)? 答(dá):仿真(zhēn)的(de)时(shí)候,我(wǒ)们(men)關(guān)注的(de)是(shì)在(zài)上(shàng)升(shēng)沿的(de)时(shí)候是(shì)0還(huán)是(shì)1,不(bù)關(guān)心(xīn)测試信(xìn)号(hào)是(shì)不(bù)是(shì)半个(gè)周期(qī)。具體(tǐ)可(kě)看(kàn):时(shí)序邏輯影響計(jì)數器精度(dù):http://old.mdy-edu.com/wentijieda/20210410/1325.html
例如(rú):对(duì)于(yú)串口(kǒu)接收(shōu),我(wǒ)们(men)在(zài)編写testbench仿真(zhēn)接收(shōu)模块(kuài)时(shí),使用(yòng)了(le)串口(kǒu)發(fà)送模块(kuài)来(lái)産生(shēng)测試數據(jù), 而(ér)串口(kǒu)發(fà)送模块(kuài)并不(bù)包(bāo)含在(zài)Quartus 的(de)RTL邏輯中(zhōng),因(yīn)此(cǐ)不(bù)会(huì)自(zì)動(dòng)參與(yǔ)編譯,无法得到(dào)仿真(zhēn)數據(jù)庫;按鍵消抖时(shí), 設計(jì)了(le)一(yī)个(gè)按鍵模型,該模型僅用(yòng)作仿真(zhēn),也(yě)不(bù)会(huì)被(bèi)Quartus自(zì)動(dòng)交付給(gěi)Modelsim編譯。 解(jiě)決方(fāng)案(àn):需要(yào)在(zài)設置NativeLink的(de)时(shí)候手(shǒu)動(dòng)添加該文(wén)件(jiàn)。如(rú)下(xià)图(tú)可(kě)以(yǐ)看(kàn)到(dào),我(wǒ)们(men)設置时(shí)不(bù)僅添加了(le)tb文(wén)件(jiàn), 還(huán)添加了(le)key_model文(wén)件(jiàn),这(zhè)樣(yàng)Moselsim才会(huì)根(gēn)據(jù)該設置去(qù)編譯key_model文(wén)件(jiàn)。 ![]() 情(qíng)況2:在(zài)做前(qián)仿真(zhēn)正(zhèng)常,在(zài)做後(hòu)仿真(zhēn)的(de)时(shí)候会(huì)遇到(dào)这(zhè)个(gè)問(wèn)題(tí),这(zhè)種(zhǒng)情(qíng)況主(zhǔ)要(yào)考慮當前(qián)的(de)工程中(zhōng)是(shì)否包(bāo)含了(le)該模块(kuài)。 例如(rú)一(yī)个(gè)二(èr)選一(yī)多(duō)路(lù)器的(de)实验(yàn),因(yīn)为(wèi)誤把testbench文(wén)件(jiàn)設置为(wèi)了(le)工程頂层文(wén)件(jiàn), 導致(zhì)在(zài)後(hòu)仿真(zhēn)时(shí)候因(yīn)为(wèi)沒(méi)有(yǒu)对(duì)二(èr)選一(yī)多(duō)路(lù)器的(de)邏輯內(nèi)容進(jìn)行全(quán)編譯,導致(zhì)找(zhǎo)不(bù)到(dào)庫, 此(cǐ)種(zhǒng)情(qíng)況也(yě)出(chū)現(xiàn)在(zài)对(duì)IP核進(jìn)行仿真(zhēn)测試的(de)时(shí)候,例如(rú)FIFO、PLL、RAM等。 解(jiě)決方(fāng)案(àn):記(jì)得一(yī)定(dìng)要(yào)将被(bèi)测試的(de)邏輯設置为(wèi)quartus的(de)工程頂层文(wén)件(jiàn)才能(néng)進(jìn)行全(quán)編譯得到(dào)时(shí)序网(wǎng)表(biǎo)文(wén)件(jiàn),才能(néng)進(jìn)行正(zhèng)常的(de)後(hòu)仿真(zhēn)。
【問(wèn)題(tí)10】repeat(40) clk=~clk就(jiù)是(shì)産生(shēng)40个(gè)周期(qī)的(de)时(shí)鐘(zhōng)信(xìn)号(hào)吗? 答(dá):每隔40个(gè)时(shí)間(jiān)就(jiù)取(qǔ)反(fǎn)一(yī)次(cì),所(suǒ)以(yǐ)周期(qī)是(shì)80。
答(dá):假設設計(jì)文(wén)件(jiàn)中(zhōng)有(yǒu)一(yī)參數TIME_1S=50000000,在(zài)仿真(zhēn)时(shí),可(kě)以(yǐ)在(zài)测試文(wén)件(jiàn)中(zhōng)模块(kuài)例化(huà)部(bù)分(fēn)来(lái)修改这(zhè)个(gè)參數,如(rú)下(xià)图(tú)所(suǒ)示:
【問(wèn)題(tí)12】Modelsim仿真(zhēn)産生(shēng)随機(jī)數 答(dá):reg data; data = $random % a; //産生(shēng)從-a+1 ~ a-1 的(de)随機(jī)數 data = {$random} % a; //産生(shēng)從0到(dào)a-1的(de)随機(jī)數 【問(wèn)題(tí)13】當不(bù)符合“波(bō)形图(tú)規則”,或(huò)者(zhě)对(duì)着代(dài)碼,明(míng)明(míng)符合条(tiáo)件(jiàn)但就(jiù)是(shì)沒(méi)有(yǒu)執行的(de)情(qíng)況。 答(dá):这(zhè)由(yóu)于(yú)信(xìn)号(hào)的(de)變(biàn)化(huà)沿和(hé)时(shí)鐘(zhōng)上(shàng)升(shēng)沿同(tóng)时(shí)有(yǒu)效了(le)。软(ruǎn)件(jiàn)有(yǒu)时(shí)候会(huì)誤認为(wèi)是(shì)數據(jù)先(xiān)變(biàn)化(huà)然後(hòu)时(shí)鐘(zhōng)才變(biàn)化(huà),这(zhè)是(shì)不(bù)符合实質(zhì)情(qíng)況的(de)。 解(jiě)決方(fāng)法,在(zài)测試文(wén)件(jiàn)中(zhōng),産生(shēng)信(xìn)号(hào)的(de)那(nà)个(gè)initial里(lǐ),先(xiān)加1个(gè)單位的(de)延时(shí)。 如(rú)下(xià)图(tú)(目标(biāo)是(shì)讓en和(hé)clk的(de)變(biàn)化(huà)沿有(yǒu)差异(yì)): ![]()
明(míng)德揚科技教育
|













明(míng)德揚科技教育
