通常、この種の統合は逆方向、つまり Verilog から C/C++ ルーチンを呼び出すことで行われます。もちろん、それは検証コンポーネントに対してのみ意味があり、合成できないことは明らかです。あなたが望むことを行うための最も可能性の高い環境は SystemC/Verilog コシミュレーションですが、これは Verilog シミュレーター (明示的に望まない) と SystemC を使用する C モデルの両方を使用することを意味します。
高性能を求めるシミュレーターは、多くの場合、C またはネイティブ コードを生成します。VCS (私が最もよく知っているシミュレーター) で生成されたコードから特定の関数を抽出する方法は知りませんが、オープン ソース シミュレーターの 1 つを使用すると可能かもしれません。商用 (つまり、ライセンス供与された) シミュレータは、ライセンスなしで実行できるコードの生成をサポートしていない可能性があります。Verilog 関数をシミュレータから独立して使用したいというあなたの欲求が、ライセンス、実行時のオーバーヘッド、ツールのインストールの負担、またはまったく別の理由によるものかどうかはわかりません。
SystemVerilog ルーチンを維持していないと仮定しているので、それらの実装方法を変更することはできないかもしれません。ただし、可能であれば、C と Verilog の両方で機能が必要な場合の一般的な戦略の 1 つは、単一の定義を C と Verilog の実装に変換できるコード ジェネレーターを作成することです。
もう 1 つの難解な可能性は、SystemC 合成です。これは比較的新しいものであり、経験はありませんが、ツールにアクセスでき、関数で機能する場合は、C モデル、ハードウェア シミュレーション、および合成に C 実装を再利用できます。