前 言
本指导文档适用的开发环境为Windows 7 64bit和Windows 10 64bit。本文档的主要内容为基于ISE的FPGA程序加载、固化等说明。进行本文档操作前,请先按照调试工具安装相关文档安装ISE 14.7软件,并将开发板通过FPGA下载器正常连接到PC机,本文档以TL-DLC10下载器为例进行操作演示。
本篇文章内容主要包括有程序加载、程序固化、工程导入与程序编译、工程新建、移植和程序编译等,测试板卡是TL138/6748F-EVM开发板,它是创龙科技基于Omapl138/TMS320C6748+FPGA核心板开发。由于SOM-TL138F/SOM-TL6748F核心板管脚兼容,所以共用同一个底板。开发板采用核心板 底板的设计方式,尺寸为24cm*13cm,它主要帮助开发者快速评估核心板的性能。
核心板采用高密度8层板沉金无铅设计工艺,尺寸为66mm*38.6mm,板载3路高转换率DC-DC核心电压转换电源芯片,实现了系统的低功耗指标,精密、原装进口的B2B连接器引出全部接口资源,以便开发者进行快捷的二次开发使用。开发板底板采用四层无铅沉金电路板设计,为了方便用户学习开发参考使用,上面引出了各种常见的接口。
程序加载
FPGA程序位于产品资料Demo1目录下,使用前请将Demo1文件夹下对应开发板的案例目录夹拷贝至非中文路径,下表为Demo1文件夹下对应开发板的案例目录结构及文件说明。
表 1
目录 | 文件/目录 | 说明 | |
---|---|---|---|
bin | xxx.bit | 可执行程序,用于在线加载 | |
xxx.mcs | 可执行程序,用于固化到SPI FLASH | ||
project | xxx_6slxxx(工程目录) | constraints | 约束文件目录 |
hdl | Verilog源码文件目录 | ||
xxx.xise | ISE工程文件 |
下面以led_flash案例为例,演示程序加载方法。
将开发板上电,打开Windows的设备管理器查看下载器是否已正常连接。
图 1
在Windows下点击“开始菜单 -> Xilinx Design Tools -> ISE Design Suite 14.7 -> ISE Design Tools -> 64-bit Tools -> iMPACT”,在弹出的界面中依次点击No和Yes。
图 2
图 3
在弹出的对话框中选择“Configure devices using Boundary-Scan(JTAG)”选项,并点击OK,进入到ISE iMPACT界面。
图 4
图 5
弹出如下界面,点击No。
图 6
在弹出的界面中,点击OK。在下载器已连接的情况下,iMPACT会识别到FPGA芯片,并显示“Identify Succeeded”信息。
图 7
图 8
双击FPGA芯片图标,在弹出的对话框中选择案例bin目录下的.bit文件,然后点击打开。
图 9
在弹出的界面中点击No,代表不进行程序固化,仅进行程序加载。
图 10
右击界面中的FPGA芯片图标,选择Program。
图 11
程序成功加载后,将会显示“Program Succeeded”信息,并可看到开发板的LED灯循环亮灭,时间间隔0.5s,说明程序在线加载与运行正常。
图 12
程序固化
下面以led_flash案例为例,演示程序固化方法。
请参考程序加载章节进入如下ISE iMPACT界面,并单击选中“SPI/BPI”,再右键点击“Add SPI/BPI Flash...”。
图 13
在弹出的界面中选择案例bin目录下的.mcs文件,并点击打开。
图 14
弹出的界面中设置SPI FLASH芯片相关选项。请选择“SPI PROM”和W25Q64BV/CV,“Data Width”为1,并点击OK。
图 15
点击FLASH图标变绿后,再右击图标选择Erase,然后在弹出的界面中点击OK擦除SPI FLASH中原有的程序。擦除成功后,界面将会显示“Erase Succeeded”信息。
图 16
图 17
图 18
右击FLASH图标选择Program,此时将弹出固化进度条窗口,等待片刻后将会显示“Program Succeeded”信息,表示程序固化成功。
图 19
图 20
将开发板断开下载器并重新上电,即可看到开发板的LED灯循环亮灭,时间间隔0.5s,表示程序运行正常。
工程导入与程序编译
如需导入工程以及重新编译程序,请按如下步骤进行操作。如无需导入工程或重新编译程序,请忽略本章节内容。
下面以led_flash案例为例,演示ISE工程导入与程序编译步骤。
工程导入
请双击桌面ISE图标打开软件。
图 21
在弹出的界面中点击“File -> Open Project”。
图 22
在弹出的界面中选择案例project目录下的.xise文件,并点击打开。
图 23
弹出如下界面,工程导入完成。
图 24
工程新建、移植
本小节主要说明工程新建以及对现有工程进行移植的简要步骤。若无需新建工程或对现有工程进行移植,请跳过本小节内容。
点击“File -> New Project”。
图 25
在弹出的界面中输入工程名字,文件保存路径请根据实际情况修改或选择默认,并点击Next。
图 26
在弹出的工程配置界面中设置芯片参数。Family:Spartan-6,Device:XC6SLX16,Package:CSG324,Speed:-2,设置好后请点击Next。
图 27
在弹出的界面中点击Finish。
图 28
右击工程并点击“New Source…”,进行模块文件新建。
图 29
在弹出的界面中,点击“Verilog Module”选项输入新建的模块文件名称,再点击Next。
图 30
弹出如下引脚约束窗口,可直接配置引脚约束。由于本次采用文本程序进行引脚约束,此处请直接点击Next跳过。
图 31
点击Finish即可完成模块文件新建,此时将在右侧出现程序编辑窗口。
图 32
打开案例“led_flashprojectled_flash_6slx16hdlled_flash.v”文件,将所有代码复制到程序编辑界面,并点击按钮保存编辑。保存后,Console窗口尾部没有Errors和Warning即说明程序语法无错误。
图 33
点击“Implementation -> led_flash.v -> User Constraints -> Create Timing Constraints -> Run”进行时序和引脚约束。
图 34
弹出如下界面,点击Yes。
图 35
弹出如下界面,双击“Clock Domains”进行时钟设置。
图 36
弹出时钟设置界面,由于本程序使用的是FPGA内部的STARTUP原语50MHz时钟,故在弹出的界面中设置产生的50MHz方波时钟信号的周期为20ns,占空比为50%,并点击OK。
图 37
弹出如下界面,点击按钮保存编辑,再双击led_flash.ucf文件,将会发现仅有时序约束。
图 38
打开案例“led_flashprojectled_flash_6slx16constraintsled_flash.ucf”,将引脚约束代码复制到程序编辑界面,并点击按钮保存编辑,至此已完成工程新建并移植了一个简单的FPGA程序。
图 39
程序编译
双击“Implement Design”,将综合后输出的逻辑网表翻译成所选器件的底层模块与硬件原语,然后将设计映射到器件结构上,并进行布局布线。Console窗口无Error方可进行下一步操作。
图 40
双击“Generate Programming File”生成.bit文件,.bit文件所在路径为新建工程时创建的目录。
图 41
如需生成.mcs文件用于固化,请按照如下步骤执行。
请参考程序加载章节进入如下ISE iMPACT界面,双击“Create PROM File(PROM File Formatter)”。
图 42
弹出如下参数设置对话框,请按下图依次进行操作后,最后点击OK。
图 43
弹出如下界面后,请点击OK。
图 44
在弹出的“Add Device”界面中选择程序编译生成或案例bin目录下的.bit文件,并点击打开。
图 45
在弹出的界面中依次点击No和OK。
图 46
图 47
回到iMPACT界面,双击“Generate File”。
图 48
此时界面将会显示“Generate Succeeded”信息,即成功生成.mcs文件。
图 49