官术网_书友最值得收藏!

1.4 I/O塊

Cyclone 10 GX器件的I/O塊支持下面的特性,包括:①單端、非參考電壓和電壓參考的I/O標(biāo)準(zhǔn);②低電壓差分信號(Low-Voltage Differential Signaling,LVDS)、RSDS、mini-LVDS、HSTL、HSUL和SSTL I/O標(biāo)準(zhǔn);③串行化器/解串行化器(SERDES);④可編程的輸出電流強(qiáng)度;⑤可編程的擺率;⑥可編程的總線-保持;⑦可編程的弱上拉電阻;⑧可編程的預(yù)加重 LVDS 標(biāo)準(zhǔn);⑨可編程的 I/O 延遲;⑩可編程的差分輸出電壓(VOD);?開漏輸出;?片上串行端接(RS OCT),包含/不包含標(biāo)定;?片上并行端接(RT OCT);?片上差分端接(RD OCT);?帶有動態(tài)斷電的HSTL和SSTL輸入緩沖區(qū);?用于所有I/O組的動態(tài)片上并行端接。I/O組在I/O列內(nèi)的分布如圖1.56所示。

圖1.56 I/O組在I/O列內(nèi)的分布

1.4.1 I/O組的排列

通用I/O(General Purpose I/O,GPIO)由LVDS I/O和3V I/O組構(gòu)成。

1.LVDS I/O組

支持高達(dá)1.8V的差分和單端I/O標(biāo)準(zhǔn)。LVDS I/O引腳構(gòu)成一對真差分LVDS通道。每一對支持兩個引腳之間的并行輸入/輸出端接。設(shè)計者可以使用每個 LVDS 通道僅作為發(fā)送器或接收器。每個LVDS通道支持傳輸SERDES并通過DAP電路接收SERDES。例如,設(shè)計者可以使用 24 個通道中的 10 個通道作為發(fā)送器。在剩余的通道中,可以使用 13 個通道作為接收器,使用一個通道作為參考時鐘。

484引腳封裝的器件不包含3B和3A I/O組,672引腳封裝的器件不包含3B I/O組。

2.3V I/O組

支持高達(dá)3V的單端和差分SSTL、HSTL、HSUL I/O標(biāo)準(zhǔn)。除以下情況外,在該I/O組中的單端 I/O 支持所有可編程的 I/O 元件(I/O element,IOE),即可編程的預(yù)加重、RD 片上端接、校準(zhǔn)的RS和RT OCT,以及產(chǎn)生內(nèi)部VREF。

Gyclone 10 GX器件支持suoyou LVDS I/O組上的LVDS,包括:

(1)所有LVDS I/O組支持帶有RD OCT真LVDS輸入和真LVDS輸出緩沖區(qū);

(2)器件不支持對LVDS通道的模擬;

(3)器件支持驅(qū)動SERDES的I/O PLL單端和差分I/O參考時鐘。

Cyclone 10 GX器件中的I/O引腳分組排列稱為模塊化I/O組,其中:

(1)模塊化I/O組具有獨(dú)立的電源,允許每個組支持不同的I/O標(biāo)準(zhǔn)。

(2)每個模塊化I/O組都可以支持使用相同電壓的多個I/O標(biāo)準(zhǔn)。

10CX085和10CX105器件的模塊化I/O組如表1.20所示,10CX150和10CX220器件的模塊化I/O組如表1.21所示。

表1.20 10CX085和10CX105器件的模塊化I/O組

表1.21 10CX150和10CX220器件的模塊化I/O組

1.4.2 I/O電氣標(biāo)準(zhǔn)

Cyclone 10 GX器件的所有封裝均可與不同電源電壓的系統(tǒng)連接,其中:

(1)I/O緩沖區(qū)由VCC、VCCPT和VCCIO供電;

(2)每個I/O組都有自己的VCCIO供電,并且僅支持一個VCCIO電壓;

(3)在所有的I/O組中,除2.5V和3.0V外,可以使用任何列出的VCCIO電壓;

(4)僅在3V的I/O組上支持2.5V和3.0V的VCCIO電壓。

(1)對于允許的最大和最小輸入電壓,請參見器件數(shù)據(jù)手冊。

(2)VCC為FPGA的核心供電電壓,典型值為0.9V。

