PLFM_RADAR 的 USB_MODE 如何在 FT2232H 与 FT601 之间选择?
2026/9/13 11:24:31 网站建设 项目流程

PLFM_RADAR 的 USB_MODE 如何在 FT2232H 与 FT601 之间选择?

【免费下载链接】PLFM_RADAROpen-source, low-cost 10.5 GHz PLFM phased array RADAR system项目地址: https://gitcode.com/GitHub_Trending/pl/PLFM_RADAR

PLFM_RADAR(AERIS-10,10.5 GHz PLFM 相控阵雷达)的 FPGA 设计有两条 USB 数据通路:FT2232H(USB 2.0,8 位)和 FT601(USB 3.0,32 位)。把设计集成到具体电路板时,必须用radar_system_top.v里的USB_MODE参数二选一:0选 FT601,1选 FT2232H。这个选择是编译期的——radar_system_top.v中有一个generate块根据USB_MODE只例化其中一个接口模块,未选用的那一路 I/O 全部被固定到无活动状态(低有效信号拉高、高有效信号拉低、双向总线高阻)。运行中无法切换,所以集成前必须先确定目标板。

选择依据:看板上焊的是哪颗 USB 芯片

哪条路径可用由硬件决定,每块板上只物理连接了一颗 USB 芯片:

目标板FPGA 器件USB 芯片数据总线时钟对应 USB_MODE
50T 生产板XC7A50T-2FTG256IFT2232H(Bank 35,245 同步 FIFO 模式,仅用 Channel A)8 位60 MHz(FT2232H CLKOUT)1
200T 开发板XC7A200T-2FBG484IFT601(Bank 16)32 位 + 字节使能100 MHz0
Trenz TE0712/TE0701、TE0713/TE0701XC7A200T-2FBG484I/CFT60132 位100 MHz0(构建脚本覆盖默认值)

两条路径共用同一组内部雷达数据总线和主机命令接口(距离像、多普勒、CFAR 检测结果、AGC 状态回读等),所以主机侧协议不变,USB_MODE只决定物理 USB 通道。

50T 生产板:用 wrapper 顶层自动锁定 USB_MODE=1

50T 板只有 69 个可用 IO,因此不能直接用radar_system_top作顶层,而是用专门的 wrapper radar_system_top_50t.v。它在例化核心时强制写死参数:

radar_system_top #( .USB_MODE(1) // FT2232H (8-bit USB 2.0) for 50T production ) u_core ( .ft601_clk_in (ft_clkout), // FT2232H 60 MHz CLKOUT → 共享 USB 时钟端口 ... );

注意 FT2232H 的 60 MHz CLKOUT 接到的是共享时钟端口ft601_clk_in,而不是 FT601 专用引脚;FT601 侧的输入在 wrapper 里被固定为 0,32 位数据总线固定高阻。

构建命令(在 FPGA 源码目录9_Firmware/9_2_FPGA下执行):

vivado -mode batch -source scripts/50t/build_50t.tcl 2>&1 | tee build_50t/vivado.log

build_50t.tcl 已经替你完成了选择:器件设为xc7a50tftg256-2,顶层设为radar_system_top_50t,约束加载xc7a50t_ftg256.xdcadc_clk_mmcm.xdc。脚本会自动跳过*_te0712_**_te0713_*文件。

200T 开发板:用 generic 覆盖为 USB_MODE=0

200T 板直接用radar_system_top作顶层,但 RTL 中parameter USB_MODE = 1是默认值(FT2232H,生产默认),所以 FT601 构建必须显式覆盖。build_200t.tcl 通过 Vivado generic 完成:

set top_module "radar_system_top" set fpga_part "xc7a200tfbg484-2" ... # Override USB_MODE to 0 (FT601) for 200T premium board. # The RTL default is USB_MODE=1 (FT2232H, production 50T). set_property generic {USB_MODE=0} [current_fileset]

构建命令:

vivado -mode batch -source scripts/200t/build_200t.tcl \ -log build/build.log -journal build/build.jou

Trenz TE0712/TE0713 开发目标同理,各自有独立顶层(radar_system_top_te0712_dev/radar_system_top_te0713_dev)和最小约束文件,用 build_te0712_dev.tcl、build_te0713_dev.tcl 分别构建。

README 的结论是:你不需要手工设置USB_MODE,顶层模块和构建脚本的选择就处理了这件事——

构建脚本顶层模块约束文件USB_MODE
scripts/50t/build_50t.tclradar_system_top_50txc7a50t_ftg256.xdc1(FT2232H)
scripts/200t/build_200t.tclradar_system_topxc7a200t_fbg484.xdc0(FT601,generic 覆盖)

如果自己在 Vivado 工程里搭项目而不是跑脚本,要点是:在 fileset 上设置generic {USB_MODE=0}(或改用 wrapper 模块),并且同一时间只启用一个目标的 XDC——在 Sources 面板对不需要的 XDC 右键Set File Properties > Enabled = false,或分两个约束集切换。

验证选择是否生效

  1. 顶层与参数:构建日志开头会打印Top: radar_system_top_50t(50T)或Top: radar_system_top(200T)。自己搭的项目可在综合后确认 fileset 的 generic 值。
  2. 位流产出:50T 构建输出build_50t/bitstream/radar_system_top_50t.bit,脚本会打印Bitstream: ... ([size] KB),缺失时打印WARNING: Bitstream not generated!;200T 构建把aeris10_radar.runs/impl_1/radar_system_top.bit复制为build/bitstream/radar_system_top_build21.bit并在摘要中写入00_build21_summary.txt的 Signoff 段(PASS/FAIL)。
  3. DRC 侧的信号:50T 构建脚本会把NSTD-1/UCIO-1降级为 Warning,README 和脚本注释都说明这是因为 FT601 端口在USB_MODE=1的 generate 块下未约束、处于非活动状态——这些警告在 50T 构建中出现是预期现象,不是接线错误。反过来,如果 50T 构建里 FT2232H(Bank 35)引脚出现未约束告警,才是选错了模式。

限制与文档中一处冲突

  • 只能在编译期选择,运行中无法切换;选错模式时板子上没有物理连线的接口会被驱动,但雷达数据链路不会通。
  • 50T 必须使用radar_system_top_50t作顶层。README 在 Notes 一节写的是:直接用radar_system_top会"默认到 FT601(USB_MODE=0)",该模式在 50T 板上没有物理连接。但同文档的 "How USB_MODE Is Passed Per Board Target" 一节、radar_system_top.v 第 145 行的parameter USB_MODE = 1以及build_200t.tcl的注释都表明 RTL 默认值是1(FT2232H),200T 是靠 generic 覆盖到 0。两处说法冲突,本文如实保留;好在两条官方构建脚本都显式指定了顶层和 generic,只要走脚本流程就不受这个矛盾影响。
  • 时钟差异要记住:FT2232H 模式下 USB 接口时钟是 60 MHz(CLKOUT 接 MRCC 引脚 C4,脚本为此把PLIO-9降级并设置CLOCK_DEDICATED_ROUTE FALSE);FT601 模式下是 100 MHz。
  • 50T 的 Bank 35 已占用 15 个 FT2232H 信号,余量可用于扩展;200T 的 Bank 16(FT601)已 50/50 用满,无扩展空间。

完成构建并确认位流生成后,下一步就是按目标板把位流加载到 FPGA,再用主机侧 USB 设备确认数据通路(FT2232H 为 USB 2.0 设备、FT601 为 USB 3.0 设备)——这一步属于上板调试范畴,本文不再展开。

【免费下载链接】PLFM_RADAROpen-source, low-cost 10.5 GHz PLFM phased array RADAR system项目地址: https://gitcode.com/GitHub_Trending/pl/PLFM_RADAR

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询