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

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

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

時(shí)鐘設(shè)計(jì)技巧

ZYNQ ? 來源:CSDN技術(shù)社區(qū) ? 作者:FPGA大叔 ? 2022-10-26 09:04 ? 次閱讀

前言

時(shí)鐘信號在很大程度上決定了整個(gè)設(shè)計(jì)的性能和可靠性,盡量避免使用FPGA內(nèi)部邏輯產(chǎn)生的時(shí)鐘,因?yàn)樗苋菀讓?dǎo)致功能或時(shí)序出現(xiàn)問題。內(nèi)部邏輯(組合邏輯)產(chǎn)生的時(shí)鐘容易出現(xiàn)毛刺,影響設(shè)計(jì)的功能實(shí)現(xiàn);組合邏輯固有的延時(shí)也容易導(dǎo)致時(shí)序問題。

一、內(nèi)部邏輯產(chǎn)生的時(shí)鐘

若使用組合邏輯的輸出作為時(shí)鐘信號或異步復(fù)位信號,設(shè)計(jì)者必須對有可能出現(xiàn)的問題采取必要的預(yù)防措施。我們知道,在正常的同步設(shè)計(jì)中,一個(gè)時(shí)鐘一個(gè)節(jié)拍的數(shù)據(jù)流控制能夠保證系統(tǒng)持續(xù)穩(wěn)定的工作。但是,組合邏輯產(chǎn)生的時(shí)鐘不可避免地會有毛刺出現(xiàn),如果此時(shí)輸入端口的數(shù)據(jù)正處于變化過程,那么它將違反建立和保持時(shí)間要求,從而影響后續(xù)電路的輸出狀態(tài),甚至導(dǎo)致整個(gè)系統(tǒng)運(yùn)行失敗。

對于必須采用內(nèi)部邏輯作時(shí)鐘或者復(fù)位信號的應(yīng)用,也還是有解決辦法的。思路并不復(fù)雜,和異步復(fù)位、同步釋放的原理是一樣的。在輸出時(shí)鐘或者復(fù)位信號之前,再用系統(tǒng)專用時(shí)鐘信號(通常指外部晶振輸入時(shí)鐘或者PLL處理后的時(shí)鐘信號)打一拍,從而避免組合邏輯直接輸出,達(dá)到同步處理的效果。對于輸出的時(shí)鐘信號或復(fù)位信號,最好讓它走全局時(shí)鐘網(wǎng)絡(luò),從而減小時(shí)鐘網(wǎng)絡(luò)延時(shí),提升系統(tǒng)時(shí)序性能。

內(nèi)部邏輯產(chǎn)生的時(shí)鐘處理如下:

5867fd0a-54c7-11ed-a3b6-dac502259ad0.png

二、分頻時(shí)鐘與使能時(shí)鐘

設(shè)計(jì)中往往需要用到主時(shí)鐘的若干分頻信號作為時(shí)鐘,即分頻時(shí)鐘。可別小看這個(gè)所謂的分頻時(shí)鐘,簡簡單單不加處理的亂用時(shí)鐘那就叫時(shí)鐘滿天飛,是很不好的設(shè)計(jì)風(fēng)格。言歸正傳,如果設(shè)計(jì)中確實(shí)需要用到系統(tǒng)主時(shí)鐘的分頻信號來降低頻率時(shí),該如何處理呢?

對于資源較豐富的FPGA,一般都有內(nèi)嵌的多個(gè)PLL或者DLL專門用于時(shí)鐘管理,利用它們就可以很容易地達(dá)到多個(gè)時(shí)鐘的設(shè)計(jì),輸出時(shí)鐘能夠配置成設(shè)計(jì)者期望的不同頻率和相位差(相對于輸入時(shí)鐘),這樣的時(shí)鐘分頻是最穩(wěn)定的。但是對于某些無法使用PLL或者DLL資源的器件又該怎么辦呢?推薦使用“使能時(shí)鐘”進(jìn)行設(shè)計(jì),在“使能時(shí)鐘”設(shè)計(jì)中只使用原有的時(shí)鐘,讓分頻信號作為使能信號來用。

下面舉一個(gè)實(shí)例來說明如何進(jìn)行使能時(shí)鐘的設(shè)計(jì),該設(shè)計(jì)需要得到一個(gè)50MHz鐘的5分頻信號即10MHz。

