尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Lattice Diamond 3.12 安装激活实操:从下载到烧录的完整避坑指南

Lattice Diamond 3.12 安装激活实操:从下载到烧录的完整避坑指南 很多做 FPGA 的人第一次接触到 Lattice Diamond 3.12基本都是项目临时要换国产器件、或者接手一块 MachXO2 评估板的时候。装惯了 Vivado 和 Quartus 的人上手 Lattice 这套工具第一反应往往是这界面怎么还停留在十年前。真正让人头疼的还不是界面而是安装和 License 激活这套完全不同于主流 EDA 的流程。我最近因为项目需要把设计从另外平台迁移到 Lattice 系列芯片上Diamond 3.12 前后装了三遍把能踩的坑基本踩了个遍。这篇文章不写官方文档里那些正确但没用的废话只讲从下载安装到免费 License 激活再到第一次综合、烧录成功的完整实操路径重点放在那些网上翻烂了也没人讲清楚的细节上。文章适合两类人一类是正准备入坑 Lattice 器件、刚拿到开发板的新手另一类是已经被 License 报错折磨到崩溃、来搜解决方案的。我会把每个关键步骤背后的原理也讲清楚因为理解原理以后很多报错你根本不用搜就能自己定位。1. 动手前先建立三个正确认知版本、系统和 License 边界1.1 Diamond 3.12 的定位经典器件的稳定之选先说第一个容易栽跟头的认知问题Diamond 3.12 并不是 Lattice 最新的工具也永远不会变成最新的。Lattice 这几年已经把新器件全面转向 Radiant 软件平台像 CrossLink-NX、Certus-NX 这些新系列官方支持的就是 Radiant。Diamond 3.12 的服务对象是 iCE40、MachXO2/MachXO3、ECP5 这些经典系列 FPGA/CPLD。这句话翻译成人话就是如果你手头的芯片是 ECP5 或者 MachXO2装 Diamond 3.12 完全没问题但如果你买的是新出的 CrossLink-NX 开发板装 Diamond 3.12 是打不开对应器件的这种情况要装 Radiant。我遇到过不止一个朋友拿着新板子装 Diamond折腾半天综合时报器件不支持最后才发现是软件平台搞错了。那为什么还专门写 Diamond 3.12因为它对经典器件的支持非常成熟网上资料相对齐全而且 Lattice 官方长期提供免费 License对个人学习和中小规模项目来说性价比极高。市面上大量现有的 Lattice 开发板也以 MachXO2、iCE40、ECP5 为主这些板子的主流开发环境就是 Diamond。1.2 Windows 系统环境官方建议与实际底线的差距Diamond 3.12 官方支持 Windows 10/11 64 位系统实际上 Windows 7 也能跑但驱动和兼容性问题会明显增多不建议新环境用 Win7。硬件方面我的实测底线可以给你做个参考配置项官方建议我的实测底线备注系统Windows 10/11 64位同左32位系统装不了内存8GB4GB能装能跑小工程大工程综合时8GB都不宽裕硬盘空闲安装包解压约3GB建议留10GB以上解压过程中需要双倍空间用户账户管理员权限标准用户装到公共目录强烈建议管理员安装网络需要联网下载和申请License申请License时需联网后续综合布线可断网这里最想强调的一点是安装路径和工程路径都不要出现中文包括 Windows 用户名是中文的情况。很多笔记本预装系统把用户名设成了张三或Administrator这种C 盘用户目录下天生带中文路径后面新建工程、综合脚本解析路径时会出现各种灵异报错而且报错信息往往不直接说路径问题排查起来特别痛苦。解决办法是新建一个纯英文的 Windows 用户或者安装和建工程时手动指到D:\workspace这类英文目录。1.3 免费 License 的边界不是所有器件和功能都放行Lattice 官方提供免费 License这件事本身是福利但很多人在申请前没搞明白它的限制。免费 License 是节点锁定的也就是说它绑定你电脑的 MAC 地址生成一份.lic文件放到本机就能用。支持范围主要覆盖 iCE40、MachXO2/MachXO3 这些小规模、低功耗器件这也是 Lattice 在消费电子和工控领域最常用的产品线。但免费 License 不等于全功能 License。部分 IP 核、高速 SERDES 相关功能、以及个别大容量器件型号免费 License 是不放行的。我见过很多人在综合时报License request failed第一反应是激活失败实际上根本原因是他们选了 ECP5 里比较高端的型号超出免费授权范围。最直接的验证方法不是看文档而是装好以后建一个空工程选你实际要用的器件写个最简单的计数器跑一遍综合过得了就说明器件层面没问题。2. 下载安装包渠道、账号与容易被忽略的准备细节2.1 官网下载的正确入口与账号注册Diamond 3.12 安装包要从 Lattice 官网下载不要从第三方网盘下载别人转存的版本。第三方版本最大的问题是可能被植入广告程序或修改过安装逻辑后患无穷。官网下载需要注册一个账号注册时邮箱建议用长期有效、能收国际邮件的邮箱。Lattice 官网对国内邮箱的验证邮件发送整体还算稳定但也偶发进入垃圾箱的情况注册完没收到邮件先去垃圾箱翻一翻。进入官网后找到 Software Licensing 或 Downloads 页面在 Lattice Diamond 产品目录下选择 3.12 版本。安装包体积在 1GB 以上下载速度取决于你的网络环境。如果下载中断浏览器自带的断点续传并不总是可靠建议用支持断点续传的下载工具下载完成后核对文件大小与官网页面标注是否一致。这一步虽然不起眼但能避免你解压到一半发现压缩包损坏白等几个小时。2.2 解压与运行库两个默认没人告诉你的前置条件Diamond 安装包是自解压可执行文件运行后会先把内容解压到临时目录再启动安装向导。解压路径必须干净简洁我习惯先在 D 盘建一个D:\Lattice_Setup作为解压目录。不要解压到桌面也不要解压到带空格的路径因为安装程序内部有大量 cmd 脚本拼接路径空格和特殊字符都会成为隐患。另一个很少有人提前说的是运行库问题。Windows 干净系统往往缺 Visual C 运行库这会导致安装器运行到一半报错或者安装成功但 Diamond 启动闪退。解决办法是提前安装 Visual C Redistributable 2015-2022 x64 版本顺手把 x86 也装上因为部分老组件是 32 位的。安装 VC 运行库本身没有风险微软官方下载即可。2.3 杀毒软件与安全软件安装前主动处理Diamond 安装过程中会注册 FlexLM 相关组件、安装 USB 驱动用于烧录器这些操作在某些杀毒软件眼里都是可疑行为。我第一台电脑安装时就被杀毒软件静默拦截了一个驱动文件导致烧录器始终无法识别排查了很久才找到原因。所以安装前建议做两件事一是把 Lattice 安装目录加入杀毒软件白名单二是安装过程中暂时退出安全软件装完再打开。这一步不是必须的但能减少大量装好了但某个功能莫名其妙不可用的隐性坑。3. 安装过程全流程从双击安装包到确认四个关键指标3.1 安装界面里的选项到底该怎么选双击安装程序后一路 Next 到安装类型选择。这里 Diamond 会问你要装哪些组件我给出的建议是保持默认全选尤其要把 Diamond Programmer 勾上。Programmer 是独立于主工程的烧录工具很多人以为主程序装好就能烧录结果发现找不到烧录软件又得回头补装。虽然 Programmer 也能单独下载但既然装一次一次性搞定最省事。如果安装器问你 License 类型选 Node-Locked节点锁定或 Standalone不要选浮动 LicenseFloating License服务器模式。免费 License 走的是节点锁定方式选错了后面激活时路径完全不对还要重装。3.2 安装路径默认路径最好别改Diamond 默认安装路径是C:\lscc\diamond\3.12我强烈建议你保留这个默认位置或者至少保持盘符:\lscc\diamond\3.12这种结构。原因是安装器会把环境变量LSC_DIAMOND和相关搜索路径按默认结构生成License 搜索、脚本调用都依赖这些路径。如果非要改到其他目录必须全英文且结构尽量简单否则你会在后续使用中不断跟环境变量搏斗。安装过程大约持续 10 到 20 分钟期间不要切换用户、不要让电脑睡眠。安装结束后建议重启一次系统因为我发现部分驱动注册和环境变量刷新需要重启才能真正生效不重启直接运行会有概率出现各种奇怪问题。3.3 安装完成后的四步验证清单装完以后不要急着打开软件先花两分钟确认安装确实是完整的。打开一个新的命令提示符窗口WinR 输入 cmd依次检查echo %LSC_DIAMOND% echo %PATH%正常情况下第一个命令应该输出 Diamond 3.12 的安装路径第二个命令输出的内容里应该能看到 lscc 相关的 bin 目录。如果变量不存在说明安装过程中环境变量写入失败这种情况下直接打开软件大概率会出问题。接着确认开始菜单里同时出现了Lattice Diamond 3.12和Diamond Programmer两个入口。最后一步就是把 License 文件准备好再打开软件。顺序很重要先有 License再启动 Diamond能让你避开软件自动进入试用模式后缓存了测试状态这种麻烦。4. License 激活理解节点锁定原理申请免费 License 一次成功4.1 节点锁定 License 的原理Lattice 只认你的网卡Diamond 使用的 License 机制是 FlexLM/FlexNet 那一套节点锁定 License 会把你的网卡物理地址MAC 地址写进.lic文件。软件启动时会扫描本机所有网卡的 MAC 地址逐一和 License 文件里的HOSTID比对匹配上了才放行对应功能。这个机制带来的直接后果是你在哪台机器上跑 Diamond就得用哪台机器的 MAC 去申请 License。我见过一个最典型的操作失误是帮同事申请 License用自己的电脑 MAC 填了申请表单然后把生成的.lic发给同事用结果对方怎么激活都报错。License 和 MAC 是绑定的不是序列号不能换机器使用。还有一个细节容易被忽略笔记本通常有有线网卡、无线网卡两张卡MAC 地址完全不同。申请时填了有线网卡的 MAC之后使用 Diamond 时如果把有线网卡禁用、只连 WiFi就可能因为匹配不到对应 MAC 而报错。建议绑定你日常稳定使用的那个网卡要么一直插网线用有线要么一直用无线。4.2 获取本机 MAC 地址的正确方法获取 MAC 地址最稳妥的办法是打开命令提示符执行ipconfig /all getmac /fo list重点关注本地连接或无线局域网适配器对应的物理地址格式一般是XX-XX-XX-XX-XX-XX或XX:XX:XX:XX:XX:XX。Lattice 官网页面的输入框通常能识别多种格式但为了保险建议直接按XX:XX:XX:XX:XX:XX的格式填写注意去掉 VMnet、虚拟网卡之类的条目除非你真的在虚拟机里跑 Diamond。这里多提醒一句如果你用的是公司电脑MAC 地址可能会因为 IT 部门做网络策略或更换网卡而改变。申请完 License 以后最好把当时申请用的网卡记下来万一以后换网卡导致 License 失效你至少知道问题出在哪。4.3 官网申请免费 License 的完整步骤流程不复杂但每一步都有讲究登录 Lattice 官网账号进入 Software Licensing 页面。选择 Lattice Diamond 3.12 对应的 License 类型免费版一般是 Free Node-Locked License。把刚才抄下来的 MAC 地址填进页面表单。提交申请。多数情况下系统会立即生成 License 文件也有部分情况要等人工审批一般半天内会有结果。最终你会得到一个.lic文件可能在页面直接下载也可能发到注册邮箱。拿到.lic文件后先用记事本打开检查一下确认里面确实有完整的FEATURE或INCREMENT行并且能看到你提交的 MAC 地址。如果打开文件看到的是 HTML 乱码说明下载环节出错了重新下载。提示申请免费 License 时填写的邮箱建议用国际通用的邮箱服务国内邮箱偶发拦截海外邮件收不到许可证时第一时间去垃圾箱和广告邮件目录找。4.4 把 License 绑定到 Diamond 的三种方式拿到.lic文件后有三种方式让 Diamond 认它任选一种即可方式 A设置环境变量最推荐在系统环境变量中新建一个变量变量名LM_LICENSE_FILE变量值填写.lic文件的完整路径例如LM_LICENSE_FILE C:\lscc\licenses\diamond_3.12.lic设置完成后务必关闭所有已经打开的命令提示符窗口重新打开一个新的窗口再运行echo %LM_LICENSE_FILE%确认变量已生效。这个方式的优点是一劳永逸Diamond 和 Programmer 都会自动识别。方式 B在 Diamond 图形界面里指定打开 Diamond 后在菜单栏找到 Options 或 Tools → Options里面通常有 License 相关的配置页把 License File 路径填进去确认后重启软件。不同小版本的菜单位置略有差异但关键词就是 License、Options。这个方式的优点是不污染系统环境变量缺点是你换 License 文件后要回界面里改一次。方式 C放在安装目录的 license 目录部分版本会自动搜索安装目录下的 license 文件夹把.lic文件复制到安装目录\license\下再启动软件。这个方法不是所有版本都认如果试了没效果回到方式 A。4.5 验收激活结果别只看软件能打开License 激活成功不等于万事大吉真正的验收标准是综合能不能跑通。我建议激活后立刻做两件事第一在 Diamond 的 Help → About 里确认 License 信息看是正常的节点锁定授权而不是 Trial 或 Expired 状态。第二新建一个空工程选一个小规模的 iCE40 或 MachXO2 器件写一段最简单的 LED 计数器代码完整跑一遍综合。这一步能同时验证 License 对器件的支持范围和综合工具链是否完整。很多人在第一件事上看到License OK就欢呼结果第二天综合时报错心态直接崩掉。提前用测试工程验证能让你在真正做项目前把问题暴露干净。5. 高频报错排查把定位思路一次讲透而不是只给答案5.1 License request failed for feature...系列错误码的排查链路这类错误是 Diamond 用户遇到最多的错误码千奇百怪但定位思路基本一致。遇到License request failed先别急着搜错误码按下面这条链路查查环境变量是否真的生效打开新的 CMD执行echo %LM_LICENSE_FILE%如果输出是%LM_LICENSE_FILE%而不是一个路径说明变量没设置成功重新设置并重启 CMD。查 License 文件内容是否完整用记事本打开.lic文件确认里面确实有FEATURE或INCREMENT行且HOSTID后面的 MAC 地址和你当前机器的实际 MAC 一致。查系统时间FlexLM 机制对系统时间敏感如果电脑时间比 License 有效期超前或滞后过多会报时间相关的错误。检查系统日期是否准确尤其是经常拔电池的台式机。查器件支持范围如果 License 本身没问题但综合时报错很大概率是器件型号超出免费 License 的授权范围换成小规模器件再测试。5.2 软件能打开、建工程没事但一综合就报 License 错这类问题最迷惑人因为界面看起来很正常。常见原因有三个。第一个原因是工程里挂了付费 IP 核。Diamond 的 IP 库里有不少需要单独授权的 IP比如高速接口类的 IP。即使用户只想在免费器件上做逻辑只要工程里实例化了一个免费 License 不覆盖的 IP综合时就会被拦下。排查方法新建一个不包含任何 IP 的最简工程测试综合如果通过说明问题出在 IP 授权。第二个原因是器件选型超范围。免费 License 对部分大容量型号不开放就像前面说的把器件型号换小一档再试。第三个原因是之前装过非官方工具或旧版本环境变量被写乱。这种情况最让人崩溃因为报错位置不明。我处理过一台机器PATH 里有三个不同版本的 Lattice 工具路径互相污染程序调用的 DLL 是另一个版本的报错和 License 完全不相关。遇到这类问题建议直接卸载干净重装重点清理环境变量。5.3 Programmer 识别不到烧录器USB 驱动问题的完整定位思路安装成功、License 也正常结果插入下载器以后 Programmer 软件里看不到设备这是烧录阶段最高频的坑。现象通常是设备管理器里出现一个带黄色感叹号的未知设备或者显示为 FTDI 相关设备但没有正确加载驱动。排查链路如下打开设备管理器看有没有未知设备。如果有先拔掉烧录器再插上观察设备名称变化。确认烧录器芯片型号。Lattice 官方下载器 HW-USBN-2B 用的是 FTDI 芯片需要装 FTDI 的驱动。网上很多山寨下载器也声称兼容但芯片可能是不同型号需要对应驱动。到 FTDI 官网下载 VCP 驱动安装。Windows 11 下如果驱动签名不通过需要进入高级启动选项禁用驱动强制签名后再安装。驱动程序装好后在 Programmer 的 Cable 设置里选择与硬件匹配的选项保存后重试。尽量插主板原生 USB 2.0 口不要用前置扩展坞。老式下载器对 USB 3.0 口兼容性并不总是好。5.4 双击 Diamond 没反应或闪退别急着重装系统闪退问题的定位顺序和大部分人想的不一样。先打开 Windows 事件查看器Windows 日志 → 应用程序找到最近的错误记录看崩溃模块是哪一个。如果崩溃模块指向某个 DLL 缺失优先补装 VC 运行库。如果事件查看器里没有明显线索第二嫌疑是 Diamond 的用户配置文件损坏。这个文件位于%APPDATA%\Lattice Semiconductor\目录下删除后重启软件会重新生成默认配置我之前遇到过一次软件白屏问题就是删配置解决的。注意删除前先备份万一是配置里保存了关键 License 信息删了也不怕重新填即可。如果装完第一次启动就闪退大概率是运行库或显卡驱动问题不要把时间浪费在研究 License 上。5.5 中文路径和中文注释看起来无关却最致命的组合中国用户最容易踩的坑就是中文路径。工程目录带中文轻则综合警告重则脚本直接崩溃。更隐蔽的是 Windows 用户名是中文的情况这样即使你手动把工程建在 D 盘英文目录部分中间文件仍可能被写进C:\Users\中文用户名\AppData\临时目录导致报错时路径提示全是乱码。我的建议是如果你已经决定长期用 Diamond现在就注册一个英文用户名或者用另一个本地账户专门跑 EDA 工具。其次是 RTL 文件里的中文注释。在某些系统区域设置下中文注释没有统一编码会导致综合工具解析源文件报错尤其从旧项目迁移过来的代码最容易中招。统一把 RTL 文件编码保存为 UTF-8或者干脆注释用英文能省下很多无谓的排查时间。6. 装好只是第一步让 Diamond 3.12 在日常项目中真正顺手6.1 工程项目目录规划建议从建第一个工程开始就养成习惯Diamond 默认把所有输出文件都堆在工程目录下不主动规划的话综合、布线、仿真、日志混在一起几个月后连自己都找不到哪个是最终版本。我个人的工程目录结构是这样的project/ prj/ # 存放 .ldf 工程文件和 Diamond 工程配置 src/ # RTL 源文件目录 lpf/ # 约束文件目录 sim/ # 仿真脚本与波形输出 out/ # 综合、布线输出文件这样分类的好处是版本控制和管理逻辑非常清晰src和lpf是你的核心设计资产必须进版本库prj是工程描述文件也建议入库out目录里全是中间产物随时可以删掉重建。6.2 综合与布线策略不要全程用默认值Diamond 的综合策略默认是 Balanced对初学者够用但对真实项目来说要根据器件和需求调整。iCE40 和 MachXO2 这类小器件资源本来就紧张如果逻辑利用率接近 90%把综合策略改成 Area 优化往往立竿见影。ECP5 跑高速逻辑时把 Place Route 的策略调整到 Timing 优先虽然编译时间会变长但时序收敛的几率明显提升。另外提醒一点每次大规模改动 RTL 后建议执行 Clean 再重新综合不要依赖增量编译。Diamond 的增量编译在个别场景下会保留旧的时序数据导致你改了代码但时序报告没变造成明明改了为什么还这样的错觉。6.3 版本管理时该忽略哪些文件Diamond 工程目录里大多数文件都是编译过程产物不该全部提交到 Git。只保留源文件、约束文件、工程描述文件其余都可以通过gitignore排除。如果拿不准哪些文件该忽略原则就一条只提交输入文件不提交输出文件。源代码、约束文件、工程文件是输入综合报告、布线结果、日志、位流文件是输出。位流文件如果作为归档可以单独存一个发布目录但不要进日常版本管理否则每次编译都会产生海量差异记录。6.4 多版本工具并存Diamond 3.12 与 Radiant 的相处之道如果你同时要做经典器件MachXO2和新器件CrossLink-NX电脑上就同时有 Diamond 和 Radiant 两套软件。两者可以共存但环境变量会互相影响。我实测下来安装顺序没有强制要求但使用时要留意PATH环境变量里谁排在前面因为两个工具的 bin 目录下存在同名程序调错版本会出现莫名其妙的报错。我的做法是写两个启动脚本分别设置对应版本的环境变量后再启动软件平时不把两个工具的 bin 同时放进 PATH。这个方法同样适用于同时装了 Diamond 不同小版本的情况。如果你只装一个版本够用就千万别装第二个版本少给自己找麻烦。最后分享一个我自己的小习惯激活成功后把.lic文件备份到网盘和 Git 私有仓库各一份同时在备注里记下申请时填的 MAC 地址是哪块网卡。重装系统、换电脑、网卡更新任何一样发生变化都会导致 License 失效有了备份和记录重新激活的过程能缩短到十分钟以内。装 EDA 工具这件事从来不是一锤子买卖把环境打理得越清爽后面做项目时就越省心。
返回列表