インテル® Quartus® Primeプロ・エディションのユーザーガイド: デザインのコンパイル

ID 683236
日付 6/26/2023
Public
ドキュメント目次

1.11.1.4. 初期のコンストラクトとメモリー・システム・タスク

インテル® Quartus® Prime開発ソフトウェアでは、パワーアップ条件をVerilog HDL initial コンストラクトから推論します。 また、 インテル® Quartus® Prime開発ソフトウェアでは、RAMブロックなどの変数のパワーアップ設定も作成します。合成不可能なコンストラクトが initial ブロックで検出されると、 インテル® Quartus® Prime開発ソフトウェアはエラーを生成します。

このようなエラーを回避するには、合成不可能なコンストラクト (シミュレーション専用のコンストラクトなど) を translate_off および translate_on 合成ディレクティブで囲みます。初期のコンストラクトを合成することで、合成後のデザインのパワーアップ状態と元のHDLコードのパワーアップ状態がシミュレーションで一致するようになります。

注: 一部のサードパーティー製EDA合成ツールでは、初期のブロックでパワーアップ条件を推論しません。合成ツール間で変換する場合は、パワーアップ条件を正しく設定する必要があります。

インテル® Quartus® Primeの合成では、$readmemb および $readmemh システムタスクをサポートします。これにより、メモリーを初期化します。

Verilog HDLコード: readmembコマンドでのRAMの初期化

reg [7:0] ram[0:15];
initial
begin
$readmemb("ram.txt", ram);
end

テキストファイルを作成してメモリーの初期化に使用する場合は、新しい行で @<location > 形式を使用してアドレスを指定し、次の行に 110101abcde などのメモリーワードを指定します。

次の例は、RAMのメモリー初期化ファイル (.mif) の一部を示しています。

テキストファイル形式: readmembコマンドでのRAMの初期化

@0
00000000
@1
00000001
@2
00000010
…
@e
00001110
@f
00001111