OFDM 802.11a的FPGA實現(二十)使用AXI-Stream FIFO進行跨時鐘(含代碼)

目錄

1.前言

2.AXI-Stream FIFO時序

3.AXI-Stream FIFO配置信息

4.時鐘控制模塊MMCM

5.ModelSim仿真

6.總結


1.前言

至此,通過前面的文章講解,對于OFDM 802.11a的發射基帶的一個完整的PPDU幀的所有處理已經全部完成,其結構如下圖所示:

PPDU幀結構

PPDU幀結構

PPDU幀結構

PPDU幀結構

接下來還需要完成兩個最為核心的模塊,一是主控模塊,負責與MAC進行數據交互、控制數據流按照上圖所示的幀結構進行輸出;二是在處理數據時,我們采用的是125M的時鐘,而DAC的時鐘是20M的,我們需要對數據流進行降頻處理,使125M的突發式數據流變為20M的連續數據流。

2.AXI-Stream FIFO時序

我們在數據處理時,一直使用的都是AXI-Stream協議,所以使用AXI-Stream FIFO進行跨時鐘域都不需要再進行額外的操作,直接連上就能用。但是為了讓大家對AXI-Stream協議有更深的理解,以及掌握AXI-Stream FIFO的使用方法,接下來還是詳細講講AXI-Stream FIFO這個IP核。其輸入輸出形式如下:

AXI-Stream FIFO

AXI-Stream FIFO

在AXI協議中,數據通過寫通道實現master到slave的傳輸,讀通道實現slave到master的傳輸。因此,在FIFO IP核中,接收數據的端口S_AXIS用來將數據寫入IP核,而發送數據的端口M_AXIS用來將數據讀出IP核。

舉個生活中的例子來讓大家便于理解FIFO:在數據的傳輸中當讀速率慢于寫速率時,FIFO便可被用作系統中的緩沖元件或隊列,類似于水流經過一個緩沖區,上游水流速度快,下游水流速度慢,部分水就可以被緩存在中間的緩沖區。

流水類比FIFO

流水類比FIFO

AXI接口協議使用雙向validready握手機制。數據源使用valid信號來顯示何時在信道上可獲得有效數據或控制數據。數據目的地使用ready信號來顯示何時可以接受數據。
下圖顯示了AXI4-Stream FIFO的寫入和讀取操作的示例時序圖:

AXI-Stream FIFO時序圖

AXI-Stream FIFO時序圖

在上圖中,數據源生成valid信號以指示數據何時可用。目的地生成ready信號以指示其可以接受數據,并且僅當有效信號和就緒信號均為高時才發生傳輸。

AXI FIFO是普通FIFO的應用,它們之間的許多行為是相同的。ready信號是根據 FIFO 中的空間可用性生成的,并保持在高電平以允許寫入FIFO。僅當FIFO中沒有空間可供執行額外寫入時,ready信號才會拉低。 valid信號是根據FIFO中數據的可用性生成的,并保持為高電平以允許從FIFO執行讀取。僅當沒有數據可供從FIFO讀取時,valid信號才會拉低。數據信號被映射到本機接口 FIFO 的 din 和 doout 總線。AXI FIFO 的寬度是通過連接 AXI 接口的所有數據信號來確定的。 數據信號包括除有效和就緒握手信號之外的所有 AXI 信號。

AXI FIFO Derivation

AXI FIFO Derivation

3.AXI-Stream FIFO配置信息

如下圖所示,是IP核的配置界面:

FIFO配置界面

FIFO配置界面

關于IP核中各個信號的詳解,可翻閱官方手冊,以下對該實驗中所需信號進行解釋:

Basic:
Interface Type : FIFO的模式,選擇AXI-Stream;

Independent clocks:獨立時鐘設置,該實驗需要使用異步時鐘;

其余保持默認即可。

AXI-Stream Ports:

TDATA NUM BYTES:選擇兩個字節,因為IFFT輸出是16bit;

TUSER WIDTH:設置為8;

TLAST:勾選;

其余保持默認即可。

Config:

FIFO depth:FIFO深度,可選范圍16-32768,必須為2的整數次冪,根據需要設定為512,因為125/20 * 80=500;

其余保持默認即可。

配置好,接口如下所示:

AXI-Stream FIFO

AXI-Stream FIFO

4.時鐘控制模塊MMCM

設計采用的開發板為ZYNQ7020,芯片是xc7z020clg400-1,板載時鐘為50M,需要通過鎖相環得到125M和20M的時鐘。Clocking Wizard IP核的配置界面如下:

Clocking Options

Clocking Options

Clocking Options:選擇MMCM,輸入時鐘填寫50M。

clk_out為125M,clk_out2為20M

clk_out為125M,clk_out2為20M

低電平復位

低電平復位

Output Clocks:填寫clk_out為125M,clk_out2為20M。并選擇低電平復位。

5.ModelSim仿真

和之前的模塊一起,按照如下連接,進行仿真,這里省略了并串轉換。

仿真模塊連接圖

仿真模塊連接圖

測試數據選擇5個OFDM符號,使用16-QAM調制,編碼效率為3/4,一共720個bit。仿真結果如下:

仿真全局截圖

仿真全局截圖

仿真局部截圖

仿真局部截圖

5個OFDM符號輸出的時間剛好為20us,說明是連續輸出的,即滿足了協議中符號之間不留間隙。

6.總結

使用AXI-Stream協議處理數據流,下游模塊數據沒處理好會對上游進行反壓,上游數據沒處理完,不會往下游傳輸,可以很方便且高效的對數據進行流水線處理。個人認為相比于書籍《基于XILINX FPGA的OFDM通信系統基帶設計》中方法要可靠得多。

書中的實現方法

書中的實現方法

網上大多數博客都是根據書中的這種,不斷變換時鐘進行跨時鐘域處理來做這個項目,個人認為不是很可靠,所以從頭開始采用了AXI-Stream協議處理數據流的方式來寫。如果有什么不正確的地方,或者不理解的歡迎和我討論。

原文鏈接(相關文章合集):OFDM 802.11a的xilinx FPGA實現

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

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

相關文章

opencv-C++ VS2019配置安裝

最新opencv-c安裝及配置教程(VS2019 C & opencv4.4.0)_c opencv配置-CSDN博客

夜雨觸花感懷

夜雨觸花感懷 雨落有軌跡,業成無坦途。 ?雞毛飛虛空,尋德問心路。 ?恰如求耕耘,大話量寸土。 ?好吃品五味,難得評真俗。

CAN總線簡介

1. CAN總線概述 1.1 CAN定義與歷史背景 CAN,全稱為Controller Area Network,是一種基于消息廣播的串行通信協議。它最初由德國Bosch公司在1983年為汽車行業開發,目的是實現汽車內部電子控制單元(ECUs)之間的可靠通信。…

用Vuex存儲可配置下載的ip地址(用XML進行ajax請求配置文件)

1.在public文件夾下創建一個名為Configuration的文件在創建一個Configuration.txt里面就放IP地址(這里的名字可以隨便命名一定性的被人解讀文件含義) 例如: http://172.171.208.1:80032.在store文件夾中創建一個名為 ajaxModule.js 的 Vuex …

2. CSS選擇器與偽類

2.1 基本選擇器回顧 在開始介紹CSS3選擇器之前&#xff0c;我們先回顧一下CSS的基本選擇器。這些選擇器是所有CSS開發的基礎。 2.1.1 元素選擇器 元素選擇器用于選中指定類型的HTML元素。 /* 選中所有的<p>元素 */ p {color: blue; }2.1.2 類選擇器 類選擇器用于選中…

03自動輔助導航駕駛NOP其實就是NOA

蔚來NOP是什么意思&#xff1f;蔚來NOP是啥 蔚來NOP的意思就是NavigateonPilot智能輔助導航駕駛&#xff0c;也就是大家俗稱的高階輔助駕駛&#xff0c;在車主設定好導航路線&#xff0c;并且符合開啟NOP條件的前提下&#xff0c;蔚來NOP可以代替駕駛員完成從A點到B點的智能輔助…

深入理解數倉開發(二)數據技術篇之數據同步

1、數據同步 數據同步我們之前在數倉當中使用了多種工具&#xff0c;比如使用 Flume 將日志文件從服務器采集到 Kafka&#xff0c;再通過 Flume 將 Kafka 中的數據采集到 HDFS。使用 MaxWell 實時監聽 MySQL 的 binlog 日志&#xff0c;并將采集到的變更日志&#xff08;json 格…

【二叉樹】:LeetCode:100.相同的數(分治)

&#x1f381;個人主頁&#xff1a;我們的五年 &#x1f50d;系列專欄&#xff1a;初階初階結構刷題 &#x1f389;歡迎大家點贊&#x1f44d;評論&#x1f4dd;收藏?文章 1.問題描述&#xff1a; 2.問題分析&#xff1a; 二叉樹是區分結構的&#xff0c;即左右子樹是不一…

