私はFPGA上にマイクロコントローラを実装しようとしており、そのプログラム用にROMを用意する必要があります。 $ readmembを使用すると、ROMに正しく合成されますか?そうでない場合、これを行う標準的な方法は何ですか?
8
A
答えて
15
$readmemb
が合成可能であるかどうかは、合成ツールによって決まると言うジョージの答えを修正します。ことを同様
module dual_port_rom (
input [(addr_width-1):0] addr_a, addr_b,
input clk,
output reg [(data_width-1):0] q_a, q_b
);
parameter data_width = 8;
parameter addr_width = 8;
reg [data_width-1:0] rom[2**addr_width-1:0];
initial // Read the memory contents in the file
// dual_port_rom_init.txt.
begin
$readmemb("dual_port_rom_init.txt", rom);
end
always @ (posedge clk)
begin
q_a <= rom[addr_a];
q_b <= rom[addr_b];
end
endmodule
、ザイリンクスのXST User Guide状態:
アルテラRecommended HDL Coding Stylesガイドは、例えば10-31
$readmemb
(以下に再現)から推測ROMを示し(ページ10-38)を含みます
$readmemb
および$readmemh
システム タスクを使用してブロック のメモリを初期化できます。詳細については、以下を参照してください。進 表現のためのバイナリ と
$readmemh
ため コーディング例外部ファイルから使用
$readmemb
をRAMを初期化します。 XSTとシミュレータ の動作が異なる可能性を避けるため、 これらのシステムのインデックスパラメータを使用することをお勧めします。 次のコーディング の例を参照してください。
$readmemb("rams_20c.data",ram, 0, 7);
関連する問題
- 1. Verilogで合成可能な遅延
- 2. イベントトリガーはVerilogで合成可能ですか?
- 3. Verilogの合成可能なFF(アクティブローリセット付き)
- 4. 名前付きブロック操作を無効にするVerilogコードは合成可能ですか?
- 5. Verilogの合成エラー
- 6. Chisel3でverilog合成指示文を追加する方法は?
- 7. Pythonで合成可能なRegexp
- 8. Laravel 5.2の合成?可能?お勧めですか?
- 9. 私は場所から値の0残りを開始する、有効な一連の値で構成されたメモリアレイを持つ合成可能なVerilogの
- 10. VerilogでRTLデザインを合成して実装する
- 11. クエリーで結合すると、コントロール:それは可能ですか?
- 12. VHDL - 論理合成可能にする
- 13. Verilogで4対1の関数を効率的に合成
- 14. 構造Verilogと動作Verilogの違いは何ですか?
- 15. 複合外部キー - Oracleでは可能ですか?
- 16. Verilogで '1'とは何ですか?
- 17. 入力ポートをVerilogで配列として取ることは可能ですか?
- 18. 正しい場合はjQueryのドロップ可能でドラッグ可能な数です
- 19. CMDでゲームを作成することは可能ですか?
- 20. ケースステートメントをループで生成することは可能ですか?
- 21. Subversionでカスタムフックイベントを作成することは可能ですか?
- 22. ループでスレッドを作成するvb.netは可能ですか?
- 23. オンザフライでカスタムブラケットを生成することは可能ですか?
- 24. HTML5で縦型メーターを作成することは可能ですか?私が作成した場合
- 25. 可能な組み合わせでシーケンスを作成する
- 26. AngularJSで合成可能なコンポーネントを定義する方法
- 27. MVC3では、再利用可能な関数をビューで作成することは可能ですか?
- 28. 可変スコープシングルトンの可能な競合状態ですか?
- 29. ホワイトリストはMS Anti_XSSライブラリ3.0で構成可能ですか?
- 30. はローカル/ LANサーバーでSVN構成が可能ですか?
mrkjの答えは私よりもはるかに優れています。私はそれを削除しました。 – George