Altera DE0でLチカその2

今度はArduinoのようなLチカ、つまりタイマーで周期的にチカチカさせるほうだ。
1kHzのクロックから1Hzのクロックを作り、それをフリップフロップでさらに半分に分周している。


module LEDBlink(
input in_clk,
input [9:0] in_switch,
input [2:0] in_button,
output [9:0] out_led,
output[7:0] seven_segment_0,
output[7:0] seven_segment_1,
output[7:0] seven_segment_2,
output[7:0] seven_segment_3);
// wires and regs
wire reset;
wire clk_1kHz;
reg[9:0] _10bit_counter;
reg flipflop_1Hz; // for LED blink
// switch 0 for reset
assign reset = in_switch[0];
// 1kHz clk
clk_scaler_1kHz clk_scaler_1kHz(in_clk, reset, clk_1kHz);
//
always @(posedge in_clk or posedge reset)
begin
if (reset == 1'b1)
begin
_10bit_counter <= 10'd0;
flipflop_1Hz <= 1'b0;
end
else
begin
if (clk_1kHz == 1'b1)
begin
if (_10bit_counter == 10'd1_000)
begin
_10bit_counter <= 10'd0;
flipflop_1Hz = ~flipflop_1Hz;
end
else
_10bit_counter <= _10bit_counter + 10'd1;
end
end
end
// output
assign out_led[0] = flipflop_1Hz;
endmodule