(3)VCCPT 為可編程的電源技術(shù)和 I/O 預(yù)驅(qū)動器的供電電壓,典型值為1.8V。

Cyclone 10 GX器件的I/O支持的標(biāo)準(zhǔn)電壓如表1.22所示。

表1.22 Cyclone 10 GX器件的I/O支持的標(biāo)準(zhǔn)電壓

續(xù)表

(1)VREF為輸入?yún)⒖茧妷海?/p>

(2)VTT為板端接電壓。

1.4.3 I/O架構(gòu)和特性

每個 I/O 組包含它自己的 PLL、DPA 和 SERDES 電路。在每個 I/O 組中,有 4 個 I/O通道(Lane),每個通道有12個I/O引腳。不同于I/O通道,每個I/O組有專用的電路,包括I/O PLL、DPA塊、SERDES、硬核存儲器控制器和I/O序列器。

1.I/O緩沖器和寄存器

I/O 寄存器用于處理從引腳到內(nèi)核數(shù)據(jù)的輸入路徑、用于處理從內(nèi)核到引腳數(shù)據(jù)的輸出路徑,以及用于處理 OE 信號到輸出緩沖區(qū)的輸出使能(OE)路徑構(gòu)成。這些寄存器允許更快的源同步寄存器到寄存器的傳輸和重新同步。使用 GPIO 來利用這些寄存器實(shí)現(xiàn) DDR電路。輸入和輸出路徑包含以下塊。

1)輸入寄存器

支持從外設(shè)到 FPGA 內(nèi)核的半速率/全速率的數(shù)據(jù)傳輸,并支持從 I/O 緩沖區(qū)捕獲雙速率/單速率的數(shù)據(jù)。

2)輸出寄存器

支持從 FPGA 內(nèi)核到外設(shè)的半速率/全速率的數(shù)據(jù)傳輸,并支持到 I/O 緩沖區(qū)的雙速率/單速率的數(shù)據(jù)傳輸。

3)OE寄存器

支持從FPGA內(nèi)核到外設(shè)的半速率/全速率的數(shù)據(jù)傳輸,并支持將單速率數(shù)據(jù)傳輸?shù)絀/O緩沖區(qū)。

輸入和輸出路徑也支持下面的特性,包括時鐘使能、同步/異步復(fù)位、用于輸入和輸出路徑的旁路模式,以及在輸入和輸出路徑上的延遲鏈。Cyclone 10 GX器件內(nèi)IOE的架構(gòu)如圖1.57所示。

一個關(guān)于寄存器的Verilog HDL描述如代碼清單1-18所示。

圖1.57 Cyclone 10 GX器件內(nèi)IOE的架構(gòu)

代碼清單1-18 一個關(guān)于寄存器的Veriog HDL描述

在該設(shè)計中,在Quatus軟件的“Advanced Fitter Settings”對話框中,將Optimize IOC Register Placement for Timing設(shè)置為Pack All IO Registers。設(shè)計適配后的網(wǎng)表結(jié)構(gòu)如圖1.58所示。

圖1.58 設(shè)計適配后的網(wǎng)表結(jié)構(gòu)

在Chip Planner中,找到該設(shè)計在I/O中的布局,如圖1.59所示。通過觀察可知,設(shè)計中的觸發(fā)器使用了I/O內(nèi)的觸發(fā)器資源,這樣改善了時序,并節(jié)省了所使用的ALM資源。

圖1.59 設(shè)計在I/O中的布局

2.I/O引腳的特性

I/O引腳的特性包括:開漏輸出、總線保持和弱上拉電阻。

1)開漏輸出

每個 I/O 引腳可選的開漏輸出相當(dāng)于集電極開路輸出。如果將其配置為開漏,則輸出的邏輯值為高阻或邏輯低。使用一個外部電阻將信號拉到邏輯高電平。

2)總線保持

每個 I/O 引腳提供一個可選的總線保持特性,僅在配置后才有效。當(dāng)器件進(jìn)入用戶模式時,總線保持電路捕獲配置結(jié)束后出現(xiàn)在引腳上的值。

