FPGAのLED制御プログラムを深く理解する(ソースコード)(4/4 ページ)

» 2016年09月09日 10時00分 公開
[PR/MONOist]
PR
前のページへ 1|2|3|4       

List4

module top(
	//Clock from oscillator
	input Clock,
	//Arduino I/Os
	inout Arduino_IO6,
	inout Arduino_IO7,
	inout Arduino_IO8,
	inout Arduino_IO9,
	inout Arduino_IO10,
	inout Arduino_IO11,
	inout Arduino_IO12,
	inout Arduino_IO13
	
);
	reg[25:0] div_cntr;
	reg[3:0] dec_cntr;
	reg[6:0] seg_cntr;
	initial begin
		div_cntr = 0;
		dec_cntr = 0;
		seg_cntr = 0;
		end
		
	
	always@(posedge Clock) begin
		div_cntr <= div_cntr + 1;
		if (div_cntr == 50000000) begin
			case (dec_cntr)
				0 : seg_cntr <= 7'b0000100; // 1111011
				1 : seg_cntr <= 7'b1100111; // 0011000
				2 : seg_cntr <= 7'b1001000; // 0110111
				3 : seg_cntr <= 7'b1000001; // 0111110
				4 : seg_cntr <= 7'b0100011; // 1011100
				5 : seg_cntr <= 7'b0010001; // 1101110
				6 : seg_cntr <= 7'b0010000; // 1101111
				7 : seg_cntr <= 7'b1000111; // 0111000
				8 : seg_cntr <= 7'b0000000; // 1111111
				9 : seg_cntr <= 7'b0000001; // 1111110
				default : seg_cntr <= 7'b1111111; // 0000000
			endcase
			dec_cntr <= dec_cntr + 1;
			if (dec_cntr == 9) begin
				dec_cntr <= 0;
			end
		end	
	end
	
	assign Arduino_IO6 = seg_cntr[6] ;
	assign Arduino_IO7 = seg_cntr[5] ;
	assign Arduino_IO8 = seg_cntr[4] ;
	assign Arduino_IO9 = dec_cntr[0] ;
	assign Arduino_IO10 = seg_cntr[3] ;
	assign Arduino_IO11 = seg_cntr[2] ;
	assign Arduino_IO12 = seg_cntr[1] ;
	assign Arduino_IO13 = seg_cntr[0] ;
endmodule
List4


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.


提供:日本アルテラ株式会社
アイティメディア営業企画/制作:MONOist 編集部/掲載内容有効期限:2016年10月10日