FPGA大赛做高速ADC采集,用国产高云FPGA跑1GSPS采样,LVDS引脚约束总报错,是硬件设计问题还是约束写法不对?

开放5 回答 77 浏览

我们队伍在准备集创赛,用高云GW2A系列做1GSPS高速ADC采集,原理图照着官方评估板画的,但综合后LVDS引脚约束老是报错,说电平标准不匹配或者引脚位置非法。查了很久手册也没搞定,想问下是硬件设计上犯了低级错误,还是约束文件里少了什么关键语句?有没有用国产FPGA做过高速采集的大佬指点下排查思路,比赛只剩两周了很急。

分享:

5 个回答

  • 电路板新手

    先别急着怀疑硬件,你这个报错十有八九是约束写法的问题。高云GW2A的LVDS不是随便找个bank就能用的,它只有特定bank支持真正的硬核LVDS,其他bank就算你引脚物理位置对,也只能当普通IO用,电平标准根本不认LVDS_25。排查顺序我建议这样:第一步,打开芯片封装图,确认你ADC的D0P/D0N这些差分对是不是落在支持LVDS的bank里,比如某些bank只支持LVCMOS,你硬塞LVDS进去必然报电平不匹配。第二步,如果bank对了还报错,检查约束文件里有没有把P和N脚都写全,很多人只约束了P端,N端让工具自动分配,高云EDA不吃这套,必须显式把N端也指到相邻的引脚上。第三步,看下你有没有在物理约束里给差分对加LOC约束的同时,漏了IOSTANDARD,这两个要同时写,只写其中一个都会报错。另外提醒一句,1GSPS的ADC采样时钟如果也是LVDS进来的,时钟引脚要选全局时钟专用的MRCC引脚,否则时序收敛会很难看。硬件设计上,只要你是照着官方评估板画的,bank电压和端接电阻一般不会出大问题,但最好确认下那个bank的VCCIO是不是接了2.5V,如果接了3.3V,LVDS_25照样报错。你们现在用的是哪个版本的GowinEDA?有时候老版本对差分对约束的语法要求比较死,升级到最新版能少踩不少坑。

  • 单片机小白

    我猜你们大概率是栽在「引脚位置非法」这条报错上,因为电平标准不匹配那个错通常一眼就能看出来,反而是位置问题最容易让人抓瞎。高云GW2A的LVDS引脚有个隐藏规则:不是所有相邻的P/N引脚对都能组成差分对,它在封装里预定义了合法的差分对组合,比如某些bank里只有特定编号的P和它旁边的N才是合法配对,你要是随便找两个挨着的引脚就想当差分对用,工具直接给你判非法。这个信息在数据手册的封装章节里有个表,叫LVDS Pair Mapping还是什么的,你得对着那个表查。更坑的是,官方评估板原理图上的引脚编号和你要用的封装不一定完全对应,如果你们是自己画板,很可能抄了评估板的逻辑连接但没抄封装选择,导致实际芯片封装里那两个引脚根本不是合法对。最快验证方法:随便挑一对官方例程里用过的LVDS引脚,把ADC数据线改绑过去,看还报不报错。如果不报,说明就是引脚选错;如果还报,那才轮到检查约束语法。另外我提醒一下,高云EDA里差分对的约束有两种写法,一种是在物理约束文件里用LVDS_25同时指定P和N,另一种是只指定P端但要在选项里勾选自动补N,很多教程没说清楚这个区别。你们比赛只剩两周,我建议别在排查上耗太久,直接找高云FAE或者官方技术支持要一个高速ADC采集的完整工程模板,把他们的约束文件拿过来改引脚,比自己啃手册快得多。硬件设计上还有一个容易忽略的点:ADC的采样时钟如果也是LVDS,那个时钟对必须放在支持时钟资源的bank里,否则就算数据脚对了,时钟进不了全局网络,时序照样一塌糊涂。你们现在报错是只在综合阶段,还是布局布线也报了?这两个阶段报的错排查方向完全不一样。

  • 前端新手

    先泼个冷水:两周时间,别指望把所有LVDS规则都啃完,先按最小可行路径排查。你们大概率不是硬件画错,而是约束没写全。高云GW2A的LVDS有个特点,它不像Xilinx那样自动推断差分对,P和N必须显式配对,而且必须落在芯片预定义的合法差分对位置上。我建议第一步:打开高云EDA的封装视图,找到你们ADC数据线实际绑的bank,对照数据手册里那张LVDS Pair Mapping表,确认P/N脚确实是合法配对——很多队伍栽在这,因为官方评估板用的封装可能和你们选的封装引脚编号不同,抄了逻辑没抄封装。第二步:如果位置合法还报电平不匹配,检查物理约束里是不是只写了P端的LOC,N端没写或者写到了非相邻引脚;另外IOSTANDARD必须和LOC写在同一条约束里,分开写高云EDA经常不认。第三步:确认那个bank的VCCIO电压是不是2.5V或3.3V,LVDS_25就要求bank电压域是2.5V,如果你bank供电是1.8V,电平标准自然报错。快速验证法:找官方例程里现成用过的LVDS对,把ADC数据线临时绑过去,如果综合过了,就说明是你们引脚选错而不是整个设计思路错;如果还报错,再怀疑硬件。别一上来就翻几百页手册,先跑通最小系统再说。你们ADC是什么型号?差分时钟和数据的电平标准可能不一样,这个也要确认。

  • Verilog萌新

    讲个我们之前做类似项目的坑,可能对你们有参考。当时也是国产FPGA,不过是别的牌子,原理图照着参考设计画,结果一综合就报引脚非法。后来发现问题是:我们把ADC的差分时钟接到了FPGA的普通IO bank,而那个bank在封装里根本没接差分缓冲器——不是软件规则问题,是芯片内部物理结构就限制了。高云GW2A的LVDS支持不是全bank覆盖的,通常只有特定几个bank有硬核LVDS收发器,其他bank就算引脚物理上相邻,也只能当LVCMOS用。你们现在报错如果同时出现「电平标准不匹配」和「引脚位置非法」,我猜大概率是选了不支持LVDS的bank,或者虽然bank支持,但你们用的P/N引脚对不在芯片预定义的配对表里。高云这个配对表挺迷的,它不是简单的「P和旁边的N就能组」,而是封装里预先布好线的固定组合,比如某些bank里P0必须配N0,P1配N1,但P2旁边虽然有个N脚,那个N可能是N3或者根本是别的对的——这种细节数据手册封装章节有张表,很小字,得仔细翻。至于硬件上,你们照评估板画原理图,如果只抄了逻辑连接没抄封装选择,比如评估板用的GW2A-LV144,你们换成了GW2A-F256,那引脚编号完全对不上,必然出错。建议排查顺序:先确认你们选的封装型号和评估板是否一致,不一致就按自己封装的配对表重新分配;然后核对bank电压域,LVDS_25要求VCCIO=2.5V,如果你们板子上那个bank供了3.3V,报错是必然的;最后再检查约束文件有没有把N端也显式指到相邻引脚,高云EDA不会自动补N端。个人感觉你们问题最可能在封装不一致上,比赛紧张容易忽略这种基础差异。你们用的是什么具体封装?如果方便的话把报错原文发出来,我可以帮你看一眼。

  • 逻辑综合学习者

    大概率是封装选型不一致,评估板原理图抄了但芯片封装型号没跟着换,引脚号全对不上。先查数据手册的LVDS配对表,确认你们用的P/N脚是不是合法组合,再检查那个bank的VCCIO有没有供对电压。别急着改硬件,先拿官方例程的差分对试绑一下,能过就是引脚选错的问题。

登录后可在本页底部提交回答

提问者

电路设计新人查看主页
浏览「其他」

描述场景与已尝试方案,更容易获得有效解答

相关问题

同分类

提问建议

  • 标题写清核心疑问,避免「求助」「请问」等空泛用语
  • 正文补充环境、版本、报错信息或截图
  • 先搜索本站是否已有相近问题,减少重复提问
  • 若与课程相关,请标明课时或章节便于讲师定位