与斯蒂芬·威廉姆斯对话

迈克尔 您认为 Icarus 去年最显著的改进是什么?
斯蒂芬 哦,我的天——改进太多了。我认为最显著的改进是模拟引擎。通过从 Verilog 编译过程中移除 C++ 编译器,我将编译器性能提高了几个数量级。我还使编译器更具可移植性。过去一年还见证了与事实标准(如库格式和命令文件)的新兼容性。这使得更多人可以使用该编译器。
迈克尔 现在看来 Icarus 强大了很多。特别是对于模拟用途,Icarus 似乎开始挑战商业工具。您如何评价目前 Icarus 的结果质量?
斯蒂芬 我从未期望能够真正挑战商业工具,但现在我却做到了。商业质量是我用来判断 Icarus Verilog 进展的基准,我在这方面取得了进展。我过去收到的大部分反馈都来自已经使用商业工具的人,他们注意到 Icarus Verilog 在某些方面与商业工具相比存在错误,这自然而然地导致了错误修复,从而解决了与商业工具相比的局限性。然而,随着 0.6 版本的发布,用户群体似乎发生了一些变化。我收到的越来越多反馈来自没有其他工具的用户。谁知道这会走向何方。与大型商业工具的比较变得不再那么重要了。
迈克尔 在未来一年中,我们可以期待 Icarus 在综合方面有哪些改进?
斯蒂芬 我一直希望在综合方面取得真正的进展。然而,没有人愿意告诉任何人它是如何完成的,这让我只能自己弄清楚。幸运的是,我已经弄清楚了推断几乎所有可以用 Verilog 表达的逻辑所需的大部分知识。但是,解决所有技术细节将需要大量工作。我希望在未来一年中,能够完成综合的组合逻辑部分。在这种情况下可以做很多事情,并且组合逻辑综合可能是更大的一部分。同步逻辑稍微困难一些,但需要组合逻辑综合所需的信息,以及更多信息。
迈克尔 今天,Linux 环境中支持的商业 EDA 工具更多了。这种情况是否影响了像 Icarus 这样的开源工具的用户?
斯蒂芬 到目前为止,似乎没有产生重大影响。Linux 环境中可用的商业工具集仍然不够完整和多样化。如果您的综合器和布局布线工具仍然仅限于 Windows,那么拥有 Linux 模拟器用途有限。我看到未来一年可能会带来一些积极的变化,最近一些关于 Linux 支持的公告预示着一些真正的改变。
迈克尔 IEEE Std 1365-2001,Verilog 2001 语言,在 CAD 工具中仍然显得很新。您是否需要解决 2001 标准和 1995 标准之间的问题?
斯蒂芬 2001 标准解决了 1995 标准的一些小问题,但主要作用是标准化,并将许多编译器编写者已经在实现的功能写入文档。该语言的一些真正棘手的开放性问题,包括事件调度、声明作用域和其他一些问题,尚未得到解决。2001 标准的新功能似乎没有损坏,我已经实现了一些,没有任何问题。另一方面,更复杂的新功能,例如 generate 语句和配置文件,可能需要很长时间才能被采用。我知道我需要一段时间才能开始处理它们。
迈克尔 CAD 工具通常有外部实用程序来补充它们。您为开源图形工具(如 GTKwave)支持了一些有趣的外部格式。这额外增加了多少工作量?
斯蒂芬 实际上,GTKwave 是一个工具,格式是 VCD(值变化转储)。在这种特殊情况下,对我来说工作量很小,因为实际的转储代码是由志愿者提交的。大多数 Verilog 程序员认为波形输出从根本上来说非常重要;拥有格式标准和现成的工具来支持该格式非常有帮助。这是标准的优势之一。一个有效的标准允许不同的供应商生产使用该标准与其他部分互操作的位。有太多标准不起作用,当我们看到一个真正实现这一目标的标准时,我们会感到惊讶。
迈克尔 一年前,编译速度是一个问题。从那时起,构成 GNU 工具的质量水平是否帮助提高了 Icarus 的性能?
斯蒂芬 不,它们没有。但这个问题并非 GNU 工具独有。使用 Compaq 和 Microsoft 编译器的编译速度至少同样慢。简单的事实是,大型 C++ 文件作为中间形式是一个非常糟糕的主意。
迈克尔 您是否考虑过 Icarus 中潜在的替代互操作性形式?例如,支持 Verilog-A 或其他输入格式?
斯蒂芬 我已经学会了设定现实的目标并保持专注。这使我能够多年来取得持续稳定的进展。目标在移动,但始终只在触手可及的几步之外。这意味着完成 Verilog 标准的全面覆盖仍然是主要目标。但是,我已经尝试设计核心编译器和模拟引擎的接口,以便相关任务可以由其他人完成。正如 UNIX 哲学一样,我将努力提高接口的质量,以便我可以将实际的扩展留给其他人。
迈克尔 您认为哪些因素对 Icarus 的成功贡献最大?
斯蒂芬 我很幸运能够拥有技能组合,让我能够真正理解自己在做什么。一旦它成功 vượt qua 最低门槛,Icarus Verilog 就开始有了生命力,反馈变得越来越普遍和有用。许多人似乎想要这个,并鼓励我。多年来,许多人集中精力制作补丁并提供其他形式的反馈。人们很难坚持下去,因为没有人(在 EDA 领域)因开发免费软件而获得报酬,而且空闲时间稀少而珍贵,所以我尽力管理和协调反馈。令人惊讶的是,我认为商业 EDA 工具的高昂价格可能并非非常重要。我收到的大部分(但当然不是全部)有效反馈来自拥有和使用商业工具的人。当我搞砸时,他们最清楚。对于我们这些买不起这些工具的人来说幸运的是,这种反馈是即将到来的,我们都从中受益。

迈克尔·巴克斯特 自九岁起就开始从事计算机技术工作,1969 年观看《2001:太空漫游》后深受影响。他是一位经验丰富的计算机架构师、系统、电路板和 FPGA 逻辑设计师。迈克尔拥有十项美国计算机架构和逻辑专利,以及作为共同发明人的五项专利。他的兴趣还包括徒步旅行、业余无线电和 Lisp 编程。