總線保持電路使用一個帶有標(biāo)稱電阻值(RBH)的電阻,大約為7kΩ,將信號電平弱拉至引腳最后驅(qū)動狀態(tài)。總線保持電路保持這個引腳狀態(tài),直到出現(xiàn)下一個輸入信號。因此,當(dāng)公共總線是三態(tài)時,不需要外部上拉或下拉電阻來保持信號電平。

對于每個 I/O 引腳,可以單獨(dú)指定總線保持電路將沒有驅(qū)動的引腳拉離輸入的閾值電壓(此處噪聲可能導(dǎo)致意外的高頻切換)。為了阻止過驅(qū)動信號,總線保持電路將 I/O 引腳的電平驅(qū)動低于VCCIO電平。

如果使能總線保持特性,則無法使用可編程上拉選項。為了差分信號配置 I/O 引腳,禁止總線保持特性。

3)弱上拉電阻

在用戶模式下,每個 I/O 引腳提供了一個可選的上拉電阻。典型地,上拉電阻為25kΩ,將I/O弱保持在VCCIO電平。Cyclone 10 GX器件支持可編程的弱上拉電阻僅用于用戶I/O引腳,而不再專用配置引腳、專用時鐘引腳或JTAG引腳。

如果使能該選項,則無法使用總線保持功能。

1.4.4 可編程的IOE特性

Cyclone 10 GX器件的可編程特性的設(shè)置和分配如表1.23所示。

表1.23 Cyclone 10 GX器件的可編程特性的設(shè)置和分配

Cyclone 10 GX器件支持的可編程的IOE特性I/O標(biāo)準(zhǔn)和緩沖區(qū)類型如表1.24所示。

表1.24 Cyclone 10 GX器件支持的可編程IOE特性的I/O標(biāo)準(zhǔn)和I/O緩沖區(qū)類型

續(xù)表

1.可編程的電流強(qiáng)度

可以使用可編程的電流強(qiáng)度以減輕由長傳輸線或傳統(tǒng)背板引起的高信號衰減的影響。要使用可編程的電流強(qiáng)度,必須在 Quartus 軟件中指定當(dāng)前的強(qiáng)度分配。如果沒有明確的分配,Quartus軟件將使用這些預(yù)定義的默認(rèn)值:

(1)所有的HSTL和SSTL Class I,以及所有沒有參考電壓的I/O標(biāo)準(zhǔn)-50Ω RS OCT,無須標(biāo)定;

(2)所有HSTL和SSTL Class II I/O標(biāo)準(zhǔn)-25?RS OCT,無須標(biāo)定;

(3)POD12 I/O標(biāo)準(zhǔn)-34ΩRS OCT,無須標(biāo)定。

2.可編程的壓擺率控制

每個常規(guī)和雙功能I/O引腳的輸出緩沖器中的可編程壓擺率控制允許配置如下。

(1)Fast:為高性能系統(tǒng)提供高速跳變;

(2)Slow:降低系統(tǒng)噪聲和串?dāng)_,但會在上升沿和下降沿增加延遲;

設(shè)計者可以為每個引腳指定壓擺率,這是因為每個I/O引腳都包含壓擺率控制。

3.可編程的IOE延遲

設(shè)計者可以激活可編程的 IOE 延遲,以確保零保持時間,最小化建立時間或者增加時鐘到輸出的時間。這個特性有助于讀取和寫入的時間余量,因為它可以最大限度地減少總線中信號之間的不確定性。

每個引腳可以有從引腳到輸入寄存器不同的輸入延遲或從輸出寄存器到輸出引腳值的延遲,以保證總線內(nèi)的信號具有進(jìn)出器件的相同延遲。

4.可編程的開漏輸出

當(dāng)輸出緩沖區(qū)的邏輯為高電平時,可編程的開漏輸出在輸出端提供高阻態(tài)。如果輸出緩沖區(qū)的邏輯為低電平,則輸出為低電平。

可以將幾個開漏輸出連接到一個線。這種連接類型類似于邏輯“或”功能,通常稱為低有效線或電路。如果輸出中至少有一個為邏輯“0”狀態(tài)(有效),則電路吸收電流并使線路進(jìn)入低電壓。

如果要將多個設(shè)備連接到總線,則可以使用漏極開路輸出。例如,可以將開漏輸出用作系統(tǒng)級控制信號,這些信號可以由任何器件置為有效或作為中斷。

