VHDL中的时间戳
VHDL中是否有用于获取进程运行时的当前模拟时间的函数?可能与systemCVHDL中的时间戳,vhdl,fpga,Vhdl,Fpga,VHDL中是否有用于获取进程运行时的当前模拟时间的函数?可能与systemCsc\u time\u stamp()中的函数相同。是的。立即使用关键字 可以使用VHDL属性打印模拟时间: report "current time = " & time'image(now); 您还可以将当前时间存储到变量: variable v_TIME : time := 0 ns; v_TIME := now; -- STUFF HAPPENS v_TIME := now - V_TIME; --us
sc\u time\u stamp()中的函数相同。
是的。立即使用关键字
可以使用VHDL属性打印模拟时间:
report "current time = " & time'image(now);
您还可以将当前时间存储到变量:
variable v_TIME : time := 0 ns;
v_TIME := now;
-- STUFF HAPPENS
v_TIME := now - V_TIME; --used to find delta time
如果你想知道你的综合设计中的时间,你必须自己管理它。例如,可以使用与其余逻辑相同时钟的自由运行计数器将特定事件的时间捕获到寄存器中。然后,您可以通过某些接口定期将这些寄存器传输到主机PC或类似设备,或者使用嵌入式逻辑分析仪
现在
是一个纯仿真结构,它告诉您模拟器设置为何种分辨率的仿真时间。真正的硬件没有实时概念,只有时钟周期,没有访问控制台的标准化接口,因此能够合成报告时间的图像(现在)
甚至不是远程选项 我尝试了第一个函数,但出现以下错误:函数“now”不可合成。有没有这个函数的库或者别的什么来解决这个问题?@Afzal,哇,你说的是模拟时间。。。。不要试图综合任何与时间有关的东西。我个人从未尝试过在任何可合成的代码中加入,但这可能是可能的。我会用synthesis translate\u off
和synthesis translate\u on
来包围它,只是为了确保工具不会试图构建它。实际上,我想在控制台上看到一个进程何时从一种状态进入另一种状态,但Xilinx ISE给出了这个合成错误。即使你用synthesis translate\u off包围它等等?如果是这样的话,我想你不能这么做。。。可能只需要使用Modelsim波形手动获取时间。