1月16日のブログで紹介した時には、FPGA側のプログラムはShrike LiteのGithubにある既存の例題(バイナリ)を使いました。今日は、ルネサスの開発環境を使って、Githubにある例題のソースコードを元に、自分でコンパイル(論理合成)し、IOピンを割りつけてバイナリとして生成したものが思った通りに動作していることを確認しました。
main.vは、Verilogで記述されたLEDをブリンクさせる(Lチカ)ソースコードです。Shrike LiteではFPGAに供給されるクロックは50MHzなので、これを32ビットカウンタで50,000,000になるまでカウントして、LEDという信号名の出力のビット反転させるというものです。このソースコードを以下に示すように少し変更して、思った通りになるかどうか確かめました。変更箇所は、1)点滅周期を10倍速くし(100ms周期でトグル動作するようにし)、2)カウンタのビット数を24ビットにしました。
(* top *) module blink(
(* iopad_external_pin, clkbuf_inhibit *) input clk,
(* iopad_external_pin *) output LED,
(* iopad_external_pin *) output LED_en,
(* iopad_external_pin *) output clk_en
);
reg [23:0] counter;
reg LED_status;
assign LED_en = 1'b1;
assign clk_en = 1'b1;
always @ (posedge clk) begin
counter <= counter + 1'b1;
if (counter == 5_000_000) begin
LED_status <= !LED_status;
counter <= 24'b0;
end
end
assign LED = LED_status;
endmodule


コメント