《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 連接SPI接口器件 - 第一部分

連接SPI接口器件 - 第一部分

2021-11-29
來源:萊迪思
關鍵詞: SPI LEC2 FPGA

1.png

  LEC2 Workbench系列技術博文主要關注萊迪思產品的應用開發(fā)問題,。這些文章由萊迪思教育能力中心(LEC2)的FPGA設計專家撰寫,。LEC2是專門針對萊迪思屢獲殊榮的低功耗FPGA和解決方案集合的全球官方培訓服務供應商。

  萊迪思CrossLink?-NX FPGA擁有豐富的特性,,可加速實現高速和低速接口,。本文(系列博文的第一篇)描述了使用CrossLink-NX FPGA連接基于SPI的外部組件。第一篇博文介紹了使用兩個時鐘域實現連接DAC(亞德諾半導體公司的AD7303 DAC)的SPI接口,。第二篇博文將介紹使用單個時鐘域實現連接ADC(亞德諾半導體公司的 ADC AD7476)的SPI接口,。兩個案例中呈現了兩種截然不同的實現接口的方法。

  兩個時鐘域的實現方案(dac_2c)

  亞德諾半導體公司(ADI)的AD7303模塊用作外部DAC,。圖1顯示了接口的時序圖和時序參數,。在本例中,SCLK頻率為30 MHz,。時序參數t4,、t5和t6在時序約束規(guī)范時尤其需要關注,它們將在set_output_delay約束中使用,。

  

2.jpg

  圖1:時序圖和時序特征

  兩個時鐘域解決方案的實現如圖2所示,。

  

3.jpg

  圖2:兩個時鐘域SPI接口的實現

  使用的參數:

  輸入時鐘頻率:100 MHZ

  內部時鐘CLK_120頻率:120 MHZ

  內部時鐘CLK_30頻率:30 MHZ

  生成的時鐘dac_sck:30 MHZ

  PLL_120_30

  PLL從外部時鐘CLK(100 MHz)生成兩個內部相位同步時鐘CLK_120和CLK_30。

  dac_sample_gen模塊

  dac_sample_gen模塊為dac_fsm生成采樣信號(轉換),。采樣信號開始向DAC傳輸數字數據,。采樣率通過sample_select [1:0]信號設置,如表1所示,。dac_sample_gen的框圖如圖3所示,。

  

4.jpg

  表1:采樣率設置

  

6.jpg

  圖3:dac_sample_gen的框圖

  mode_select控制信號控制方波信號或三角波信號的生成,作為DAC的輸入數據,。

  sync_stage模塊

  dac_sample_gen模塊與CLK_120一起工作,。控制單元dac_fsm是CLK_30域的一部分,。sync_stage模塊將轉換信號從CLK_120域傳輸到CLK_30域,。來自dac_fsm的相應信號從CLK_30域傳輸到CLK_120,。sync_stage的框圖如圖4所示,。

  

7.jpg

  圖4:sync_stage的框圖

  dac_fsm模塊用于雙時鐘實現方案

  dac_fsm模塊控制生成傳輸到DAC的控制/數據信號。為了遵循圖1給出的t4、t5和t6的值,,dac_fsm在CLK_30的下降沿工作,。Dac_fsm作為狀態(tài)機實現。

  

8.jpg

  圖5:控制結構dac_fsm狀態(tài)機轉換信號被識別后,,bit_count計數器加載值15,。串行數據在時鐘信號CLK_30的下降沿輸出到dac_sdata上。傳輸16位數據后,,dac_fsm再次發(fā)出就緒信號并等待下一個轉換信號,。

  約束兩個時鐘域解決方案的設計

  1. 約束時鐘CLK

  9.jpg

  2. 約束時鐘CLK_120和CLK_30

  無需明確定義CLK_120和CLK_30這兩個時鐘信號,因為它們會由設計軟件自動定義,。這兩個時鐘也稱為自動生成時鐘,。

  

10.jpg

  3. 約束dac_clk

  連接到端口dac_sck的時鐘信號是內部時鐘CLK_30的副本。該信號被外部DAC解讀為時鐘,。因此,,該信號也必須被定義為時鐘,便于正確描述t4,、t5和t6的時間要求,。該時鐘即所謂的手動生成時鐘。

  

11.jpg

  4. 約束DAS輸入/FPGA輸出

  時間值t4,、t5和t6描述了外部模塊的setup/hold要求,。這些要求使用 set_output_delay約束進行描述。

  12.jpg

  運行兩個時鐘域解決方案的時序分析

  時序分析報告顯示了兩個時鐘信號CLK_120和CLK_30之間的關系,。

  

13.jpg

14.jpg

  注意CLK_120和CLK_30的跨時鐘域參數,,反之亦然。這正是我們所期望的,。

  對輸出信號dac_sync和dac_sdata的分析展示了基于set_output_delay約束實現的setup slack和hold slack,。

  總結總之,兩個時鐘域提供了一些功耗方面的優(yōu)勢,,因為設計的一部分以較低的速度運行,。此外,時序約束也很容易指定,。該項目(dac_2c)可在LEC2索取,。欲獲取項目副本,請通過[email protected]與我們聯系,。

  我們將在下一篇文章中探討單個時鐘域的方法,。

  Eugen Krassin是萊迪思教育能力中心(LEC2)的總裁兼創(chuàng)始人。




圖片.jpg


本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,,并不代表本網站贊同其觀點,。轉載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容,、版權和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經濟損失,。聯系電話:010-82306118;郵箱:[email protected],。