⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edk 6.3 microblaze tutorial.txt

📁 edk操作入门级指导实例
💻 TXT
字号:
EDK 6.3 MicroBlaze Tutorial(原创)
nksz 发表于 2006-3-14 20:02:00  
0
推荐声明:本人初次接触Xilinx EDK,摸索了一段时间,在网上搜索了一些资料。终于试验成功。闲来无事,想到当初寻找文档的种种艰辛,本人特撰写此文档,与那些想接触EDK和刚刚接触EDK的新手们共享。 

         为了达到能够让从没接触过EDK的同胞们在最短的时间内学会使用EDK,本文步骤清楚,并附有源代码。通过阅读该文档,我相信每一个人都可以在30分钟内学会使用EDK,在Xilinx FPGA内实现一个MicroBlaze的soft core.

         另外,本人所做工作只是将各部分知识收集整理,不涉及任何版权问题。

    转载请注明出处!

鸣谢:首先我要感谢我的女朋友reecho,是她给我精神上的支持。如果这片文档是我的孩子的话,那么她无疑将是这个孩子的母亲。

        另外,还要感谢pml同学,感谢他帮助我解决了许多实际的问题,并提供c的源代码。

后记: 稍后,本人还会推出使用Altera公司niosII实现软核的‘傻瓜’式文档(试验已完成)。敬请大家关注。

 

硬件配置:
1. Microblaze 或Power PC支持的Xilinx FPGA板一个(板上最好有一个LED)。
2. JTAG下载线一个(推荐使用本人推荐的下载线!!哈哈哈哈)。
软件配置:
EDK 6.3或以上版本。(估计更低版本应该也可以,不过界面不太一样)


1. 运行Xilinx Platform Studio。进入到以下界面,点击OK:
2. 点击Next。
3. 选择I would like to create a system for custom board. 然后点击Next
4. 选择你的Xilinx FPGA板型号。如果你的Xilinx FPGA芯片支持Microblaze和PowerPC,你可以选择MicroBlaze。点击Next
5. 输入电路板上晶振的频率,例如19.2MHz, Local Data and Instruction Memory 选择16KB,其他不变。
6. 点击Add Device,IO Interface Type 选择 GPIO,Device 选择 LEDS。点击OK。
7. 在GPIO Data Width 中选择你板子上led的个数,如果开发板上只有一个led,选择1;如果有4个led,就选择4。然后点击Next。
8. 点击Next, 再点击Next,再点击Next,最后点击finish。(不需改动任何东西)
9. 这时,会弹出一个窗口,它的意思是你需要修改两个文件。一个是当前目录下data/system.ucf 文件(这是一个管脚map文件,后面我们会提到)。另外一个是etc/download.cmd 文件(这是JTAG下载配置文件,后面我们会提到)。点击OK
10. 在system下,Project Files下双击download.cmd文件。
download.cmd文件如下:
setMode -bscan
setCable -p auto
identify
assignfile -p 1 -file implementation/download.bit
program -p 1
quit

其中需要修改的只有‘1’这个数字字。这个数字代表的是你的FPGA在JTAG链中是第几个。如果是第一个,就改成1;如果是第二个,就改成2。很简单。在我的开发板上,是第三个,所以我改成3。
11. 双击system.ucf文件。
system.ucf 为FPGA管脚绑定文件。内容如下
############################################################################
## This system.ucf file is generated by Base System Builder based on the
## settings in the selected Xilinx Board Definition file. Please add other
## user constraints to this file based on customer design specifications.
############################################################################
Net sys_clk_pin LOC=W13;
Net sys_rst_pin LOC=AD4;
## System level constraints
Net sys_clk_pin PERIOD = 52089 ps;
Net sys_rst_pin TIG;
## FPGA pin constraints
Net fpga_0_LEDS_GPIO_d_out_pin<0> LOC=D5;
Net fpga_0_LEDS_GPIO_d_out_pin<1> LOC=F7;
Net fpga_0_LEDS_GPIO_d_out_pin<2> LOC=E7;
Net fpga_0_LEDS_GPIO_d_out_pin<3> LOC=D7;
其中主要需要修改‘W13,AD4,D5,F7,E7,D7'。分别对应你的clock管脚,reset管脚(一定要有!!!!),和led管脚。


注意:系统一定要有reset信号。并且要把reset信号接在地上,系统才会工作。Reset信号悬空,系统不会工作!

然后保存。
12. Tools->Generate Netlist
13. Tools->Generate Libraries and BSPs
14. 双击Application下 sources下的TestApp.c文件
编辑如下:
#i nclude "xbasic_types.h"
#i nclude "xparameters.h"
#i nclude "xutil.h"
#i nclude "xgpio_l.h"
#define XPAR_GPIO_REG_BASE   XPAR_LEDS_BASEADDR
#define LED_DELAY    1000000
#define LED_CHANNEL 1
int main()
{
    Xuint32 Data=0xaa;
    volatile int Delay;
 int count=0;
    /* Set the direction for all signals to be inputs except the LED output */
    XGpio_mSetDataDirection(XPAR_GPIO_REG_BASE, LED_CHANNEL, 0x0);
    /* Loop forever blinking the LED */
    while (1)
    {  count++; 
       if (count%2==0)
        {
            XGpio_mSetDataReg(XPAR_GPIO_REG_BASE, LED_CHANNEL, 0x55);
        }
        else
        {
            XGpio_mSetDataReg(XPAR_GPIO_REG_BASE, LED_CHANNEL,0xaa);
        }
        /* Wait a small amount of time so the LED is visible */
        for (Delay = 0; Delay < LED_DELAY; Delay++);        
    if (count%2==0)
        {
            XGpio_mSetDataReg(XPAR_GPIO_REG_BASE, LED_CHANNEL, 0x0f);
        }
        else
        {
            XGpio_mSetDataReg(XPAR_GPIO_REG_BASE, LED_CHANNEL,0xf0);
        }
     for (Delay = 0; Delay < LED_DELAY; Delay++);        
    }
    return 0;
}
15. Tools->Build All User Applications.
16. 最后一步:Tools->Download。(JTAG接好,电源打开)
最后你应该可以看见你的led在一闪一闪亮晶晶的了。
注意:系统一定要有reset信号。并且要把reset信号接在地上,系统才会工作。Reset信号悬空,系统不会工作!
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -