simulationは後回し

うーん、modelsimのところは調べないといけないようなので

簡単なところからやってみよう

make test-fpga

で、compileした結果、quartusのモジュールが出来ていた

examples/counter/test-fpga.prj/quartus/

 

このモジュールをコンパイルしてみる

f:id:info-akiron-com:20180402225834p:plain

おお、コンパイルは出来たようだ

 

このモジュールはトップに来ているので以下の様に書き換えます

正確にはトップモジュールを追加します

module top_modmodule top_mod(

input baseclk_50,

input g_reset_n
);
reg [15:0]reg_count;

always @ ( posedge baseclk_50 )

 begin reg_count <= reg_count + 1;

end
 quartus_compile obj_main( .resetn(reg_count[15]), .clock(baseclk_50),   .count_start(reg_count[15] & reg_count[14]),

  .count_busy(),

  .count_done(),

  .count_stall(reg_count[15] & reg_count[14] & reg_count[13]),

  .count_returndata() );
endmodule

こうする事で、reset、start、stallを別々のタイミングで入れてみます(実は役割が良く分かってない)

このモジュールをベースにコンパイルして

シグナルタップで信号を見たら

ちゃんとカウントアップさせることは出来た

 f:id:info-akiron-com:20180403091733p:plain

しかも、C++言語からコンパイルしたのに、カウントの隙間がちゃんと埋まっています(処理をキューにためてパイプライン処理が出来るらしい)

と言う事で、C++言語からコンパイルしてHDLが動作する事までは

確認できました

でもやっぱりシミュレーションができないと、開発とは言わないので

makeのエラーを解析していこうと言うのが次の課題