Xilinx 7Series\UltraScale 在線升級FLASH STARTUPE2和STARTUPE3使用

一、FPGA 在線升級

FPGA 在線升級FLASH時,一般是通過邏輯生成SPI接口操作FLASH,當然也可以通過其他SOC經FPGA操作FLASH,那么FPGA就要實現在啟動后對FLASH的控制。

對于7Series FPGA,只有CCLK是專用引腳,SPI接口均為普通IO可直接通過約束解決,CCLK產生需通過STARTUPE2產生。

對于UltraScale 及UltraScale+系列,所有FLASH配置引腳(包含CCLK和SPI)均為專用引腳,在bit運行時需通過STARTUPE3產生。

二、STARTUPE2

??參考Xilinx ug470,STARTUPE2接口框圖如下:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
對SPI設置為X1,STARTUPE2例程如下:

   STARTUPE2 #(.PROG_USR("FALSE"),             // Activate program event security feature. Requires encrypted bitstreams..SIM_CCLK_FREQ(0.0)             // Set the Configuration Clock Frequency(ns) for simulation.)STARTUPE2_spi (.CFGCLK(),                        // 1-bit output: Configuration main clock output.CFGMCLK(     ),                  // 1-bit output: Configuration internal oscillator clock output.EOS(),                           // 1-bit output: Active high output signal indicating the End Of Startup..PREQ(),                          // 1-bit output: PROGRAM request to fabric output.CLK(1'b0),                       // 1-bit input: User start-up clock input.GSR(1'b0),                       // 1-bit input: Global Set/Reset input (GSR cannot be used for the port name).GTS(1'b0),                       // 1-bit input: Global 3-state input (GTS cannot be used for the port name).KEYCLEARB(1'b1),                 // 1-bit input: Clear AES Decrypter Key input from Battery-Backed RAM (BBRAM).PACK(1'b1),                      // 1-bit input: PROGRAM acknowledge input.USRCCLKO(i_SPI1_CLK),            // 1-bit input: User CCLK input.USRCCLKTS(1'b0),                 // 1-bit input: User CCLK 3-state enable input.USRDONEO(1'b1),                  // 1-bit input: User DONE pin output control.USRDONETS(1'b1)                  // 1-bit input: User DONE 3-state enable output);assign o_QSPI_flash_MOSI = i_SPI1_MOSI;
assign o_QSPI_flash_CSB  = i_SPI1_CSB;
assing o_SPI1_MISO       = i_QSPI_flash_MISO;

其中:
(1)o_QSPI_flash_MOSI、o_QSPI_flash_CSB、i_QSPI_flash_MISO、o_QSPI_flash_SCLK為連接到FLASH的信號,i_SPI1_MOSI、i_SPI1_CSB、o_SPI1_MISO、i_SPI1_CLK為FPGA內部產生或其他SOC產生的配置FLASH SPI信號,FPGA通過STARTUPE2 和邏輯完成這些信號和FLASH的連接;

(2)STARTUPE2 中USRCCLKO為輸入,USRCCLKTS為三態控制信號,當USRCCLKTS=0,時USRCCLKO輸出到CCLK,用于配置FLASH,因CCLK為專用管腳,故代碼中不需要CCLK的描述;

(3)USRDONETS的控制與USRCCLKTS類似,USRDONETS=0,USRDONEO直接輸出到FPGA的配置DONE引腳

(4)CFGCLK為輸出的配置時鐘,FPGA可用該時鐘產生SPI邏輯,也可用其他時鐘信號

三、STARTUPE3

??參考Xilinx ug570,STARTUPE3接口框圖如下:

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
對SPI設置為X1,STARTUPE3例程如下:

wire [3:0] QSPI_in_null;STARTUPE3 #(.PROG_USR("FALSE"),  // Activate program event security feature. Requires encrypted bitstreams..SIM_CCLK_FREQ(0.0)  // Set the Configuration Clock Frequency (ns) for simulation.)STARTUPE3_inst (.CFGCLK(),                                                   // 1-bit output: Configuration main clock output..CFGMCLK(),                                                  // 1-bit output: Configuration internal oscillator clock output..DI({QSPI_in_null[3:2],i_QSPI_flash_MISO,QSPI_in_null[0]}),  // 4-bit output: Allow receiving on the D input pin..EOS (),                                                     // 1-bit output: Active-High output signal indicating the End Of Startup..PREQ(),                                                     // 1-bit output: PROGRAM request to fabric output..DO({3'b111,o_QSPI_flash_MOSI}),                             // 4-bit input: Allows control of the D pin output..DTS(4'b0010),                                               // 4-bit input: Allows tristate of the D pin..FCSBO(o_QSPI_flash_CSB),                                    // 1-bit input: Controls the FCS_B pin for flash access..FCSBTS(1'b0),                                               // 1-bit input: Tristate the FCS_B pin..GSR(1'b0),                                                  // 1-bit input: Global Set/Reset input (GSR cannot be used for the port)..GTS(1'b0),                                                  // 1-bit input: Global 3-state input (GTS cannot be used for the port name)..KEYCLEARB(1'b1    ),                                        // 1-bit input: Clear AES Decrypter Key input from Battery-Backed RAM (BBRAM)..PACK(1'b1),                                                 // 1-bit input: PROGRAM acknowledge input..USRCCLKO(o_QSPI_flash_SCLK),                                // 1-bit input: User CCLK input..USRCCLKTS(1'b0),                                            // 1-bit input: User CCLK 3-state enable input..USRDONEO(1'b1),                                             // 1-bit input: User DONE pin output control..USRDONETS(1'b1)                                             // 1-bit input: User DONE 3-state enable output.);

其中:
(1)o_QSPI_flash_MOSI、o_QSPI_flash_CSB、i_QSPI_flash_MISO、o_QSPI_flash_SCLK為FPGA內部產生或其他SOC產生的配置FLASH SPI信號,FPGA通過STARTUPE3 和邏輯完成這些信號和FLASH的連接,應CCLK和SPI均為專用管腳,故代碼中不需要CCLK的描述;

(2)STARTUPE3 中USRCCLKO為輸入,USRCCLKTS為三態控制信號,當USRCCLKTS=0,時USRCCLKO輸出到CCLK,用于配置FLASH

(3)DO為FPGA輸出到FLASH的QSPI 數據信號,例程采用了SPIx1,僅D0 MOSI有效,D3 D2設置為1,falsh WP_B和HOLD_B信號無效;

(4)DI為FLASH輸入到FPGA的QSPI 數據信號,例程采用了SPIx1,僅D1 MISO有效;

(5)DTS為數據信號方向,例程采用了SPIx1,所以D0為MOSI,D1為MISO,其他為WP和HOLD信號,所以DTS設置為4’b0010

(4)FCSBO為FPGA輸出到FLASH的FCSBO信號,FCSBTS=0表示由FPGA邏輯輸出o_QSPI_flash_CSB到FLASH的CSB

(5)DTS為數據信號方向,例程采用了SPIx1,所以D0為MOSI,D1為MISO,其他為WP和HOLD信號,所以DTS設置為4’b0010

(6)USRDONETS的控制與USRCCLKTS類似,USRDONETS=0,USRDONEO直接輸出到FPGA的配置DONE引腳

(7)CFGCLK為輸出的配置時鐘,FPGA可用該時鐘產生SPI邏輯,也可用其他時鐘信號

STARTUPE3有許多三態控制,如下圖所示,當三態控制信號為0時,信號按下圖中反向傳輸,為1是反向。
在這里插入圖片描述

參考文件

ug570-ultrascale-configuration
ug470-ultrascale-configuration

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906479.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906479.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906479.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Azure 應用服務中的異常處理、日志記錄和通知:綜合指南

