第(dì)一(yī)章(zhāng) FPGA时(shí)序約束(shù)分(fēn)享02_时(shí)鐘(zhōng)約束(shù)
作者(zhě):潘文(wén)明(míng)
上(shàng)一(yī)篇(piān)《FPGA时(shí)序約束(shù)分(fēn)享01_約束(shù)四(sì)大步驟》一(yī)文(wén)中(zhōng),介紹了(le)时(shí)序約束(shù)的(de)四(sì)大步驟。
上(shàng)图(tú)是(shì)四(sì)大步驟,并且每个(gè)步驟都分(fēn)别展(zhǎn)開(kāi)了(le)各(gè)種(zhǒng)情(qíng)況,後(hòu)續可(kě)以(yǐ)參考对(duì)照,分(fēn)别添加时(shí)序約束(shù)。本(běn)文(wén)講述上(shàng)图(tú)中(zhōng)的(de)第(dì)1點(diǎn):时(shí)鐘(zhōng)約束(shù)。
时(shí)鐘(zhōng)約束(shù)分(fēn)三(sān)種(zhǒng)情(qíng)況:輸入(rù)时(shí)鐘(zhōng)、PLL等衍生(shēng)时(shí)鐘(zhōng)以(yǐ)及(jí)自(zì)己分(fēn)頻的(de)时(shí)鐘(zhōng)。而(ér)其中(zhōng)輸入(rù)时(shí)鐘(zhōng)又可(kě)再分(fēn)三(sān)種(zhǒng),第(dì)一(yī)種(zhǒng)是(shì)輸入(rù)管(guǎn)脚是(shì)CLK的(de),第(dì)二(èr)種(zhǒng)是(shì)差分(fēn)时(shí)鐘(zhōng),最(zuì)後(hòu)一(yī)種(zhǒng)是(shì)GT或(huò) 恢複的(de)一(yī)个(gè)时(shí)鐘(zhōng)。下(xià)面(miàn)分(fēn)别展(zhǎn)開(kāi)描述。
第(dì)1节(jié) 輸入(rù)时(shí)鐘(zhōng)
輸入(rù)时(shí)鐘(zhōng)根(gēn)據(jù)管(guǎn)脚情(qíng)況,有(yǒu)三(sān)種(zhǒng)三(sān)種(zhǒng),第(dì)一(yī)種(zhǒng)是(shì)輸入(rù)管(guǎn)脚是(shì)CLK的(de),第(dì)二(èr)種(zhǒng)是(shì)差分(fēn)时(shí)鐘(zhōng),最(zuì)後(hòu)一(yī)種(zhǒng)是(shì)GT或(huò) 恢複的(de)一(yī)个(gè)时(shí)鐘(zhōng)。
1.1 輸入(rù)管(guǎn)脚CLK
时(shí)鐘(zhōng)直(zhí)接從管(guǎn)脚輸入(rù),如(rú)上(shàng)图(tú)所(suǒ)示。这(zhè)種(zhǒng)是(shì)最(zuì)常見(jiàn)的(de)一(yī)个(gè)情(qíng)況,包(bāo)括明(míng)德揚的(de)MP603、MP801学習板,其时(shí)鐘(zhōng)都是(shì)由(yóu)外(wài)部(bù)的(de)晶振産生(shēng),然後(hòu)直(zhí)接輸入(rù)管(guǎn)脚進(jìn)来(lái)的(de),这(zhè)種(zhǒng)情(qíng)況的(de)生(shēng)成(chéng)时(shí)鐘(zhōng)約束(shù)是(shì)最(zuì)簡單的(de),其格式如(rú)下(xià):
create_clock -name SysClk -period 10 -waveform {0 5} [get_ports Clk]
create_clock是(shì)生(shēng)成(chéng)約束(shù)約束(shù)命令。
name後(hòu)面(miàn)表(biǎo)示給(gěi)这(zhè)个(gè)时(shí)鐘(zhōng)命名,这(zhè)里(lǐ)命名为(wèi)SysClk,您可(kě)以(yǐ)命为(wèi)其他(tā)您所(suǒ)想(xiǎng)要(yào)的(de)名字(zì),即使跟代(dài)碼中(zhōng)的(de)时(shí)鐘(zhōng)名不(bù)同(tóng),都是(shì)可(kě)以(yǐ)的(de)。
period後(hòu)面(miàn)表(biǎo)示約定(dìng)該时(shí)鐘(zhōng)的(de)周期(qī),默認單位为(wèi)納秒(miǎo)。
waveform後(hòu)面(miàn)表(biǎo)示該时(shí)鐘(zhōng)在(zài)一(yī)个(gè)周期(qī)內(nèi)的(de)上(shàng)升(shēng)沿和(hé)下(xià)降沿时(shí)間(jiān)點(diǎn)。{0 5}表(biǎo)示时(shí)鐘(zhōng)在(zài)第(dì)0时(shí)刻上(shàng)升(shēng),在(zài)第(dì)5时(shí)鐘(zhōng)下(xià)降。通(tòng)过(guò)这(zhè)个(gè),設置了(le)时(shí)鐘(zhōng)的(de)占空比。
get_ports这(zhè)里(lǐ)指定(dìng)了(le)約束(shù)的(de)对(duì)象(xiàng),即对(duì)應(yìng)代(dài)碼中(zhōng)的(de)哪个(gè)信(xìn)号(hào),get_ports Clk,表(biǎo)示这(zhè)个(gè)时(shí)鐘(zhōng)就(jiù)是(shì)代(dài)碼或(huò)上(shàng)图(tú)中(zhōng)的(de)Clk。
这(zhè)个(gè)时(shí)鐘(zhōng)約束(shù)是(shì)最(zuì)常用(yòng)的(de),只(zhī)要(yào)參照这(zhè)種(zhǒng)格式生(shēng)成(chéng)晚(wǎn)就(jiù)可(kě)以(yǐ)了(le)。
假設说(shuō)該时(shí)鐘(zhōng)輸入(rù)後(hòu)經(jīng)过(guò)了(le)一(yī)个(gè)內(nèi)部(bù)的(de)PLL或(huò)者(zhě)MMCM(时(shí)鐘(zhōng)管(guǎn)理單元(yuán))後(hòu),再作为(wèi)工作时(shí)鐘(zhōng),此(cǐ)種(zhǒng)情(qíng)況下(xià),仍然是(shì)要(yào)对(duì)Clk約束(shù),其約束(shù)方(fāng)法跟前(qián)面(miàn)是(shì)一(yī)樣(yàng)的(de)。注意(yì),这(zhè)里(lǐ)说(shuō)的(de)是(shì)約束(shù)上(shàng)面(miàn)的(de)时(shí)鐘(zhōng)Clk,而(ér)不(bù)是(shì)MMCM的(de)輸出(chū)时(shí)鐘(zhōng)。
1.2 差分(fēn)时(shí)鐘(zhōng)
差分(fēn)时(shí)鐘(zhōng)是(shì)指通(tòng)过(guò)管(guǎn)脚的(de)P端和(hé)N端共(gòng)同(tóng)進(jìn)来(lái)的(de),通(tòng)常應(yìng)該到(dào)高(gāo)頻或(huò)者(zhě)精度(dù) 很高(gāo)的(de)场合,例如(rú)明(míng)德揚的(de)MP802、MP5620,以(yǐ)及(jí)各(gè)種(zhǒng)核心(xīn)板,基本(běn)上(shàng)外(wài)面(miàn)都有(yǒu)差分(fēn)晶振,有(yǒu)差分(fēn)时(shí)鐘(zhōng)的(de)輸入(rù)。
如(rú)果(guǒ)是(shì)差分(fēn)时(shí)鐘(zhōng),又是(shì)如(rú)何約束(shù)呢?
注意(yì)下(xià),差分(fēn)信(xìn)号(hào)在(zài)芯片(piàn)上(shàng),肯定(dìng)是(shì)占用(yòng)了(le)两(liǎng)个(gè)管(guǎn)脚位置,但在(zài)代(dài)碼中(zhōng)不(bù)一(yī)定(dìng)。在(zài)XILINX的(de)頂层接口(kǒu)代(dài)碼中(zhōng),差分(fēn)时(shí)鐘(zhōng)会(huì)对(duì)應(yìng)两(liǎng)个(gè)接口(kǒu)信(xìn)号(hào),分(fēn)别 P端和(hé)N端;而(ér)对(duì)于(yú)ALTERA,頂层接口(kǒu)信(xìn)号(hào)只(zhī)有(yǒu)一(yī)个(gè),不(bù)用(yòng)區(qū)分(fēn)出(chū)P端和(hé)N端,在(zài)管(guǎn)脚定(dìng)義时(shí),再来(lái)區(qū)分(fēn)出(chū)P和(hé)N。
对(duì)于(yú)ALTERA的(de)差分(fēn)时(shí)鐘(zhōng)約束(shù),其與(yǔ)單端輸入(rù)約束(shù)方(fāng)法完全(quán)一(yī)樣(yàng)。
对(duì)于(yú)XILINX的(de)差分(fēn)时(shí)鐘(zhōng)約束(shù),只(zhī)需要(yào)約束(shù)P端就(jiù)可(kě)以(yǐ)了(le),即:
create_clock -name SysClk -period 10 -waveform {0 5} [get_ports Clk_p]
1.3 GT或(huò)恢複的(de)时(shí)鐘(zhōng)
第(dì)三(sān)種(zhǒng)是(shì)GT或(huò)恢複的(de)时(shí)鐘(zhōng),即使用(yòng)了(le)高(gāo)速收(shōu)發(fà)器的(de)情(qíng)形,最(zuì)常見(jiàn)的(de)就(jiù)是(shì)光(guāng)纤接口(kǒu)了(le)。
在(zài)高(gāo)速收(shōu)發(fà)器管(guǎn)脚中(zhōng),是(shì)沒(méi)有(yǒu)时(shí)鐘(zhōng)的(de),时(shí)鐘(zhōng)已經(jīng)嵌入(rù)到(dào)數據(jù)里(lǐ)面(miàn)。接收(shōu)的(de)时(shí)候,我(wǒ)们(men)使用(yòng)高(gāo)速收(shōu)發(fà)器如(rú)GTX、GTY IP核接收(shōu)數據(jù),并且從數據(jù)时(shí)提(tí)取(qǔ)出(chū)时(shí)鐘(zhōng)。这(zhè)个(gè)恢複出(chū)来(lái)的(de)时(shí)鐘(zhōng)就(jiù)是(shì)此(cǐ)種(zhǒng)情(qíng)形,例如(rú)上(shàng)图(tú)中(zhōng)的(de)GT模块(kuài),就(jiù)是(shì)FPGA內(nèi)部(bù)使用(yòng)的(de)一(yī)个(gè)IP核,其輸出(chū)了(le)时(shí)鐘(zhōng)TXCLK。
在(zài)这(zhè)種(zhǒng)情(qíng)況下(xià),我(wǒ)们(men)需要(yào)約束(shù)这(zhè)个(gè)恢複出(chū)来(lái)的(de)时(shí)鐘(zhōng)。按前(qián)面(miàn)方(fāng)式,同(tóng)樣(yàng)也(yě)是(shì)使用(yòng)create_clock,定(dìng)義时(shí)鐘(zhōng)周期(qī)、占空比等,但約束(shù)对(duì)象(xiàng)需要(yào)注意(yì)一(yī)下(xià),不(bù)是(shì)通(tòng)过(guò)get_ports,而(ér)是(shì)通(tòng)过(guò)get_pins找(zhǎo)到(dào)对(duì)象(xiàng),該对(duì)象(xiàng)是(shì)恢複出(chū)的(de)时(shí)鐘(zhōng),如(rú)上(shàng)图(tú)中(zhōng)的(de)GT/TXOUTCLK,即:
create_clock -name txClk -period 6.667-waveform {0 5} [get_pins GT/TXOUTCLK]
上(shàng)面(miàn)産生(shēng)了(le)一(yī)个(gè)名为(wèi)txClk的(de)約束(shù),其对(duì)象(xiàng)为(wèi)GT/TXOUTCLK,周期(qī)为(wèi)6.667,即133M。
对(duì)于(yú)get_ports和(hé)get_pins的(de)區(qū)别,可(kě)以(yǐ)簡單認为(wèi),get_ports是(shì)FPGA頂层的(de)接口(kǒu),該接口(kǒu)是(shì)要(yào)連(lián)到(dào)FPGA芯片(piàn)管(guǎn)脚上(shàng)的(de);get_pins是(shì)模块(kuài)內(nèi)的(de)輸出(chū)管(guǎn)脚。如(rú)果(guǒ)大家(jiā)不(bù)清(qīng)楚是(shì)用(yòng)哪个(gè),可(kě)以(yǐ)使用(yòng)工具,工具会(huì)提(tí)醒您怎麼(me)找(zhǎo)出(chū)这(zhè)个(gè)信(xìn)号(hào)来(lái)的(de)。
注意(yì)上(shàng)面(miàn)找(zhǎo)到(dào)的(de)是(shì)GT/TXOUTCLK,而(ér)不(bù)是(shì)图(tú)中(zhōng)的(de)TXCLK。这(zhè)是(shì)因(yīn)为(wèi)TXCLK是(shì)例化(huà)的(de)信(xìn)号(hào),有(yǒu)时(shí)候是(shì)找(zhǎo)不(bù)出(chū)来(lái)的(de)。这(zhè)个(gè)时(shí)候,需要(yào)設計(jì)者(zhě)找(zhǎo)到(dào)GT模块(kuài),再仔细(xì)辨識出(chū)时(shí)鐘(zhōng)信(xìn)号(hào)是(shì)哪个(gè),非(fēi)常考验(yàn)設計(jì)师(shī)的(de)經(jīng)验(yàn)。
第(dì)2节(jié) PLL等衍生(shēng)时(shí)鐘(zhōng)
上(shàng)图(tú)是(shì)时(shí)鐘(zhōng)Clk經(jīng)过(guò)內(nèi)部(bù)的(de)MMCM时(shí)鐘(zhōng)管(guǎn)理單元(yuán),該时(shí)鐘(zhōng)管(guǎn)理單元(yuán)在(zài)此(cǐ)基礎上(shàng)倍頻或(huò)者(zhě)分(fēn)頻等,産生(shēng)輸出(chū)时(shí)鐘(zhōng)CLKOUT0,該时(shí)鐘(zhōng)用(yòng)于(yú)驅動(dòng)REGA和(hé)REGB。在(zài)前(qián)面(miàn)的(de)介紹里(lǐ),我(wǒ)们(men)知道(dào)需要(yào)对(duì)Clk進(jìn)行約束(shù),使用(yòng)的(de)是(shì)create_clock命令。那(nà)麼(me)上(shàng)图(tú)中(zhōng)的(de)CLKOUT0要(yào)不(bù)要(yào)約束(shù)呢?
对(duì)于(yú)PLL和(hé)MMCM,一(yī)般VIVIDAO、ISE和(hé)QUARTUS工具是(shì)可(kě)以(yǐ)推導出(chū)該时(shí)鐘(zhōng)約束(shù)的(de),因(yīn)为(wèi)我(wǒ)们(men)在(zài)生(shēng)成(chéng)IP核的(de)时(shí)候,已經(jīng)設置了(le)該时(shí)鐘(zhōng)的(de)輸入(rù)和(hé)輸出(chū) 时(shí)鐘(zhōng)頻率、相位等信(xìn)息,通(tòng)过(guò)这(zhè)些信(xìn)息,工具就(jiù)可(kě)以(yǐ)推導出(chū)时(shí)鐘(zhōng)約束(shù)。
因(yīn)此(cǐ),对(duì)于(yú)XILINX可(kě)以(yǐ)不(bù)用(yòng)約束(shù)PLL和(hé)MMCM産生(shēng)的(de)时(shí)鐘(zhōng);对(duì)于(yú)ALTERA,也(yě)可(kě)以(yǐ)自(zì)動(dòng)推導的(de),但需要(yào)添加如(rú)下(xià)命令,才会(huì)自(zì)動(dòng)推導:
derive_pll_clocks
虽然工具可(kě)以(yǐ)自(zì)動(dòng)推導PLL和(hé)MMCM産生(shēng)的(de)时(shí)鐘(zhōng)約束(shù),但是(shì)其約束(shù)时(shí)鐘(zhōng)名是(shì)不(bù)受設計(jì)师(shī)控制或(huò)預見(jiàn)的(de)。这(zhè)会(huì)带(dài)来(lái)什麼(me)問(wèn)題(tí)呢?
我(wǒ)们(men)産生(shēng)时(shí)鐘(zhōng)約束(shù)後(hòu),通(tòng)常還(huán)会(huì)在(zài)基于(yú)此(cǐ)时(shí)鐘(zhōng)産生(shēng)其他(tā)約束(shù),例如(rú)下(xià)面(miàn)是(shì)input delay的(de)約束(shù):
set_input_delay -clock sysclk -max 4 [get_ports ain]
上(shàng)面(miàn)是(shì)input delay的(de)約束(shù),对(duì)象(xiàng)是(shì)ain,但注意(yì)看(kàn),-clock後(hòu)面(miàn)的(de)sysclk是(shì)时(shí)鐘(zhōng)約束(shù)産生(shēng)的(de)时(shí)鐘(zhōng)名(注意(yì)是(shì)約束(shù)名,不(bù)是(shì)代(dài)碼中(zhōng)的(de)时(shí)鐘(zhōng)信(xìn)号(hào)),这(zhè)说(shuō)明(míng)input delay約束(shù)时(shí),是(shì)依賴时(shí)鐘(zhōng)約束(shù)名的(de)。
如(rú)果(guǒ)由(yóu)工具自(zì)動(dòng)推導PLL和(hé)MMCM産生(shēng)时(shí)鐘(zhōng)約束(shù),那(nà)麼(me)名字(zì)就(jiù)不(bù)知道(dào),或(huò)者(zhě)虽然知道(dào)了(le),但可(kě)能(néng)稍微改下(xià)代(dài)碼名稱又變(biàn)了(le)。这(zhè)樣(yàng)会(huì)導致(zhì)依賴于(yú)此(cǐ)名字(zì)的(de)其他(tā)約束(shù),会(huì)存在(zài)失效而(ér)不(bù)知道(dào)的(de)风险。
因(yīn)此(cǐ),明(míng)德揚建議对(duì)PLL和(hé)MMCM産生(shēng)时(shí)鐘(zhōng)添加約束(shù),确定(dìng)时(shí)鐘(zhōng)名。
例如(rú)上(shàng)面(miàn)的(de)電(diàn)路(lù),添加如(rú)下(xià)約束(shù)
create_clcok –name clk_200 –period 5 [get_ports Clk]
create_generated_clock -name my_clk [get_pins MMCM/CLKOUT0]
-source [get_pins MMCM/CLKIN]
-master_clock clk_200
首先(xiān)通(tòng)过(guò)create_clock命令对(duì)輸入(rù)管(guǎn)脚Clk約束(shù),周期(qī)为(wèi)5,命名为(wèi)Clk_200。然後(hòu)通(tòng)过(guò)create_geneated_clock对(duì)MMCM産生(shēng)的(de)CLKOUT0約束(shù),命名为(wèi)my_clk;約束(shù)对(duì)象(xiàng)为(wèi)MMCM/CLKOUT0;通(tòng)过(guò)-source表(biǎo)明(míng)来(lái)源于(yú)MMCM/CLKIN,即MMCM的(de)輸入(rù)管(guǎn)脚;通(tòng)过(guò)-master_clock表(biǎo)明(míng)其主(zhǔ)时(shí)鐘(zhōng)是(shì)clk_200。
通(tòng)过(guò)上(shàng)面(miàn)方(fāng)法,就(jiù)可(kě)以(yǐ)确定(dìng)MMCM的(de)时(shí)鐘(zhōng)名,已經(jīng)固定(dìng)为(wèi)my_clk,不(bù)会(huì)再變(biàn)了(le)。前(qián)面(miàn)提(tí)及(jí)的(de)input delay約束(shù),就(jiù)会(huì)變(biàn)为(wèi)如(rú)下(xià):
set_input_delay -clock my_clk -max 4 [get_ports ain]
第(dì)3节(jié) 自(zì)己分(fēn)頻的(de)时(shí)鐘(zhōng)
第(dì)三(sān)種(zhǒng)就(jiù)是(shì)自(zì)己分(fēn)頻的(de)时(shí)鐘(zhōng)。如(rú)上(shàng)图(tú)所(suǒ)示,CLK1經(jīng)过(guò)一(yī)个(gè)D觸發(fà)器,通(tòng)过(guò)該觸發(fà)器二(èr)分(fēn)頻産生(shēng)了(le)时(shí)鐘(zhōng)CLK2。
首先(xiān)说(shuō)明(míng),明(míng)德揚不(bù)推薦使用(yòng)此(cǐ)方(fāng)法来(lái)産生(shēng)时(shí)鐘(zhōng),我(wǒ)们(men)建議全(quán)部(bù)使用(yòng)PLL等来(lái)産生(shēng)时(shí)鐘(zhōng)。如(rú)果(guǒ)确实要(yào)用(yòng)到(dào)分(fēn)頻时(shí)鐘(zhōng)时(shí),那(nà)就(jiù)要(yào)記(jì)得做时(shí)鐘(zhōng)約束(shù)。这(zhè)種(zhǒng)情(qíng)況下(xià)要(yào)怎麼(me)進(jìn)行約束(shù)呢?下(xià)面(miàn)是(shì)推薦的(de)約束(shù)方(fāng)法。
create_clcok –name CLK1 –period 5 [get_ports CKP1]
create_generated_clock -name CLK2 [get_pins REGA/Q]
-source [get_ports CKP1] –divide_by 2
首先(xiān)通(tòng)过(guò)create_clock産生(shēng)对(duì)管(guǎn)脚CKP1的(de)时(shí)鐘(zhōng)約束(shù),周期(qī)定(dìng)为(wèi)5,名字(zì)为(wèi)CLK1。
然後(hòu)通(tòng)过(guò)create_generated_clock産生(shēng)二(èr)分(fēn)頻後(hòu)的(de)时(shí)鐘(zhōng)約束(shù),对(duì)象(xiàng)是(shì)REGA/Q,即D觸發(fà)器的(de)輸出(chū)信(xìn)号(hào);然後(hòu)要(yào)指示該时(shí)鐘(zhōng)来(lái)自(zì)于(yú)CKP1,通(tòng)过(guò)-source来(lái)指定(dìng);最(zuì)後(hòu)還(huán)要(yào)说(shuō)明(míng)頻率,通(tòng)过(guò)-divide_by来(lái)说(shuō)明(míng)幾(jǐ)分(fēn)頻,-divide_by 2是(shì)表(biǎo)示二(èr)分(fēn)頻,即CKP1时(shí)鐘(zhōng)的(de)一(yī)半頻率。
注意(yì)的(de)是(shì),一(yī)定(dìng)要(yào)通(tòng)过(guò)-divide_by来(lái)指定(dìng)頻率,因(yīn)为(wèi)工具无法從您的(de)代(dài)碼中(zhōng)推導出(chū)頻率的(de)。
強(qiáng)烈建議,分(fēn)頻时(shí)鐘(zhōng)一(yī)定(dìng)要(yào)約束(shù),經(jīng)验(yàn)之談,沒(méi)有(yǒu)約束(shù)的(de)話(huà),时(shí)鐘(zhōng)是(shì)不(bù)稳定(dìng)的(de),会(huì)産生(shēng)莫名其妙的(de)問(wèn)題(tí)的(de),这(zhè)方(fāng)面(miàn)我(wǒ)们(men)已經(jīng)吃过(guò)虧的(de)。
第(dì)4节(jié) 總(zǒng)結與(yǔ)建議
好(hǎo)了(le),我(wǒ)们(men)在(zài)这(zhè)里(lǐ)再總(zǒng)結一(yī)下(xià)。
首先(xiān),本(běn)文(wén)将时(shí)鐘(zhōng)約束(shù)分(fēn)了(le)好(hǎo)幾(jǐ)種(zhǒng)情(qíng)況,制成(chéng)了(le)一(yī)个(gè)表(biǎo)。您可(kě)以(yǐ)根(gēn)據(jù)实際情(qíng)況,对(duì)照步驟表(biǎo),從而(ér)制定(dìng)自(zì)己需要(yào)在(zài)我(wǒ)約束(shù)。
其次(cì),注意(yì)一(yī)下(xià)約束(shù)的(de)优先(xiān)級。
自(zì)定(dìng)義約束(shù)覆蓋工具推導的(de)約束(shù)。前(qián)面(miàn)講过(guò),有(yǒu)些約束(shù)工具是(shì)可(kě)以(yǐ)推導出(chū)来(lái)的(de)。如(rú)果(guǒ)自(zì)己又定(dìng)義了(le)該对(duì)象(xiàng)的(de)約束(shù),那(nà)麼(me)这(zhè)个(gè)約束(shù)将覆蓋工具推導出(chū)来(lái)的(de)約束(shù),即定(dìng)義的(de)約束(shù)有(yǒu)效,推導出(chū)来(lái)的(de)約束(shù)无效。
後(hòu)定(dìng)義的(de)約束(shù)覆蓋先(xiān)定(dìng)義的(de)約束(shù)。例如(rú),在(zài)開(kāi)始的(de)时(shí)候定(dìng)義了(le)一(yī)个(gè)对(duì)CLK的(de)約束(shù),定(dìng)義为(wèi)100M,後(hòu)面(miàn)又有(yǒu)一(yī)个(gè)对(duì)CLK的(de)約束(shù),定(dìng)義为(wèi)200M,那(nà)麼(me)以(yǐ)哪个(gè)为(wèi)準呢?那(nà)就(jiù)以(yǐ)後(hòu)面(miàn)的(de)为(wèi)準,約束(shù)为(wèi)200M。
但有(yǒu)时(shí)候需要(yào)对(duì)多(duō)个(gè)約束(shù)同(tóng)时(shí)有(yǒu)效,即多(duō)个(gè)約束(shù)共(gòng)存,那(nà)麼(me)可(kě)以(yǐ)在(zài)約束(shù)後(hòu)面(miàn)加上(shàng)-add,以(yǐ)此(cǐ)表(biǎo)明(míng)不(bù)要(yào)覆蓋前(qián)面(miàn)約束(shù),而(ér)是(shì)共(gòng)同(tóng)有(yǒu)效。
下(xià)一(yī)篇(piān)文(wén)章(zhāng),我(wǒ)们(men)将具體(tǐ)探讨“input delays約束(shù)”的(de)內(nèi)容,講解(jiě)各(gè)種(zhǒng)情(qíng)況下(xià)的(de)时(shí)序約束(shù)方(fāng)法。需要(yào)更(gèng)多(duō)更(gèng)詳细(xì)的(de)資料和(hé)文(wén)檔,可(kě)以(yǐ)找(zhǎo)作者(zhě)了(le)解(jiě)領取(qǔ)。
温(wēn)馨提(tí)示:明(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. 前(qián)端模拟采集、射頻、電(diàn)荷靈敏前(qián)置放(fàng)大器
需要(yào)了(le)解(jiě)相關(guān)信(xìn)息可(kě)以(yǐ)聯系(xì):江老(lǎo)师(shī)18022859964(微信(xìn)同(tóng)号(hào))
明(míng)德揚科技教育
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. 前(qián)端模拟采集、射頻、電(diàn)荷靈敏前(qián)置放(fàng)大器