input clk;      //50MHz時(shí)鐘信號
input rst n; 
 
reg[2:0]ent;
wire en;        //使能信號,高電平有效
 
//5分頻計(jì)數(shù)0~4
always@( posedge clk or negedge rst _n)begin
    if(!rst _n) ent<=3'd0;
    else if(ent<3'd4) ent<=ent+1b1;
    else ent<=3'd0;
end
assign en=(cnt==3'd4);//每5個(gè)時(shí)鐘周期產(chǎn)生1個(gè)時(shí)鐘周期高脈沖
 
//使用使能時(shí)鐘
always@( posedge clk or negedge rst _n)begin
    if(!rst _n)…;
    else if(en)…;
 
    ...
 
end

如下圖所示,使能信號不直接作為時(shí)鐘使用,而是作為數(shù)據(jù)輸入端的選擇信號,這避免了使用分頻時(shí)鐘。

587f0950-54c7-11ed-a3b6-dac502259ad0.png

三、門控時(shí)鐘

組合邏輯中多用門控時(shí)鐘,一般驅(qū)動門控時(shí)鐘的邏輯都是只包含一個(gè)與門(或門).如其他的附加邏輯,容易因競爭產(chǎn)生不希望的毛刺。如圖a所示,門控時(shí)鐘通過一個(gè)使號控制時(shí)鐘的開或者關(guān)。當(dāng)系統(tǒng)不工作時(shí)可以關(guān)閉時(shí)鐘,整個(gè)系統(tǒng)就處于非激活狀態(tài),這種夠在某種程度上降低系統(tǒng)功耗。

圖a:門控時(shí)鐘

5886f818-54c7-11ed-a3b6-dac502259ad0.png

然而,使用門控時(shí)鐘并不符合同步設(shè)計(jì)的思想,它可能會影響系統(tǒng)設(shè)計(jì)的實(shí)現(xiàn)和驗(yàn)證。單純從功能實(shí)現(xiàn)來看,使用使能時(shí)鐘替代門控時(shí)鐘是一個(gè)不錯(cuò)的選擇;但是使能時(shí)鐘在使能信號關(guān)閉時(shí),時(shí)鐘信號仍然在工作,它無法像門控時(shí)鐘那樣降低系統(tǒng)功耗。

是否有一種設(shè)計(jì)方法既可以降低系統(tǒng)功耗,又能夠穩(wěn)定可靠的替代門控時(shí)鐘呢?Altera就提出了一種解決方案,且待我慢慢道來。如圖b所示,對于上升沿有效的系統(tǒng)時(shí)鐘cì k,它的下降沿先把門控信號(gating signal)打一拍,然后再用這個(gè)使能信號(enable)和系統(tǒng)時(shí)鐘(clk)相與后作為后續(xù)電路的門控時(shí)鐘。

圖b:推薦的門控時(shí)鐘

588f916c-54c7-11ed-a3b6-dac502259ad0.png

這樣的門控時(shí)鐘電路很好地解決了組合邏輯常見的一些問題。它避免了毛刺的出現(xiàn),同時(shí)也有效抑制了亞穩(wěn)態(tài)可能帶來的危害。但是從另一個(gè)方面來說,如果這個(gè)設(shè)計(jì)的系統(tǒng)時(shí)鐘(clk)占空比不是很穩(wěn)定,或者輸出的使能信號(enable)與時(shí)鐘信號(clk)的邏輯過于復(fù)雜(不止這個(gè)例子中一個(gè)與門那么簡單),那么它也會帶來一些功能或時(shí)序上的問題??偟膩碚f,只要設(shè)計(jì)者控制好這個(gè)設(shè)計(jì)中時(shí)鐘的占空比和門控邏輯復(fù)雜度,它還是比圖a給出的門控時(shí)鐘方案更可行。

審核編輯:湯梓紅

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

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601239
  • pll
    pll
    +關(guān)注

    關(guān)注

    6

    文章

    774

    瀏覽量

    135008
  • 時(shí)鐘信號
    +關(guān)注

    關(guān)注

    4

    文章

    442

    瀏覽量

    28490

原文標(biāo)題:【FPGA技巧篇】時(shí)鐘設(shè)計(jì)技巧

文章出處:【微信號:ZYNQ,微信公眾號:ZYNQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    時(shí)鐘樹優(yōu)化與有用時(shí)鐘延遲

    時(shí)鐘樹優(yōu)化與有用時(shí)鐘延遲在 “后端時(shí)序修正基本思路” 提到了時(shí)序優(yōu)化的基本步驟。其中,最關(guān)鍵的階段就是時(shí)鐘樹建立。
    發(fā)表于 10-26 09:29 ?4369次閱讀
    <b class='flag-5'>時(shí)鐘</b>樹優(yōu)化與有用<b class='flag-5'>時(shí)鐘</b>延遲

    時(shí)鐘設(shè)計(jì)中時(shí)鐘切換電路設(shè)計(jì)案例

    在多時(shí)鐘設(shè)計(jì)中可能需要進(jìn)行時(shí)鐘的切換。由于時(shí)鐘之間可能存在相位、頻率等差異,直接切換時(shí)鐘可能導(dǎo)致產(chǎn)生glitch。
    的頭像 發(fā)表于 09-24 11:20 ?5634次閱讀
    多<b class='flag-5'>時(shí)鐘</b>設(shè)計(jì)中<b class='flag-5'>時(shí)鐘</b>切換電路設(shè)計(jì)案例

    航空時(shí)鐘~風(fēng)雷儀表

    時(shí)鐘
    風(fēng)雷儀表
    發(fā)布于 :2023年03月03日 15:54:36

    IC數(shù)據(jù)和時(shí)鐘時(shí)鐘線緩沖電路

    IC數(shù)據(jù)和時(shí)鐘時(shí)鐘線緩沖電路
    發(fā)表于 09-12 11:57 ?1540次閱讀
    IC數(shù)據(jù)和<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>時(shí)鐘</b>線緩沖電路

    門控時(shí)鐘時(shí)鐘偏移研究

    所謂門控時(shí)鐘就是指連接到觸發(fā)器時(shí)鐘端的時(shí)鐘來自于組合邏輯;凡是組合邏輯在布局布線之后肯定會產(chǎn)生毛刺,而如果采用這種有毛刺的信號來作為時(shí)鐘使用的話將會出現(xiàn)功能上的錯(cuò)
    發(fā)表于 09-07 16:11 ?35次下載
    門控<b class='flag-5'>時(shí)鐘</b>與<b class='flag-5'>時(shí)鐘</b>偏移研究

    什么是時(shí)鐘周期_時(shí)鐘周期怎么算

    時(shí)鐘周期也稱為振蕩周期,定義為時(shí)鐘頻率的倒數(shù)。時(shí)鐘周期是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。在一個(gè)時(shí)鐘周期內(nèi),CPU僅完成一個(gè)最基本的動作。時(shí)鐘
    發(fā)表于 03-11 10:07 ?5.1w次閱讀

    STM32時(shí)鐘系統(tǒng)時(shí)鐘樹和時(shí)鐘配置函數(shù)介紹及系統(tǒng)時(shí)鐘設(shè)置步驟資料

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32時(shí)鐘系統(tǒng)時(shí)鐘樹和時(shí)鐘配置函數(shù)介紹及系統(tǒng)時(shí)鐘設(shè)置步驟資料。
    發(fā)表于 10-11 08:00 ?22次下載
    STM32<b class='flag-5'>時(shí)鐘</b>系統(tǒng)<b class='flag-5'>時(shí)鐘</b>樹和<b class='flag-5'>時(shí)鐘</b>配置函數(shù)介紹及系統(tǒng)<b class='flag-5'>時(shí)鐘</b>設(shè)置步驟資料

    什么是時(shí)鐘時(shí)鐘信號的關(guān)鍵指標(biāo)

    首先,我們看一下時(shí)鐘信號中最常見到的波形 - 矩形波(尤其是方波更常用)。在較低時(shí)鐘頻率的系統(tǒng)中我們看到的基本上都是以矩形波為主的時(shí)鐘信號,因?yàn)殡娐坊旧隙际强?b class='flag-5'>時(shí)鐘的邊沿(上升沿或下降
    的頭像 發(fā)表于 12-06 11:53 ?6.2w次閱讀
    什么是<b class='flag-5'>時(shí)鐘</b>呢 <b class='flag-5'>時(shí)鐘</b>信號的關(guān)鍵指標(biāo)

    stm32內(nèi)部時(shí)鐘有哪些時(shí)鐘源 stm32使用內(nèi)部時(shí)鐘配置教程

    stm32內(nèi)部時(shí)鐘有哪些時(shí)鐘源 在STM32中,可以用內(nèi)部時(shí)鐘,也可以用外部時(shí)鐘,在要求進(jìn)度高的應(yīng)用場合最好用外部晶體震蕩器,內(nèi)部時(shí)鐘存在一
    的頭像 發(fā)表于 07-22 10:38 ?1.7w次閱讀

    什么是門控時(shí)鐘 門控時(shí)鐘降低功耗的原理

    門控時(shí)鐘的設(shè)計(jì)初衷是實(shí)現(xiàn)FPGA的低功耗設(shè)計(jì),本文從什么是門控時(shí)鐘、門控時(shí)鐘實(shí)現(xiàn)低功耗的原理、推薦的FPGA門控時(shí)鐘實(shí)現(xiàn)這三個(gè)角度來分析門控時(shí)鐘
    的頭像 發(fā)表于 09-23 16:44 ?1.3w次閱讀
    什么是門控<b class='flag-5'>時(shí)鐘</b> 門控<b class='flag-5'>時(shí)鐘</b>降低功耗的原理

    verilog的時(shí)鐘分頻與時(shí)鐘使能

    時(shí)鐘使能電路是同步設(shè)計(jì)的基本電路,在很多設(shè)計(jì)中,雖然內(nèi)部不同模塊的處理速度不同,但由于這些時(shí)鐘是同源的,可以將它們轉(zhuǎn)化為單一時(shí)鐘處理;在ASIC中可以通過STA約束讓分頻始終和源時(shí)鐘
    的頭像 發(fā)表于 01-05 14:00 ?1599次閱讀

    什么是時(shí)鐘偏斜?了解時(shí)鐘分配網(wǎng)絡(luò)中的時(shí)鐘偏斜

    通過了解同步電路、時(shí)鐘傳輸和時(shí)鐘分配網(wǎng)絡(luò),了解時(shí)鐘偏斜、它是什么及其對現(xiàn)代系統(tǒng)的影響。 現(xiàn)代數(shù)字電子產(chǎn)品設(shè)計(jì)的最大挑戰(zhàn)之一是滿足時(shí)序限制的能力。保持可預(yù)測且組織良好的邏輯操作流的一種方法是在數(shù)
    的頭像 發(fā)表于 01-27 10:05 ?3472次閱讀
    什么是<b class='flag-5'>時(shí)鐘</b>偏斜?了解<b class='flag-5'>時(shí)鐘</b>分配網(wǎng)絡(luò)中的<b class='flag-5'>時(shí)鐘</b>偏斜

    時(shí)鐘偏差和時(shí)鐘抖動的相關(guān)概念

    本文主要介紹了時(shí)鐘偏差和時(shí)鐘抖動。
    的頭像 發(fā)表于 07-04 14:38 ?1883次閱讀
    <b class='flag-5'>時(shí)鐘</b>偏差和<b class='flag-5'>時(shí)鐘</b>抖動的相關(guān)概念

    什么是時(shí)鐘芯片?時(shí)鐘芯片的工作原理 時(shí)鐘芯片的作用

    什么是時(shí)鐘芯片?時(shí)鐘芯片的工作原理 時(shí)鐘芯片的作用 時(shí)鐘芯片是一種用于計(jì)算機(jī)或其他電子設(shè)備中的集成電路,它提供精準(zhǔn)的時(shí)鐘信號。
    的頭像 發(fā)表于 10-25 15:02 ?5598次閱讀

    時(shí)鐘抖動和時(shí)鐘偏移的區(qū)別

    時(shí)鐘抖動(Jitter)和時(shí)鐘偏移(Skew)是數(shù)字電路設(shè)計(jì)中兩個(gè)重要的概念,它們對電路的時(shí)序性能和穩(wěn)定性有著顯著的影響。下面將從定義、原因、影響以及應(yīng)對策略等方面詳細(xì)闡述時(shí)鐘抖動和時(shí)鐘
    的頭像 發(fā)表于 08-19 18:11 ?758次閱讀