可以使用下面其中一種方法啟用漏極開路輸出分配:

(1)使用OPNDRN原語設(shè)計三態(tài)緩沖區(qū);

(2)打開Quartus軟件中的Auto Open-Drain Pins選項。

可以在不啟用選項分配的情況下設(shè)計漏極開路輸出。但是,設(shè)計不會使用 I/O 緩沖區(qū)的開漏輸出功能。I/O緩沖區(qū)的漏極開路輸出功能將提供從OE到輸出的最佳傳播延遲。

5.可編程的預(yù)加重

VOD 的設(shè)置和驅(qū)動器的輸出阻抗設(shè)置高速傳輸信號的輸出電流限制。在高頻率時,壓擺率可能不夠快,無法在下一個邊沿之前達(dá)到 VOD 電平,從而產(chǎn)生與模式相關(guān)的抖動。通過預(yù)加重,在切換期間瞬間提升輸出電流,以提高輸出壓擺率。

預(yù)加重增加了輸出信號高頻分量的幅度,因此有助于補(bǔ)償在傳輸線上與頻率相關(guān)的衰減。由額外電流引入的過沖僅發(fā)生在狀態(tài)切換變化期間,以增加輸出壓擺率并且沒有振鈴,這不像由信號反射引起的過沖。所需要的預(yù)加重的數(shù)量取決于沿傳輸線的高頻分量衰減。

6.可編程的差分輸出電壓

可編程的 VOD 設(shè)置允許設(shè)計者調(diào)整輸出眼圖開度,以優(yōu)化走線長度和功耗。一個較高的VOD擺幅可改善接收器端的電壓余量,較少的VOD擺幅可降低功耗。通過在Quatus軟件Assignment Editor中的VOD設(shè)置來靜態(tài)調(diào)整差分信號的VOD。

1.4.5 片上端接

使用Cyclone 10 GX器件內(nèi)的片上端接,可以顯著減少FPGA芯片外使用端接元器件的數(shù)量,以及降低了PCB板的布線難度。

串行(RS)和并行(RT)OCT提供了I/O阻抗匹配和端接功能。OCT可以保證信號的質(zhì)量,節(jié)省電路板空間并降低外部元件成本。

Cyclone 10 GX器件支持所有FPGA I/O組中的OCT。對于3V I/O,I/O僅支持OCT而無須校準(zhǔn)。

1.4.6 SERDES和DPA

Cyclone 10 GX器件內(nèi)提供的高速差分I/O接口和DPA功能優(yōu)于單端I/O的優(yōu)勢,并有助于實(shí)現(xiàn)整體系統(tǒng)帶寬。Cyclone 10 GX 器件支持 LVDS、mini-LVDS 和降低擺幅差分信號(Reduced Swing Differential Signaling,RSDS)差分I/O標(biāo)準(zhǔn)。

1.SERDES架構(gòu)

Cyclone 10 GX 器件內(nèi)的每個 LVDS I/O 通道都有內(nèi)建的串行化器/解串行化器(SERDES)電路,支持高速 LVDS 接口。串行化器負(fù)責(zé)將 FPGA 內(nèi)部的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),解串行化器負(fù)責(zé)將接收到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。設(shè)計者可以配置 SERDES電路以支持源同步的通信協(xié)議,如RapidIO、XSBI、SPI和異步協(xié)議。

SERDES電路的LVDS內(nèi)部結(jié)構(gòu)如圖1.60所示。圖中給出LVDS發(fā)送器和LVDS接收器的框圖,其中包含 LVDS 發(fā)送器和 LVDS 接收器數(shù)據(jù)路徑的接口信號。從圖中可知,在LVDS發(fā)送器和LVDS接收器之間共享PLL。如果LVDS發(fā)送器和LVDS接收器不共享相同的 PLL,則需要兩個 PLL。在單速率(Single Data Rate,SDR)和雙數(shù)率(Double Data Rate,DDR)模式中,數(shù)據(jù)寬度分別為1位和2位。

圖1.60 SERDES電路的內(nèi)部結(jié)構(gòu)

LVDS發(fā)送器和LVDS接收器要求來自I/O PLL的各種時鐘和加載使能信號。Quartus軟件自動配置 PLL 設(shè)置。根據(jù)輸入?yún)⒖紩r鐘和所選擇的數(shù)據(jù)率,該軟件還負(fù)責(zé)生成各種時鐘和負(fù)載使能信號。

