0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

同步時(shí)序電路原理圖圖解 同步時(shí)序路徑約束要求

電子工程師 ? 作者:工程師李察 ? 2018-10-06 09:00 ? 次閱讀

基本的同步時(shí)序路徑約束

先讀文章:《時(shí)序邏輯電路的建立,保持時(shí)間裕量分析》

我們?cè)O(shè)計(jì)的同步時(shí)序電路示意圖如下。

同步時(shí)序電路原理圖圖解 同步時(shí)序路徑約束要求

從上面的示意圖可知,一個(gè)同步時(shí)序電路的時(shí)序路徑無非就是四種:

(1)從輸入端口到內(nèi)部寄存器(從D_IN經(jīng)過組合邏輯1,到第一個(gè)寄存器數(shù)據(jù)端口D)。

(2)從內(nèi)部寄存器到內(nèi)部寄存器(從第一個(gè)寄存器的Q端,經(jīng)過組合邏輯2,到第二個(gè)寄存器的D端)。

(3)從內(nèi)部寄存器到輸出端口( 從第二個(gè)寄存器的Q端,經(jīng)過組合邏輯3,到輸出端口 D_O端)。

(4)從輸入端口到輸出端口(從D_IN經(jīng)過組合邏輯4到達(dá)輸出端口D_O)。

先看路徑(2),從內(nèi)部寄存器到內(nèi)部寄存器。如文章《時(shí)序邏輯電路的建立,保持時(shí)間裕量分析》中的詳細(xì)描述,要滿足如下建立保持時(shí)間要求。

建立時(shí)間裕量:

tsetup_slack=tcycle-(tcq+tlogic) -tsetup+tclk_delay-tjitter>0

保持時(shí)間裕量:

thold_slack=tcq+tlogic-thold-tclk_delay-tjitter>0

對(duì)于EDA來說,tsetup(寄存器建立時(shí)間要求),tcq(寄存器輸出延時(shí)),thold(寄存器保持時(shí)間要求)它都是知道的。在忽略tjitter(時(shí)鐘抖動(dòng))的情況下,我們需要告訴EDA我們的時(shí)鐘周期,tcycle。如此EDA工具就會(huì)根據(jù)我們的給出的tcycle,去優(yōu)化寄存器到寄存器之間的組合邏輯2的延時(shí)(tlogic)和tclk_delay,去滿足建立保持時(shí)間裕量要求。EDA也會(huì)根據(jù)我們給出的tcycle,去計(jì)算建立保持時(shí)間裕量。

因此此時(shí)我們只需要對(duì)時(shí)鐘進(jìn)行約束,約束示例語句如下(在端口clk上創(chuàng)建的時(shí)鐘,周期為10ns)。

create_clock -period 10 [get_ports clk]

對(duì)于路徑(1),從輸入端口到內(nèi)部寄存器(從D_IN經(jīng)過組合邏輯1,到達(dá)第一個(gè)寄存器的數(shù)據(jù)端口D),我們需要把上一級(jí)的電路示意圖也畫出來。大家就明白了。如下圖所示,上一級(jí)的電路模型也可以等效為一個(gè)寄存器再通過一個(gè)組合邏輯電路。因此時(shí)序約束其實(shí)也就是變成了,從外部寄存器到內(nèi)部寄存器之間的時(shí)序約束。

同步時(shí)序電路原理圖圖解 同步時(shí)序路徑約束要求

從圖中可以看到tin_delay(既數(shù)據(jù)到輸入端口的延時(shí))其實(shí)等于上一級(jí)電路寄存器的輸出延時(shí)(tcq)加上一級(jí)組合邏輯的延時(shí)。

此時(shí)我們需要滿足的建立保持時(shí)間要求如下(tlogic1為組合邏輯1的延時(shí))。

建立時(shí)間裕量

tsetup_slack=tcycle-tin_delay-tlogic1-tsetup+tclk_delay-tjitter>0

保持時(shí)間裕量

thold_slack=tin_delay+tlogic1-thold-tclk_delay-tjitter>0

同樣在忽略tjitter的情況下,我們只需要告訴EDA工具tcycle,tin_delay,如此EDA就會(huì)根據(jù)我們的條件去約束組合邏輯1的延時(shí)以及tclk_delay,從而使得電路滿足建立保持時(shí)間要求。

設(shè)置tcycle的方式,上面已經(jīng)說過。設(shè)置輸入延時(shí)(tin_delay)的約束命令示例如下(-clock用于指定時(shí)鐘域,2表示設(shè)置輸入延時(shí)為2ns):

set_input_delay -clock clk 2 [get_ports D_IN]

對(duì)于輸入端口的完整約束示例如下:

create_clock -name clk -period 10 [get_ports clk]

set_input_delay -clock clk 2 [get_ports D_IN]

當(dāng)然對(duì)于輸入延時(shí)的定義也可以用 -max -min去分別定義一個(gè)最大值和最小值。在分析建立時(shí)間裕量時(shí),EDA工具會(huì)用最大值去分析;在分析保持時(shí)間裕量時(shí),EDA工具會(huì)用最小值去分析。定義示例如下:

