日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > FPGA算法工程師

我們在ASIC或FPGA系統(tǒng)設(shè)計中,常常會遇到需要在多個時鐘域下交互傳輸?shù)膯栴},時序問題也隨著系統(tǒng)越復(fù)雜而變得更為嚴(yán)重。

跨時鐘域處理技術(shù)是IC設(shè)計中非常重要的一個部分,我們需要學(xué)習(xí)并應(yīng)用一些常用的處理方法,從而提高電路運(yùn)行的穩(wěn)定性,使得整個系統(tǒng)更魯棒。

下面考慮ASIC設(shè)計場景,為了滿足系統(tǒng)功能需求,整個系統(tǒng)由不同的功能塊構(gòu)成,例如:

  • 處理器

  • 存儲器

  • 浮點引擎

  • 存儲控制器

  • 總線接口

  • 高速接口


假如考慮處理器和存儲器的工作頻率為500MHz,帶有存儲器控制器的浮點引擎的工作頻率為666.66MHz,總線接口和高速接口工作頻率為250MHz,則該設(shè)計具有多個時鐘,被視為多個時鐘域的設(shè)計。

01

多時鐘域設(shè)計常用方法

如前所述,多個時鐘域的處理問題是在傳輸數(shù)據(jù)和控制信號時,它對數(shù)據(jù)完整性有影響。下面的策略在ASIC設(shè)計階段是有用的。


  1. 嘗試為數(shù)據(jù)和控制路徑優(yōu)化制定策略。

  2. 嘗試創(chuàng)建多個時鐘域組來定義策略。

  3. 在多個時鐘域之間傳遞控制信號時,嘗試使用同步器的策略。

  4. 嘗試使用FIFO和緩存的數(shù)據(jù)路徑同步器來提高數(shù)據(jù)完整性。


現(xiàn)在討論重要的跨時鐘處理問題與策略及其在多時鐘域設(shè)計中的使用。


02

多時鐘域設(shè)計有哪些問題

如果我們考慮適度的門數(shù)設(shè)計或使用單時鐘工作的處理器核心和設(shè)計,它可能在布局階段由于額外的互連延遲而產(chǎn)生時序違例。但是這種設(shè)計可能會通過架構(gòu)、RTL、綜合和基于工具的優(yōu)化調(diào)整來滿足時序和性能。


現(xiàn)在考慮圖中所示的需要多個時鐘的設(shè)計,讓我們試著理解設(shè)計中的問題。


1.由于多個時鐘域,數(shù)據(jù)完整性是主要問題,設(shè)計需要通過數(shù)據(jù)完整性檢查。

2.沒有使用同步器的時鐘域邊界上的觸發(fā)器將由于建立和保持違例而存在亞穩(wěn)態(tài)問題。

3.該設(shè)計將存在時序違例,并且很難強(qiáng)制時序電路輸出進(jìn)入有效的合法狀態(tài)。


讓我們用具有多個時鐘域的時序電路來理解上面的內(nèi)容。由于到達(dá)clk1和clk2之間的相差,第二個時鐘域的觸發(fā)器將有建立和保持違例,即觸發(fā)器輸出data_out將是亞穩(wěn)態(tài)的。原因是時鐘域1的q輸出在clk2活動邊的建立和保持窗口期間可能會改變,因此data_out將被迫進(jìn)入非法狀態(tài),即亞穩(wěn)態(tài)。如圖1所示。

圖1 多時鐘域概念


時序如圖2所示。

圖2 亞穩(wěn)態(tài)輸出


03

架構(gòu)設(shè)計策略

考慮圖3中有三個時鐘域的設(shè)計,表1描述了不同時鐘頻率下的時鐘域信息。


圖3 多時鐘域架構(gòu)


表1 多時鐘域時鐘組

Clock domain

control

Frequency

in MHz

Description

clk1

500

The clock domain one operating at frequency of 500 MHz

Clk2

666.66

The clock domain one operating at frequency of 666.66 MHz

Clk3

250