2.差分發(fā)送器

Cyclone 10 GX器件的發(fā)送器包含專用的電路,用以支持高速差分信號。差分發(fā)送器緩沖區(qū)支持下面的特性:

(1)LVDS信令,支持驅(qū)動LVDS、mini-LVDS和RSDS信號;

(2)可編程的VOD和可編程的預(yù)加重。

如圖1.60所示,LVDS發(fā)送器模塊是專用的電路,它由一個真正的差分緩沖區(qū)、一個串行器和I/O PLL構(gòu)成,可以在LVDS發(fā)送器和LVDS接收器之間共享它。串行化器從FPGA架構(gòu)中得到高達(dá) 10 位寬的并行數(shù)據(jù),然后在時鐘的作用下送到加載寄存器。并且,在將數(shù)據(jù)送到差分緩沖區(qū)之間,使用由I/O PLL時鐘驅(qū)動的移位寄存器將其串行化。注意,首先發(fā)送并行數(shù)據(jù)的MSB。

驅(qū)動LVDS SERDES通道的PLL必須工作在整數(shù)模式。如果旁路掉串行化器,則不需要PLL。

在 IOE 中有兩個數(shù)據(jù)輸出寄存器,它們可以工作在 DDR 或 SDR 模式。設(shè)計者可以旁路掉解串行化器,以支持DDR和SDR操作,以分別實(shí)現(xiàn)串行化因子2和1。通過GPIO,也支持旁路解串行化器。

在 SDR 模式下,其特性包括:①IOE 的數(shù)據(jù)寬度為 1 位;②寄存的輸出路徑要求一個時鐘;③數(shù)據(jù)直接通過IOE傳遞。

在 DDR 模式下,其特性包括:①IOE 的數(shù)據(jù)寬度為 2 位;②GPIO IP 核要求一個時鐘;③tx_inclock驅(qū)動IOE寄存器。

3.差分接收器

如圖1.60所示,LVDS接收器由可以在LVDS發(fā)送器和LVDS接收器之間共享的差分緩沖器和I/O PLL、DPA塊、同步器、位滑動(數(shù)據(jù)重對齊塊)和解串行化器構(gòu)成。差分緩沖器可以接收 LVDS、mini-LVDS 和 RSDS 信號電平。在 Quartus 軟件中,可以將接收器引腳靜態(tài)設(shè)置為LVDS、mini-LVDS或者RSDS。

用于驅(qū)動LVDS SERDES通道的PLL必須工作在整數(shù)PLL模式。如果旁路掉解串行化器,則不需要PLL。

在SDR和DDR模式下,來自IOE的數(shù)據(jù)寬度分別為1位和2位。解串行化器包括移位寄存器和并行加載寄存器,并且將最寬為10位的數(shù)據(jù)發(fā)送給FPGA的內(nèi)部邏輯。

1)DPA塊

DPA 塊從差分緩沖器接收高速串行數(shù)據(jù),并從 I/O PLL 生成的 8 個相位(0°、45°、90°、135°、180°、225°、270°和 315°)中選擇其中一個相位來采樣數(shù)據(jù)。DPA 選擇最接近串行數(shù)據(jù)相位的相位。接收數(shù)據(jù)和所選擇相位之間最大的相位偏移是 1/8 單位間隔(注:單位間隔是指運(yùn)行在串行數(shù)據(jù)率時的時鐘周期),這是DPA的最大量化誤差。

DPA 塊持續(xù)監(jiān)視輸入串行數(shù)據(jù)的相位,并在需要時選擇新的相位。通過設(shè)置用于每個通道可選的rx_dpa_hold端口來阻止DPA選擇新的時鐘相位。

DPA 塊不要求固定的訓(xùn)練模式來鎖定 8 個相位中最佳的相位。在復(fù)位或上電后,DPA塊要求接收到的數(shù)據(jù)有跳變,從而鎖定最佳相位。可選的輸出端口 rx_dpa_locked 用于指示在復(fù)位或上電后初始的 DPA 鎖定條件達(dá)到了最佳相位。使用數(shù)據(jù)檢查器,如循環(huán)冗余校驗(Cyclic Redundancy Check,CRC)或?qū)墙豢椘媾夹r灒―PI-4)來驗證數(shù)據(jù)。

