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

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

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

RTL中多時鐘域的異步復(fù)位同步釋放

FPGA開源工作室 ? 來源:CSDN ? 作者:Snipermeng ? 2021-05-08 09:59 ? 次閱讀

1 多時鐘域的異步復(fù)位同步釋放

當外部輸入的復(fù)位信號只有一個,但是時鐘域有多個時,使用每個時鐘搭建自己的復(fù)位同步器即可,如下所示。

pIYBAGCV8QWANuz2AACK8JPO7Pg061.jpg

verilog代碼如下:

module CLOCK_RESET( input rst_n, input aclk, input bclk, input cclk, output reg arst_n, output reg brst_n, output reg crst_n );

reg arst_n0,arst_n1;reg brst_n0,brst_n1;reg crst_n0,crst_n1;

always @(posedge aclk or negedge rst_n) if(rst_n==0) begin arst_n0《=1‘b1; arst_n1《=1’b0; arst_n《=1‘b0; end else begin arst_n《=arst_n1; arst_n1《=arst_n0; end always @(posedge bclk or negedge rst_n) if(rst_n==0) begin brst_n0《=1’b1; brst_n1《=1‘b0; brst_n《=1’b0; end else begin brst_n《=brst_n1; brst_n1《=brst_n0; end always @(posedge cclk or negedge rst_n) if(rst_n==0) begin crst_n0《=1‘b1; crst_n1《=1’b0; crst_n《=1‘b0; end else begin crst_n《=crst_n1; crst_n1《=crst_n0; end endmodule

2 多時鐘域的按順序復(fù)位釋放

當多個時鐘域之間對復(fù)位釋放的時間有順序要求時,將復(fù)位同步器級聯(lián)起來就可以構(gòu)成多個時鐘域按順序的復(fù)位釋放(實際上就是延遲兩拍)。

verilog代碼:

module CLOCK_RESET( input rst_n, input aclk, input bclk, input cclk, output reg arst_n, output reg brst_n, output reg crst_n );

reg arst_n0,arst_n1;reg brst_n0,brst_n1;reg crst_n0,crst_n1;

always @(posedge aclk or negedge rst_n) if(rst_n==0) begin arst_n0《=1’b1; arst_n1《=1‘b0; arst_n《=1’b0; end else begin arst_n《=arst_n1; arst_n1《=arst_n0; end always @(posedge bclk or negedge rst_n) if(rst_n==0) begin brst_n1《=1‘b0; brst_n《=1’b0; end else begin brst_n《=brst_n1; brst_n1《=arst_n; end always @(posedge cclk or negedge rst_n) if(rst_n==0) begin crst_n1《=1‘b0; crst_n《=1’b0; end else begin crst_n《=crst_n1; crst_n1《=brst_n; end endmodule

原文標題:RTL設(shè)計- 多時鐘域按順序復(fù)位釋放

文章出處:【微信公眾號:FPGA開源工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    10

    文章

    1673

    瀏覽量

    130955
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59515