The clock domain one operating at frequency of 250 MHz


作為一名IC設(shè)計人員或架構(gòu)師,我們需要考慮多個時鐘域設(shè)計的整體數(shù)據(jù)完整性檢查,并需要為數(shù)據(jù)路徑和控制路徑提供干凈的時序。


考慮到這一點,我們需要設(shè)計同步器來在多個時鐘域設(shè)計之間傳輸數(shù)據(jù)。當(dāng)在多個時鐘域設(shè)計之間傳遞控制信號時,電平、多路復(fù)用器和脈沖等同步器是有用的。異步FIFO可以用作同步器,在時鐘域和數(shù)據(jù)路徑之間傳輸數(shù)據(jù)。


以下是我們在進(jìn)行多時鐘域設(shè)計時應(yīng)該使用的一些準(zhǔn)則,以消除CDC錯誤。


避免亞穩(wěn)態(tài):在傳遞控制信號信息時,使用寄存器輸出,因為這有助于避免毛刺和冒險。通過在傳遞控制信號時使用寄存的輸出邏輯,可以避免單時鐘周期內(nèi)的多次轉(zhuǎn)換。亞穩(wěn)態(tài)阻塞邏輯如圖4所示。


圖4 亞穩(wěn)態(tài)阻塞邏輯


使用MCP:強(qiáng)烈推薦多周期路徑策略,以避免在多個時鐘域之間傳遞數(shù)據(jù)和控制信號信息時的亞穩(wěn)態(tài)問題。在MCP中,采用的策略是建立控制和數(shù)據(jù)對,將具有單比特控制信號的多比特數(shù)據(jù)從發(fā)送時鐘域傳遞到接收時鐘域。利用脈沖同步器可以在接收時鐘域?qū)刂菩畔⑦M(jìn)行采樣,并在有或沒有同步器的情況下將數(shù)據(jù)傳遞到接收時鐘域。該技術(shù)可以在多個周期內(nèi)保持?jǐn)?shù)據(jù)的穩(wěn)定值,并且可以利用脈沖同步器產(chǎn)生的同步信號在接收時鐘域中采樣。跨越時鐘域的邊界,以下是需要考慮的關(guān)鍵點。


(a)控制信號必須使用多級同步器進(jìn)行同步。

(b)控制信號應(yīng)無冒險和毛刺。

(c)應(yīng)該有跨越時鐘邊界的過渡。

(d)控制信號應(yīng)至少穩(wěn)定一個時鐘周期。


MCP策略如圖5所示。


圖5 MCP策略


采用FIFO:異步FIFO是傳遞多位控制信號或數(shù)據(jù)信息的有效技術(shù)。在這種技術(shù)中,發(fā)送時鐘域在FIFO未滿時將數(shù)據(jù)寫入FIFO內(nèi)存緩沖區(qū),接收時鐘域在FIFO未空時從FIFO緩沖區(qū)讀取數(shù)據(jù)。


使用格雷碼計數(shù)器:在大多數(shù)具有跨時鐘域(CDC)ASIC設(shè)計中,跨時鐘域傳遞計數(shù)器值是至關(guān)重要的。如果二進(jìn)制計數(shù)器用于在時鐘域邊界交換數(shù)據(jù),那么由于一個或多個比特的轉(zhuǎn)換,數(shù)據(jù)轉(zhuǎn)換很容易出錯。在這種情況下,建議使用格雷碼計數(shù)器在跨時鐘邊界傳遞數(shù)據(jù)。在接收端時鐘域,采用格雷碼到二進(jìn)制碼的轉(zhuǎn)換,將原始數(shù)據(jù)恢復(fù)。


設(shè)計分區(qū):在為多個時鐘域設(shè)計邏輯時,通過使用時鐘組對設(shè)計進(jìn)行分區(qū)。


時鐘命名約定:為了更好地識別時鐘源,建議使用時鐘命名約定。時鐘的命名約定應(yīng)該由有意義的前綴/后綴支持。例如,發(fā)送時鐘域使用clk_s,接收時鐘域使用clk_r。


