




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、FPGAQuartusII時鐘約束時鐘約束(ClockSpecification):約束所有時鐘(包括你的設計中特有的時鐘)對準確的時序分析結果而言是必不可少的。QuartusIITimeQuestTimingAnalyzer為各種各樣的時鐘配置和典型時鐘提供許多SDC命令。這個章節將介紹SDC可用的應用編程接口,以及描述指定的時鐘特性。時鐘(Clocks)使用create_clock命令為任何register,port或pin進行時鐘特性描述,使其具有獨一的時鐘特性。例62展示了create_clock命令:Example62.create_clockCommandcreate_clock-
2、period-name-waveform-addTable66.create_clockCommandOptions選項描述-period指定時鐘周期-name指定時鐘名稱(不一定是約束時鐘的節點名稱)-waveform指定時鐘上升沿/下降沿-add可以對一個時鐘節點進行多個時鐘約束指定你要約束的時鐘(目標節點)Example63約束時鐘頻率100MHz,占空比50%,0ns上升沿,5ns下降沿。Example63.100MHzClockCreationcreate_clockperiod10waveform05clkExample64和上例相差90度的相位。Example64.100MHzS
3、hiftedby90DegreesClockCreationcreate_clockperiod10waveform2.57.5clk_sys使用create_clock命令約束時鐘缺省的sourceLatency值為0。QuartusIITimeQuestTimingAnalyzer自動為非虛擬時鐘(non-virtualclocks)計算時鐘網絡延時(clocksnetworklaten)QuartusIIHandbook,Volume36-29生成時鐘(GeneratedClocks)QuartusIITimeQuestTimingAnalyzer可以把修改或改變主時鐘(或者引入時鐘)特
4、性的分頻時鐘、波紋時鐘和電路作為生成時鐘。你可以定義這些電路的輸出作為生成時鐘。這些定義可以讓QuartusIITimeQuestTimingAnalyzer分析這些時鐘以及關聯的時鐘網絡延時(networklatency)。使用create_generated_clock命令定義生成時鐘。Example65.create_generated_clockCommandcreate_generated_clock-name-source-edges-edge_shift-divide_by-multiply_by-duty_cycle-add-invert-master_clock-phase-
5、offsetTable67.create_generated_clockCommandOptions選項描述-name生成時鐘名-sourcevmasterpin指定被設定的時鐘節點-edgesvedgelist|-edge_shiftvshiftlist-edges指定和主時鐘的上升沿和下降沿有關的新的上升沿和下降沿-divide_byvfactor|-multiply_byvfactor-divideby和-multiplyby要素是基于第個時鐘上升沿,通過factor設定來延長或者縮短指定要素的波形-duty_cyclevpercent指定生成時鐘的占空比-add允許你對同一個管腳添加多
6、個時鐘約束-invert-master_clockvclock用于主管腳上有多個時鐘存在時指定一個主時鐘-phasevphase指定生成時鐘的相位-offset指定生成時鐘的偏移指定被分配到的目標管腳源延時是由于從主時鐘(不一定是主管腳)開始的時鐘網絡延時所致。你可以使用set_clock_latencysource命令約束源延時。Figure617展示了如何產生一個基于10ns時鐘的反向生成時鐘:Figure617.GeneratinganInvertedClockcreate_clock-period10get_portsclkcreate_generated_clock-divide_b
7、y1-invert-sourceget_registersclkget_registersgen|clkregFigure618展示了如何使用-edges和-edge_shift選項以改變生成時鐘。Figure618.EdgesandEdgeShiftingaGeneratedClockcreate_clock-period10-waveform05get_portsclkCreatesadivide-by-tclockcreate_generated_clock-sourceget_portsclk-edges135get_registersclkdivA|clkregCreatesadiv
8、ide-by-2clockindependentofthemasterclocksdutycycle(now50%)create_generated_clock-sourceget_portsclk-edges115-edge_shift02.5Figure619展示了-multiply_by選項對生成時鐘的影響。Figure619.MultiplyingaGeneratedClockcreate_clock-period10-waveform05get_portsclk#Createsamultiply-by-2clockcreate_generated_clock-sourceget_po
9、rtsclk-multiply_by2get_registersQuartusIIHandbook,Volume36-32虛擬時鐘VirtualClocks虛擬時鐘是一個在設計中沒有真正源或者說與設計沒有直接關系的一個時鐘。例如,如果一個時鐘不是設計中的時鐘,而僅僅作為一個外部器件的時鐘源,并且外部器件和該設計有輸入或者輸出的管腳,那么就認為這個時鐘是虛擬時鐘。使用create_clock命令創造一個虛擬時鐘,對源選項沒有指定值。你可以使用set_input_delay和set_output_delay約束虛擬時鐘。Figure620展示了QuartusIITimeQuestTimingAna
10、lyzer若要正確的分析外部寄存器和內部設計邏輯之間的關系,在何處需要設置虛擬時鐘的實例。雖然名為virt_clk的晶振沒有和Altera器件直接相互作用,但是擔當起了外部寄存器的源時鐘的角色,所以時鐘virt_clk必須申明。Example66展示了定義一個周期10ns,名為virt_clk,50%占空比,上升沿在0ns的虛擬時鐘的命令。虛擬時鐘用于作為輸出延時約束的時鐘源。在你產生虛擬時鐘之后,你可以執行register-to-register的分析報告(在Altera器件和外部器件的寄存器之間)。Example66.虛擬時鐘Example1#createbaseclockforthede
11、signcreate_clock-period5get_portssystem_clk#createthevirtualclockfortheexternalregistercreate_clock-period10-namevirt_clk-waveform05#settheoutputdelayreferencingthevirtualclockset_output_delay-clockvirt_clk-max1.5get_portsdataoutExample67展示了產生一個周期為10ns,占空比為50%,相移90度虛擬時鐘的命令。Example67.VirtualClockExam
12、ple2create_clock-namevirt_clkperiod10waveform2.57.5QuartusIIHandbook,Volume36-33多頻時鐘Multi-FrequencyClocks某些情況下在設計中會有很多個時鐘源提供時鐘信號。增加的時鐘也許扮演一個低頻率低功耗時鐘的角色。在分析這種設計時,create_clock命令提供了add選項讓你添加多個時鐘節點。Example68展示了時鐘周期為10ns的節點clk,然后對同一個節點添加時鐘周期為15ns的時鐘。QuartusIITimeQuestTimingAnalyzer在執行時序分析時兩個時鐘都用到了。Exampl
13、e68.Multi-FrequencyExamplecreate_clockperiod10nameclock_primarywaveform05get_portsclkcreate_clockperiod15nameclock_secondarywaveform07.5get_portsclk-addQuartusIIHandbook,Volume36-34自動時鐘檢測AutomaticClockDetection想要為你的設計中所有的時鐘節點自動添加時鐘約束,那么就使用derive_clocks命令。這個命令從管腳或者寄存器生成時鐘以確保設計中的每個寄存器都有時鐘。Example69展示了
14、derive_clocks命令選項。Example69.derive_clocksCommandderive_clocks-period-waveformTable68describestheoptionsforthederive_clockscommand.選項描述-period指定時鐘周期,你也可以指定時鐘頻率如下:-periodMHz-waveform指定沿變化時刻derive_clocks命令不能為PLLs輸出時鐘進行約束。derive_clocks命令相當于使用create_clock命令為每個寄存器或者管腳產生時鐘。QuartusIIHandbook,Volume36-35鎖相環時
15、鐘DerivePLLClocksPLLs(鎖相環)在Altera器件中被用于時鐘管理和綜合。你可以定制基于你設計需要的PLL輸出時鐘約束。因為所有的時鐘節點應該有一個共同的時鐘基準,故所有的PLL輸出應該有一個關聯時鐘。你可以使用create_generated_clock命令手動添加一個作為PLL輸出的基準時鐘,或者你也可以使用derive_pll_clocks命令自動搜尋時序網表并通過設置指定PLL輸出來產生時鐘。使用derive_pll_clocks命令為PLL輸出自動產生時鐘的實例如下:derive_pll_clocks-use_tan_nameTable69.derive_pll_c
16、locksCommandOptions選項描述-use_tan_name缺省下,時鐘名為輸出時鐘名字。這個選項使用的網絡名字類似于在QuartusIIClassicTimingAnalyzer中使用的。derive_pll_clocks命令調用create_generated_clock命令以產生PLL輸出的生成時鐘。create_generated_clock命令的source是PLL的輸入時鐘。derive_pll_clocks命令的前后已固定,你必須手動為PLL生成一個輸入時鐘節點。如果PLL的輸入時鐘節點未被定義好,報告中不會出現PLL輸出的時鐘。取而代之的,當時序網表更新后,Quar
17、tusIITimeQuestTimingAnalyzer發出一個類似于Figure610的警告信息。Example610.WarningMessageWarning:Themasterclockforthisclockassignmentcouldnotbederived.Clock:wasnotcreated.你可以把derive_pll_clocks命令添加到你的SDC文件中,以使得derive_pll_clocks命令可以自動檢測PLL的任何變化derive_pll_clocks在你的SDC文件中,每次讀取該文件,PLL輸出時鐘腳的create_generated_clock命令就將生成
18、。如果在derive_pll_clock命令后使用write_sdc命令,新的SDC文件包含了獨立的PLL輸出時鐘管腳的create_generated_clock命令,并且不是derive_pll_clocks命令。任何PLL屬性的變化不會自動的反應到新的SDC文件中。你必須通過寫入derive_pll_clocks命令手動更新新的SDC文件中的create_generated_clock命令(反映PLL的變化)。通過添加適當的multicycle約束計算不確定因素,derive_pll_clocks將約束設計中的任何LVDS傳送和LVDS接收。例如,Figure621展示了一個寄存器到寄存
19、器路徑的單一PLL設計。使用derive_pll_clocks命令自動約束PLL。當Figure621的設計中使用到這個命令,將產生Example611的信息。Example611.derive_pll_clocksGeneratedMessagesInfo:Info:DerivingPLLClocks:Info:create_generated_clock-sourcepll_inst|altpll_component|pll|inclk0-divide_by2-namepll_inst|altpll_component|pll|CLK0pll_inst|altpll_component|p
20、ll|clk0Info:名為pll_inst|altpll_component|pll|inclk0的節點用于作為PLL輸入時鐘腳的源參考選項。此外,PLL輸出時鐘的名字是PLL輸出時鐘節點pll_inst|altpll_component|pll|clk0。如果PLL處于時鐘替換模式,PLL輸出時鐘將產生多時鐘;一個是主要輸入時鐘(例如inclkO),另一個是次要輸入時鐘(例如inclk1)。假若那樣的話,你可以使用set_cock_groups命令加上-exclusive選項以削減主要和次要輸出時鐘。在你可以為這個設計產生任何報告之前,你必須為PLL輸入時鐘管腳產生一個基本時鐘,使用類似下
21、面的命令:create_clock-period5get_portspll_inclk你不用在PLL的輸入時鐘管腳pll_inst|altpll_component|pll|inclk0上產生基本時鐘。PLL輸入時鐘管腳產生所有的扇出時鐘管腳,包括PLL輸入時鐘管腳。QuartusIIHandbook,Volume36-37缺省時鐘約束DefaultClockConstraints為了提供徹底的時鐘分析,如果你的設計中沒有基本時鐘約束,QuartusIITimeQuestTimingAnalyzer在缺省時會自動的檢測所有未被約束的時鐘節點。QuartusIITimeQuestTimingAn
22、alyzer使用以下命令產生1GHz的時鐘約束你的未約束時鐘:derive_clocks-period1獨立的時鐘約束(例如,create_clock,create_generated_clock)可能會出現在設計中。這將導致不切實際的分析設計中的時序要求。derive_clocks的使用應該避免出現在最終的時序里。缺省時鐘約束僅僅被用于QuartusIITimeQuestTimingAnalyzer檢測所有沒有時鐘連接的同步單元。例如,如果一個設計約束兩個時鐘,而僅有一個時鐘已經約束了,這將不會使用缺省時鐘約束。然而,如果兩個時鐘都未被約束,那么將會啟動缺省時鐘約束。QuartusIIHan
23、dbook,Volume36-37ClockGroups設計中存在著許多時鐘,然而,并非所有時鐘都相互關聯,況且某些時鐘間相互關聯是沒有必要的。異步時鐘就是不相關時鐘(異步時鐘有不同的理想時鐘源)。專用時鐘也不一定在同一時刻激活(例如,多元時鐘)。必須向QuartusIITimeQuestTimingAnalyzer指明相互排斥的時鐘,從而阻止其把這些時鐘作為關聯時鐘進行分析。使用set_clock_groups命令指明相互排斥或者異步的時鐘。Example612展示了set_clock_groups命令及選項。Example612.set_clock_groupsCommandset_clo
24、ck_groups-asynchronous|-exclusive-group-group-group.Table610describestheoptionsfortheset_clock_groupscommand.選項描述-asynchronous異步時鐘一激活兩個時鐘沒有相位關系并且不在同時刻-exclusive專有時鐘兩個時鐘中僅有個在特定時間激活。2選1時鐘就是專有時鐘的一個實例-group指定相互獨有的時鐘名。vclockname用于指定時鐘名Example613展示了set_clock_groups命令和等價命令set_false_path的用法。Example613.set_c
25、lock_groupsExampleClocksAandCareneveractivewhenclocksBandDareactiveset_clock_groups-exclusive-groupAC-groupBDEquivalentspecificationusingfalsepathsset_false_path-fromget_clocksA-toget_clocksBset_false_path-fromget_clocksA-toget_clocksDset_false_path-fromget_clocksC-toget_clocksBset_false_path-fromge
26、t_clocksC-toget_clocksDset_false_path-fromget_clocksB-toget_clocksAset_false_path-fromget_clocksB-toget_clocksCset_false_path-fromget_clocksD-toget_clocksAset_false_path-fromget_clocksD-toget_clocksCQuartusIIHandbook,Volume36-39影響時鐘特性ClockEffectCharacteristicscreate_clock和create_generated_clock命令產生不
27、涉及板級影響的理想時鐘。這個章節描述如何計算影響時鐘特性的時鐘延時(clocklatency)和時鐘不確定時間(clockuncertainty)。時鐘延時ClockLatency時鐘延時(clocklatency)由兩部分組成:源(source)和網絡(network)。源延時(Sourcelatency),是指從源時鐘到目的時鐘端的傳播延時(例如,一個時鐘端口),而網絡延時(networklatency)是指從一個定義點時鐘到一個寄存器時鐘端口的傳播延時。寄存器時鐘節點總的延時是時鐘路徑上源和網絡延時之和。set_clock_latency命令僅僅支持源延時。當使用該命令時,-source
28、選項需指定。使用set_clock_latency命令指定設計中的任意時鐘端口的源延時Example614展示了set_clock_latency命令選項。Example614.set_clock_latencyCommandset_clock_latency-source-clock-rise|-fall-late|-earlyQuartusIITimeQuestTimingAnalyzer自動計算網絡延時;因此,set_clock_latency命令僅僅指定源延時。時鐘不確定時間ClockUncertaintyset_clock_uncertainty命令為時鐘或者時鐘到時鐘傳輸指定了時鐘
29、不確定時間或時鐘偏斜??梢詾閭€別的建立和保持時間指定不確定時間,也可以為個別時鐘傳輸指定上升沿或下降沿。QuartusIITimeQuestTimingAnalyzer為每個合適路徑數據需要時間(datarequired廿me)里扣除建立不確定時間,為每個合適路徑的數據需要時間加上保持不確定時間。使用set_clock_uncertainty命令指定時鐘管腳的任意時鐘不確定時間。Example615展示了set_clock_uncertainty命令及選項。Example615.set_clock_uncertaintyCommandandOptionsset_clock_uncertaint
30、y-rise_from|-fall_from|-from-rise_to|-fall_to|-to-setup|-holdQuartusIIHandbook,Volume36-41獲得時鐘不確定時間DeriveClockUncertainty使用derive_clock_uncertainty命令應用于交互時鐘(inter-clock)、內部時鐘(intra-clock)和I/O接口的不確定時間的自動檢測。建立和保持不確定時間都適合于時鐘到時鐘的傳輸。Example616展示了derive_clock_uncertainty命令選項。Example616.derive_clock_uncert
31、aintyCommandderive_clock_uncertainty-overwrite-dtwQuartusIITimeQuestTimingAnalyzer自動的添加設計中時鐘到時鐘傳輸的時鐘不確定時間。隨著set_clock_uncertainty命令已被應用于源和目的時鐘對中的任何時鐘不確定時間約束,比起由derive_clock_uncertainty命令約束的時鐘不確定時間具有更高的優先權。例如,如果set_clock_uncertainty命令先指定了源時鐘CLKA和目的時鐘CLKB之間的時鐘網絡延時。那么derive_clock_uncertainty命令次之,由derive_clock_uncertainty命令計算出的由源時鐘CLKA到目的時鐘CLKB的不確定時間將被忽略。你可以使用-overwrite命令覆蓋原先的時鐘不確定時間分配,后者手動添加remove_clock_uncertainty命令進行移除。在以下的時鐘到時鐘傳輸類型中,時鐘必然能夠出現,它們被derive_clock_uncertainty命令自動歸類。Inter-clockIntra-clockI/OInterface交互時鐘傳輸Inter-ClockTransfers交互時鐘傳輸(Inter-clocktransfers)發生在FPGA核和來自內部PLL輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融學專業考試試卷及答案
- 2025年土木工程專業考試試卷及答案分享
- 2025年資產評估師考試題及答案
- 2025年計算機科學與技術專業考試試題及答案
- 2025年園藝師資格考試試卷及答案測試
- 2025年區域經濟學考試試題及答案
- 拼多多平臺店鋪流量精準投放與市場拓展合同
- 國際知識產權許可仲裁條款協議
- 智能環衛灑水車租賃與道路清潔及綠化服務協議
- 生物芯片研發與生產全球市場戰略合作伙伴協議
- 加油機更換施工方案
- NT檢查規范-課件
- 信息技術與數學融合案例
- 大眾朗逸2014款說明書
- 沉井施工(填空練習)
- 中藥學電子版教材
- 畢業設計外文文獻-基于 Vue.js 的后臺單頁應用管理系統的研究與實現
- 新產品開發打樣流程
- 三軸龍門機械手
- 婦產科護理學智慧樹知到答案章節測試2023年石河子大學
- 文化差異與跨文化交際智慧樹知到答案章節測試2023年
評論
0/150
提交評論