問題タブ [myhdl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
912 参照

python - Python と MyHDL の yield ステートメントの違い

私は現在、夏のプロジェクトのために MyHDL を学んでいます。その中のyieldステートメントの機能を把握するのに問題があります。MyHDL が Python に基づいていることは事実ですが、yield ステートメントを特殊な方法で使用しています。同じリンクは次のとおりです。 http://www.myhdl.org/doc/current/manual/reference.html#myhdl.always

MyHDL ジェネレーターは、特殊な yield ステートメントを備えた標準の Python ジェネレーターです。ハードウェア記述言語では、同等のステートメントはセンシティビティ リストと呼ばれます。MyHDL ジェネレーターの yield ステートメントの一般的な形式は次のとおりです。 yield 節 [, 節 ...] ジェネレーターが yield ステートメントを実行すると、その時点で実行が中断されます。同時に、各句は、ジェネレーターを再開する条件を定義するトリガー オブジェクトです。ただし、yield ステートメントの呼び出しごとに、句の数に関係なく、ジェネレーターは 1 回だけ再開します。これは、発生する最初のトリガーで発生します。

私はそれを理解することができません。誰か簡単な言葉で説明してくれませんか? またはおそらく私を別のソースにリダイレクトしますか?

お役に立てれば幸いです。ありがとう!

よろしく

0 投票する
1 に答える
3076 参照

python - Python ast パッケージ: オブジェクト階層のトラバース

以下は、 astおよびsymtable パッケージを使用した Python コード スニペットです。コードを解析して型をチェックしようとしています。しかし、参照されている実際の変数に到達するためにオブジェクトをトラバースする方法がわかりません。

次のコードは NodeVisitor を実装し、関数がコンパイラに提示され、コンパイラによって解析され、ast が実行されます。分析される関数 (eval_types) には、いくつかのオブジェクトが渡されます。

以下は、この例を構成するコード チャンクです。各チャンクにいくつかのコメントを追加しました。コードを実行するには、「チャンク」を再構築する必要があります。

解析のためにコード ブロックのインデントを解除するインポートと関数。

以下はノード ビジターです。一般的な unhandled および name ビジター オーバーロードがあります。

以下は、AST で解析および分析される関数で使用されるいくつかの単純なクラスです。

以下はテスト関数です。eval_types 関数は、AST で分析される関数です。

サンプルを実行し、関数をコンパイルして分析するコード。

以下は、最初の名前の訪問までの出力例です。

ノード ビジターの作成は悪くないように思えますが、オブジェクト階層をトラバースする方法がわかりません。一般に、アクセスされる変数はオブジェクトの奥深くに埋め込まれている可能性があります。ast ビジターからアクセスされている実際の変数を取得する方法は? オブジェクトがノードにあることだけがわかりますが、結果変数へのアクセスに関する追加情報はありません。

0 投票する
5 に答える
4514 参照

python - ソフトウェアを FPGA の VHDL/Verilog に変換するためのより優れたプラットフォーム

FPGA での開発を検討していますが、Python または Scala でコードを記述し、VHDL または Verilog に変換する方が簡単です。

多くのセンサーをデバイスに接続したいのですが、データが入ってくると計算が非常に迅速に行われるため、ビデオ ウォールに表示できます。そのため、FPGA は入力として数十のセンサーといくつかのビデオ コントローラーを使用します。壁。

Scalaで書かれたコードのライブラリです。これについては、コードが Java で記述されていて、Scala が生成するものに影響を与えるかどうかに興味があります。

http://simplifide.com/drupal6/

これは Python から VHDL へのコンバーターです。

http://www.myhdl.org/doku.php

これらの両方で、制限について興味があります。

私は Python よりも Scala に強いので、simplifide を好みますが、いくつかの基本的な見回すだけで、myhdl はより堅牢なプラットフォームのようです。

アップデート:

FPGAの理由は、一度に複数のタスクを非常にうまく実行できるため、データが入ってくると、ユーザーのニーズに応じて、実験に基づいてFPGAのコードを変更するのは簡単です.ニーズに適応することができます。

たとえば、オフィス ビルの各フロアに 8 x 3 の異なる気象センサーがある場合、温度、風速、気圧センサー (各フロアに 8 個の各センサー) があり、センサーを追加して変形をテストします。これらの壁を同時に読み取り、視覚的表示を更新し続けるリアルタイム インターフェイスが役立つ場合があります。

これはでっち上げの例ですが、FPGA が役立つ理由を説明できます。それ以外の場合は、多くの異なる DSP が必要になり、それをコンピューターに入力してビジュアル表示を行いますが、FPGA はハードウェアであるため、より高速に実行できます。 、電力の必要性が低くなります。

開発を容易にするオープンソース ライブラリが 2 つありますが、プログラムを VHDL/Verilog に変換するのにどちらが適しているかはわかりません。

これはほんの一例です。この記事が示唆するように、FPGA で量子回路シミュレーションを実行したい場合 ( http://www.cc.gatech.edu/computing/nano/documents/Radecka%20-%20FPGA%20Emulation%20of%20Quantum%20Circuits .pdf ) であれば、手で大規模な回路を構築するよりも、プログラムとしてこれを行う方が簡単です。

0 投票する
1 に答える
491 参照

vhdl - HDL 合成は、感度リストに欠落しているシグナルについて不平を言う

こんにちは、この単純な VHDL プロセスがあります (MyHDL コードから生成):

元の MyHDL コード:

シミュレーションでは (ISIM および MyHDL シミュレーターの両方で) 完全に動作しますが、Spartan 6 に合成しようとすると、次の警告が表示されます。

これは、このプロセスが clkEn および sclIdleValue 信号に敏感であるべきであるとどういうわけか推測したことを理解しています。しかしもちろん、これは私が意図したものではありません。clkEn または sclIdleValue がそれぞれの状態を変更したときではなく、delayedClock が状態を変更したときにのみ出力を変更したい。

Spartan 6 アーキテクチャではできなかったことですか? それとも、意図した動作をさせるためにプロセスを別の方法で説明する必要がありますか?

0 投票する
1 に答える
556 参照

python - iPython ノートブックの myHDL マニュアルの基本的な例での AST コンパイル エラー

編集:これは、 iPython notebook内からコードを実行した場合にのみ発生します。通常の .py ファイルから正常に動作します

myHDL の学習を始めたばかりで、@instance または @always_comb ジェネレーターを次のように使用するとコンパイル エラーが発生します。

TypeError: compile() には null バイトのない文字列が必要です

例: 3.2 シグナル、ポート、および並行性:

スタック トレースを表示します。

私が間違っていることについての手がかりはありますか?

0 投票する
1 に答える
609 参照

myhdl - MyHDL でインターフェイスを実装する方法

VHDL では、レコードを使用して、関連する信号をグループ化して、ポート マップなどの単一のオブジェクトとして渡すことができるようにします。これを行うMyHDLの方法は何ですか?

0 投票する
0 に答える
93 参照

python - siir.py を実行できません

Chris Felton の myHDLサンプル コードを試してみました。

次のエラーで、シミュレーション モジュールにインポートされた関数をコンパイルすることができませんでした。

誰かが私が間違っていることを親切にアドバイスできますか? Python 2.7 は大丈夫ですか? ファイルと python インタラクティブ コマンド ラインの両方で試してみました。