同步復(fù)位:對于ASIC設(shè)計,強(qiáng)烈建議使用同步復(fù)位器。


避免保持時間違例:為了避免保持時間違例,建議仔細(xì)查看體系結(jié)構(gòu),并制定在多個時鐘周期之間傳遞穩(wěn)定數(shù)據(jù)的策略。


避免丟失相關(guān)性:在時鐘域邊界上,有幾種可能導(dǎo)致丟失相關(guān)性的方式。比如有:

(a)總線上的多個比特

(b)多個握手信號

(c)不相關(guān)的信號


為了避免這種情況,使用時鐘意圖驗證技術(shù),因為這些技術(shù)將確保在時鐘邊界上傳遞多位信號。


04

控制路徑與同步

本節(jié)討論ASIC設(shè)計中使用的各種同步器和策略。


電平或多觸發(fā)同步器

在多個時鐘域之間傳遞的控制信號主要由快時鐘域慢時鐘域傳遞,會出現(xiàn)時序錯誤,設(shè)計中會出現(xiàn)時序違例。因此,在體系結(jié)構(gòu)設(shè)計期間,更好的策略是確定多個時鐘域設(shè)計的接口邊界,然后在RTL設(shè)計中使用同步器的策略。


當(dāng)在多個時鐘域之間傳遞控制信號時,可以通過設(shè)計電平同步器(可能使用兩個或三個觸發(fā)器)來解決亞穩(wěn)態(tài)問題。圖6使用了兩級電平同步器邏輯。

圖6 控制路徑中有二級電平同步器


如圖6所示,利用電平同步器將控制信號q1從時鐘域1傳遞到時鐘域2。主要的設(shè)計策略是將有效的輸出q1傳遞到第二個時鐘域。電平同步器在第二個時鐘域,對輸出q1進(jìn)行采樣。由于違反了設(shè)置或保持時間,第二個時鐘域的輸入觸發(fā)器將是亞穩(wěn)態(tài)的,這應(yīng)該通過設(shè)置EDA工具屬性來忽略。輸出的data_out是有效的數(shù)據(jù),由于使用了同步器,本設(shè)計有兩個時鐘的延遲。


圖6所示的設(shè)計時序描述如下(圖7所示)。

圖7 使用兩級同步器的時序


如圖7所示,q1由第一個時鐘域輸出。在clk2的上升沿上,觸發(fā)器FF1的輸出q2將由于建立或保持時間違例而進(jìn)入亞穩(wěn)態(tài)。但是觸發(fā)器FF2輸出在接下來的時鐘邊是data_out是有效的輸出。使用該命令設(shè)置false path:

set_false_path –from FF0/q –to FF1/q


使用這兩個觸發(fā)器的電平同步器如圖8所示,可以在設(shè)計中采用。更好的策略是在RTL設(shè)計期間將電平同步器的RTL描述作為單獨(dú)的模塊。引入的延遲取決于將輸出驅(qū)動到有效合法狀態(tài)所需的觸發(fā)器數(shù)。


圖8 電平同步器


下面將對RTL描述部分進(jìn)行描述:

always @ (posedge clk)beginq<=data_in;data_out<=qend

在ASIC設(shè)計中,當(dāng)控制信息需要從快時鐘域傳遞到慢時鐘域時,就會出現(xiàn)數(shù)據(jù)完整性問題。該問題是由于在將控制信號從時鐘域1傳遞到時鐘域2時觸發(fā)器輸出的合法狀態(tài)不收斂造成的。


利用脈沖展寬器可以解決快時鐘域到慢時鐘域的采樣問題。工作在正時鐘邊緣的電平脈沖發(fā)生器如圖9所示。

圖9 電平到脈沖轉(zhuǎn)換


另一種機(jī)制是信號的握手,可以用來實現(xiàn)數(shù)據(jù)的收斂。


