跳到主要内容安路科技 TD 开发工具全流程使用指南 | 极客日志编程语言
安路科技 TD 开发工具全流程使用指南
安路科技 TD(TangDynasty)FPGA 开发工具的完整使用流程,涵盖环境搭建、工程创建、RTL 设计输入、综合约束、布局布线、仿真验证及比特流下载调试等核心步骤。重点讲解了器件选型、引脚与时序约束编写、IP 核调用及常见问题解决方案,旨在帮助用户掌握国产 FPGA 开发的基础操作与优化技巧。
怪力乱神1 浏览 国产 FPGA 安路 TD(TangDynasty)工具使用方法全流程详解
TD(TangDynasty)是安路科技自研的 FPGA/FPSoC 集成开发环境,覆盖RTL 输入→综合→布局布线→时序分析→比特流生成→下载调试全流程,支持 Windows/Linux 系统,适配 EG、ELF、SF1、DR1 等安路全系列芯片。以下从环境搭建、工程创建、设计输入、综合、约束、布局布线、仿真、下载调试、高级功能、常见问题等维度,提供最详细的操作方法。
一、TD 工具安装与环境准备
1.1 软件获取与版本选择
- 免费开放版:安路官网直接下载,支持基础/主流芯片(如 EG4、SF1),适合入门与常规开发。
- 未开放版:联系安路技术支持获取,支持高端/定制芯片(如 DR1、PH1 系列),满足复杂项目需求。
版本兼容性:优先选最新稳定版(如 TD 6.2+),确保与目标芯片、开发板驱动匹配。1.2 安装步骤(Windows 为例)
- 双击安装包,接受许可协议,选择非中文、无空格的安装路径(如
D:\Anlogic\TD),避免路径问题导致编译失败。
- 安装组件:默认勾选器件库、仿真库、驱动程序、开发板支持包,按需添加第三方工具接口(如 ModelSim)。
- 完成安装后,配置环境变量:将 TD 安装目录下
bin 文件夹路径(如 D:\Anlogic\TD\bin)添加到系统 Path,确保命令行可调用 TD 工具。
- 启动 TD,在
Help→License Manager 中激活授权(免费版默认已授权,高端版需导入 License 文件)。
1.3 硬件驱动与连接
- 开发板通过 USB-JTAG 线连接电脑,打开设备管理器:
- 找到
USB Serial Converter(VID/PID:0403/6042),右键选择Install WinUSB安装驱动。
- 驱动安装成功后,设备管理器显示
Anlogic JTAG Cable,无黄色感叹号。
- 开发板供电:确保开发板电源适配器正常,部分板卡需独立供电,避免 USB 供电不足导致识别失败。
二、工程创建(核心步骤,细节决定成败)
2.1 新建工程向导(File→New Project)
- Project Name and Location
- 项目名:仅用英文 + 下划线(如
led_flow_demo),禁止中文、空格、特殊字符,否则 Makefile/脚本报错。
- 存储路径:选择短路径、无中文目录(如
D:\FPGA_Projects\led_flow),避免深层路径导致编译超时。
- 勾选Create project subdirectory,自动生成工程文件夹,便于文件管理。
- Project Type
- 必选RTL Project(常规 HDL 开发)。
- IP Integrator Project:仅用于 IP 核图形化集成,新手勿选。
- Empty Project:空白工程,适合手动配置所有参数。
- Device Selection(最关键步骤)
- Family:选择目标芯片系列(如 EG4、DR1、SF1)。
- Device:精确匹配芯片型号(如
EG4S20BG256),封装代码(BG256)不可省略,否则布局布线资源估算偏差、下载失败。
- Speed Grade:选择速度等级(如 -1、-2),与芯片丝印一致。
- Package:确认封装类型(如 BGA、QFP),与开发板芯片匹配。
- Top-Level Entity
- 填写Verilog/VHDL 模块名(非文件名)。
- 示例:代码文件
led_flow.v 中模块声明为 module led_flow(input clk, ...),此处必须填 led_flow,填 led_flow.v 会报 can't find top module 错误。
- 多文件工程:后续可在 Hierarchy 中右键文件→Set as Top重新指定顶层。
- 完成向导:自动生成工程结构,包含
src(设计文件)、constraints(约束文件)、sim(仿真文件)等目录。
2.2 工程配置(Project→Properties)
- General:确认目标器件、顶层模块、工程路径无误。
- Constraints:点击Add Constraint File,创建
.sdc(时序约束)或 .xdc(引脚约束)文件,约束文件必须提前创建,否则烧录后功能异常。
- Synthesis:设置综合策略(如Flow_Quick快速综合、Flow_Performance性能优先)。
- Place & Route:配置布局布线参数(如迭代次数、时序优化等级)。
- Bitstream:设置比特流生成选项(如加密、Flash 启动配置)。
三、设计输入(RTL 代码与 IP 核)
3.1 添加/新建 HDL 文件
- 右键Hierarchy→New Source,选择File Type(Verilog/VHDL),输入文件名(如
led_flow.v),保存到 src 目录。
- 编写代码:TD 内置代码编辑器,支持语法高亮、自动补全、错误实时提示。
- 添加现有文件:右键Hierarchy→Add Sources,选择本地 HDL 文件,导入工程。
module led_flow( input clk, input rst_n, output reg [3:0] led );
reg [23:0] cnt;
always @(posedge clk or negedge rst_n) begin
if(!rst_n) cnt <= 24'd0;
else cnt <= cnt + 1'b1;
end
always @(posedge clk or negedge rst_n) begin
if(!rst_n) led <= 4'b0001;
else if(cnt == 24'd10000000) begin // 50MHz 时钟,0.2s 翻转
led <= {led[2:0], led[3]};
cnt <= 24'd0;
end
end
endmodule
3.2 IP 核调用(PLL、DDR、UART 等)
- 打开IP Catalog(Tools→IP Catalog),浏览安路官方 IP 核(如 PLL、FIFO、SPI、UART)。
- 双击目标 IP(如Anlogic PLL),配置参数:
- 输入时钟(如 50MHz)、输出时钟(如 100MHz)、相位偏移、占空比。
- 选择输出文件类型(.v/.vhd),指定保存路径(如
src/ip)。
- 点击Generate生成 IP 核文件(.v/.xci),自动添加到工程 Hierarchy。
pll_inst u_pll( .clk_in1(clk), .clk_out1(clk_100m), .locked(pll_locked) );
3.3 原理图输入(可选)
- 右键Hierarchy→New Source,选择Schematic,创建原理图文件(.sch)。
- 从Library中拖拽逻辑门、IP 核、输入输出端口到画布,连线完成设计。
- 右键原理图→Generate HDL,自动转换为 Verilog/VHDL 代码,用于后续综合。
四、逻辑综合(Synthesis)
4.1 综合操作
- 点击工具栏Synthesis按钮(或右键工程→Run Synthesis),启动综合流程。
- 综合过程:TD 自动完成语法检查→逻辑优化→网表生成,耗时随设计规模增加(小规模设计数秒,大规模设计数分钟)。
4.2 综合结果分析
- Messages 窗口:查看Error/Warning/Info:
- Error:必须修复(如语法错误、端口未定义、模块未找到)。
- Warning:重点关注(如时序不满足、资源利用率过高、未约束信号)。
- Synthesis Report:生成综合报告,包含:
- 资源利用率:LUT、FF、BRAM、DSP 等使用情况,对比芯片资源上限。
- 时序信息:初步时序分析结果,提示关键路径。
- 优化详情:逻辑优化、冗余删除、资源合并记录。
4.3 综合优化设置
- 打开Project→Properties→Synthesis,配置优化策略:
- Flow_Quick:快速综合,牺牲部分性能,适合调试阶段。
- Flow_Performance:性能优先,最大化时序优化,适合量产。
- Flow_Area:面积优先,最小化资源占用,适合资源紧张场景。
- 高级选项:勾选Register Retiming(寄存器重定时)、Logic Replication(逻辑复制),提升时序性能。
五、约束设计(引脚 + 时序,核心保障)
5.1 引脚约束(.xdc 文件)
- 图形化约束(推荐新手):
- 打开I/O Planning(Tools→I/O Planning),可视化分配引脚。
- 左侧I/O Ports列表选择端口,右侧Package View点击目标引脚,自动生成 xdc 约束。
- 约束规则:
- 引脚编号(PACKAGE_PIN)与开发板原理图完全一致。
- 电平标准(IOSTANDARD)匹配硬件(如 LVCMOS33、LVCMOS18、SSTL15)。
- 时钟引脚必须指定IOSTANDARD,并添加时序约束。
新建/打开 constraints/top.xdc,编写引脚分配:
# 时钟引脚
set_property PACKAGE_PIN P10 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
# 复位引脚
set_property PACKAGE_PIN P11 [get_ports rst_n]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n]
# LED 引脚
set_property PACKAGE_PIN P12 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property PACKAGE_PIN P13 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
5.2 时序约束(.sdc 文件)
- 时序约束目的:
- 定义时钟频率,指导布局布线工具优化时序。
- 避免时序违规(Setup/Hold Violation),确保芯片稳定运行。
- 约束检查:综合/布局布线后,在Timing Analyzer中验证约束是否生效,查看时序报告。
新建/打开 constraints/top.sdc,编写时序约束(核心):
# 1. 时钟约束(最关键)
create_clock -name clk -period 20.0 [get_ports clk] # 50MHz 时钟,周期 20ns
# 2. 输入延迟
set_input_delay -clock clk -max 2.0 [get_ports {rst_n}]
# 3. 输出延迟
set_output_delay -clock clk -max 2.0 [get_ports {led[*]}]
# 4. 多周期路径
set_multicycle_path 2 -setup -from [get_clocks clk] -to [get_registers {led*}]
# 5. 伪路径(忽略非关键路径)
set_false_path -from [get_ports rst_n] -to [get_registers cnt*]
六、布局布线(Place & Route)
6.1 布局布线操作
- 综合成功后,点击工具栏Place & Route按钮(或右键工程→Run Place & Route)。
- 流程:布局(Place)→布线(Route)→时序优化→物理验证,自动完成,无需手动干预(高级用户可手动调整)。
6.2 布局布线结果分析
- Messages 窗口:重点查看时序违规(Setup Violation、Hold Violation),必须修复。
- Device View:可视化查看芯片内部资源使用情况:
- 颜色区分 LUT、FF、BRAM、DSP 的布局位置。
- 高亮显示关键路径,便于定位时序问题。
- Place & Route Report:生成详细报告,包含:
- 布局密度、布线拥塞情况。
- 时序裕量(Slack):正裕量表示时序满足,负裕量表示违规。
- 物理约束检查结果(如引脚冲突、电平不匹配)。
6.3 布局布线优化
- 时序违规修复:
- 优化约束:收紧/放松时钟周期、调整多周期路径、添加伪路径。
- 优化代码:拆分组合逻辑、插入寄存器、减少关键路径逻辑级数。
- 调整布局布线策略:在Project→Properties→Place & Route中选择Timing_Driven(时序驱动)模式,增加迭代次数。
- 资源紧张优化:
- 代码优化:复用逻辑、减少冗余寄存器、优化 BRAM/DSP 使用。
- 布局设置:勾选Resource Sharing(资源共享),降低资源占用。
七、仿真验证(功能 + 时序,确保逻辑正确)
TD 仿真依赖第三方工具(如 ModelSim、VCS),需提前安装并配置仿真库。
7.1 仿真环境配置
- 编译安路仿真库:
- 打开 TD→Tools→Compile Simulation Libraries。
- 选择仿真工具(ModelSim)、目标器件系列(EG4)、仿真库路径(如
D:\Anlogic\TD\simlib),点击Compile,生成仿真库文件。
- 关联仿真工具:
- TD→Tools→Options→EDA Tools,设置 ModelSim 安装路径(如
D:\ModelSim\win64),确保 TD 可调用 ModelSim。
7.2 功能仿真(Behavioral Simulation)
- 启动仿真:
- 右键 Testbench 文件→Set as Top。
- 点击工具栏Run Simulation→Run Behavioral Simulation,自动启动 ModelSim。
- 波形查看:
- ModelSim 中添加信号(clk、rst_n、led、cnt)到波形窗口。
- 运行仿真,查看信号变化是否符合预期(如 LED 每 0.2s 循环移位)。
- 排查逻辑错误:如复位无效、计数错误、LED 不翻转,定位代码问题。
编写 Testbench:新建 sim/led_flow_tb.v,编写激励文件:
`timescale 1ns / 1ps
module led_flow_tb;
reg clk;
reg rst_n;
wire [3:0] led;
// 例化顶层模块
led_flow u_led_flow( .clk(clk), .rst_n(rst_n), .led(led) );
// 生成时钟(50MHz)
initial clk = 1'b0;
always #10 clk = ~clk;
// 复位激励
initial begin
rst_n = 1'b0;
#20 rst_n = 1'b1;
#1000000 $finish; // 仿真时长
end
endmodule
7.3 时序仿真(Post-Place & Route Simulation)
- 布局布线成功后,点击Run Simulation→Run Post-Place & Route Simulation。
- 时序仿真包含门延迟、线延迟,更接近芯片实际运行情况。
- 重点检查:
- 时序是否满足(Setup/Hold 无违规)。
- 信号毛刺、亚稳态是否影响功能。
- 关键路径时序裕量是否足够。
八、比特流生成与下载调试
8.1 生成比特流(Bitstream)
- 布局布线成功后,点击工具栏Generate Bitstream按钮。
- 配置比特流选项(Project→Properties→Bitstream):
- Bitstream Format:选择
.bit(JTAG 下载)或 .mcs(Flash 烧录)。
- Encryption:勾选后加密比特流,保护设计知识产权。
- Flash Configuration:设置 Flash 启动模式(如 SPIx4,提升启动速度)。
- 生成成功后,比特流文件保存在
runs\impl_1\ 目录下(如 led_flow_demo.bit)。
8.2 JTAG 下载(调试阶段)
- 硬件连接:开发板通电,USB-JTAG 线连接电脑,TD 识别到开发板(底部状态栏显示Cable Connected)。
- 下载配置:
- 打开Hardware Manager(Tools→Hardware Manager)。
- 点击Open Target→Auto Connect,连接开发板。
- 右键目标器件→Program Device,选择生成的
.bit 文件,点击Program。
- 下载验证:
- 下载完成后,开发板 LED 按预期流水闪烁,功能正常。
- 若下载失败:检查驱动、JTAG 线、开发板供电、比特流文件与芯片型号是否匹配。
8.3 Flash 烧录(量产阶段)
- 生成
.mcs 文件:在Generate Bitstream中选择MCS Format,配置 Flash 参数(如 Flash 型号、起始地址)。
- 烧录 Flash:
- Hardware Manager 中右键器件→Add Configuration Memory Device,选择开发板 Flash 型号(如 W25Q64)。
- 右键 Flash→Program Configuration Memory Device,选择
.mcs 文件,烧录至 Flash。
- 启动验证:开发板断电重启,自动从 Flash 加载配置,功能正常。
8.4 在线调试(Logic Analyzer)
- 重新综合、布局布线、生成比特流,下载至开发板。
- 打开Hardware Manager→Debug,启动 ILA,实时抓取内部信号波形,分析运行状态,定位实时问题。
插入调试核:在代码中添加**ILA(Integrated Logic Analyzer)**核,监控内部信号:
// 例化 ILA 核
ila_0 u_ila( .clk(clk), .probe0(cnt[23:0]), .probe1(led[3:0]) );
九、高级功能与效率提升
9.1 命令行操作(自动化脚本)
TD 支持 Tcl 命令行,实现批量编译、仿真、下载,提升效率:
# 1. 创建工程
create_project led_flow_demo D:/FPGA_Projects/led_flow_demo -part EG4S20BG256
# 2. 添加源文件
add_files {D:/FPGA_Projects/led_flow_demo/src/led_flow.v}
add_files -fileset constrs_1 {D:/FPGA_Projects/led_flow_demo/constraints/top.xdc D:/FPGA_Projects/led_flow_demo/constraints/top.sdc}
# 3. 综合
synth_design -top led_flow -part EG4S20BG256
# 4. 布局布线
place_design route_design
# 5. 生成比特流
write_bitstream -force D:/FPGA_Projects/led_flow_demo/led_flow_demo.bit
# 6. 下载
open_hw connect_hw_server
open_hw_target program_hw_devices -force {usb-1:1:1} D:/FPGA_Projects/led_flow_demo/led_flow_demo.bit
close_hw_target
- 保存为
.tcl 文件,在 TD Tcl 控制台或 Windows 命令行中执行。
9.2 工程迁移与版本管理
- 工程备份:复制整个工程文件夹,或导出Archive Project(File→Archive Project),生成压缩包。
- 版本管理:使用 Git/SVN 管理工程文件,仅提交
src、constraints、sim 目录,忽略 runs(编译临时文件)。
- 跨平台迁移:TD 支持 Windows/Linux,工程文件通用,仅需重新编译仿真库。
9.3 性能优化技巧
- 时序优化:
- 关键路径插入寄存器,减少组合逻辑级数。
- 使用 PLL 倍频/分频时钟,优化时序裕量。
- 合理设置多周期路径,降低时序压力。
- 资源优化:
- 复用逻辑模块,避免重复定义。
- 优先使用 BRAM 存储数据,减少 LUT/FF 占用。
- 开启资源共享、逻辑优化选项。
- 下载优化:
- Flash 启动设置为SPIx4模式,提升启动速度(从秒级降至毫秒级)。
- 比特流加密,保护设计安全。
十、常见问题与解决方案
10.1 工程创建问题
- 问题:报
can't find top module。
解决:检查 Top-Level Entity 是否为模块名(非文件名),或右键文件重新设置为 Top。
- 问题:器件型号选择错误,布局布线失败。
解决:重新选择与开发板一致的芯片型号(含封装代码)。
10.2 综合/布局布线问题
- 问题:时序违规(Setup/Hold Violation)。
解决:优化时序约束、拆分组合逻辑、调整布局布线策略、插入寄存器。
- 问题:资源利用率过高(如 LUT>90%)。
解决:优化代码、开启资源共享、更换更大容量芯片。
- 问题:布线拥塞,布局布线失败。
解决:简化逻辑、调整引脚约束、增加布局布线迭代次数。
10.3 仿真问题
- 问题:ModelSim 无法启动,提示仿真库缺失。
解决:重新编译安路仿真库,关联 ModelSim 路径。
- 问题:功能仿真正常,时序仿真异常。
解决:检查时序约束是否完整,优化关键路径时序。
10.4 下载/调试问题
- 问题:下载失败,提示Cable Not Connected。
解决:检查驱动安装、JTAG 线连接、开发板供电,重启 TD/电脑。
- 问题:烧录后功能异常(LED 狂闪/不亮)。
解决:检查引脚约束、时序约束、时钟频率是否正确,重新编译下载。
十一、总结
TD 工具是安路 FPGA 开发的核心,掌握环境搭建→工程创建→设计输入→综合→约束→布局布线→仿真→下载调试全流程,是国产 FPGA 开发的基础。操作中需重点关注器件型号匹配、约束文件编写、时序优化、仿真验证,结合命令行与高级功能,可大幅提升开发效率。
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown 转 HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
- HTML 转 Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online