Xilinx ISE 12.3 LEDテストプログラム
3097 ワード
1.BSB wizardを使用してXPSに入ります.
2.新規プロジェクトの名前を付け、I would like to creat a system for a custom boardを選択
3.プレートサブパラメータ:virtex 4//xc 4 vsx 25//ff 668///-10
4.水晶振動数100 MHz、Local memory 16 KB
5.Add Device,IO Interface Type GPIO,Device LEDSをクリックします.GPIO Data Widthはボード上のledの個数で、6を選択します
6.stdINとstdOUT選択NONE
7.finishをクリックすると、2つのファイルdata/systemが必要であることを示すウィンドウが表示されます.ucfとetc/download.cmd,点OK
8.システムの下でdownloadをダブルクリックします.cmdファイル.ここで修正する必要があるのは2つの数字で、この数字はあなたのFPGAがJTAGチェーンの中で何番目かを示しています.ここでは1を2に変更する.
9.システムの下でシステムをダブルクリックする.ucfファイル、ピンのロックを開始します.SEED-FEM 025を開く.pdfは、clk、rst、LEDSのピンを見つけて修正します.
10. Hardware->Generate Netlist.この過程は比較的時間がかかる.
11. Software->Generate Libraries and BSPs
12.アプリケーションの下にあるソースの下にあるTestAppをダブルクリックMemory.c、プログラムを書きます.
13.SEED-FEM 025.pdfでは、付与値が1のときにledが点灯し、LEDの配列は以下のように見えます.
SEED
led2
led5
led4
led3
led6
led1
14.書き終わったらSoftware->Build All User Applications.
間違いがなければ、Downloadはボードに結果を表示することができます.次はソースコードです.
2.新規プロジェクトの名前を付け、I would like to creat a system for a custom boardを選択
3.プレートサブパラメータ:virtex 4//xc 4 vsx 25//ff 668///-10
4.水晶振動数100 MHz、Local memory 16 KB
5.Add Device,IO Interface Type GPIO,Device LEDSをクリックします.GPIO Data Widthはボード上のledの個数で、6を選択します
6.stdINとstdOUT選択NONE
7.finishをクリックすると、2つのファイルdata/systemが必要であることを示すウィンドウが表示されます.ucfとetc/download.cmd,点OK
8.システムの下でdownloadをダブルクリックします.cmdファイル.ここで修正する必要があるのは2つの数字で、この数字はあなたのFPGAがJTAGチェーンの中で何番目かを示しています.ここでは1を2に変更する.
9.システムの下でシステムをダブルクリックする.ucfファイル、ピンのロックを開始します.SEED-FEM 025を開く.pdfは、clk、rst、LEDSのピンを見つけて修正します.
10. Hardware->Generate Netlist.この過程は比較的時間がかかる.
11. Software->Generate Libraries and BSPs
12.アプリケーションの下にあるソースの下にあるTestAppをダブルクリックMemory.c、プログラムを書きます.
13.SEED-FEM 025.pdfでは、付与値が1のときにledが点灯し、LEDの配列は以下のように見えます.
SEED
led2
led5
led4
led3
led6
led1
14.書き終わったらSoftware->Build All User Applications.
間違いがなければ、Downloadはボードに結果を表示することができます.次はソースコードです.
/*
* Xilinx EDK 12.3 EDK_MS3.70d
*
* This file is a sample test application
*
* This application is intended to test and/or illustrate some
* functionality of your system. The contents of this file may
* vary depending on the IP in your system and may use existing
* IP driver functions. These drivers will be generated in your
* XPS project when you run the "Generate Libraries" menu item
* in XPS.
*
* Your XPS project directory is at:
* E:\Projects\FPGA\Xilinx\TEST12.3\light_led\
*/
// Located in: microblaze_0/include/xparameters.h
#include "xparameters.h"
#include "xgpio.h"
#include "xstatus.h"
#define LED_DELAY 1000000
XGpio LED_POINTER;
//====================================================
int main (void) {
/*
* Enable and initialize cache
*/
#if XPAR_MICROBLAZE_0_USE_ICACHE
Xil_ICacheInvalidate();
Xil_ICacheEnable();
#endif
#if XPAR_MICROBLAZE_0_USE_DCACHE
Xil_DCacheInvalidate();
Xil_DCacheEnable();
#endif
#if XPAR_MICROBLAZE_0_USE_DCACHE
Xil_DCacheDisable();
Xil_DCacheInvalidate();
#endif
#if XPAR_MICROBLAZE_0_USE_ICACHE
Xil_ICacheDisable();
Xil_ICacheInvalidate();
#endif
volatile int DELAY;
int count=0;
XGpio_Initialize(&LED_POINTER,XPAR_LEDS_DEVICE_ID);
XGpio_SetDataDirection(&LED_POINTER,1,0x0000);
while(1)
{count++;
if(count%2==0)
{
XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x02);
}
else
{
XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x16);
}
for(DELAY=0;DELAY<LED_DELAY;DELAY++);
if(count%2==0)
{
XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x08);
}
else
{
XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x04);
}
for(DELAY=0;DELAY<LED_DELAY;DELAY++);
if(count%2==0)
{
XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x32);
}
else
{
XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x01);
}
for(DELAY=0;DELAY<LED_DELAY;DELAY++);
}
return 0;
}