如圖10所示,將時鐘域2的采樣信號作為握手信號反饋到時鐘域1。這種握手機(jī)制類似于對較快時鐘域1的確認(rèn)或通知,較快時鐘域傳遞的控制信號被較慢時鐘域成功采樣。在實際的大多數(shù)場景中,都采用了這種機(jī)制,即使較快的時鐘域在收到較慢時鐘域的有效通知或確認(rèn)信號后,也可以發(fā)送另一個控制信號。

圖10 控制信號的握手機(jī)制


脈沖同步器

這種類型的同步器使用多級電平同步器,其中兩級電平同步器的輸出由輸出觸發(fā)器采樣。這種同步器也稱為切換同步器,用于將發(fā)送時鐘域產(chǎn)生的脈沖同步到目標(biāo)時鐘域。當(dāng)將數(shù)據(jù)從較快的時鐘域傳遞到較慢的時鐘域時,如果使用兩級電平同步器,脈沖可能跳過。在這種情況下,脈沖同步器是有效和有用的。脈沖同步器圖如圖11所示。


圖11 脈沖同步器


Mux同步器

將時鐘域1的信息發(fā)送到時鐘域2時,使用這對數(shù)據(jù)和控制信號。使用多bit數(shù)據(jù)和使用單bit控制信號。在接收端,根據(jù)發(fā)送時鐘和接收時鐘的比值,使用電平或脈沖同步器為多路復(fù)用器產(chǎn)生控制信號。這種技術(shù)類似于MCP,并且如果數(shù)據(jù)在跨越時鐘邊界的多個時鐘周期中是穩(wěn)定的,則這種技術(shù)是有效的。如圖12所示。

圖12 Mux同步器


05

bit數(shù)據(jù)傳輸?shù)奶魬?zhàn)

在多個時鐘域之間傳遞多個控制信號是一個重要的挑戰(zhàn)。問題是這些控制信號到達(dá)的時間不同。如果這些控制信號的到達(dá)沒有得到正確的管理,那么真正的問題是由于傾斜??紤]圖13所示的場景,其中“enable ” “l(fā)oad_en ”和“ready ”需要從一個時鐘域傳遞到另一個時鐘域。在這種情況下,如果使用獨(dú)立的電平同步器,則接收端可能會因為信號的歪斜(信號到達(dá)時間不同)而出現(xiàn)同步失敗。

圖13 對接收端時鐘域內(nèi)的多個信號進(jìn)行采樣


考慮其中一個控制信號,例如enable到達(dá)較晚,則控制路徑中可能存在同步失敗,為了避免這組3個控制信號,嘗試在時鐘域之間傳遞共同信號。策略如圖14所示。

圖14 固定在多時鐘域內(nèi)傳遞的控制信號


06

數(shù)據(jù)路徑同步

用于在時鐘域之間傳遞多個數(shù)據(jù)bit的技術(shù)是:

  • 握手機(jī)制

  • 異步FIFO緩存

  • 格雷編碼


握手機(jī)制

在時鐘域之間傳遞多比特信號時,握手機(jī)制的使用是一種有用的技術(shù)。如圖15所示,發(fā)射機(jī)工作在clk1,接收機(jī)工作在clk2。數(shù)據(jù)可以從發(fā)射機(jī)傳送到接收機(jī)。這里要注意,該握手與AXI總線的握手略有不同。


接收端時鐘域可以產(chǎn)生數(shù)據(jù)有效(data valid)和設(shè)備就緒(ready)等握手信號。因此,目的是通知發(fā)送器總線上還存在有效數(shù)據(jù)可用,設(shè)備還沒有準(zhǔn)備好接收新數(shù)據(jù)。


圖15 握手機(jī)制框圖


握手信號datavalid它是來自時鐘域2的主動高電平握手信號,表示傳輸?shù)臄?shù)據(jù)是有效數(shù)據(jù),接收端只需要很少的時鐘就可以對該數(shù)據(jù)進(jìn)行采樣。傳輸數(shù)據(jù)時的時鐘延遲取決于同步器中使用的觸發(fā)器的數(shù)量,而延遲是握手機(jī)制的最大缺點之一。


握手信號deviceready它表明當(dāng)數(shù)據(jù)有效的時候,接收端已經(jīng)準(zhǔn)備好接收新數(shù)據(jù),并且設(shè)備ready好了可以拉高通知發(fā)送端將新數(shù)據(jù)放到數(shù)據(jù)總線上。


如果我們有多個時鐘域的FSM控制器,那么設(shè)計架構(gòu)來通過使用請求(request)和確認(rèn)(ack)信號建立同步。FSM控制的握手機(jī)制如圖16所示。

圖16 FSM握手機(jī)制


異步FIFO同步器

異步FIFO是有用的,因為數(shù)據(jù)路徑同步器是用來交換多個時鐘域之間的數(shù)據(jù)。如果FIFO內(nèi)存緩沖區(qū)沒有滿,發(fā)送端時鐘域或發(fā)送端時鐘域可以使用write_clk將數(shù)據(jù)寫入FIFO內(nèi)存緩沖區(qū),如果FIFO內(nèi)存緩沖區(qū)沒有空,接收端時鐘域可以使用read_clk讀取數(shù)據(jù)(圖17)。


FIFO由以下幾個塊組成:

Memory:內(nèi)存緩沖區(qū)

Write Clock Domain:write_clk上工作的寫時鐘域邏輯。

Read clock Domain:讀時鐘域邏輯,它正在read_clk上工作。

Flag Logic:生成標(biāo)志邏輯empty和full。


FIFO和相關(guān)的邏輯塊如圖17所示。

圖17 FIFO框圖


如何得到FIFO的深度?


考慮寫時鐘域的工作頻率為250 MHz,讀時鐘域的工作頻率為100 MHz,沒有延遲,然后傳輸50字節(jié)的突發(fā)長度,可以使用以下計算:


Write clock time: T1 = 1/250 MHz = 4 ns.The Time Required to Write Burst of 50 Bytes of data = 4 ns*50 = 200 nsRead Clock Time: T2 = 1/100 MHz = 10 nsNumber of Reads with 10 ns = 200 ns/10 ns = 20Depth of FIFO = 5020 = 30 Bytes.

如果指定了讀和寫延遲,那么嘗試修改上面的步驟來獲得FIFO的深度。


格雷編碼

在傳遞多個位的數(shù)據(jù)或控制信號時,必須使用格雷編碼技術(shù),因為這種技術(shù)保證了兩個連續(xù)的數(shù)字只有一bit的變化。例如,如果4bit二進(jìn)制數(shù)據(jù)需要在多個時鐘域之間傳遞,那么一個或多個bit轉(zhuǎn)換,因此需要更多的功率和出錯的機(jī)會。因此,為了避免這種情況,提高性能,在發(fā)送端或發(fā)送端時鐘域采用二進(jìn)制到格雷碼轉(zhuǎn)換邏輯。這保證了在時鐘邊界上只有一bit變化。為了得到接收端時鐘域的原始二進(jìn)制數(shù)據(jù),采用格雷碼到二進(jìn)制碼的轉(zhuǎn)換。該技術(shù)如圖18所示。

圖18 格雷編碼技術(shù)


07

總結(jié)

總結(jié)幾個要點:

  • 在多個時鐘域之間傳遞數(shù)據(jù)時,設(shè)計數(shù)據(jù)路徑同步器。

  • 在多個時鐘域之間傳遞控制信號時,需要設(shè)計控制路徑同步器。

  • 在通過時鐘域傳遞數(shù)據(jù)和控制信號信息時,強(qiáng)烈建議使用多周期路徑來避免亞穩(wěn)態(tài)問題。

  • 傳遞多bit控制或數(shù)據(jù)信息的常用而有效的技術(shù)是使用異步FIFO

  • 對于在多個時鐘域之間傳遞的多位控制信號,采用分組技術(shù)來避免由于到達(dá)時間不同而產(chǎn)生的歪斜。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