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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何僅使用邏輯門和寄存器產生無毛刺輸出的時鐘切換?

OpenFPGA ? 來源:OpenFPGA ? 2023-08-16 09:05 ? 次閱讀

大部分開發(fā)者使用 BUFGCTRL 或 BUFGMUX進行時鐘切換,它們在時鐘切換上可以提供無毛刺輸出。然而,了解所涉及的原理是有好處的。

9f92d3a2-3bcc-11ee-9e74-dac502259ad0.png

當然,無論我們在同步邏輯中使用哪種技術,重要的是要確保在進行時鐘切換時輸出上沒有毛刺。任何故障都可能導致下游邏輯的錯誤行為。

那么,讓我們看看如何僅使用邏輯門和寄存器產生無毛刺輸出的時鐘切換。Peter 大神介紹了如下電路。

9fac4512-3bcc-11ee-9e74-dac502259ad0.png

使用兩個寄存器來存儲選擇信號的狀態(tài)。這些狀態(tài)在時鐘的下降沿更新,并且取消選擇的寄存器將其時鐘保持在復位狀態(tài)。由于下降沿,時鐘處于低電平,并且輸出時鐘保持低電平。它將保持低電平,直到所選時鐘變低(以更新其控制寄存器)并變高。

在 Vivado 中實現(xiàn)這一點很簡單。只需幾行代碼即可創(chuàng)建時鐘切換。

libraryieee;

useieee.std_logic_1164.all;


entityclk_swisport(

clk_a:instd_logic;

clk_b:instd_logic;

sel:instd_logic;

clk_out:outstd_logic);

endentity;



architecturertlofclk_swis


signalclk_a_reg:std_logic:='0';

signalclk_b_reg:std_logic:='0';


begin


cntrl_a:process(clk_a)

begin

iffalling_edge(clk_a)then

clk_a_reg<=?(not?sel)?and?(not?clk_b_reg);

????end?if;

end?process;


cntrl_b?:?process(clk_b)

begin

????if?falling_edge(clk_b)?then?

????????clk_b_reg?<=?sel?and?(not?clk_a_reg);

????end?if;

end?process;


clk_out?<=?(clk_a_reg?and?clk_a)?or?(clk_b_reg?and?clk_b);


end?architecture;

使用PLL將系統(tǒng)的時鐘 (100MHz) 劃分為兩個隨機且不相關的頻率。輸出時鐘引出到GPIO 引腳 。

9fc1c0c2-3bcc-11ee-9e74-dac502259ad0.png

使用 100 MHz 的 XPM 同步器宏來對其進行去抖。XPM 宏的輸出用于切換時鐘并路由至 GPIO 引腳 。

創(chuàng)建了一個簡單的測試平臺,可以在時序仿真中運行仿真,以確定實現(xiàn)中是否存在故障。

9fe10e00-3bcc-11ee-9e74-dac502259ad0.png

在上圖中可以看到時序仿真中沒有觀察到任何故障。

下一步是對電路板進行編程,并觀察在硬件中實現(xiàn)設計時設備中是否存在故障。

將頻率設置為 6.25 MHz 和 8.125 MHz。默認情況下,當選擇輸入為低電平時,將輸出 8.125 MHz 時鐘。將其切換至高電平將輸出切換至 6.25 MHz 時鐘。

當然,我們需要能夠確定切換發(fā)生時輸出上是否存在任何毛刺。因此,使用示波器監(jiān)測內部同步選擇信號和時鐘輸出引腳。

從下面觀察輸出時鐘時可以看出,當時鐘的選擇線改變時,在輸出時鐘線上沒有觀察到毛刺。

a003b57c-3bcc-11ee-9e74-dac502259ad0.pnga026828c-3bcc-11ee-9e74-dac502259ad0.png

盡管現(xiàn)代 FPGA 包含更先進、功能更強大的時鐘管理和時鐘電路,但一些低端FPGA上這些電路并不存在,我們就需要自己去創(chuàng)建始終切換電路。






審核編輯:劉清

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

    關注

    31

    文章

    5343

    瀏覽量

    120383
  • 存儲器
    +關注

    關注

    38

    文章

    7492

    瀏覽量

    163848
  • 邏輯門
    +關注

    關注

    1

    文章

    142

    瀏覽量

    24057
  • 時鐘切換電路

    關注

    0

    文章

    7

    瀏覽量

    5774
  • PLL電路
    +關注

    關注

    0

    文章

    92

    瀏覽量

    6409

