<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 安全與國(guó)防 > 設(shè)計(jì)應(yīng)用 > Teledyne e2v的宇航級(jí)DDR4的硬件設(shè)計(jì)指南

          Teledyne e2v的宇航級(jí)DDR4的硬件設(shè)計(jì)指南

          作者:Rajan Bedi 博士 時(shí)間:2021-07-06 來(lái)源:電子產(chǎn)品世界 收藏


          本文引用地址:http://www.ex-cimer.com/article/202107/426742.htm

          摘要

          快速、高可靠和耐輻射的存儲(chǔ)是復(fù)雜空間邊緣計(jì)算系統(tǒng)的必備特性。DDR4 將使航天工業(yè)實(shí)現(xiàn)更高吞吐量的星上計(jì)算能力和更長(zhǎng)的采集時(shí)間,從而支持全新的地球觀測(cè)、空間科學(xué)和電信應(yīng)用,例如超高分辨率圖像、實(shí)時(shí)流媒體視頻和星載人工智能。

          我之前介紹過(guò)面向宇航應(yīng)用的 Teledyne e2v 的耐輻射 DDR4 (DDR4T04G72),可提供 4GB 的存儲(chǔ)容量,高達(dá)1.2GHz的時(shí)鐘頻率和 2.4GT/s 的數(shù)據(jù)速率(帶寬為 172.8Gb/s),本文將更深入地介紹這款宇航級(jí) DDR4 存儲(chǔ)器的細(xì)節(jié)。

          本文的第一部分將討論 SDRAM的技術(shù)實(shí)現(xiàn),然后擴(kuò)展到 DDR4 的架構(gòu)和結(jié)構(gòu),因?yàn)?DDR4 包含了最新的架構(gòu)和硬件特性,需要首先考慮這些要素以確保設(shè)計(jì)的正確性。

          隨后,我將重點(diǎn)介紹 PolarFire FPGA 和 Teledyne e2v DDR4T04G72 之間點(diǎn)對(duì)點(diǎn)的連接的例子,以及多個(gè) DDR4器件如何與一片 Xilinx KU060 FPGA 連接。

          最后,我將介紹DDR4 相比于DDR3 的優(yōu)點(diǎn),以及單模式和多模式的DDR4 配置及容量。


          我之前介紹過(guò)這款面向宇航應(yīng)用的 DDR4,可提供 4GB 的存儲(chǔ)容量,高達(dá) 1.2GHz 的時(shí)鐘頻率和 2.4GT/s 的數(shù)據(jù)速率(帶寬為 172.8Gb/s)。與前幾代 SDRAM 相比,DDR4 包含新的架構(gòu)和硬件特性,提高了容量、性能、可擴(kuò)展性、系統(tǒng)可靠性和電氣效率。除了上述內(nèi)容,本文還將討論時(shí)序和信號(hào)完整性,以及如何將這個(gè)存儲(chǔ)器和FPGA 連接,以確保電子設(shè)計(jì)的正確性。

          SDRAM 的架構(gòu)由多個(gè)存儲(chǔ)單元組成,這些存儲(chǔ)單元組織在一個(gè)二維的行和列的數(shù)組中,如圖 1 所示。要選擇一個(gè)特定的位,首先需找到相關(guān)的行,然后是相關(guān)的列。一旦選通所需的行,就可以訪(fǎng)問(wèn)多個(gè)列,從而通過(guò)連續(xù)的讀/ 寫(xiě)操作提高速度并減少延遲。

          為了增加字的大小,存儲(chǔ)器包含多個(gè)數(shù)組,而當(dāng)請(qǐng)求讀/ 寫(xiě)訪(fǎng)問(wèn)時(shí),存儲(chǔ)器只需要一個(gè)地址來(lái)訪(fǎng)問(wèn)每個(gè)數(shù)組中的某一位。為了增加總的存儲(chǔ)容量,SDRAM 的內(nèi)部結(jié)構(gòu)包含許多 bank,如下圖所示。這些交錯(cuò)的 bank 進(jìn)一步提高了性能,每一個(gè) bank 都可以被獨(dú)立尋址。

          圖1 SDRAM 的bit cell 和 DDR 芯片的結(jié)構(gòu)

          SDRAM 的核心速度比它的 I/O 速率慢。在每個(gè)列指令期間可訪(fǎng)問(wèn)多個(gè)數(shù)據(jù)字,然后這些數(shù)據(jù)被序列化到接口。DDR4基于 8n 預(yù)取架構(gòu),每個(gè)時(shí)鐘周期在 I/O 傳輸兩個(gè) n 位寬的數(shù)據(jù)字。一個(gè)讀/寫(xiě)操作包括一個(gè)單獨(dú)的 8n 位寬、4 個(gè)周期的在DRAM核心上的傳輸操作和對(duì)應(yīng)的8 個(gè)n 位、一個(gè)半周期的I/O 端口傳輸操作。

          DDR4擴(kuò)展了上述 SDRAM架構(gòu),引入了 bank 組的概念,允許在一個(gè)組中預(yù)取8個(gè),并在另一個(gè)組中獨(dú)立執(zhí)行另一個(gè)操作。實(shí)際上,DDR4時(shí)分復(fù)用其內(nèi)部的 bank 組,以隱藏內(nèi)部核心比 I/O 端口傳輸8個(gè)字需要更多的時(shí)間這一事實(shí)。與 DDR3相比,DDR4 通過(guò)更多的 bank 和更小尺寸的行,使器件能夠以更高的速率訪(fǎng)問(wèn)不同的bank,從而提高性能。 DDR4 存儲(chǔ)器的結(jié)構(gòu)如下圖所示。為了支持更大的存儲(chǔ)容量而不增加額外的地址引腳,DDR4 使用全新定義的 ACT_n輸入到命令管腳 RAS、CAS 和 WE 的復(fù)用地址。如果 ACT_n 為低,這些輸入被分別用作地址 A16、A15 和 A14 腳。如果ACT_n 為高,它們則恢復(fù)為SDRAM 命令真值表中指定的正常功能。

          1625541115415844.png

          圖 1 EV12AQ600 的不確定性源和積累延遲

          Teledyne e2v的4GB耐輻射DDR4T04G72是一款包含5個(gè)裸片的MCP,其中4個(gè)分別提供 1GB(8Gb)的存儲(chǔ)(512Mb x 16 位),組成2組,每組有4個(gè) bank,如上圖所示。為了提高可靠性,它使用72位的數(shù)據(jù)總線(xiàn),包含64位數(shù)據(jù)和8位錯(cuò)誤檢測(cè)修復(fù)。這個(gè)ECC功能在第5片裸片中實(shí)現(xiàn)。該器件使用一個(gè)內(nèi)部的8n預(yù)取緩沖以最大限度地高速運(yùn)行,并提供可編程的讀、寫(xiě)和附加延遲。

          DDR4引入了一些硬件特性以降低功耗。首先,I/O供電(VDDQ)從DDR3使用的1.35V降低到1.2V。增加了一個(gè)獨(dú)立的2.5V供電Vpp,用來(lái)激活內(nèi)部字線(xiàn)并降低10%的功耗。數(shù)據(jù)總線(xiàn)的 I/O 電氣接口從推挽 SSTL 變?yōu)橄聢D所示的偽開(kāi)漏(POD)信號(hào)。通過(guò)截止到VDDQ而不是1/2的VDDQ,信號(hào)擺動(dòng)的幅值和中心可根據(jù)不同設(shè)計(jì)的需要定制。POD的I/O降低了驅(qū)動(dòng)數(shù)據(jù)時(shí)的開(kāi)關(guān)電流,因?yàn)橹挥?時(shí)才消耗功率。DDR4還提供數(shù)據(jù)總線(xiàn)倒置,以分配更少的位,降低熱量和功耗。通過(guò)減少開(kāi)關(guān)的次數(shù),可減少噪聲,并實(shí)現(xiàn)更干凈的數(shù)據(jù)眼圖。

          圖3 DDR3 的推挽 I/O 信號(hào)(左)vs. DDR4 的POD(右)

          總的來(lái)說(shuō),降低的VDDQ電壓、使用外部Vpp供電操作字線(xiàn)、使用POD信號(hào)和VDDQ截止,以及前面討論的更小的行尺寸和激活電流,都使得DDR4的整體功耗比DDR3 SDRAM大大降低。在類(lèi)似的數(shù)據(jù)速率下,DDR4 器件大約減少了30%的功耗。這使得用戶(hù)可以實(shí)現(xiàn)更高的速度,或以更低的功耗實(shí)現(xiàn)相同的性能。我們可提供DDR4T04G72的功耗預(yù)測(cè)表和ICEPAK/ECXML熱模型。

          在系統(tǒng)的層面,DDR4提供了更高的可靠性、可用性和可服務(wù)(RAS)。數(shù)據(jù)總線(xiàn)在寫(xiě)操作時(shí)的CRC錯(cuò)誤檢測(cè)和命令、地址總線(xiàn)的奇偶校驗(yàn)如下圖所示。與DDR3不同,DDR4可被配置為當(dāng)檢測(cè)到奇偶校驗(yàn)錯(cuò)誤時(shí)停止命令。

          1625541347672804.png

          圖4 DDR4 提供的系統(tǒng)級(jí)錯(cuò)誤檢測(cè)

          對(duì)于那些在存儲(chǔ)器的生命周期里無(wú)法使用ECC修復(fù)的軟錯(cuò)誤,DDR4提供了一個(gè)“包后修復(fù)”的功能來(lái)糾正出現(xiàn)故障的行。這不僅提高了系統(tǒng)的可靠性和壽命,而且提供了一種進(jìn)一步防止單粒子翻轉(zhuǎn)的機(jī)制。

          DDR4還提供了連接性測(cè)試模式(CT),用來(lái)在不調(diào)用SDRAM的初始化序列的情況下檢查內(nèi)存和控制器之間的PCB走線(xiàn)的連續(xù)性。傳統(tǒng)的邊界掃描測(cè)試在每個(gè)時(shí)鐘周期串行移入和移出測(cè)試序列,與之不同,CT模式使用更快的并行接口。

          DDR4的I/O接口是真正的源同步設(shè)計(jì),使用雙向數(shù)據(jù)選通DQS,每個(gè)時(shí)鐘周期捕獲兩次數(shù)據(jù)。在寫(xiě)操作時(shí),DQS由存儲(chǔ)器輸出,與數(shù)據(jù)相關(guān);對(duì)于寫(xiě)操作,DQS由以數(shù)據(jù)為中心的控制器提供,提供同步參考。為了保證數(shù)據(jù)速率增加、幅度減小時(shí)的數(shù)據(jù)完整性,時(shí)鐘和strobe信號(hào)是差分的,以抵消共模噪聲。在PCB層面,DQS對(duì)數(shù)據(jù)總線(xiàn)有相同的負(fù)載,布線(xiàn)方式類(lèi)似。其余的地址、命令、控制和數(shù)據(jù)信號(hào)依然工作在單端模式,更容易受到噪聲、串?dāng)_和干擾的影響。

          在PCB布線(xiàn)之前,需決定為布線(xiàn)不匹配留出多少時(shí)間余量,這一點(diǎn)很重要。我們可以考慮時(shí)間占整個(gè)周期的比例,例如時(shí)鐘頻率是1.2GHz 時(shí),一個(gè)周期是833ps。對(duì)于FR4的典型飛行時(shí)間是6.6ps/mm,所以1mm的走線(xiàn)大約消耗整個(gè)周期的1.6%。如果您的設(shè)計(jì)并不要求實(shí)現(xiàn)性能的極限,您可以為整體的線(xiàn)長(zhǎng)不匹配留出較大的余量,以提高布線(xiàn)靈活性,簡(jiǎn)化布線(xiàn)的工作。

          當(dāng)計(jì)算PCB的傳遞延遲時(shí),需注意內(nèi)層(帶狀線(xiàn))和外層(微帶線(xiàn))的延遲不同,因?yàn)樗鼈兊挠行Ы殡姵?shù)不同。過(guò)孔引入了Z方向上額外的長(zhǎng)度,需匹配的線(xiàn)上的過(guò)孔數(shù)目應(yīng)該相同,并有著相同的跨度,以忽略它們對(duì)整體時(shí)間特性的影響。

          在加工PCB之前,建議進(jìn)行布線(xiàn)后仿真,以確認(rèn)時(shí)間余量和信號(hào)完整性。Teledyne e2v可提供DDR4T04G72的IBIS和Spice模型,使您可在設(shè)計(jì)早期確認(rèn)電氣和時(shí)序是否滿(mǎn)足要求。我是用Mentor Graphics(現(xiàn)在是 Siemens)的Hyperlynx Linesim和Boardsim分別驗(yàn)證布線(xiàn)前和布線(xiàn)后的信號(hào)完整性,優(yōu)化終端和驅(qū)動(dòng)能力,并驗(yàn)證時(shí)間余量,以便在投產(chǎn)前確認(rèn)沒(méi)有問(wèn)題。目前,另一種EBD模型也正在開(kāi)發(fā)中。

          為了驗(yàn)證使用內(nèi)部布線(xiàn)層的控制器和存儲(chǔ)器之間的信號(hào)完整性,可參考PolarFire耐輻射FPGA與單片DDR4T04G72連接 的數(shù) 據(jù)線(xiàn) 的Linesim預(yù)測(cè)的眼圖(圖 5)。多個(gè)DDR4設(shè)備也可通過(guò)各自的IP控制器連接到單片F(xiàn)PGA上。

          1625541462535579.png

          圖5 PolarFire 和 DDR4T04G72 的點(diǎn)對(duì)點(diǎn)連接

          為了增加總體的存儲(chǔ)容量,相同的軟IP可控制fly-by或clamshell拓?fù)涞亩鄠€(gè)DDR4器件,即公共時(shí)鐘、地址、控制和數(shù)據(jù)信號(hào),而每片SDRAM有各自的片選輸入信號(hào),如下圖所示。在這種情況下,傳輸線(xiàn)更長(zhǎng),容性負(fù)載更大,因此需要通過(guò)仿真來(lái)確定所需的驅(qū)動(dòng)器電流強(qiáng)度。每個(gè)KU060 DDR4控制器的最大數(shù)據(jù)總線(xiàn)寬度是80位,可訪(fǎng)問(wèn)最多5個(gè)外部存儲(chǔ)器,而FPGA可實(shí)例化其中的兩個(gè)IP。

          1625541494309147.png

          圖6 多個(gè)DDR4 器件與Xilinx KU060 FPGA 的連接

          Xilinx提供了一個(gè)視頻,演示如何實(shí)例化一個(gè)DDR控制器及其資源,以計(jì)算最大速率和可連接到FPGA的外部SDRAM設(shè)備的數(shù)量。PolarFire 的DDR4 IP提供了72位的數(shù)據(jù)總線(xiàn)寬度,允許上述的4 個(gè)DDR4T04G72的連接。

          當(dāng)DDR4T04G72連接到Xilinx的KU060或Microchip的PolarFire耐輻射FPGA時(shí),數(shù)據(jù)速率分別為1.33GT/s和1.86GT/s時(shí)的存儲(chǔ)容量和帶寬如表1所示??稍贔PGA中實(shí)例化的DDR4 IP的總數(shù)取決于您I/O使用的具體情況,所以請(qǐng)使用 Vivado? Design Suite 或 Libero? SoC確認(rèn)您的配置。NanoXplore的NG-Ultra也將支持DDR4SDRAM。

          1625541579366616.png

          表1 系統(tǒng)存儲(chǔ)容量和帶寬

          Xilinx提供了一個(gè)視頻,演示如何實(shí)例化一個(gè)DDR控制器及其資源,以計(jì)算最大速率和可連接到FPGA的外部SDRAM設(shè)備的數(shù)量。PolarFire 的DDR4 IP提供了72位的數(shù)據(jù)總線(xiàn)寬度,允許上述的4 個(gè)DDR4T04G72的連接。

          當(dāng)DDR4T04G72連接到Xilinx的KU060或Microchip的PolarFire耐輻射FPGA時(shí),數(shù)據(jù)速率分別為1.33GT/s和1.86GT/s時(shí)的存儲(chǔ)容量和帶寬如表1所示??稍贔PGA中實(shí)例化的DDR4 IP的總數(shù)取決于您I/O使用的具體情況,所以請(qǐng)使用 Vivado? Design Suite 或 Libero? SoC確認(rèn)您的配置。NanoXplore的NG-Ultra也將支持DDR4SDRAM。

          1625541652790440.png

          圖7 DDR4 的命令、地址和控制信號(hào)的Fly-by 終端

          1625541690121577.png

          圖8 DDR4 的差分時(shí)鐘輸入的 Fly-by 終端

          DDR4有片上的核心和I/O的電容,因此,沒(méi)有必要為每對(duì)功率引腳分配外部電容。然而,需要為DDR4T04G72指定最小的PCB解耦,以防止SDRAM核心刷新、讀寫(xiě)時(shí)造成供電下降。解耦還為讀操作提供輸出的驅(qū)動(dòng)電流。

          核心的頻率越低,所需的電容越大,而在高頻工作下的驅(qū)動(dòng)開(kāi)關(guān)則需要低電感和更小的電容。您已經(jīng)完成了原理圖設(shè)計(jì)、布線(xiàn)、預(yù)制時(shí)序和信號(hào)完整性檢查,分包了PCB的組裝,并驗(yàn)證了板子能正常加電。

          現(xiàn)在可以開(kāi)始使用存儲(chǔ)器了。但是,在操作之前,必須先初始化DDR4,這樣SDRAM才能識(shí)別其工作頻率和延遲參數(shù)。 DDR3使用一個(gè)分壓器創(chuàng)建Vdd/2,以作為參考來(lái)決定DQ信號(hào)是0還是1,如圖3所示。DDR4使用一個(gè)內(nèi)部電壓參考,VrefDQ,它的值必須在初始化階段由存儲(chǔ)器控制器設(shè)置。此外,SDRAM需要定期校準(zhǔn)輸出驅(qū)動(dòng)阻抗和ODT值,以最小化電壓和溫度的變化的影響,這一過(guò)程被稱(chēng)為ZQ校準(zhǔn)。在使用DDR4前的最后一步是存儲(chǔ)器訓(xùn)練,即計(jì)算SDRAM和對(duì)應(yīng)控制器之間的讀/寫(xiě)延遲。如圖6所示,對(duì)于連接到FPGA的多個(gè)DDR4芯片,可能每個(gè)設(shè)備與控制器的距離都不同,導(dǎo)致時(shí)鐘、strobe和數(shù)據(jù)之間的飛行時(shí)間偏差。寫(xiě)校準(zhǔn)可以補(bǔ)償這些偏差。在fly-back拓?fù)渲?,每個(gè)芯片在不同的時(shí)間接收命令、地址和控制,讀寫(xiě)中心始終捕獲眼圖的中間位置,確保數(shù)據(jù)可以可靠地從SDRAM讀取或?qū)懭氲絊DRAM。存儲(chǔ)器訓(xùn)練在初始化時(shí)校準(zhǔn)這些接口,確保操作之前有足夠的余量。

          總而言之,DDR4 將使衛(wèi)星行業(yè)實(shí)現(xiàn)更高吞吐量的星上處理和更長(zhǎng)的采集時(shí)間,并應(yīng)用于全新的地球觀測(cè)、空間科學(xué)和電信應(yīng)用,例如超高分辨率圖像、實(shí)時(shí)流媒體視頻和星上人工智能。如前所述,DDR4 包含新的架構(gòu)和硬件特性,需要首先考慮這些要素以確保設(shè)計(jì)的正確性。除了器件的數(shù)據(jù)手冊(cè),Teledyne e2v 還可提供 DDR4T04G72 的使用指南。

          DDR4 將首次允許衛(wèi)星和航天器制造商使用大存儲(chǔ)帶寬。在過(guò)去的 6 年里,我們的商業(yè)級(jí)應(yīng)用伙伴一直在使用這種大存儲(chǔ)帶寬。與現(xiàn)有的經(jīng)過(guò)認(rèn)證的 DDR3 SDRAM 相比,DDR4T04G72可與最新的宇航級(jí) FPGA 和微處理器配合使用,使得:

          ●   內(nèi)存帶寬增加62%(0.172 Tb/s,數(shù)據(jù)速率2.4GT/s),加倍當(dāng)前的傳輸速度

          ●   存儲(chǔ)容量增加25%

          ●   物理尺寸減少 76%

          ●   功耗減少30%

          Rajan Bedi 博士是 Spaceships 公司的 CEO 和創(chuàng)始人,該公司設(shè)計(jì)和制造一系列先進(jìn)的 L 到 K 波段的超高吞吐量星上處理器、應(yīng)答機(jī)和 OBC,用于通信、地球觀測(cè)、導(dǎo)航、互聯(lián)網(wǎng)和 M2M/IoT 衛(wèi)星。公司還提供宇航電子設(shè)計(jì)咨詢(xún)、航空電子測(cè)試、技術(shù)營(yíng)銷(xiāo)、商業(yè)智能和培訓(xùn)服務(wù)。

          Spaceships 的設(shè)計(jì)咨詢(xún)服務(wù)研發(fā)定制的衛(wèi)星和航天器子系統(tǒng),并為客戶(hù)提供建議,例如如何使用和選擇合適的器件,如何設(shè)計(jì)、測(cè)試、組裝和制造宇航電子系統(tǒng)等。我們?cè)?FPGA 的宇航應(yīng)用培訓(xùn)課程上教授半導(dǎo)體存儲(chǔ)器的相關(guān)內(nèi)容。



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();