create_clock -name clk -period 10 [get_ports clk]

set_input_delay -clock clk -max 4 [get_ports D_IN]

set_input_delay -clock clk -min 1 [get_ports D_IN]

對(duì)于路徑(3),從內(nèi)部寄存器到輸出端口(從第二個(gè)寄存器的Q端經(jīng)過組合邏輯3到輸出端口D_O),同樣我們把它的下一級(jí)電路示意圖也畫出來。其下一級(jí)電路也是通過組合邏輯送到寄存器這種結(jié)構(gòu)。問題也就可以等效為寄存器到寄存器之間的時(shí)序約束。

同步時(shí)序電路原理圖圖解 同步時(shí)序路徑約束要求

同樣在忽略時(shí)鐘抖動(dòng)的情況下,我們需要告訴EDA工具數(shù)據(jù)從輸出端口到下一級(jí)電路寄存器的延時(shí)tout_delay和tcycle。此時(shí)EDA工具就會(huì)根據(jù)如下要求去優(yōu)化組合邏輯3的延時(shí)tlogic3以及tclk_delay,以及計(jì)算靜態(tài)時(shí)序裕量。

建立時(shí)間裕量

tsetup_slack=tcycle-tout_delay-tlogic3-tsetup+tclk_delay-tjitter>0

保持時(shí)間裕量

thold_slack=tout_delay+tlogic3-thold-tclk_delay-tjitter>0

約束輸出延時(shí)(tout_delay)的示例如下(-clock 指定時(shí)鐘域)。

create_clock -name clk -period 10 [get_ports clk]

set_output_delay -clock clk 6 [get_ports D_O]

同樣,輸出延時(shí)也可以用 -max -min指定一個(gè)最大值和一個(gè)最小值。

create_clock -name clk -period 10 [get_ports clk]

set_output_delay -clock clk -max 6 [get_ports D_O]

set_output_delay -clock clk -min 2 [get_ports D_O]

對(duì)于路徑(4)(從輸入端口經(jīng)過組合邏輯4再到輸出端口),這時(shí)候我們必須聯(lián)合上下兩級(jí)電路來考慮。我們要先明確從上一級(jí)電路獲取數(shù)據(jù)的輸入延時(shí)tin_delay,以及其送到下一級(jí)電路的tout_delay。如此EDA工具才知道如何去做組合邏輯4的時(shí)序優(yōu)化與做靜態(tài)時(shí)序計(jì)算。

同步時(shí)序電路原理圖圖解 同步時(shí)序路徑約束要求

此時(shí)需要滿足的時(shí)序要求如下:

建立時(shí)間裕量

tsetup_slack=tcycle-tin_delay-tout_delay-tlogic4-tsetup+tclk_delay-tjitter

保持時(shí)間裕量

thold_slack=tin_delay+tout_delay+tlogic4-thold-tclk_delay-tjitter

在忽略時(shí)鐘抖動(dòng)的情況下,我們需要約束輸入延時(shí),輸出延時(shí)。示例約束語句如下。

create_clock -name clk -period 10 [get_ports clk]

set_input_delay -clock clk 4 [get_ports D_IN]

set_output_delay -clock clk 1 [get_ports D_O]

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:基本的同步時(shí)序路徑約束