一個單獨(dú)的復(fù)位端口rx_dpa_reset用于復(fù)位DPA塊。復(fù)位后,必須重新訓(xùn)練DPA塊。

在非DPA模式下,旁路DPA塊。

2)同步器

同步器是 1 比特寬度和 6 位深度的 FIFO 緩沖區(qū),用于補(bǔ)償 dpa_fast_clock(DPA 模塊選擇的最佳時鐘)與 I/O PLL 產(chǎn)生的 fast_clock 之間的相位差。同步器只能補(bǔ)償數(shù)據(jù)和接收器輸入?yún)⒖紩r鐘之間的相位差,而不是頻率差。

可選的端口rx_fifo_reset可用于內(nèi)部邏輯對同步器復(fù)位。當(dāng)DPA首次鎖定到傳入的數(shù)據(jù)時,同步器會自動復(fù)位。當(dāng)數(shù)據(jù)檢查器指示接收的數(shù)據(jù)已經(jīng)損壞時,Intel 建議使用rx_fifo_reset復(fù)位同步器。

在非DPA和軟-CDR模式下旁路同步器。

3)位滑動(數(shù)據(jù)重對齊模塊)

傳輸數(shù)據(jù)中的偏斜,以及鏈路所增加的偏斜會引起所接收串行數(shù)據(jù)流上信道到信道的偏斜。如果使能 DPA,則在每個通道上用不同的時鐘相位捕獲所接收到的數(shù)據(jù)。這種差異可能導(dǎo)致從通道到通道接收的數(shù)據(jù)不對齊。為了補(bǔ)償這種通道到通道的偏移并在通道建立正確的接收字邊界,每個接收器通道都有專用的數(shù)據(jù)重對齊電路,通過在串行數(shù)據(jù)流中插入位延遲來重對齊數(shù)據(jù)。

可選的 rx_bitslip_ctrl 端口控制每個接收器的位插入,其由內(nèi)部邏輯獨(dú)立控制。在rx_bitslip_ctrl上升沿時,數(shù)據(jù)滑動一位。rx_bitslip_ctrl信號的要求包含以下選項:

① 最小脈沖寬度是邏輯陣列中并行時鐘的一個周期;

② 脈沖之間的最小低電平時間是并行時鐘的一個周期;

③ 信號是邊沿觸發(fā)的信號;

④ 在rx_bitslip_ctrl的上升沿后,有效數(shù)據(jù)在4個并行周期可用。

4)解串行化器

在 Quartus 軟件中,可以靜態(tài)設(shè)置解串行化因子為×3、×4、×5、×6、×7、×8、×9 或×10。IOE 包含兩個可在 DDR 或 SDR 模式下運(yùn)行的數(shù)據(jù)輸入寄存器。通過旁路解串行化器,以支持DDR(×2)和SDR(×1)操作。通過GPIO IP內(nèi)核,支持旁路解串行化器。

在旁路解串行化器的 SDR 模式下,其特性包括:①IOE 的數(shù)據(jù)寬度為 1 位;②寄存的輸入路徑要求一個時鐘;③數(shù)據(jù)直接通過IOE傳遞。

在旁路解串行化器的DDR模式下,其特性包括:①IOE的數(shù)據(jù)寬度為2位;②GPIO IP核要求一個時鐘;③rx_inclock驅(qū)動IOE寄存器,時鐘必須同步到rx_in;④必須控制數(shù)據(jù)到時鐘的偏移。

主站蜘蛛池模板: 东山县| 手机| 敦化市| 县级市| 勐海县| 古蔺县| 上栗县| 霍林郭勒市| 乌拉特前旗| 正宁县| 鄄城县| 本溪市| 安多县| 团风县| 望都县| 宝鸡市| 清苑县| 宜春市| 麟游县| 三明市| 西畴县| 金堂县| 临夏市| 海林市| 广安市| 卓资县| 会昌县| 龙游县| 玛沁县| 喀什市| 利津县| 湖口县| 沅陵县| 凭祥市| 宜黄县| 任丘市| 三亚市| 闽清县| 台东县| 威信县| 怀化市|