問題タブ [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.
python - シンクロナイザーでテストベンチを実行すると AlwaysError が発生する
2 つの既存の D-FF で構築されたシンクロナイザーと共にテストベンチを実行すると、このエラーが発生しました。
私のテストベンチは次のように概説されています
私のシンクロナイザーは次のようにコーディングされています。
FF プロトタイプは次のようにコーディングされます。
テストベンチは、以前にコーディングした同様のテストベンチ (わずかな変更を加えたもの) で動作しましたが、2 つのモジュールを組み合わせた場合は動作しませんでした。どうか明らかにしてください。ありがとうございました。
python - myhdl でのモジュールのインスタンス化
現在 myHdl を調べて、使用する価値があるかどうかを確認しています。ただし、モジュールのインスタンス化に関して問題が発生しました。モジュールとテストベンチの 2 つのファイルがあります。テストベンチ内で、Web サイトにある例に従ってモジュールをインスタンス化しました: http://www.myhdl.org/examples/flipflops.html
インスタンス化は、具体的には次の行です。dff_inst = dff(q, d, clk)
ただし、テストベンチを実行しようとすると、次のエラーが表示されます。
これは、2 つの別々のファイルがあるという事実と関係があると思います。そのため、python は dff モジュールを見つけられていないと思います (別のファイルにあるため)。行に追加しようとしましたimport dff
が、単純に'module' object is not callable
型エラーが発生しました。これは理にかなっています。
ドキュメントを見ると、完全な .py ファイルがないため、これらのテストベンチとモジュールをどのようにリンクしているのかわかりません。彼らは特に階層システムと他のモジュールをインスタンス化できることについて言及していますが、私はそれを機能させることができないようです.
ドキュメントから理解していることから、彼らはテストベンチとモジュールを同じファイルに書いているだけのようです。ただし、私の理解では、モジュールをインポートできることを暗示しているように見えますが、それがどのように行われるのかわかりません。私が見落としている単純なことはありますか?
python - myhdl の yield ステートメント
myhdl 環境に次のコードがあります。
上記のコードは機能しませんが、次のコードに置き換えると機能します。
関数定義のyieldが機能しない理由を誰かが説明できるなら、私はこれについて混乱していますか?
python - MyHDL に任意の幅の変数を生成させるにはどうすればよいですか?
リストにある信号の合計を計算したいと思います。当然、変数と for を使用しました (VHDL の場合と同様):
問題は、合計変数に (VHDL で) 整数が使用されることです。これは、合計の幅が 32 ビットを超える場合にはあまり役に立ちません。
だから私はこのようなことをしようとしました:
次のエラーが発生します(変換中):
回避方法がわかりません。intbv の値を合計して整数として取得するため、型が異なると思います。
提案をありがとう
python - 動的インスタンス化: myHDL でインターフェイスを動的に接続する方法
myHDL 1.0devを使ってpySerialでPCとFPGA間のUARTインターフェースを動的に作るためのpythonライブラリを作ろうとしています。
データ型とそのプロパティの名前を取り、RAM ブロックをインスタンス化するだけでなく、PC で読み取り/書き込みコマンドにアクセスできるようにします。ただし、RAM を動的に配線する際に問題が発生しています。
最小限の実例として、これら 2 つのクラスがあります。
UartBus は、多数の RamBus を保持するためのものです。arbiter
次に、それらをブロックに動的に接続してみます。
このコードで変換すると、間違った変換が行われます
これが間違ったベリログです。
そして両方のワイヤーは同じ名前です!@always_comb の側でディクショナリを使用しても機能しません。これまでのところ、ディクショナリは myHDL のどのバージョンでも変換用にサポートされていないためです。動的配線を正しく実装するにはどうすればよいですか?