我可以找到verilog代码的执行时间吗?

Stu*_*PhD 0 c++ hardware verilog fpga hdl

我知道verilog是一个HDL,它的全部是关于并行处理,但我面临的问题是我必须编写一份报告,说明为什么一部分C++代码在HDL环境中更好.

所以我有C++代码,我在Verilog中写道.它完美地运作.现在我必须编写一份关于Verilog中这部分代码如何更快的报告.所以我必须进行执行时间比较.

我设法使用以下方法找到我的C++代码的执行时间:

#include <iostream.h>
#include <time.h>
using namespace std;


int main()
{
    clock_t t1,t2;
    t1=clock();
    //code goes here
    t2=clock();
    float diff ((float)t2-(float)t1);
    cout<<diff<<endl;
    system ("pause");
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

现在我怎样才能在Verilog中得到相同的结果?Xilinx编译器中是否有任何选项可以告诉我这段代码在编程到FPGA板上后产生最终结果需要多长时间?或者我可以在代码中添加能够提供此结果的内容吗?

谢谢

小智 6

我认为你完全忽略了这一点.你不用Verilog执行程序,用它设计硬件.这是一种硬件描述语言.运行Verilog的模拟并使用$time或$realtime命令将不会告诉您算法在硬件中运行所需的时间.

你需要做的是将你的Verilog合成到FPGA,然后查看综合报告,看看算法输入的变化需要多长时间,直到输出有效.当然,您可能需要添加流水线或使用综合约束来从合成中获得合适的结果.这不是一个微不足道的过程,所以期望花时间学习它是如何完成和完成的.

  • 我同意OP显然已经错过了他的功课,但我只是指出你在Verilog中做*'执行程序'.它一直是*模拟*语言.将Verilog描述转换为硬件是一个难题,可以通过启发式方法解决,并且只使用该语言的一个子集. (4认同)
  • @EML在这种情况下,OP专门询问了"在编程到FPGA之后"的执行时间,我认为在Verilog中运行_simulation_与在Verilog中编写program_仍然有很大的不同.如果我的语气很苛刻,我会道歉,但我对那些将Verilog和VHDL视为另一种编程语言的学生感到厌倦. (2认同)