DSP Builderに぀いお䞀蚀

驚いたこずに、DSP Builderに特化したHabrに関する蚘事は1぀も芋぀かりたせんでした怜玢が䞍適切だったのかもしれたせん。 たた、奇劙なこずに、DSP BuilderはFPGA構築の分野では誰も気付かない革呜です。 私の意芋では、この状況は2぀の理由で䜜成されたした。



1぀目は、この補品に察する厳しいplisovodovのやや軜的な態床です。 䜕らかの理由で、DSP Builderは「孊生向け」であるず考えられおいたす。 状況はDelphiの堎合ずたったく同じです。 さらに、DSP Builderに察するこの姿勢は、Active HDLシェルに察する熱心なレビュヌの背景に察しお特に理解しがたいものです。 確かに、これは、plisovodstvoず信号凊理に粟通しおいる専門家が非垞にたれであるずいう事実によっお郚分的に説明できたす。 このような専門家は区分的であり、3桁のzpを持っおいたす。 残り-その䞭たたはその䞭。 前者はなぜこの「ビルダヌ」が必芁なのか理解できたせんたた、ある皮のSimulinkがありたす、そしお埌者はアルゎリズムをスカルプトし、「それらの実装は私のビゞネスではありたせん」



2番目の理由は、3぀の非垞に異皮のプログラムず環境の束です。 バヌゞョンの非互換性ずいく぀かの完党に奇劙な矛盟を䌎う次のダンス。 特に、DSP BuilderのポむントブランクがむンストヌルされたMatlabに気付かず、少なくずもあなたが䜕をするのかは感動的です。



しかし、著者自身が非垞に安定した束を芋぀けたした。 したがっお、11.0th Quartusに付属するバヌゞョンに぀いおのみ説明したす。 幞いなこずに、圌女は簡単に芋぀けお、著者に心から愛されおいるMatlabaにしがみ぀いおいたす著者の意芋は、有名なバヌゞョン6.5の埌です。 むンストヌルが正垞に完了するず、2぀のラむブラリAltera DSP Builder BlocksetおよびAltera DSP Builder Advanced BlocksetがSimulinkに衚瀺されたす。 Matlabのヘルプの察応するセクションず䟋ぞのリンク。 䟋は非垞に明確であり、plisovodamが遭遇するほずんどすべおの兞型的なタスクをカバヌしおいるず蚀わざるを埗たせん。



DSP BuilderをQuartusにバンドルしおいお、メガファンクションをむンストヌルする前にそしおこれがおそらくそうである堎合、メガファンクションを遞択する必芁がありたす。 Matlabのコマンドりィンドりにコマンドalt_dspbuilder_setup_megacoreを入力し、以䞋を取埗したす。



」



チヌムは間違いなく間違いなく動䜜したす。これは、非垞に限られた数のメガファンクションがSimulinkにしがみ぀いおいる同時に正しくサポヌトしおいるずいう事実によるものです。 最も可胜性が高いのは、図に瀺されおいる6぀を陀く ブロック、ピックアップしお倱敗するものは䜕もありたせん。 それでも誰かがSimulinkをサポヌトしおいるず感じおいる堎合は、サブディレクトリ<Quartusがむンストヌルされおいる堎所> \ラむブラリから䞀時ディレクトリにファむルを手動で転送し、 alt_dspbuilder_setup_megacoreを䜕床も実行できたす。 他の䜕かがしがみ぀く可胜性がありたす。



これらのブロックの䜿甚は、Simulinkにある皋床固有です。 事実、最初はSimulinkは䜿甚するメガファンクションに察しお遞択するパラメヌタヌを認識しおいないため、最初はモデルの「ブラックボックス」のように芋えたす。



その埌、それをクリックするず、このメガファンクションの暙準であるセットアップりィンドりが衚瀺されたす。これは、Mega Wizard Plug-In Managerで100回衚瀺されたした。 しかし今、パラメヌタを遞択した埌、「マネヌゞャ」は、Simulink甚のファむルも生成する必芁があるこずを認識したす。 そしお、芋よ、あなたのブロックは通垞のSimulinkovskyブロックに倉わりたす



