時序邏輯電路的建立,保持時間裕量分析
在Verilog里,時序邏輯電路即表示如下圖所示的電路。前后兩級寄存器之間有一個組合邏輯運算電路。
假設寄存器的建立時間要求為tsetup, 保持時間要求為thold, 輸出延時為tcq。
故對于第一個寄存器,時鐘上升沿之后,經(jīng)過時間tcq數(shù)據(jù)才從Q端輸出。波形圖示如下。
假設組合邏輯運算電路的運算耗時為tlogic。故運算后的數(shù)據(jù)在時鐘上升沿之后經(jīng)過時間tcq+tlogic才到達下一級寄存器的D端,圖示如下。
那么對于下一級寄存器在接下來到來的時鐘上升沿采集數(shù)據(jù),其必須要滿足建立保持時間要求。
建立時間:既數(shù)據(jù)D至少需要提前于clk上升沿多長時間到來,數(shù)據(jù)的采集才不會出錯。
從上述分析可得數(shù)據(jù)D提前于clk上升沿的時間為 tcycle-(tcq+tlogic)。
其中tcycle為時鐘周期。
如果tcycle-(tcq+tlogic) >tsetup 那么建立時間要求就得到了滿足。一般稱tcycle-(tcq+tlogic) -tsetup 為建立時間裕量,為保證建立時間滿足要求,裕量必須要大于0。
當然上述情況還忽略了時鐘的延遲,即默認前后兩級寄存器的clk都是同時到達。如果時鐘存在正延時,即時鐘的傳播方向與數(shù)據(jù)傳播方向一致,即電路如下圖所示。clk從第一級到后一級寄存器的線路延時為tclk_delay。
從而對應的時序如下。針對于下一級的寄存器來說,相當于建立時間裕量增加了tclk_delay,即建立時間裕量為tcycle-(tcq+tlogic) -tsetup+tclk_delay。這種情況對于建立時間是有好處的。
相反,如果時鐘存在反向延時,即時鐘的傳播方向與數(shù)據(jù)傳播方向相反,那么對于建立時間是不利的。此時的建立時間裕量為tcycle-(tcq+tlogic) -tsetup-tclk_delay。大家可自行畫時序圖分析,當作練習。
從上述對建立時間裕量的分析,可以發(fā)現(xiàn),從前端設計的角度去分析,優(yōu)化建立時間裕量可以靠減少兩級寄存器之間的組合邏輯的延時去增大建立時間裕量。后面會有文章去根據(jù)示例來介紹優(yōu)化方法,其中流水線設計就是一種優(yōu)化方式。
保持時間(thold):就是時鐘上升沿之后,數(shù)據(jù)D還需要維持多長時間不變,寄存器對數(shù)據(jù)的采集才不會出錯。還是對下面這個電路模型進行分析。
對于后一級寄存器來說,時鐘上升沿之后,后一級D端的數(shù)據(jù)要得到改變,必須是上一級的數(shù)據(jù)Q輸出了,并通過組合邏輯運算電路的延時,送到了D端。故在時鐘上升沿之后,數(shù)據(jù)要經(jīng)過時間tcq+tlogic才到達下一級寄存器的D端,故每次時鐘上升沿之后,后一級寄存器的數(shù)據(jù)D可以維持不變的時間為tcq+tlogic。那么保持時間裕量為tcq+tlogic-thold。時序見下圖。
從這可以看出,時序邏輯電路里面tlogic越大,對建立時間裕量不利,但對保持時間裕量有利。
同樣,再考慮存在時鐘延時對保持時間的影響。如下電路,即時鐘存在正延時時。
分析后一級寄存器的保持時間裕量時,對應的時序變成如下。可以看到,相當于前級寄存器的clk比下一級寄存器的clk提前了tclk_delay時間,故數(shù)據(jù)D2提前到來了。保持時間裕量變成了tcq+tlogic-thold-tclk_delay。
可以看到時鐘正向延時對建立時間要求有利,但對于保持時間要求是不利的。對于時鐘反向延時,大家自行畫圖分析。
上面還有一個因素沒有說明,就是時鐘clk的抖動。因為時鐘上升沿不可能每次都固定間隔時間tcycle到來一次??赡芘c這個時間有一個小小的偏差,但是不確定是提前到來還是延遲到來。這個偏差的時間為tjitter。如果考慮這個因素,建立時間與保持時間裕量都還要減掉這個抖動時間。故最終的建立時間與保持時間裕量計算公式入下(其中的tclk_delay為時鐘正向延時):
建立時間裕量 tsetup_slack =tcycle-(tcq+tlogic) -tsetup+tclk_delay-tjitter
保持時間裕量 thold_slack =tcq+tlogic-thold-tclk_delay-tjitter
到這大家明白了,建立時間裕量與保持時間裕量就是一對矛盾的關系,我們需要通過優(yōu)化時鐘延時,組合邏輯延時來折中考慮這兩個裕量。在裕量不滿足要求時,可以選擇增大時鐘clk的周期,但這就降低了電路的運行速度。從而就要考慮時序優(yōu)化,從前端考慮也就是兩級寄存器之間的組合邏輯延時優(yōu)化,比如簡化組合邏輯,或者通過流水線設計,后面會通過實例介紹。
-
邏輯電路
+關注
關注
13文章
494瀏覽量
42632 -
寄存器
+關注
關注
31文章
5343瀏覽量
120437
原文標題:時序邏輯電路的建立,保持時間裕量分析
文章出處:【微信號:LF-FPGA,微信公眾號:小魚FPGA】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論