主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

FFT-HDL优化ブロックを使用した FPGA用 快速傅里叶变换の実装

この例では、FFT-HDL优化ブロックを使用して、ハードウェア用に 快速傅里叶变换を実装する方法を説明します。

FFT-HDL优化ブロックと IFFT HDL优化ブロックおよび 系统对象は、多くのアプリケーションのシミュレーションおよび 高密度脂蛋白コード生成をサポートします。これらは異なるユース ケース用に最適化された 2.つのアーキテクチャを提供します。

  • 流基数2^2- 高スループット アプリケーション用です。ベクトル入力を使用する場合、毎秒ギガサンプル (普惠制)を実現します。

  • 突发基数2- 低領域アプリケーション用です。1.つの複素バタフライのみを使用します。

この例には 2.つのモデルが含まれており、FFT-HDL优化ブロックのストリーミング アーキテクチャおよびバースト アーキテクチャの使用方法をそれぞれ示しています。

流基数2^2アーキテクチャ

最新の 模数转换器では、最大で毎秒数ギガサンプルというサンプルレートで信号をサンプリングできます。ただし、最速の FPGAのクロック速度でもこのサンプルレートには及びません。通常、FPGAは数百 兆赫で実行されます。FPGAで 普惠制処理を実行する方法の 1.つは、複数のサンプルをはるかに低いクロック レートで同時に処理することです。多くの最新の FPGAでは、千兆赫のクロック レートでスカラー入力を受け入れて低クロック レートでサンプル ベクトルを生成する、JESD204B標準インターフェイスがサポートされています。そのため、最新の信号処理はベクトル処理を必要とします。

流基数2^2アーキテクチャは高スループットのユース ケースをサポートするように設計されています。このモデル例ではサイズ 8.の入力ベクトルを使用し、流基数2^2アーキテクチャを使用して 快速傅里叶变换を計算します。タイミング図、サポートされる機能、および FPGAリソースの使用方法については、FFT-HDL优化ブロック リファレンス ページを参照してください。

型号名称=“FFTHDLOptimizedExample\u流媒体”; 开放式系统(型号名称);

InitFcnコールバック ([モデル プロパティ]、[コールバック]、[InitFcn])でモデルのパラメーターを設定します。この例では、パラメーターによって 快速傅里叶变换のサイズと入力データの特性を制御します。

FFT长度=512;

入力データは、それぞれ 1*2e6赫兹でサンプリングされた 200千赫と 250千赫の 2.つの正弦波です。入力ベクトルのサイズは 8.サンプルです。

帧大小=8;Fs=1*2e6;

データを連続して受信する必要がないことを示すために、この例では 1.サイクルおきに有効な入力を適用します。

有效模式=[1,0];

スペクトル ビューアーを開いて、モデル例を実行します。

开放式系统(“FFTHDLOptimizedExample\u流媒体/频谱查看器/功率谱查看器”); sim(型号名称);

突发基数2(最小リソース) アーキテクチャ

FPGAリソースが限られたアプリケーションで、特に 快速傅里叶变换長が大きい場合に突发基数2アーキテクチャを使用します。このアーキテクチャは 1.つの複素バタフライのみを使用して 快速傅里叶变换を計算します。この設計では准备好的がアサートされているときにデータを受け入れ、快速傅里叶变换フレーム全体がメモリに保存されると処理を開始します。この設計では処理の間データを受け入れることができないため、准备好的のアサートは解除されます。タイミング図、サポートされる機能、および FPGAリソースの使用方法については、FFT-HDL优化ブロック リファレンス ページを参照してください。

型号名称=“FFTHDLOptimizedExample_Burst”; 开放式系统(型号名称);

InitFcnコールバック ([モデル プロパティ]、[コールバック]、[InitFcn])でモデルのパラメーターを設定します。この例では、パラメーターによって 快速傅里叶变换のサイズと入力データの特性を制御します。

FFT长度=512;

入力データは、それぞれ 1*2e6赫兹でサンプリングされた 200千赫と 250千赫の 2.つの正弦波です。データはすべてのサイクルで有効です。

Fs=1*2e6;有效模式=1;

スペクトル ビューアーを開いて、モデル例を実行します。

开放式系统(“FFTHDLOptimizedExample\u突发/频谱查看器/功率谱查看器”); sim(型号名称);

高密度脂蛋白コードとテスト ベンチの生成

この例の 高密度脂蛋白を生成するには、HDL编码器™ ライセンスが必要です。

モデルを 1.つ選択して 高密度脂蛋白コードとテスト ベンチを生成します。

系统名=“FFTHDLOptimizedExample_突发/FFT HDL优化突发”;

または

系统名=“FFTHDLOptimizedExample\u流媒体/FFT HDL优化流媒体”;

このコマンドを使用して、どちらかの 快速傅里叶变换モードの 高密度脂蛋白コードを生成します。生成結果は任意の FPGAまたは 专用集成电路ターゲットに使用できます。

makehdl(系统名);

このコマンドを使用して 高密度脂蛋白シミュレーションの結果金宝appと 模拟シミュレーションの動作を比較するテスト ベンチを生成します。

makehdltb(系统名);