【红色飓风Nano二代测评】HelloWorld之XPS
0赞通过前几个实验基本了解了ISE软件的操作,以及Xilinx的开发流程。由于我在Altera那边受到SOPC的毒害比较深,以前做过的一些工程大部分都是通过SOPC完成的。所以我想在Xilinx这边尽快上手类似于niosII之类的嵌入式开发平台。
通过各方面的查找资料,总算是找到了,在Xilinx这边他就是-->EDK,在EDK的软件包中包含两个软件XPS(对应SOPC)、XSD Kit(对应niosII)。
我们可以打开ISE软件,在工程中新建Embedded Processor这个资源文件,也可以直接打开EDK下面的XPS软件。前者主要是将处理器作为工程的一部分时使用的,后者就是专门用于设计完备的嵌入式系统。下面我主要是将在nano开发板平台上面搭建一个简易的嵌入式系统,这样可以加深一下印象,以后可以将我在niosII上面开发的一些东西移植过来哦。
在开发EDK的时候我参考了网上的一些例程,也看了书本上面的介绍。反正我是被这些参考例程看蒙了,现在就把我理解的EDK开发流程贴出来,欢迎拍砖。
首先打开XPS软件,如下图1所示
图1 打开XPS软件
此时会弹出一个对话框,如下图2所示
图2 XPS软件打开后弹出的对话框
我们采用向导来创建这个工程,所以选择第一个选项,然后点击OK。将工程保存在指定的文件夹中,在点击OK.由于我们的开发板使用的是Spartan6系列的芯片,我们选择PLB system(那个AXI system有时间再试试),然后点击OK。然后会弹出如图3所示的对话框
图3 BSB System Builder
直接Next,此时会弹出开发板选择对话框,所以此时我们要选择自己的板子,然后选择好芯片的系列、型号、封装、速度级别等,如下图4所示。
图4 选择对应的开发板上芯片型号
果断下一步,然后我们选择单处理器系统,然后果断再下一步,选择系统时钟频率、存储器等,我们选择默认设置,然后果断下一步。然后我们就到了Peripheral界面。点击Add Devices,我们添加一个串口驱动和一个8位的LEDS驱动,如下图5所示。
图5 添加一些Devices
然后果断下一步、下一步...
最后我们会看到如下图6所示的界面,在这个界面上我们要关注system.ucf这个文件。我们需要修改这个文件,将我们开发板上面的串口、LED等的引脚与系统连接起来。
图6 向导最后一个界面
点击完成,这个时候我们会看到通过向导创建完成的界面,这个个界面上我们任然可以添加修改一些软核。这个和SOPC的类似,接下来有时间会好好熟悉它的,其实我觉得最有意义的就是学会添加自定义IP核,这样我就可以将Altera和Xilinx连接起来了。
到了这个界面后,我们点击打开上文提到的那个system.ucf文件,然后修改为这个样子:
# Generic Template
Net fpga_0_RS232_RX_pin LOC=F14;
Net fpga_0_RS232_TX_pin LOC=F13;
Net fpga_0_LEDS_GPIO_IO_O_pin<0> LOC=M12;
Net fpga_0_LEDS_GPIO_IO_O_pin<1> LOC=L12;
Net fpga_0_LEDS_GPIO_IO_O_pin<2> LOC=L13;
Net fpga_0_LEDS_GPIO_IO_O_pin<3> LOC=M14;
Net fpga_0_LEDS_GPIO_IO_O_pin<4> LOC=R12;
Net fpga_0_LEDS_GPIO_IO_O_pin<5> LOC=T12;
Net fpga_0_LEDS_GPIO_IO_O_pin<6> LOC=T13;
Net fpga_0_LEDS_GPIO_IO_O_pin<7> LOC=T14;
Net fpga_0_clk_1_sys_clk_pin TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 50000 kHz;
Net fpga_0_clk_1_sys_clk_pin LOC=M9;
Net fpga_0_rst_1_sys_rst_pin TIG;
Net fpga_0_rst_1_sys_rst_pin LOC=P7;
也就是与我们的nano开发板上面的引脚对应。然后点击HardWare--->Generate Netlist,等待网表生成完成!
...
NGCBUILD done.
Done!
这个时候我们打开串口调试助手,设置一下波特率,与我们之前新建的串口驱动的波特率一致,然后打开串口。
这个时候,我们选择Device Configuration--->Download Bitstream
...
INFO:iMPACT:2219 - Status register values:
INFO:iMPACT - 0011 1100 1110 1100
INFO:iMPACT:579 - '1': Completed downloading bit file to device.
INFO:iMPACT:188 - '1': Programming completed successfully.
INFO:iMPACT - '1': Checking done pin....done.
Done!
下载完成之后,我们观看我们的串口调试助手,如下图7所示:
图7 测试信息
当我们在串口调试助手上面看到:
-- Entering main() --
-- Exiting main() --
这个信息后,表示我们的片上系统已经建立成功了。接下来就是建立软件工程了。
