問題タブ [lattice-diamond]
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.
vhdl - 「負荷がありません」という警告が表示されますが、理由がわかりません
uart (現在 11) のインスタンスごとに、Lattice Diamond からこれらの警告を受け取りました。
VHDLコードは
これは単一の Uart であり、それらすべて (現在 11 個の uart) を作成するために、私はこれを使用します
私はそれを統合でき、uarts は機能しますが、なぜ警告が表示されたのですか?
IMHO rxCounter は可能な値を 1 つずつ使用する必要がありますが、1 秒ごとに「負荷がありません」という警告が表示されるのはなぜですか?
これは、これらのネットが使用されておらず、削除されることを意味することをどこかで読みました。
しかし、0 から 2^n-1 までカウントするには、少なくとも n ビットが必要です。
warnings - ラティスダイヤモンド:時計のセットアップ
私はVerilogの学習とCPLDの操作に取り組んでいますが、行き詰まっています。私が書いたコードはLEDを切り替えますが、合成中に警告が表示され続けます。
次の警告が表示されます。
@W:MT420|周期1000.00nsの推定クロックLEDON|clkが見つかりました。オブジェクト「p:clk」でユーザー定義の時計を宣言してください
警告-マップ:C:/ Documents and Settings / belo / Desktop / LedOn2 / LedON2.lpf(4):FREQUENCY NET "clk"2.080000MHzのエラー。
警告-マップ:プリファレンス解析結果:1つのセマンティックエラーが検出されました
警告-マップ:プリファレンスファイル "C:/ Documents and Settings / belo / Desktop / LedOn2/LedON2.lpf"にエラーがあります。
警告-マップ:設定ファイル「C:/DocumentsandSettings/belo/Desktop/LedOn2/LedON2.prf」にセマンティックエラーがあります。
私のLPFファイルは次のようになります。
それで、誰かがこれらの時計の警告を修正する方法を知っていますか?
verilog - 合成中のエラー
シミュレーション用に以下の Verilog コードを作成しました。シミュレーション中は正常に動作しています。
現在、Lattice Diamond を使用して上記のコードを合成していますが、「Map Design」ステップでエラーが発生しています。エラーは以下のとおりです:-
これらのエラーが発生する理由と解決方法。
vhdl - ラティス ダイヤモンド 2.1
マシンを WinXP から Win7 にアップグレードし、同時に Lattice Diamond 3.1 をインストールしました。より複雑なシミュレーションがハングします。Active-HDL は 100% の CPU 時間を使用し、明らかに無限ループに入っています。愚かなことに、私は Lattice Diamond 2.1 または 2.2 をインストールしていません。信じられないことに、Lattice では最新バージョンしかダウンロードできません。フォールバックなし!
Lattice Diamond 2.1 またはピンチ 2.2 のインストール ファイルを持っている人はいますか? いくつかある場合は、それを置くための FTP を提供できます。おそらく1G以上の大きなファイルであることは知っています。
実際には、Win7 から Active-HDL 9.2 ディレクトリを別のマシンの仮想ボックスにコピーし、Active-HDL 9.4 ディレクトリを上書きすることができました。古いインストール ファイルでもかまいませんが、少なくとも今はシミュレートできます。また、Diamond 3.1 では、実際に bkm の警告とエラーを排除することができます。2.1 には 2 つの多くのバグがありました。テクニカル サポートは実際に、私の警告が私のコードの欠陥ではなく、Diamond のバグであることを認めました。
time - 合成可能な Verilog での時間遅延の作成
シミュレーションで機能するだけでなく、合成される時間遅延を作成しようとしています。遅延は 1.439548 ミリ秒、またはその精度にできるだけ近い必要があります。Lattice Diamond と MACHX02 7000HE FPGA を使用しています。遅延は、データ トランザクション間に必要な指定された時間待機するために使用されます。これまでのところ、内部発振器を使用して、指定された時間間隔で一度に 1 ビットずつデータを吐き出すために使用される別のカウンターを実行しています (38400 ボーで 2.15Mhz を使用)。遅延のために別のクロック/カウンターを使用する必要がありますか? もしそうなら、このボードでクロックを定義して使用する方法に精通している人はいますか? 私は非常に混乱しており、これが私のプログラムの最後の要件です。どんな助けでも大歓迎です。
verilog - Lattice Diamond に信号名がありません
次のモジュール定義を持つ SPI マルチプレクサ用の Lattice Diamond プロジェクトがあります。
ピンを割り当てるためにスプレッドシート ビューに移動すると、すべてのピンが Signal Name ドロップリストに表示されません。たとえば、次のようになります。
miso[0] が入力ポートとしてそこにあることがわかりますが、他の 13 の miso ビットはすべてそうではありません。さらに、bmck、bssel、および bmosi がありません。それらはまだ他のピンに割り当てられていないので、なぜそこにないのか誰か説明できますか?
initialization - Lattice Diamond は初期 RAM 値を EBR プリミティブにどのようにマッピングしますか?
ディスクから 4 KiB (1Ki x 32 ビット) True-Dual-Port RAM の初期 RAM 値を読み取っています。私の Lattice ECP5 デバイスには 18 ビット幅の組み込みブロック RAM (EBR) しかないため、32 ビットのワード サイズに一致するように 2 つの RAM が組み合わされています。
ファイルには 4 つのocram.mem
データ行があり、各行に 8 つの 16 進数があります (=> 32 ビットのワード行)。
ファイルは次のようになります。
私の読み取り関数は、LSE ログに次の行を報告します。
そのため、最初の行は意図したとおりにスキップされ、次の行ストリングも問題ありません。行の読み取りと char から std_logic_vector への変換の後、2D STD_LOGIC マトリックスを LSE ログに再度出力しました。
ご覧のとおり、値はまだ損なわれていません。
合成はエラーなしで終了します。
そこで、Lattice Diamond でマップと P&R を開始しました。フロアプラン ビューには、2 つの使用済みエンベデッド ブロック RAM が表示されますが、これは意図したものです。しかし、RAM をクリックすると、INIT 値が奇妙に見えます。
私は自分の価値の一部を認識していますが、すべてではありません。EBR または ECP5 のドキュメントには手がかりが見つかりません。
- 初期値はどのように RAM にマップされますか?