陈工-创龙科技 发表于 2026-1-7 15:50:03

DR1M90 评估板 TD-FD 工程与 Linux 多场景应用开发指南

前言本文为TD-FD工程开发的指引文档,提供工程编译、程序加载等开发流程说明。开发环境Windows开发环境:Windows10 64bit开发工具:TD_5.9.1_DR1_2025.1_NL、FD_2025.1_SP1术语表为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld016AdoJzAAB9MoxVnag441.png
注意事项(1)请先按照《开发环境搭建》文档安装TD、FD等软件以及进行JTAG驱动安装,使用下载器(厂家:安路科技,型号:AL-LINK-FT-V1.0)连接评估板JTAG接口至PC端USB接口。(2)请先将评估板启动方式选择拨码开关设置为000(1~3),此档位为JTAG模式,再将评估板上电。
1TD 工程的程序加载、创建与编译1.1 程序加载1.1.1 通过下载器加载本章节以产品资料“4-软件资料\Demo\FPGA-demos\FPGA-HDL-demos\”目录下的led_flash案例为例,演示通过下载器加载程序的操作方法。此案例的功能是控制评估底板PL端的LED3进行闪烁。在此之前,请将对应案例目录拷贝至Windows非中文路径下并解压案例目录下的project.zip压缩包。备注:Windows路径有长度限制,路径太长将会导致工程打开出错。在TD软件菜单栏中依次点击"Tools -> Debug Server Setting"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld02aAdk7bAAFVw5Tx8sc638.png
图 1
在弹出的对话框中,勾选"AL-LTHK-FT(Locsl Host)","Local Port"设置为5555,"JTAG CLK Freg"选择3MHz,"Cable Select 0"选择FT94VM980,点击"Apply and Close"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld03OAN2AnAAAp1YukHRw221.png
图 2
将评估板上电启动。在菜单栏中依次点击"Tools -> Download"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld03qAW4sjAAChlqFyQhk980.png
图 3
在弹出的对话框中,软件会自动识别"0:DR1M90",若未自动识别可点击"Refresh"。然后点击"Add"添加镜像。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld04GAKFrMAABGg_cEsR8935.png
图 4
选择led_flash_dr1m90.bit镜像,然后点击“打开(O)”。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld04iAbu-wAACJkACbaC8236.png
图 5
添加镜像完成后,点击"Run"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld05CAegK9AABJNhe3aDE916.png
图 6
程序加载完成后,评估底板LED3将会进行闪烁。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld05iAf25pAABMClmAr9E800.png
图 7
1.1.2 通过PS端加载本小节以产品资料“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/firmwareTarget#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文件名称请根据实际情况修改

https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld06CAJcROAABJoyUJG7U839.png
图 8
如需重新加载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

https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld06eALsHpAAA_pK5_hOc053.png
图 9
查看"/sys/class/gpio/"目录下生成的gpiochip322节点,地址为0x80100000,与axi_gpio_led案例给AXI GPIO IP分配的地址一致。Target#ls /sys/class/gpio/gpiochip* -l
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld06-AX7XzAABElDxFGYg068.png
图 10
生成gpio322节点,配置gpio322为output。Target#echo 322 > /sys/class/gpio/exportTarget#echo out > /sys/class/gpio/gpio322/direction
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld07WAPiCwAAAKS_SDMnE428.png
图 11
通过gpio322控制底板LED3亮灭。Target#echo 1 > /sys/class/gpio/gpio322/valueTarget#echo 0 > /sys/class/gpio/gpio322/value
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld076AF_enAAAJtTJderg593.png
图 12
1.2PL端动态设备树编译本小节以产品资料“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 -vHost#dtc -q -@ -O dtb -o pl.dtbo pl.dtsi
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld08yAMDWAAADeljtljng167.png
图 13
1.3TD工程创建与编译本章节主要演示TD工程创建与编译方法。如无需重新编译或创建工程,请忽略本章节内容。
1.3.1创建TD工程打开TD软件,在菜单栏中依次点击"Project -> New Project..."。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld09WADuPgAABrC6y9A3w702.png
图 14
在弹出的对话框中,根据实际情况设置Project Name(工程名)和Project Path(工程存放路径),"Device Family"选择"DR1","Device Name"选择"DR1M90GEG484","Device Speed"选择"-2",点击"OK"创建工程。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld0-aAOm1lAAAYQcfYpus216.png
图 15
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld0-aAW_WxAABs1F1NDA0549.png
图 16
在菜单栏中依次点击"Source -> New Source..."。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld0_WAO2TTAAE_H9qYGK0536.png
图 17
在弹出的对话框中,根据实际情况设置File Name(文件名)和Location(源码存放路径),"File Type"选择"Verilog",勾选"Add To Project",点击"OK"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld0_-AdR1WAAAUh81ONlI405.png
图 18
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld0_-ARk57AACXZnIxTR4202.png
图 19
打开"led_flash.v"文件,在代码编辑区编写代码并保存。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld1DuARMyBAAFa5HcbTaU999.png
图 20
鼠标右键点击"FLAG Flow"中的"Syn Opt -> Read Design",点击"Run"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1EKAdcn6AABED02hGeA969.png
图 21
在弹窗中点击"OK"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1EiAEUrQAAAWh8ZTkwE187.png
图 22
然后双击"FLAG Flow"中的"IO Constraint",打开管脚分配界面。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1E-ADtJwAAIBu4-ZWdY948.png
图 23
从底板原理图可知,LED3引脚为R15,电压1.8V,故设置"Location"为"R15","IOStandard"为"LVCMOS18",并点击保存。https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld1FmAL0EqAAATfuejvTs214.png
图 24 用户指示灯原理图
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1FmAdbJ3AAD7VK432co803.png
图 25
在弹窗选择约束文件类型,此处以选择"Single Line"为例,然后点击"OK"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld1GaAaEUGAAAPYsU13Tc544.png
图 26
请自定义约束文件的路径和名称,然后点击“保存”。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1G6AdeyWAACEy7YAY2U896.png
图 27
在弹出的界面中点击"Yes",将约束文件添加到工程。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld1HmAL6HdAAARvp2uL1k461.png
图 28
至此,已完成约束文件配置,双击打开"led_flash.adc"文件,可看到约束文件内容。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1ICAZiRMAACpcWQM2cI352.png
图 29
1.3.2 导入TD工程打开TD软件,在菜单栏中依次点击"Project -> Open Project..."。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld1IiAWx57AAAkz9NYsHY778.png
图 30
选择需要导入的工程所在目录下的工程文件,点击“打开”。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1JiAGrMeAACZRbSYxNk175.png
图 31
在弹出的界面中点击"OK"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld1KGAYJCIAAAQ_feiOkk490.png
图 32
即可完成导入。
https://file1.elecfans.com/web3/M00/45/FB/wKgZO2ld1KiAAmYkAAA-FWADpm4215.png
图 33
1.3.3 编译TD工程鼠标右键点击"FLAG Flow"中的"Phy Opt -> Generate Bitstream",点击"Run All"。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1LCAX82uAABTtTiIMmc397.png
图 34
编译完成后,在工程"xxx_Runs\best_result\"目录下将会生成.bit镜像文件。
https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1LmAfDygAABKJJrmTQM106.png
图 35


https://file1.elecfans.com/web3/M00/45/FB/wKgZPGld1NOAfKEMAAAhDRyAx1o295.png
图 36
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!

页: [1]
查看完整版本: DR1M90 评估板 TD-FD 工程与 Linux 多场景应用开发指南