原文標題:【數(shù)字實驗室】時鐘切換

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA實戰(zhàn)演練邏輯篇47:消除組合邏輯毛刺

    寄存器后,新的最終的輸出yreg不再隨意的改變,而是在每個時鐘clk的上升沿鎖存當前的輸出值。(特權同學,版權所有)圖5.17 寄存器鎖存
    發(fā)表于 07-08 10:38

    寄存器、鎖存和觸發(fā)的區(qū)別

    暫存。缺點:時序分析較困難。不要鎖存的原因:1、鎖存容易產生毛刺,2、鎖存在ASIC設計
    發(fā)表于 07-03 11:50

    psoc4-4200裝置是可能的CPU寄存器輸出路由到邏輯的輸入嗎?

    你好!在psoc4-4200裝置,它是可能的CPU寄存器輸出路由到邏輯的輸入?在我的情況下,CPU產生一個8位的數(shù)字,我需要將這些位的幾
    發(fā)表于 09-03 08:51

    簡談FPGA的競爭冒險和毛刺問題

    使用。 5、延遲辦法因為毛刺最終是由于延遲造成的,所以可以找出產生延遲的支路。對于相對延遲小的支路,加上毛刺寬度的延遲可以消除毛刺。還可以用高頻
    發(fā)表于 05-30 17:15

    FPGA | 競爭冒險和毛刺問題

    寬度的延遲可以消除毛刺。還可以用高頻時鐘來驅動一移位寄存器,待延時信號作數(shù)據(jù)輸入,按所需延時正確設置移位寄存器的級數(shù),移位寄存器
    發(fā)表于 11-02 17:22

    消除組合邏輯產生毛刺—PLD設計技巧

    消除組合邏輯產生毛刺—PLD設計技巧 Design of Combinational Circuit What is Combinational Circuit Combinational Circuit if
    發(fā)表于 09-11 09:34 ?29次下載
    消除組合<b class='flag-5'>邏輯</b><b class='flag-5'>產生</b>的<b class='flag-5'>毛刺</b>—PLD設計技巧

    寄存器與移位寄存器

    寄存器與移位寄存器 寄存器是用來寄存數(shù)碼的邏輯部件,所以必須具備接收和寄存數(shù)碼的功能。任何一種
    發(fā)表于 03-12 15:19 ?59次下載

    傳統(tǒng)的移位寄存器與光耦合隔離移位寄存器有什么不同

    送位,另一個用于低位,并且在脈沖發(fā)送所有位之后,電路最終并發(fā)1和0脈沖選通數(shù)據(jù)到輸出寄存器。電路隔離側的兩個邏輯封裝將兩個負脈沖信號解碼回數(shù)據(jù),
    的頭像 發(fā)表于 08-12 16:42 ?2271次閱讀
    傳統(tǒng)的移位<b class='flag-5'>寄存器</b>與光耦合<b class='flag-5'>器</b>隔離移位<b class='flag-5'>寄存器</b>有什么不同

    MCU時鐘設計方案

    兩個時鐘頻率可以彼此完全無關,或者它們可以是彼此的倍數(shù)。在任何一種情況下,都有可能在切換時在時鐘線上產生毛刺。
    發(fā)表于 09-01 10:12 ?2889次閱讀
    MCU<b class='flag-5'>時鐘</b>設計方案

    詳解移位寄存器,串行輸入和串行輸出的分析

    串行輸入,串行輸出移位寄存器每級將數(shù)據(jù)延遲一個時鐘時間。 它們將為每個寄存器存儲一點數(shù)據(jù)。串行輸入,串行輸出移位
    的頭像 發(fā)表于 09-24 15:18 ?3.3w次閱讀
    詳解移位<b class='flag-5'>寄存器</b>,串行輸入和串行<b class='flag-5'>輸出</b>的分析

    時鐘毛刺注入攻擊的研究分析綜述

    時鐘毛刺注入是現(xiàn)實環(huán)境中有效且常用的故障注入方法。時鐘毛刺注入是通過在正常時鐘周期中引入一段毛刺
    發(fā)表于 04-26 14:20 ?9次下載
    <b class='flag-5'>時鐘</b><b class='flag-5'>毛刺</b>注入攻擊的研究分析綜述

    STM32寄存器點燈

    配置寄存器使STM32最小系統(tǒng)板上的LED燈點亮根據(jù)原理圖,要使D2點亮,需要將PC13拉低,分為以下步驟:使能GPIO的時鐘配置GPIO13為輸出模式配置GPIO13輸出低電平一、確
    發(fā)表于 12-08 17:21 ?3次下載
    STM32<b class='flag-5'>寄存器</b>點燈

    直接修改寄存器輸出內部時鐘的方法

    電子發(fā)燒友網(wǎng)站提供《直接修改寄存器輸出內部時鐘的方法.pdf》資料免費下載
    發(fā)表于 09-19 15:43 ?0次下載
    直接修改<b class='flag-5'>寄存器</b>來<b class='flag-5'>輸出</b>內部<b class='flag-5'>時鐘</b>的方法

    寄存器屬于時序邏輯電路嗎 寄存器是什么邏輯電路

    成部分之一。 寄存器屬于時序邏輯電路。時序邏輯電路是指其輸出狀態(tài)不僅依賴于當前的輸入,還依賴于過去的輸入和時鐘信號的變化。在
    的頭像 發(fā)表于 02-18 09:37 ?1639次閱讀

    寄存器邏輯功能有保持功能嗎 寄存器的輸入輸出的方式有分別有哪幾種

    操作數(shù)等。寄存器邏輯功能包括保持功能,其輸入輸出方式包括并行輸入輸出、串行輸入輸出和雙向輸入輸出
    的頭像 發(fā)表于 02-18 09:39 ?2057次閱讀