3

目前我正在测试一些 RTL,我正在使用 ncverilog,它非常......非常慢。我听说,如果我们使用某种 FPGA 板,那么事情会更快。是真的吗?

4

5 回答 5

3

你说的是两种不同的东西。

NCVerilog 是一个仿真工具,而 FPGA 板是真正的硬件。所以,会有差异。真正的硬件通常会更快,但使用模拟器,您可以获得各种调试乐趣。尝试探测特定信号只需在测试台上添加一条线即可。此外,您可以轻松更改仿真模型,而不必重新设计 FPGA 板。

如果您在足够强大的机器上运行仿真,您有时可以近似真实世界的性能(假设 FPGA 速度较慢)。

总而言之,你应该两者都做。使用模拟器进行基本开发和评估。一旦您的设计得到充分定义,就转移到您的 FPGA 硬件上。

于 2009-03-31T07:47:11.013 回答
3

我们在模拟速度方面也遇到了同样的问题。但是,我们在大部分验证中都坚持使用模拟。每个 sim 检查一个特定的功能,并且比系统级 sim 快得多。我们还让它们进行自我检查,并且对回归测试(单元测试)很有用。

对于需要花费太多时间来模拟的真实世界信号的长时间系统测试,如果可以的话,我们会将它们移至 FPGA。我们需要在代码更改后再次手动重新检查所有这些测试用例,因此它可能会以自己的方式变慢。

但有时,FPGA 设计是不可行的。有时完整的设计太大而无法装入 FPGA,或者时钟速率太高。但请记住,您不一定必须对整个设计进行 FPGA 设计,获得您感兴趣的重要模块并全面检查可能就足够了。

于 2009-03-31T18:21:10.567 回答
3

您可以使用 Altera SignalTap 或 Xilinx ChipScope 等“嵌入式逻辑分析仪”软件工具跟踪正在运行的 FPGA 设计中的信号活动。在将 RTL 合成/映射到设备之前,您将使用这些工具将软探针连接到您想要观看的信号。您可以设置触发器,以便仅在特定条件下记录信号值。然后生成位文件并使用 JTAG 对器件进行编程。逻辑分析仪通过 JTAG 与您的 PC 通信并记录您的探针上的活动,然后您可以对其进行分析。

设置起来有点复杂,因为这些工具并不是特别容易使用,但您会比使用 RTL 仿真更快地获得结果。

于 2009-04-05T23:27:47.337 回答
2

您正在测试哪种 RTL?如果您使用 FPGA 板,那么您可以编译您的代码,前提是您拥有适用于正确 FPGA 的正确工具。由于 FPGA 是可重新编程的,那么您当然可以在板上测试您的代码,并让目标 (FPGA) 执行您的代码 (RTL)

但这不再是一种模拟,而是一种测试,使用给定的硬件,在给定的时钟速度下。而且你在屏幕上没有得到很好的结果,你需要使用物理探头和示波器。另外,您看不到代码的内部是如何工作的。

verilog 或 VHDL 模拟有点像使用调试器运行代码。FPGA 测试更像是使用 printf 进行调试。最大的区别在于,在模拟时,您的 CPU 必须模拟所有由您的代码产生的逻辑门的行为。在 FPGA 上,没有模拟,您只需“运行”代码,因此速度要快得多,但您拥有的信息更少。

您应该对非常小的组件使用仿真,然后在 FPGA 上测试您的整个程序。

于 2009-03-31T07:38:33.717 回答
1

您可能在询问硬件仿真加速器。这是其中之一:GateRocket

于 2009-07-14T06:53:37.387 回答