2014/04/25_FPGAを久々に触ってみる。
FPGA
こんにちは、堀場です。
今日は、FPGAを少し触りました。
組込みというと、何かの媒体に組込みますがその中でもFPGAを使ってみました。
FPGAはコンパイル時に回路を組み上げるので他のマイコンとは一線を画しています。
今回作ってみたのは、LEDチカチカとスイッチのON/OFF時の動作です。
環境は以下の通りです。
- XILINX製Atlysボード
- ISE Design Suite14.7
- Adept
- VerilogHDL
作成したプログラムは以下のとおりです。
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はほぼ初心者なので冗長な書き方があると思いますが、
温かい目で見守ってください。