私の友人は、ハードウェアでいくつかの統計計算を実装する必要があります。彼女は、VHDL を使用してそれを実現したいと考えています。
(私の心は、VHDLでコードを1行も書いておらず、その微妙な点について何も知りません)
特に、彼女は MATLAB のbetainc
関数の直接の類似物を必要としています。
これを行うための良いパッケージはありますか?実装に関するヒントも大歓迎です。それがまったく良い考えでない場合は、それについても教えてください。
どうもありがとう!
私の友人は、ハードウェアでいくつかの統計計算を実装する必要があります。彼女は、VHDL を使用してそれを実現したいと考えています。
(私の心は、VHDLでコードを1行も書いておらず、その微妙な点について何も知りません)
特に、彼女は MATLAB のbetainc
関数の直接の類似物を必要としています。
これを行うための良いパッケージはありますか?実装に関するヒントも大歓迎です。それがまったく良い考えでない場合は、それについても教えてください。
どうもありがとう!
ザイリンクス ツールセットには、不完全なベータ機能を実行する利用可能なコアはありません。利用可能な他のツールセットについては言えませんが、そのようなものがあるとは思えません。
ザイリンクスが提供するのは、乗算器、加算器、RAM ブロック (特にフィルター、FFT) などの一連の信号処理ブロックで、さまざまなカスタム信号変換を実装するために一緒に使用できます。
これを行うには、適用する変換の内部動作を完全に理解する必要があります。
適切な最初のステップは、概念の証明として関数を「手動で」matlab に実装することです。
友人は、matlab の組み込み関数を使用する代わりに、乗数や加算器などの基本的な演算子だけを使用して関数を実装することができます。
結果は、検証のために組み込み関数によって生成された結果と比較できます。
概念は、提供されているビルディング ブロックを使用して VHDL に移行できます。
不完全なベータ機能のためにこれを行うことは、気弱な人向けではありませんが、実行できます。
まず最初に、VHDL/FPGA の作業を行ったことがない場合、ここから始めるのはおそらく最適ではありません。VHDL (およびその他の HDL 言語) を使用すると、(C/C++ などの場合のように) プロセッサ上で実行する一連のコマンド行ではなく、基本的にハードウェアを記述します。したがって、FPGA 開発を行う際には、まったく異なるスキルと考え方が必要になります。VHDL で記述できるからといって、それが実際に FPGA チップで動作する (合成可能である) とは限りません。
そうは言っても、ザイリンクス (FPGA チップおよび開発ツールの主要メーカーの 1 つ) はSystem Generatorパッケージを提供しています。これは Matlab とインターフェイスし、そこから FPGA チップのコードを自動的に生成できます。私自身は使ったことがないので、あなたの友人の場合に使えるかどうかはまったくわかりませんが、おそらく始めるには良い場所です.
System Generator ユーザー ガイド(リンクは以前にリンクされたページにあります) にも、FPGA チップ全般の簡単な紹介と、Matlab での使用のコンテキストが記載されています。
私の知る限り、VHDL と matlab のインターフェイスを可能にするツールはありません。
しかし、VHDL と C のインターフェースはかなり簡単なので、C でコード (MATLAB の betainc 関数) を実装できれば、FLI (外国語インターフェース) で簡単に実行できます。
以下のモデルシムを使用している場合は、リンクが役立ちます。
あなたはそれを自分で書くことができます。ただし、不完全なベータ関数は積分です。パラメーターの多くの値に対して (両方が 1 より大きい限り)、かなり適切に動作します。ただし、いずれかのパラメーターが 1 未満の場合、終点で特異点が発生し、問題が少し厄介になります。要点は、数値解析の確かなバックグラウンドを持っていない限り、自分で書いてはいけないということです。
とにかく、利用可能なCのバージョンは確かにたくさんあります。Netlib には何かが含まれている必要があります。または、Numerical Recipes を参照してください。または、MATLAB からコンパイルします。次に、nav_jan が示唆するようにリンクします。
VHDL の代わりに、MyHDLを使用してベータ関数を作成およびテストできます。これにより、合成可能な (つまり、FPGA チップに入れることができる) VHDL (または必要に応じて Verilog) をバックエンドから生成できます。
MyHDL は、ハードウェアのモデル化、検証、および生成を可能にする Python 上のモジュールの追加セットです。Python は、VHDL (プログラミング言語で当然と考えられる抽象データ型の多くが欠けている) よりも、検証コードを記述するためのはるかになじみのある環境になります。
テスト対象のコードは、依然として「ハードウェアの考え方」で作成する必要がありますが、通常、それはテスト環境よりも小さなコードであるため、VHDL の検証の制限を回避する方法を理解するよりも、いくつかの点で手間がかかりません。