|
阻塞與(yǔ)非(fēi)阻塞
作者(zhě):小黑(hēi)同(tóng)学
【總(zǒng)結1】規範用(yòng)法:时(shí)序邏輯使用(yòng)非(fēi)阻塞賦值,組合邏輯使用(yòng)阻塞賦值。
【總(zǒng)結2】按照規範用(yòng)法,不(bù)会(huì)産生(shēng)任何問(wèn)題(tí)。
【總(zǒng)結3】非(fēi)規範用(yòng)法,純粹是(shì)为(wèi)了(le)学術(shù)探讨的(de)目的(de),而(ér)不(bù)是(shì)應(yìng)用(yòng)目的(de)。 为(wèi)学術(shù)探讨,可(kě)以(yǐ)看(kàn)下(xià)面(miàn)的(de)內(nèi)容。
關(guān)于(yú)阻塞賦值和(hé)非(fēi)阻塞賦值的(de)讨論
1. FPGA里(lǐ)只(zhī)要(yào)總(zǒng)結出(chū)一(yī)个(gè)規範用(yòng)法:时(shí)序邏輯使用(yòng)非(fēi)阻塞賦值,組合邏輯使用(yòng)阻塞賦值,就(jiù)不(bù)会(huì)産生(shēng)任何問(wèn)題(tí),即使你不(bù)懂阻塞和(hé)非(fēi)阻塞的(de)區(qū)别都可(kě)以(yǐ)。 2. 有(yǒu)關(guān)于(yú)阻塞賦值和(hé)非(fēi)阻塞賦值,純粹是(shì)國(guó)內(nèi)的(de)学者(zhě),无聊、咬文(wén)嚼字(zì)、賣(mài)弄語(yǔ)法才整出(chū)来(lái)的(de)問(wèn)題(tí),更(gèng)多(duō)地(dì)去(qù)解(jiě)析語(yǔ)法,玩不(bù)同(tóng)語(yǔ)法情(qíng)況下(xià)的(de)理解(jiě)。 3. 經(jīng)常会(huì)問(wèn)到(dào):不(bù)按“規範用(yòng)法”去(qù)做,会(huì)産生(shēng)什麼(me)樣(yàng)現(xiàn)象(xiàng)的(de)問(wèn)題(tí)!这(zhè)種(zhǒng)問(wèn)題(tí)实在(zài)是(shì)太多(duō)太多(duō),各(gè)種(zhǒng)角(jiǎo)度(dù)提(tí)問(wèn)的(de)方(fāng)式都有(yǒu),防不(bù)勝防。为(wèi)此(cǐ),特(tè)提(tí)供一(yī)个(gè)思(sī)路(lù),請按这(zhè)个(gè)思(sī)路(lù)来(lái)去(qù)理解(jiě)。 a. 首先(xiān)一(yī)定(dìng)要(yào)理解(jiě),VERILOG是(shì)硬(yìng)件(jiàn)描述語(yǔ)言这(zhè)个(gè)大前(qián)提(tí)!請深刻理解(jiě)!VERILOG就(jiù)是(shì)用(yòng)来(lái)描述功能(néng),然後(hòu)綜合器按照功能(néng)描述,去(qù)産生(shēng)一(yī)个(gè)電(diàn)路(lù),来(lái)跟这(zhè)个(gè)功能(néng)对(duì)應(yìng)! b. 阻塞賦值是(shì)一(yī)行一(yī)行“執行”,非(fēi)阻塞賦值是(shì)“同(tóng)时(shí)執行”。这(zhè)是(shì)第(dì)二(èr)前(qián)提(tí)。請仔细(xì)思(sī)考在(zài)这(zhè)前(qián)提(tí)下(xià),这(zhè)个(gè)功能(néng)会(huì)如(rú)何變(biàn),必要(yào)时(shí)結合CLK一(yī)起理解(jiě)!!!(如(rú)果(guǒ)实在(zài)理解(jiě)不(bù)了(le),那(nà)就(jiù)用(yòng)MODELSIM仿真(zhēn),仿真(zhēn)結果(guǒ)就(jiù)是(shì)功能(néng)) c. 綜合器根(gēn)據(jù)“描述的(de)功能(néng)”来(lái)生(shēng)成(chéng)電(diàn)路(lù),这(zhè)是(shì)第(dì)三(sān)前(qián)提(tí)。綜合器生(shēng)成(chéng)的(de)電(diàn)路(lù),一(yī)定(dìng)是(shì)與(yǔ)“功能(néng)描述一(yī)樣(yàng)”,即使这(zhè)个(gè)電(diàn)路(lù)看(kàn)起来(lái)跟設想(xiǎng)的(de)完全(quán)不(bù)一(yī)樣(yàng)。
d. 請按上(shàng)面(miàn)三(sān)步,逐个(gè)确認。參考的(de)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=26
【問(wèn)題(tí)1】为(wèi)什麼(me)使用(yòng)“阻塞賦值”,in_reg和(hé)out的(de)值是(shì)一(yī)樣(yàng)的(de)?
答(dá):理解(jiě)“阻塞”这(zhè)含義,阻塞是(shì)一(yī)行一(yī)行先(xiān)後(hòu)執行。所(suǒ)以(yǐ)在(zài)时(shí)鐘(zhōng)上(shàng)升(shēng)沿来(lái)的(de)时(shí)候,先(xiān)有(yǒu)in給(gěi)了(le)in_reg,再有(yǒu)in_reg給(gěi)了(le)out。所(suǒ)以(yǐ)在(zài)时(shí)鐘(zhōng)上(shàng)升(shēng)沿的(de)时(shí)候,in为(wèi)1的(de)話(huà),那(nà)就(jiù)是(shì)先(xiān)in給(gěi)了(le)in_reg,此(cǐ)时(shí)in_reg等于(yú)1;然後(hòu)再in_reg給(gěi)了(le)out,此(cǐ)时(shí)out也(yě)为(wèi)1。所(suǒ)以(yǐ)最(zuì)終(zhōng)的(de)結果(guǒ),就(jiù)是(shì)一(yī)个(gè)时(shí)鐘(zhōng)上(shàng)升(shēng)沿後(hòu),in_reg和(hé)out都为(wèi)1,即两(liǎng)个(gè)值相同(tóng)。 |