文章出處:【微信號(hào):LF-FPGA,微信公眾號(hào):小魚FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA案例解析:針對(duì)源同步時(shí)序約束

    約束流程 說到FPGA時(shí)序約束的流程,不同的公司可能有些不一樣。反正條條大路通羅馬,找到一種適合自己的就行了。從系統(tǒng)上來看,同步時(shí)序
    的頭像 發(fā)表于 11-20 14:44 ?7622次閱讀
    FPGA案例解析:針對(duì)源<b class='flag-5'>同步</b>的<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>

    同步時(shí)序電路需要考慮的三個(gè)重要的時(shí)序參數(shù)

    對(duì)于絕大部分的電路來說輸出不僅取決于當(dāng)前的輸入值,也取決于原先的輸入值,也就是說電路具有記憶功能,這屬于同步時(shí)序電路
    的頭像 發(fā)表于 12-07 15:00 ?7210次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>時(shí)序電路</b>需要考慮的三個(gè)重要的<b class='flag-5'>時(shí)序</b>參數(shù)

    同步電路設(shè)計(jì)中靜態(tài)時(shí)序分析的時(shí)序約束時(shí)序路徑

    同步電路設(shè)計(jì)中,時(shí)序是一個(gè)主要的考慮因素,它影響了電路的性能和功能。為了驗(yàn)證電路是否能在最壞情況下滿足時(shí)
    發(fā)表于 06-28 09:35 ?1024次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>電路</b>設(shè)計(jì)中靜態(tài)<b class='flag-5'>時(shí)序</b>分析的<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>和<b class='flag-5'>時(shí)序</b><b class='flag-5'>路徑</b>

    FPGA時(shí)序約束時(shí)序路徑時(shí)序模型

    時(shí)序路徑作為時(shí)序約束時(shí)序分析的物理連接關(guān)系,可分為片間路徑和片內(nèi)
    發(fā)表于 08-14 17:50 ?749次閱讀
    FPGA<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>之<b class='flag-5'>時(shí)序</b><b class='flag-5'>路徑</b>和<b class='flag-5'>時(shí)序</b>模型

    設(shè)計(jì)一個(gè)同步時(shí)序電路

    設(shè)計(jì)一個(gè)同步時(shí)序電路:只有在連續(xù)三個(gè)或者三個(gè)以上時(shí)針作用期間兩個(gè)輸入信號(hào)相同時(shí),其輸出為1,其余情況下輸出為0。
    發(fā)表于 03-22 10:44

    時(shí)序電路的分析與設(shè)計(jì)方法

    章的內(nèi)容共分為兩節(jié),它們是:§6、1:同步時(shí)序電路的分析方法§6、2:同步時(shí)序電路的設(shè)計(jì) 6、1同步時(shí)序
    發(fā)表于 08-23 10:28

    同步時(shí)序邏輯電路

    同步時(shí)序邏輯電路:本章系統(tǒng)的講授同步時(shí)序邏輯電路的工作原理、分析方法和設(shè)計(jì)方法。從
    發(fā)表于 09-01 09:06 ?0次下載

    基于粒子群算法的同步時(shí)序電路初始化

    摘要:針對(duì)同步時(shí)序電路的初始化問題,提出了一種新的實(shí)現(xiàn)方法。當(dāng)時(shí)序電路中有未確定狀態(tài)的觸發(fā)器時(shí),就不能順利完成該電路的測(cè)試生成,因此初始化是時(shí)序電路
    發(fā)表于 05-13 09:36 ?6次下載

    同步時(shí)序電路

    同步時(shí)序電路 4.2.1 同步時(shí)序電路的結(jié)構(gòu)和代數(shù)法描述
    發(fā)表于 01-12 13:31 ?5142次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>時(shí)序電路</b>

    計(jì)數(shù)器及時(shí)序電路

    1、了解時(shí)序電路的經(jīng)典設(shè)計(jì)方法(D觸發(fā)器、JK觸發(fā)器和一般邏輯門組成的時(shí)序邏輯電路)。 2、了解同步計(jì)數(shù)器,異步計(jì)數(shù)器的使用方法。 3、了解
    發(fā)表于 07-10 14:37 ?15次下載

    同步時(shí)序電路設(shè)計(jì)

    關(guān)鍵詞:時(shí)序電路 , 同步 同步時(shí)序電路設(shè)計(jì) 1.建立原始狀態(tài). 建立原始狀態(tài)的方法是: 確
    發(fā)表于 10-31 18:14 ?1272次閱讀

    什么是同步時(shí)序電路和異步時(shí)序電路,同步和異步電路的區(qū)別?

    同步和異步時(shí)序電路都是使用反饋來產(chǎn)生下一代輸出的時(shí)序電路。根據(jù)這種反饋的類型,可以區(qū)分這兩種電路。時(shí)序電路的輸出取決于當(dāng)前和過去的輸入。
    的頭像 發(fā)表于 03-25 17:29 ?2.4w次閱讀
    什么是<b class='flag-5'>同步</b><b class='flag-5'>時(shí)序電路</b>和異步<b class='flag-5'>時(shí)序電路</b>,<b class='flag-5'>同步</b>和異步<b class='flag-5'>電路</b>的區(qū)別?

    時(shí)序邏輯電路設(shè)計(jì)之同步計(jì)數(shù)器

    時(shí)序電路的考察主要涉及分析與設(shè)計(jì)兩個(gè)部分,上文介紹了時(shí)序邏輯電路的一些分析方法,重點(diǎn)介紹了同步時(shí)序電路分析的步驟與注意事項(xiàng)。 本文就
    的頭像 發(fā)表于 05-22 17:01 ?2972次閱讀
    <b class='flag-5'>時(shí)序</b>邏輯<b class='flag-5'>電路</b>設(shè)計(jì)之<b class='flag-5'>同步</b>計(jì)數(shù)器

    時(shí)序電路包括兩種類型 時(shí)序電路必然存在狀態(tài)循環(huán)對(duì)不對(duì)

    時(shí)序電路是由觸發(fā)器等時(shí)序元件組成的數(shù)字電路,用于處理時(shí)序信號(hào),實(shí)現(xiàn)時(shí)序邏輯功能。根據(jù)時(shí)序元件的類
    的頭像 發(fā)表于 02-06 11:22 ?1111次閱讀

    時(shí)序電路的分類 時(shí)序電路的基本單元電路有哪些

    ,時(shí)序電路可以分為同步時(shí)序電路和異步時(shí)序電路。接下來,我們將詳細(xì)討論時(shí)序電路的分類以及其基本單元電路
    的頭像 發(fā)表于 02-06 11:25 ?2203次閱讀