DSPbuilderは最初、いく぀かの「スタヌタヌクゞラ」をサポヌトしおいたす。 このサポヌトは、あなたの電球がどこに接続されおいるか、ボタンがどこにあるか、Smaがハングしおいる偶数こずをDSPbuilderが「知っおいる」ずいう事実に芁玄されたす。 著者の驚いたこずに、このリストには、4th Stratixの䜿い慣れたボヌドもありたす。 しかし、リストは非垞に限られおいたす。 たずえば、著者は珟圚、Cyclone IVEシリヌズの石を䜿甚したDE2-115ボヌドを䜿甚しおいたす。 そしお圌女は、悲しいかな、このバヌゞョンではサポヌトされおいたせん。







疑問が生じたす。手でボヌドの説明を远加するこずは可胜ですか 答えたす。 たあ、最初に、誰もこれを必芁ずしたせん。 そしお、第二に、これは非垞に簡単に行われたす。



<DSPbuilderが立っおいる堎所> \ lib \ boardsupport \ boardsディレクトリにクロヌルし、拡匵子が.boardのファむルを確認したす。 次に、最も関連性の高いマザヌボヌド私の堎合はCyclone_III_EP3C120.boardを説明するファむルの1぀をコピヌし、開いお線集したす。 ファむル圢匏は非垞に明確なので、さらに面癜くなりたす。 それでもはっきりしない堎合は、DSP Builder Handbook、Volume 2DSP Builder Standard Blockset p.137を開いお読んでください。



すべおが明確であるずいう事実にもかかわらず、新しいボヌドの説明は、「ヘルプ、dspbuilderで゚ラヌが発生したした...」などの䌚議でメッセヌゞを萜曞きしないように、非垞に慎重に行う必芁がありたす。 同じディレクトリ内のボヌドむメヌゞを倉曎するこずもできたす。 次に、新しいボヌドをDSPbuilderに報告する必芁がありたす。 これは、 alt_dspbuilder_createComponentLibraryコマンドを䜿甚しお行われたす。 解決したらそしおおそらく゚ラヌで飛び出したすが、あなたはそれを打ち負かさなければなりたせん、あなたはボヌドを「boards」サブラむブラリに喜んで芋るでしょう。 ちなみに、同様の方法で、新しいバむナリコンポヌネントをボヌドにねじ蟌むこずができたす。 たずえば、非暙準むンゞケヌタ、ゞョむスティックボタン、スラむダヌ、倖郚バスなど。



DSP Builderの䞻な利点は、FPGA甚のプロゞェクトの準備だけでなく、Simulinkを終了せずに「ラむブハヌドりェア」でそれらをアップロヌドおよびチェックできるこずです。 RAMずROMの初期内容をMatlab倉数から盎接準備し、䞍正に䜜成されたナヌティリティを䜿甚せず、ビット深床ず゚ンコヌディングで混乱する方法は、これに関連しおいたす。 そしお、重芁なこずは、絶え間なく萜䞋する「Modelsim」のために䜕十ペヌゞものテキスト「ワヌクベンチ」を走らせるのではなく、Simulinkによる非垞に䟿利なグラフィックツヌルを䜿甚しおプロゞェクトをチェックするこずです。



DSP Builderは、テスト甚の2぀のツヌルを提䟛したす。 1぀目は「HIL」ハヌドりェアむンザルヌプ。これは「モデル内の実際のハヌドりェア」ずしおロシア語に翻蚳できたす。 ここでは、たず調査䞭のシステムのプロゞェクトを組み立おおから、システムがHILサブシステムになる「カバヌ」モデルを䜜成し、入力ず出力、入力ず出力によっおそれぞれモデル空間から分離する必芁がありたす。 耇雑に聞こえたすが、チュヌトリアルからFreqSweepの䟋を開くず、すべおが明らかになりたす。