[JDK工具-6] jmap java內存映射工具

文章目錄 1. 介紹2. 主要選項3. 生成java堆轉儲快照 jmap -dump4. 顯示堆詳細信息 jmap -heap pid5. 顯示堆中對象統計信息 jmap -histo pid jmap(Memory Map for Java) 1. 介紹 位置&#xff1a;jdk\bin 作用&#xff1a; jdk安裝后會自帶一些小工具&#xff0c;jmap命令(Mem…

PySide6升級導致的Fatal Python error: could not initialize part 2問題及其解決方法

問題出現 把PySide6從6.6.1升級到6.7.1&#xff0c;結果運行程序的時候就報如下錯誤&#xff1a; Traceback (most recent call last): File "signature_bootstrap.py", line 77, in bootstrap File "signature_bootstrap.py", line 93, in find_inc…

Kafka SASL_SSL集群認證

背景 公司需要對kafka環境進行安全驗證,目前考慮到的方案有Kerberos和SSL和SASL_SSL,最終考慮到安全和功能的豐富度,我們最終選擇了SASL_SSL方案。處于知識積累的角度,記錄一下kafka SASL_SSL安裝部署的步驟。 機器規劃 目前測試環境公搭建了三臺kafka主機服務,現在將詳…

H3CNE-7-TCP和UDP協議

TCP和UDP協議 TCP&#xff1a;可靠傳輸&#xff0c;面向連接 -------- 速度慢&#xff0c;準確性高 UDP&#xff1a;不可靠傳輸&#xff0c;非面向連接 -------- 速度快&#xff0c;但準確性差 面向連接&#xff1a;如果某應用層協議的四層使用TCP端口&#xff0c;那么正式的…

智能家居完結 -- 整體設計

系統框圖 前情提要: 智能家居1 -- 實現語音模塊-CSDN博客 智能家居2 -- 實現網絡控制模塊-CSDN博客 智能家居3 - 實現煙霧報警模塊-CSDN博客 智能家居4 -- 添加接收消息的初步處理-CSDN博客 智能家居5 - 實現處理線程-CSDN博客 智能家居6 -- 配置 ini文件優化設備添加-CS…

【MySQL】聊聊count的相關操作

在平時的操作中&#xff0c;經常使用count進行操作&#xff0c;計算統計的數據。那么具體的原理是如何的&#xff1f;為什么有時候執行count很慢。 count的實現方式 select count(*) from student;對于MyISAM引擎來說&#xff0c;會把一個表的總行數存儲在磁盤上&#xff0c;…

Linux下Vision Mamba環境配置+多CUDA版本切換

上篇文章大致講了下Vision Mamba的相關知識&#xff0c;網上關于Vision Mamba的配置博客太多&#xff0c;筆者主要用來整合下。 筆者在Win10和Linux下分別嘗試配置相關環境。 Win10下配置 失敗 \textcolor{red}{失敗} 失敗&#xff0c;最后出現的問題如下&#xff1a; https://…

基于物聯網架構的電子小票服務系統

1.電子小票物聯網架構 采用感知層、網絡層和應用層的3層物聯網體系架構模型&#xff0c;電子小票物聯網的架構見圖1。 圖1 電子小票物聯網架構 感知層的小票智能硬件能夠取代傳統的小票打印機&#xff0c;在不改變商家原有收銀系統的前提下&#xff0c;采集收音機待打印的購物…

react中的數據驅動視圖,useState()的使用

前端開發如今有一個很重要的思想就是數據驅動視圖&#xff0c;數據發生變化使ui發生變化&#xff0c;比如一個變量count&#xff0c;為0顯示三個按鈕&#xff0c;為1顯示一個按鈕&#xff0c;為2顯示兩個按鈕。這就是一個簡單的數據驅動視圖。 import { useState } from reactf…

修改 ant design tour 漫游式導航的彈窗邊框樣式

一 說明 應項目要求&#xff0c;調整ant design tour 彈窗邊框的樣式。tour 原本樣式是有遮罩層&#xff0c;因此沒有邊框看起來也不突兀。原圖如下&#xff1a; 但是UI設計是取消遮罩層&#xff0c;并設置邊框樣式。當 取消 了遮罩層&#xff0c;沒有設置邊框樣式的圖片如下&a…

python考試成績管理與分析:從列表到方差

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、考試成績的輸入與列表管理 二、成績的總分與平均成績計算 三、成績方差的計算 四、成…