
本文为TD-FD工程开发的指引文档,提供工程编译、程序加载等开发流程说明。
Windows开发环境:Windows10 64bit
开发工具:TD_5.9.1_DR1_2025.1_NL、FD_2025.1_SP1
为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

(1)请先按照《开发环境搭建》文档安装TD、FD等软件以及进行JTAG驱动安装,使用下载器(厂家:安路科技,型号:AL-LINK-FT-V1.0)连接评估板JTAG接口至PC端USB接口。
(2)请先将评估板启动方式选择拨码开关设置为000(1~3),此档位为JTAG模式,再将评估板上电。
本章节以产品资料“4-软件资料\Demo\FPGA-demos\FPGA-HDL-demos\”目录下的led_flash案例为例,演示通过下载器加载程序的操作方法。此案例的功能是控制评估底板PL端的LED3进行闪烁。
在此之前,请将对应案例目录拷贝至Windows非中文路径下并解压案例目录下的project.zip压缩包。
备注:Windows路径有长度限制,路径太长将会导致工程打开出错。
在TD软件菜单栏中依次点击"Tools -> Debug Server Setting"。

在弹出的对话框中,勾选"AL-LTHK-FT(Locsl Host)","Local Port"设置为5555,"JTAG CLK Freg"选择3MHz,"Cable Select 0"选择FT94VM980,点击"Apply and Close"。

将评估板上电启动。在菜单栏中依次点击"Tools -> Download"。

在弹出的对话框中,软件会自动识别"0:DR1M90",若未自动识别可点击"Refresh"。然后点击"Add"添加镜像。

选择led_flash_dr1m90.bit镜像,然后点击“打开(O)”。

添加镜像完成后,点击"Run"。

程序加载完成后,评估底板LED3将会进行闪烁。

本小节以产品资料“4-软件资料\Demo\FPGA-demos\All-Programmable-SoC-demos\”目录下的axi_gpio_led案例为例,演示通过PS(Linux系统)加载PL工程的方法。
将dtbo动态设备树镜像文件和PL工程编译生成的.bit镜像文件拷贝至评估板文件系统的"/lib/firmware/"目录下(若该目录不存在,请新建)。其中.bit镜像文件位于“4-软件资料\Demo\FPGA-demos\All-Programmable-SoC-demos\axi_gpio_led\hw\bin\”目录下。将PL端可执行文件重命名为system_wrapper.bit,然后执行如下命令加载PL端镜像。
Target# mkdir -p /lib/firmware
Target# cp pl.dtbo /lib/firmware/
Target# cp axi_gpio_led_dr1m90.bit /lib/firmware/system_wrapper.bit
Target# mount -t configfs none /sys/kernel/config
Target# mkdir /sys/kernel/config/device-tree/overlays/full //创建full目录,可根据实际情况修改
Target# echo pl.dtbo > /sys/kernel/config/device-tree/overlays/full/path //dtbo文件名称请根据实际情况修改

如需重新加载dtbo动态设备树镜像文件,请执行如下命令先删除full目录,再重新创建full目录加载dtbo。
Target# rmdir /sys/kernel/config/device-tree/overlays/full
Target# mkdir /sys/kernel/config/device-tree/overlays/full
Target# echo pl.dtbo > /sys/kernel/config/device-tree/overlays/full/path

查看"/sys/class/gpio/"目录下生成的gpiochip322节点,地址为0x80100000,与axi_gpio_led案例给AXI GPIO IP分配的地址一致。
Target# ls /sys/class/gpio/gpiochip* -l

生成gpio322节点,配置gpio322为output。
Target# echo 322 > /sys/class/gpio/export
Target# echo out > /sys/class/gpio/gpio322/direction

通过gpio322控制底板LED3亮灭。
Target# echo 1 > /sys/class/gpio/gpio322/value
Target# echo 0 > /sys/class/gpio/gpio322/value

本小节以产品资料“4-软件资料\Demo\FPGA-demos\All-Programmable-SoC-demos\”目录下的axi_gpio_led案例为例,演示PL端功能相关的动态设备树的编译方法。
axi_gpio_led案例的动态设备树文件pl.dtsi位于“4-软件资料\Demo\FPGA-demos\All-Programmable-SoC-demos\axi_gpio_led\sw\linux_system\src\”目录下,其内容如下。
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target-path = "/soc/base_fpga_region";
#address-cells = <0x2>;
#size-cells = <0x2>;
__overlay__ {
#address-cells = <0x2>;
#size-cells = <0x2>;
firmware-name = "system_wrapper.bit";
config-complete-timeout-us = <3000000000>;
};
};
fragment@1 {
target-path = "/soc";
__overlay__ {
#address-cells = <0x2>;
#size-cells = <0x2>;
axi_gpio0: gpio@80100000{
/* AXI_GPIO: AXI_GPIO_0 */
status = "okay";
reg = <0x0 0x80100000 0x0 0x1000>;
compatible = "anlogic,axi-gpio-1.00.a";
#gpio-cells = <2>;
#interrupt-cells = <0x2>;
gpio-controller;
anlogic,interrupt-present = <0x1>;
anlogic,all-inputs = <0x0>;
anlogic,all-outputs = <0x0>;
anlogic,dout-default = <0x00000000>;
anlogic,gpio-width = <0x1>;
anlogic,gpio2-width = <0x20>;
anlogic,tri-default = <0xFFFFFFFF>;
anlogic,is-dual = <0x0>;
};
};
};
};
请将其拷贝至Ubuntu工作目录,并在此目录执行如下命令,使用dtc工具编译动态设备树源文件。编译完成后,将在当前目录下生成dtbo动态设备树镜像文件。
Host# dtc -v
Host# dtc -q -@ -O dtb -o pl.dtbo pl.dtsi

本章节主要演示TD工程创建与编译方法。如无需重新编译或创建工程,请忽略本章节内容。
打开TD软件,在菜单栏中依次点击"Project -> New Project..."。

在弹出的对话框中,根据实际情况设置Project Name(工程名)和Project Path(工程存放路径),"Device Family"选择"DR1","Device Name"选择"DR1M90GEG484","Device Speed"选择"-2",点击"OK"创建工程。


在菜单栏中依次点击"Source -> New Source..."。

在弹出的对话框中,根据实际情况设置File Name(文件名)和Location(源码存放路径),"File Type"选择"Verilog",勾选"Add To Project",点击"OK"。


打开"led_flash.v"文件,在代码编辑区编写代码并保存。

鼠标右键点击"FLAG Flow"中的"Syn Opt -> Read Design",点击"Run"。

在弹窗中点击"OK"。

然后双击"FLAG Flow"中的"IO Constraint",打开管脚分配界面。

从底板原理图可知,LED3引脚为R15,电压1.8V,故设置"Location"为"R15","IOStandard"为"LVCMOS18",并点击保存。


在弹窗选择约束文件类型,此处以选择"Single Line"为例,然后点击"OK"。

请自定义约束文件的路径和名称,然后点击“保存”。

在弹出的界面中点击"Yes",将约束文件添加到工程。

至此,已完成约束文件配置,双击打开"led_flash.adc"文件,可看到约束文件内容。

打开TD软件,在菜单栏中依次点击"Project -> Open Project..."。

选择需要导入的工程所在目录下的工程文件,点击“打开”。

在弹出的界面中点击"OK"。

即可完成导入。

鼠标右键点击"FLAG Flow"中的"Phy Opt -> Generate Bitstream",点击"Run All"。

编译完成后,在工程"xxx_Runs\best_result\"目录下将会生成.bit镜像文件。


由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。