ちなみに、䞀郚のプリ゜ボダは、HILがSignalTapを䜿甚しおいるず考えおいたす。 実際、SignalTapはHIL方法論ずは関係ありたせん。 ただし、SignalTapはDSP Builderでも䜿甚できたす。これは2番目の方法です。 SignalTapを䜿甚するには、AltLabサブラむブラリの「SignalTap II Logic Analyzer」ブロックを䜿甚する必芁がありたす。 SignalTapの䜿甚には制限がありたす-クロック信号は1぀だけです残りは通垞の入力ずしお認識されたす。 しかし、正盎なずころ、SignalTapで耇数のクロック゚リアを䜿甚する頻床はどれくらいですか



生成されたコヌドの最適性に぀いお。 DSPbuilderは、実際には、Simulinkのグラフィックスから遞択したHDLコヌドぞのトランスレヌタヌです。 生成されたプロゞェクトを開き、メむンファむルを確認したす。 DSPbuilderは、Simulinkプロゞェクトのブロック接続を単に口頭で「説明」しおいるこずがわかりたす。 HDLコヌドぞの手動移怍でも同じこずができたす。 プロゞェクトの最適性のレベルはあなた次第です。 たずえば、CICフィルタヌにメガファンクションを䜿甚する-1぀の結果、説明を読むのが面倒、たたは商業的な暹皮を台無しにしお手で曞くこずにしたくない-別の結果。 すべお同じ



結論ずしお、ブロックの接続に぀いお簡単に説明したす。 著者がすでに冒頭で述べたように、圌の意芋では、DSPbuilderは誰にも気付かれおいない革呜です。 したがっお、DSPbuilderをたったく䜿甚せず、AHDLおよびVerilog、Quartus、Synplicityが䞀般的に存圚するこずを埐々に忘れおいく堎合に、これは良いフォヌムず芋なされたす。 このアプロヌチでは、理論䞊、 悲惚な数孊者でもファヌムりェアを䜜成できたすそしお、ここでは、IT郚門の長は、Matmekhの埌の人だけがアルゎリズムに埓事するべきであるず固く信じおいたすが、著者の経隓によるず、数孊者は、アルゎリズム、芋た前の写真でのみ超小型回路。



ずころで、DSPbuilderでは、Simulinkフレヌムワヌクからプロゞェクト蚭定を完党に制埡できたす。 これを行うために、AltLabサブラむブラリに察応するブロックがありたす。 DSPbuilderでは、SOPC Builderを䜿甚するこずもできたす非垞に脆匱な特性を持぀プロセッサを高䟡なプラグむンに挿入するのが奜きな人なら。 しかし、著者は正しい質問を耳にしたす。倖界ずい぀連絡を取らなければならないのか、どのようにしお環境から抜け出せないのでしょうか 同じむヌサネット、むヌサネット、com-portなどを䜿甚 など 実際、このためには、適切なコンポヌネントを自分で蚘述する必芁がありたす。 ここでは、3぀の方法で行動できたす。



独自のメガファンクションを䜜成するための最初の、最も困難でほが䞍可胜な方法は、IP認定プロセス無料ではない、正しいず知っおいる私の意芋ではを経おから、䞊蚘をお読みください。 ずころで、そんなに玠晎らしい方法ではありたせん。 著者は、FPGA甚のCAD゜フトりェアのメヌカヌの1぀に新しいメガファンクションを䜜成するのに少し時間を費やしたした。 しかし、あなたはこれだけに察凊する必芁がありたす。



2番目の方法は、Simulinkを䜿甚しお新しいブロックを䜜成するこずです。 しかし、真のプリ゜ボドはそのような方法を軜cornしおいたす。



3番目の方法は、HDLコヌドをSimulinkのフレヌムワヌクにドラッグするこずです。 このために、DSPbuilderは「HDL Import」ブロックを提䟛したす。 これはプロセス党䜓であり、著者は埌で別の投皿で説明するこずができたすが、これは最も珟実的な方法であり、䞀床信じる䟡倀がありたす。



All Articles