連載
» 2016年03月10日 00時00分 公開

MAX 10 FPGAで学ぶFPGA開発入門(8):周辺機器の充実した「MAX 10 NEEK」で本格的な開発を目指す (6/6)

[大原 雄介,MONOist]
前のページへ 1|2|3|4|5|6       
List 2:
//=======================================================
//  This code is generated by Terasic System Builder
//=======================================================
 
module NEEK_LED(
 
	//////////// CLOCK //////////
	input 		          		ADC_CLK_10,
	input 		          		MAX10_CLK1_50,
	input 		          		MAX10_CLK2_50,
	input 		          		MAX10_CLK3_50,
 
	//////////// LEDR //////////
	output		     [9:0]		LEDR,
 
	//////////// HEX //////////
	output		     [6:0]		HEX0,
	output		     [6:0]		HEX1,
 
	//////////// PS2 //////////
	inout 		          		PS2_CLK,
	inout 		          		PS2_CLK2,
	inout 		          		PS2_DAT,
	inout 		          		PS2_DAT2
);
 
 
 
//=======================================================
//  REG/WIRE declarations
//=======================================================
 
	reg[22:0] div_cntr;
	reg[3:0] dec_cntr;
	reg[9:0] disp_cntr;
 
 
//=======================================================
//  Structural coding
//=======================================================
	initial begin
		div_cntr = 0;
		dec_cntr = 0;
		disp_cntr = 0;
		end
		
	
	always@(posedge MAX10_CLK1_50) begin
		div_cntr <= div_cntr + 1;
		if (div_cntr == 5000000) begin
			dec_cntr <= dec_cntr + 1;
			disp_cntr<= 1<<dec_cntr;
			if (dec_cntr == 10) begin
				dec_cntr <= 0;
				disp_cntr <= 0;
			end
		end	
	end
	
	assign LEDR = disp_cntr;
 
 
endmodule
 
List2

 おおむね昔のLチカに近いが、一応意図を説明しておけば、外部からは50MHzでクロックが入ってくるので、これを50万回(つまり5M回)ごとにカウントし、内部のdec_cntrというレジスタをインクリメントするとともに、どのLEDを表示するかを定めるdisp_cntrというレジスタを書き換えるというものだ。

 LEDは全部で10個なので、dec_cntrが10になったら0に戻している。disp_cntrの方は、右から左にLEDが流れるようにシフト演算の形で1の値の位置を移動している。これをassignでLEDR(LED出力)に割り当てて完了である。

 これをコンパイルすると特に問題なく生成されるはず(筆者のマシンだと46秒ほど要した)なので、Programmerを使って書き込んでやると完了である(Photo20)。プログラミングが終わると、こんな具合にLEDが流れるように点滅するはずだ(Movie02)。

Photo20:搭載されるMAX 10は10M50DAF484ESで、MAX 10 Evaluation Kitに搭載されていた10M08SAR144ESと比較するとLE数は8K→50Kに、Flash Memoryは144KB→484KBに、それぞれ強化されている。メモリも378Kbit→1638Kbitと4倍になっており、NIOS IIを使うにも支障はなさそう Photo20:搭載されるMAX 10は10M50DAF484ESで、MAX 10 Evaluation Kitに搭載されていた10M08SAR144ESと比較するとLE数は8K→50Kに、Flash Memoryは144KB→484KBに、それぞれ強化されている。メモリも378Kbit→1638Kbitと4倍になっており、NIOS IIを使うにも支障はなさそう

 ということで今回はMAX 10 NEEKを紹介した。来月はここにNIOS IIも組み込んで、もう少し本格的に取り組んでみたい。

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

Copyright © ITmedia, Inc. All Rights Reserved.