2、SpyGlass界面与工程管理

好,咱们正式开始动手了。这一章我带你熟悉SpyGlass的“战场”——也就是它的图形界面,以及怎么把咱们的RTL代码给“喂”进去。说实话,很多新手工程师一上来就急着跑检查,结果工程没建对,库文件没配好,跑出来的结果全是错的,白白浪费时间。

我个人习惯,拿到一个新项目,第一件事就是把工程管理好。这就像你写代码前先搭好目录结构一样,后面会省心很多。

2.1 SpyGlass GUI界面介绍

打开SpyGlass,你会看到一个典型的EDA工具界面。别被它吓到,其实核心就几个区域。

  • 菜单栏:在最顶上。File、Edit、Run、Help这些,跟大多数软件差不多。我常用的就是File和Run。
  • 工具栏:菜单栏下面一排小图标。新建工程、打开工程、保存、运行检查,这些常用操作都在这里。
  • 工程浏览器:左边这一大片。这里会显示你的设计文件列表、库文件、约束文件。嗯,这里要注意,文件结构要清晰,不然找起来头疼。
  • 消息窗口:底部区域。所有运行日志、警告、错误都显示在这里。我每次跑完检查,第一眼看的就是这里。
  • 代码/结果查看区:中间最大的区域。双击一个错误,这里会直接定位到RTL代码的对应行,非常方便。
我的小技巧: 刚接触时,你可能会觉得窗口太多。其实你可以拖动这些窗口的边框,调整大小。我个人习惯把消息窗口拉大一点,因为看日志比看图形更直观。

2.2 创建与管理工程

说白了,工程就是一个“容器”,把你的设计文件、库、设置都包在一起。我建议每个项目单独建一个工程,别混着用。

创建工程的步骤很简单:

  1. 点击菜单栏 File → New → Project
  2. 弹出一个对话框,让你填工程名字和路径。名字别用中文,路径也别有空格。这是老生常谈了,但我见过有人在这上面栽跟头。
  3. 选择你用的语言。Verilog、VHDL、SystemVerilog,看你项目用什么。
  4. 点OK,工程就建好了。

管理工程呢,主要是打开、保存、关闭。这些都在File菜单下。你想想看,如果你每天都要打开同一个工程,其实可以直接双击工程文件(.prj),省得从菜单里找。

避坑指南: 我曾经有个同事,把工程文件存在了桌面,结果系统重装,所有设置都没了。工程文件一定要跟你的RTL代码放在一起,统一管理。

2.3 导入RTL设计文件

工程建好了,接下来就是把你的.v文件、.sv文件导进去。这一步很关键,文件没导全,检查结果肯定不准。

操作路径:Project → Add Files,或者直接在工程浏览器里右键,选择“Add Files”。

你可以单个文件添加,也可以一次性添加整个文件夹。我个人习惯用文件夹导入,省事。但要注意,SpyGlass默认会递归搜索子目录,如果你的目录结构很深,可能会把一些不需要的文件也加进来。

导入后,你会在工程浏览器里看到文件列表。双击一个文件,中间区域就会显示它的代码。你可以在这里浏览、编辑(虽然我不建议在SpyGlass里改代码,太慢了)。

重点: 导入文件后,记得检查一下文件列表。看看有没有重复的文件,或者有没有遗漏的模块。我一般会快速扫一眼,确认所有顶层模块调用的子模块都在里面。

2.4 设置设计顶层与库文件

这是最容易出错的一步。SpyGlass需要知道哪个模块是顶层,以及你的设计用到了哪些库。

设置顶层模块

在工程浏览器里,找到你的顶层模块文件。右键点击它,选择 Set as Top Level。或者,你也可以在菜单栏 Design → Set Top Level 里手动输入顶层模块的名字。

为什么要设顶层?因为SpyGlass要从顶层开始,往下遍历所有例化的子模块。如果你不设顶层,它不知道从哪里开始分析。说白了,就是告诉工具:“嘿,从这里开始查!”

设置库文件

很多设计会用到标准单元库、IO库、或者第三方IP。这些库文件需要告诉SpyGlass,否则它会报“找不到模块”的错误。

操作路径:Setup → Libraries。在弹出的对话框里,你可以添加库文件的搜索路径。支持.v、.vhd、.lib等格式。

我记得有一次,一个项目用了某个工艺厂的库,我忘了加路径,结果跑了半天全是“unresolved reference”的错误。后来加上库路径,一分钟就过了。所以,库文件一定要配好。

库类型 常见文件格式 说明
标准单元库 .v, .lib 工艺厂提供的标准逻辑门模型
IO库 .v, .lib 输入输出引脚模型
第三方IP .v, .sv 购买的IP核,如DDR、PLL等
自定义库 .v, .vh 你自己写的共用模块
我的经验: 库文件的搜索顺序很重要。SpyGlass会按你添加的顺序去查找。如果有同名模块,它会用第一个找到的。所以,建议把最常用的库放在前面。

嗯,到这里,工程的基本配置就完成了。你可以保存工程,然后准备跑检查了。下一章,我会带你看看怎么运行lint检查,以及怎么读懂那些密密麻麻的报告。