2026 / 7 / 31
语法和基本通用硬件常识这里就不提了
软件相关
0、Place & Route卡30%、70%不动了
1、Error unroute xx了
2、资源爆了
注意是不是忘了删ila了,这玩意也会吃很大资源
注释点模块,至少让工程能够顺利编译完,展开Hierarchy看看各个模块资源消耗情况自行优化

3、ERROR(PR2017):'xxx' cannot be placed according to constraint , for the lacation is a dedicated pin (DONE/SSPI/CPU/JTAG)
4、ERROR(EX3444):'logic' is an unknown type
5、指定top文件/自动编译的top文件不对
6、ERROR(CT1136):Bank 0 vccio(3.3 )is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'out_buf':IO_TYPE = LVCMOS18 in the same bank
首先你得知道FPGA的所有IO是一组一组的,每一组可分配不同的电压以满足不同的通讯协议
基于以上,你就得知道同一组内的电压应该是一致的,你不能放个LVCMOS18的KEY,又放一个LVCMOS33的LED(这个约束在高云工程的xx.cst里)
明白这个道理后,就去Pin Planner,点击IO的BANK排一下序,看看报错的这个Pin所属的BANK下用了哪些IO,应该有冲突的(LVCMOS25和LVDS25、STTL18和LVCMOS18,后缀都是相同的不算冲突)
然后自己在cst文件里把同一Bank的IO约束改成同一电平的就行了
可能的错误原因一:你踏马自己左手抄个LVCMOS18的约束,右手抄个LVCMOS33的约束打架了,自己检查统一一下
可能的错误原因二:其实你并不清楚这个IO该给什么,随便给了一个就和别的冲突了。比如按键和DDR3在同一个Bank时,按键的电压约束肯定要写成DDR3的1.5V或者1.8V。毕竟这玩意随便给个就能用,DDR3的约束你又不能改。
可能的错误原因三:被内部资源无形的大手子限制了。比如在GW2AR的手册里有写,带SDRAM的型号IO BANK VCC限定了3.3V。这个时候即使你并没有用到SDRAM,IO约束写1.2V也会报错。
最后你问为啥例程也有这个问题? 问得太好了,因为当初写这些例程的时候,用到的IDE版本过于上古,这个问题并不会报错。
7、仿真支持
目前高云平台的主流仿真工具为modelsim,自行百度怎么装,或者看我Quartus安装的图文里有免费版的流程
先在Modelsim里创建一个工程
导入用户自己的v文件,比如top.sv
导入IP对应的xx.vo文件,比如pll.vo
导入你用的芯片的v文件,比如gw2a.v
编译,然后从top module开始仿真run
8、DDR3模型去哪儿找
9、带IP仿真时间过长不拉高init
10、ERROR(RP0007):There is no SSRAM resource in current device.
可能的错误原因一:你型号选错了,高云对于同一个芯片有带SSRAM和不带SSRAM版本
可能的错误原因二:你IDE版本不对,新版IDE把这个型号的SSRAM支持给删了,你还在用老IDE的工程
硬件相关
0、下载时JTAG找不到Device了/找不到JTAG端口/USB不识别
经典问题哈,如果你是第一次就这样,大概率是电脑的问题,包括端口/驱动等,换电脑试试或者问问群友debug一下,不好说
如果你在USB Cable Setting的Port能识别到两个,换另一个试试
如果你是sipeed开发板,那个板载下载器就是不如FT2232H。忍着,换USB线,换USB端口,换电脑,换人
如果是冬天,可能FPGA真静电打寄了。毕竟我就打坏过好几个,还是不同厂家的
如果你是138/60K用USB供电,有可能是USB功率不够导致FPGA功能异常;如果下崽器和开发板两个USB同时挂在一个USB Hub而且还没有独立供电那种,那下崽器都有概率起不来
1、设计USB供电20/25/60/138K开发板(尤其是板载JTAG)够吗
看你的USB是从哪儿来的
首先,USB规范就写了(USB2 0.5A/USB3 0.9A),如果你把握不好,就找个USB3的座插
其次,现在的电脑远不止这点能力,以我手上的多年前的台式鸡为例|

看你用什么板子
所以理论上你电脑只要有个好一点的USB3还是够用的
2、把引脚复用成普通IO后+固化进FLASH=JTAG扫不到Device了
3、软排线分不清怎么插
版本更新
260731:初始版本
260926:更新USB功率说明