簡介 Azure 應用服務是基于云的應用程序,使開發人員能夠在云上構建、部署和管理應用程序。與任何應用程序一樣,制定適當的異常處理、日志記錄和通知實踐至關重要,以確保應用程序平穩運行,并快速識別和解決任何問題。在本篇博文中&…

Java 應用如何實現 HTTPS:加密數據傳輸的實用指南

Java 應用如何實現 HTTPS:加密數據傳輸的實用指南 在當今的互聯網環境中,數據安全至關重要,HTTPS 作為加密的數據傳輸協議,為 Java 應用提供了安全通信的保障。本文將深入探討 Java 應用如何實現 HTTPS,通過詳細代碼實…

域名與DNS詳解

域名與DNS詳解 一、核心概念 域名(Domain Name) 定義:人類可讀的網絡地址標識(如 www.google.com)作用:替代復雜IP地址(類似"手機通訊錄"功能) DNS(Domain …

c++20引入的三路比較操作符<=>

目錄 一、簡介 二、三向比較的返回類型 2.1 std::strong_ordering 2.2 std::weak_ordering 2.3 std::partial_ordering 三、對基礎類型的支持 四、自動生成的比較運算符函數 4.1 std::rel_ops的作用 4.2 使用<> 五、兼容他舊代碼 一、簡介 c20引入了三路比較操…

計算機網絡相關面試題

一、HTTP1.1和HTTP2的區別 HTTP/1&#xff08;主要指 HTTP/1.1&#xff09;和 HTTP/2 是 Web 協議發展中的兩個重要版本&#xff0c;二者在性能、協議機制和功能特性上有顯著差異。以下從多個維度對比分析&#xff0c;并結合具體案例說明&#xff1a; 一、連接與請求處理方式 1…

圖論算法精解(Java 實現):從基礎到高頻面試題

一、圖的基礎表示方法 1.1 鄰接矩陣&#xff08;Adjacency Matrix&#xff09; 鄰接矩陣是表示圖的一種直觀方式&#xff0c;它使用一個二維數組來存儲節點之間的連接關系。對于一個有 n 個節點的圖&#xff0c;鄰接矩陣是一個 nn 的矩陣&#xff0c;其中 matrix [i][j] 表示…

江科大TIM定時器hal庫實現

定時器相關hal庫函數 hal庫的定時器函數相比于標準庫&#xff0c;多了很多的中斷回調函數&#xff0c;同時對于定時器的初始化也改成使用句柄一次性順帶連帶DMA等功能一起初始化了 typedef struct {uint32_t Prescaler; /*定時器的預分頻值*/uint32_t CounterMode; …

CentOS 10:啟動telnet服務

參考&#xff0c; 鳥哥私房菜 - 第七章、網路安全與主機基本防護&#xff1a;限制埠口, 網路升級與 SELinux 7.3.3 埠口與服務的啟動/關閉及開機時狀態設定 我們知道系統的 Telnet 服務通常是以 super daemon 來控管的&#xff0c;請您啟動您系統的 telnet 試看看。 1 要啟動 …

Taro 安全區域

目錄 一、問題描述 二、問題解決 1、頂部劉海區 2、底部小黑條 一、問題描述 安全區域主要是為了避免劉海屏或底部欄遮擋&#xff0c;而造成的不良顯示效果。 本次將針對以下兩點進行考量&#xff1a; 1、頂部劉海屏區 2、蘋果X底部小黑條 二、問題解決 通過Taro.getS…

【Java微服務組件】分布式協調P1-數據共享中心簡單設計與實現

歡迎來到啾啾的博客&#x1f431;。 記錄學習點滴。分享工作思考和實用技巧&#xff0c;偶爾也分享一些雜談&#x1f4ac;。 歡迎評論交流&#xff0c;感謝您的閱讀&#x1f604;。 目錄 引言設計一個共享數據中心選擇數據模型鍵值對設計 數據可靠性設計持久化快照 &#xff08…

在SpringBoot項目中,使用單元測試@Test

1.引入依賴 <!--單元測試Test的依賴--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>3.2.1</version> </dependency> 2.在src/test/java目錄…

在Java中,將Object對象轉換為具體實體類對象

在Java中&#xff0c;將Object對象轉換為具體實體類對象可以通過以下幾種方法實現&#xff1a; 1?.使用instanceof關鍵字進行類型檢查和轉換?&#xff1a; 首先&#xff0c;使用instanceof關鍵字檢查Object對象是否為目標實體類的類型。 如果是&#xff0c;則進行強制類型…

JAVA學習-練習試用Java實現“音頻文件的讀取與寫入 :使用Java音頻庫處理音頻數據”

問題&#xff1a; java語言編輯&#xff0c;實現音頻文件的讀取與寫入 &#xff1a;使用Java音頻庫處理音頻數據。 解答思路&#xff1a; 在Java中處理音頻文件通常需要使用第三方庫&#xff0c;例如javax.sound.sampled包&#xff0c;它提供了處理音頻文件的基本功能。以下是一…

Flink架構概覽,Flink DataStream API 的使用,FlinkCDC的使用

一、Flink與其他組件的協同 Flink 是一個分布式、高性能、始終可用、準確一次&#xff08;Exactly-Once&#xff09;語義的流處理引擎&#xff0c;廣泛應用于大數據實時處理場景中。它與 Hadoop 生態系統中的組件可以深度集成&#xff0c;形成完整的大數據處理鏈路。下面我們從…

linux 查看java的安裝路徑

一、驗證Java安裝狀態 java -version正常安裝會顯示版本信息&#xff1a; openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)二、檢查環境變量配置 若已配置JAVA_HOME&#…

2025-5-21 個人筆記篇matlab小筆記和clang基礎使用(簡單記錄)

個人筆記篇 再不記錄就找不到了&#xff0c;之前學的一點基礎&#xff0c;看看就行,請不要提問,因為很久了>_<(至少我看來是這樣的) matlab小筆記 % 開繪制(新建) figure % 設置繪制標題 title(標題); % 設置繪制的X軸Lable xlabel(x); % 設置繪制的y軸Lable ylabel(cos…

前端JavaScript-嵌套事件

點擊 如果在多層嵌套中&#xff0c;對每層都設置事件監視器&#xff0c;試試看 <!DOCTYPE html> <html lang"cn"> <body><div id"container"><button>點我&#xff01;</button></div><pre id"output…

網感驅動下開源AI大模型AI智能名片S2B2C商城小程序源碼的實踐路徑研究

摘要&#xff1a;在數字化浪潮中&#xff0c;網感已成為內容創作者與商業運營者必備的核心能力。本文以開源AI大模型、AI智能名片及S2B2C商城小程序源碼為技術載體&#xff0c;通過解析網感培養與用戶需求洞察的內在關聯&#xff0c;提出"數據驅動-場景適配-價值重構"…

AG-UI:重構AI代理與前端交互的下一代協議標準

目錄 技術演進背景與核心價值協議架構與技術原理深度解析核心功能與標準化事件體系典型應用場景與實戰案例開發者生態與集成指南行業影響與未來展望1. 技術演進背景與核心價值 1.1 AI交互的三大痛點 當前AI應用生態面臨三大核心挑戰: 交互碎片化:LangGraph、CrewAI等框架各…

游戲引擎學習第301天:使用精靈邊界進行排序

回顧并為今天的內容做準備 昨天&#xff0c;我們解決了一些關于排序的問題&#xff0c;這對我們清理長期存在的Z軸排序問題很有幫助。這個問題我們一直想在開始常規游戲代碼之前解決。雖然不確定是否完全解決了問題&#xff0c;但我們提出了一個看起來合理的排序標準。 有兩點…