原文標題:RTL設(shè)計- 多時鐘域按順序復(fù)位釋放

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

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA同步復(fù)位異步復(fù)位

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)復(fù)位操作是設(shè)計過程不可或缺的一環(huán),它負責(zé)將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動和穩(wěn)定運行。在FPGA設(shè)計
    的頭像 發(fā)表于 07-17 11:12 ?694次閱讀

    L431采用PLL異步時鐘,復(fù)位后ADC采樣值發(fā)生偏差的原因?

    前提:可以確認的是外部條件沒有變化。 問題:開機后不復(fù)位的情況下,ADC_DMA讀取值幾乎相同,而每次重新復(fù)位后,ADC_DMA讀出來的值差別較大。在采用ADC同步時鐘
    發(fā)表于 03-08 07:32

    什么是復(fù)位同步電路 reset synchronizer?

    復(fù)位同步電路 reset synchronizer 其實只在復(fù)位信號 release 的時候派上用場。復(fù)位結(jié)束后,這個電路其實就沒用了。 但這個電路的
    的頭像 發(fā)表于 02-19 09:21 ?1074次閱讀
    什么是<b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>電路 reset synchronizer?

    異步復(fù)位異步釋放會有什么問題?FPGA異步復(fù)位為什么要同步釋放呢?

    一般來說,復(fù)位信號有效后會保持比較長一段時間,確保 register 被復(fù)位完成。但是復(fù)位信號釋放時,因為其和時鐘
    的頭像 發(fā)表于 01-24 09:32 ?1546次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>異步</b><b class='flag-5'>釋放</b>會有什么問題?FPGA<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>為什么要<b class='flag-5'>同步</b><b class='flag-5'>釋放</b>呢?

    同步復(fù)位異步復(fù)位到底孰優(yōu)孰劣呢?

    同步復(fù)位異步復(fù)位到底孰優(yōu)孰劣呢? 同步復(fù)位異步
    的頭像 發(fā)表于 01-16 16:25 ?1256次閱讀

    異步電路時鐘同步處理方法

    異步電路時鐘同步處理方法? 時鐘同步異步電路
    的頭像 發(fā)表于 01-16 14:42 ?828次閱讀

    FPGA設(shè)計技巧—多時鐘異步信號處理解決方案

    有一個有趣的現(xiàn)象,眾多數(shù)字設(shè)計特別是與FPGA設(shè)計相關(guān)的教科書都特別強調(diào)整個設(shè)計最好采用唯一的時鐘。
    的頭像 發(fā)表于 12-22 09:04 ?1282次閱讀
    FPGA設(shè)計技巧—<b class='flag-5'>多時鐘</b><b class='flag-5'>域</b>和<b class='flag-5'>異步</b>信號處理解決方案

    異步復(fù)位同步撤離是什么意思?如何做到異步復(fù)位同步撤離呢?

    復(fù)位消抖之后的下一件事,[異步復(fù)位]()同步撤離。這句話什么意思呢?
    的頭像 發(fā)表于 12-04 13:57 ?3840次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>撤離是什么意思?如何做到<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>撤離呢?

    同步異步通信協(xié)議介紹

    同步異步傳輸歸結(jié)為時鐘是外部的(同步)還是內(nèi)部的(異步)。異步協(xié)議的一些例子包括UART、US
    發(fā)表于 11-27 15:39 ?1331次閱讀
    <b class='flag-5'>同步</b>和<b class='flag-5'>異步</b>通信協(xié)議介紹

    IC設(shè)計:ram的應(yīng)用-異步時鐘位寬轉(zhuǎn)換

    在進行模塊設(shè)計時,我們經(jīng)常需要進行數(shù)據(jù)位寬的轉(zhuǎn)換,常見的兩種轉(zhuǎn)換場景有同步時鐘位寬轉(zhuǎn)換和異步時鐘
    的頭像 發(fā)表于 11-23 16:41 ?648次閱讀
    IC設(shè)計:ram的應(yīng)用-<b class='flag-5'>異步</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>位寬轉(zhuǎn)換

    什么是同步邏輯和異步邏輯?同步電路與異步電路有何區(qū)別?

    統(tǒng)一的時鐘信號的驅(qū)動下進行操作,而異步邏輯是指電路的各個組件根據(jù)輸入信號的條件自主進行操作,不受統(tǒng)一的時鐘信號控制。 同步邏輯和
    的頭像 發(fā)表于 11-17 14:16 ?1953次閱讀

    信號協(xié)議同步傳輸和異步傳輸有什么區(qū)別

    在信號協(xié)議,有非常多的種類,如UART,I2C,SPI,PCIe等等,它們有自己的一套制定規(guī)則,但是在協(xié)議制定,一定需要在同步異步中選擇其中一項作為傳輸規(guī)則。 所以這其中的
    的頭像 發(fā)表于 11-07 14:50 ?851次閱讀
    信號協(xié)議<b class='flag-5'>中</b><b class='flag-5'>同步</b>傳輸和<b class='flag-5'>異步</b>傳輸有什么區(qū)別

    FIFO為什么不能正常工作?

    FIFO自帶的set_max_delay生效? 對于異步FIFO,復(fù)位信號的使用要特別注意,如下圖所示。復(fù)位信號必須和wr_clk同步,如果異步
    的頭像 發(fā)表于 11-02 09:25 ?981次閱讀
    FIFO為什么不能正常工作?

    同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應(yīng)用

    簡單的一種,其特點是輸入和輸出都與時鐘信號同步,當時鐘到來時,數(shù)據(jù)總是處于穩(wěn)定狀態(tài),因此容易實現(xiàn)數(shù)據(jù)的傳輸和存儲。 而異步FIFO則是在波形的上升沿和下降沿上進行處理,在輸入輸出端口處
    的頭像 發(fā)表于 10-18 15:23 ?1462次閱讀

    為什么異步fifo讀地址同步在寫時鐘時序分析不通過?

    為什么異步fifo讀地址同步在寫時鐘時序分析不通過? 異步FIFO
    的頭像 發(fā)表于 10-18 15:23 ?565次閱讀