k0b0's record.

Computer Engineering, Arts and Books

FPGA

Error (16031): Current Internal Configuration mode does not support memory initialization or ROM. Select Internal Configuration mode with ERAM.

メモリの初期化をサポートできない。 Quartus Primeでメモリ(初期値あり)のコードをコンパイルしたら怒られた。 どうやら、初期値を設定する場合はメモリの内部構成モードを変更しないといけないみたい。 解決策 メニューバーの[Assignments] => [Device] …

宣言されていない信号線を幅1bitの信号線(wire)として暗黙的に解釈することを回避する

VerilogHDLの言語仕様ではwireとして宣言されていない信号線は暗黙的に1bitのwireとして解釈される。一応、Warningとしてコンパイラが教えてくれるのだが、これが原因で何時間もデバッグする羽目になる事もある。。。 そこで、"`default_nettype wire”宣言と…

Quartus PrimeでMIF(Memory Initialization File)を作成してみる。

MIF(Memory Initialization File)を作成してみる。 Quartus PrimeのIPcatalogから生成するメモリモジュールに初期値を設定するために、MIFを作成する。[File] -> [New]よりMemory Initialization Fileを選択する。 メモリのワード数とワード幅を設定する。 …

Verilog/SystemVerilogでincludeするヘッダファイルの競合を回避する。

複数のモジュール内で同じヘッダファイルをincludeしたSystemVerilog記述をQuartus Primeでコンパイルしたところ、競合が生じてエラーが出た。 ModelSimでの論理シミュレーション時は大丈夫だったのだが、Quartus Primeのコンパイラは厳しいようである。 と…

Quartus Prime のIP Catalogを使ってシングルポートRAM(同期書き込み、非同期読み出し)を生成してみる。@2019/06/14 追記

IP Catalogを使ってシングルポートRAM(同期書き込み、非同期読み出し)を生成してみる。 FPGA(MAX10)でそこそこの容量のメモリを使いたいのだが、レジスタで構成すると、LEをかなり消費する。というわけで、IP Catalogで用意されている、シングルポートRAM(同…

VerilogHDLでクロック分周器を記述してみる

クロック分周器 FPGAボードを使って、7セグメントLEDに結果を表示させたい時がある。 けれど、MHz〜GHzで動作されたんでは確認できない。 という事で、クロック分周器(50MHz -> 1Hz)を2つ記述してみる。 (どちらの記述も分周するのだけれど、出力される波…