2014/04/25_FPGAを久々に触ってみる。

FPGA

こんにちは、堀場です。
今日は、FPGAを少し触りました。
組込みというと、何かの媒体に組込みますがその中でもFPGAを使ってみました。
FPGAはコンパイル時に回路を組み上げるので他のマイコンとは一線を画しています。
今回作ってみたのは、LEDチカチカとスイッチのON/OFF時の動作です。
環境は以下の通りです。


作成したプログラムは以下のとおりです。
test.v
`timescale 1ns / 1ps
module test(
	input CLK,
	input [0:7] SW,
	output [0:7] LED
	);
reg [0:7] sw;
reg toggle;
genvar i;

always@(posedge CLK)begin
	if(SW[0]==0)
		sw[0] = 1'b0;
	else
		sw[0] = 1'b1;
	
	if(SW[1]==0)
		sw[1] = 1'b0;
	else
		sw[1] = 1'b1;
	
	if(SW[2]==0)
		sw[2] = 1'b0;
	else
		sw[2] = 1'b1;
	
	if(SW[3]==0)
		sw[3] = 1'b0;
	else
		sw[3] = 1'b1;
	
	if(SW[4]==0)
		sw[4] = 1'b0;
	else
		sw[4] = 1'b1;
	
	if(SW[5]==0)
		sw[5] = 1'b0;
	else
		sw[5] = 1'b1;
	if(SW[6]==0)
		sw[6] = 1'b0;
	else
		sw[6] = 1'b1;
	if(SW[7]==0)
		sw[7] = 1'b0;
	else
		sw[7] = 1'b1;
end
for(i=0;i<=7;i=i+1)begin
	assign LED[i] = sw[i];
end
always@(posedge T1s)begin
	toggle <= ~toggle;
end
endmodule
        


test.ucf
NET "CLK" LOC = L15;
NET "LED(0)" LOC = U18;
NET "LED(1)" LOC = M14;
NET "LED(2)" LOC = N14;
NET "LED(3)" LOC = L14;
NET "LED(4)" LOC = M13;
NET "LED(5)" LOC = D4;
NET "LED(6)" LOC = P16;
NET "LED(7)" LOC = N12;
// Switch
NET "SW(0)" LOC = A10;
NET "SW(1)" LOC = D14;
NET "SW(2)" LOC = C14;
NET "SW(3)" LOC = P15;
NET "SW(4)" LOC = P12;
NET "SW(5)" LOC = R5;
NET "SW(6)" LOC = T5;
NET "SW(7)" LOC = E4;
        

VerilogHDLはほぼ初心者なので冗長な書き方があると思いますが、
温かい目で見守ってください。