如何证明verilog中的任务?
How to prove a task in verilog?
我在 verilog 文件中有一些任务。我想在它们被触发时在 simvision 中看到它们。
有没有办法在simvision中找到任务的触发点?
难道这个不能在simvision中可视化?我知道这种方式就像使用打印或显示语句一样。但我需要可视化到 simvision。有人知道吗?
更新
Use a breakpoint
If you don't have access to the source of the task, or cannot modify it, >you could set a breakpoint when the task is called, execute some TCL >commands, then continue the simulation. The TCL commands could toggle a >signal or increment a counter. This could be automated with a small TCL >script. Depending on your situation, this could cause a performance hit on >the simulation time.
我想知道更多这种方式,你能告诉我这种方式是如何制作的吗?请告诉我,即使简单我也可以。
我认为没有本地方法可以做到这一点,但您应该查看 Cadence 提供的文档。也就是说,您可以使用一些选项将信息获取到波形中。
添加计数器
如果您可以修改任务的源代码,则可以在某处添加一个全局计数器,每次调用任务时该计数器都会递增。然后将计数器寄存器添加到波形中。
切换一下
同样,您可以使用单个位并在调用任务时切换它。使用计数器的优点是,如果任务可以在同一时间步内调用两次,您将看到计数器递增 2,而单个位将切换两次并且在波形中不可见,除非您有零时间启用事件捕获。
使用断点
如果您无法访问任务的源代码,或者无法修改它,您可以在任务调用时设置断点,执行一些TCL命令,然后继续仿真。 TCL 命令可以切换信号或递增计数器。这可以通过一个小的 TCL 脚本自动完成。根据您的情况,这可能会影响模拟时间的性能。
我在 verilog 文件中有一些任务。我想在它们被触发时在 simvision 中看到它们。
有没有办法在simvision中找到任务的触发点?
难道这个不能在simvision中可视化?我知道这种方式就像使用打印或显示语句一样。但我需要可视化到 simvision。有人知道吗?
更新
Use a breakpoint
If you don't have access to the source of the task, or cannot modify it, >you could set a breakpoint when the task is called, execute some TCL >commands, then continue the simulation. The TCL commands could toggle a >signal or increment a counter. This could be automated with a small TCL >script. Depending on your situation, this could cause a performance hit on >the simulation time.
我想知道更多这种方式,你能告诉我这种方式是如何制作的吗?请告诉我,即使简单我也可以。
我认为没有本地方法可以做到这一点,但您应该查看 Cadence 提供的文档。也就是说,您可以使用一些选项将信息获取到波形中。
添加计数器
如果您可以修改任务的源代码,则可以在某处添加一个全局计数器,每次调用任务时该计数器都会递增。然后将计数器寄存器添加到波形中。
切换一下
同样,您可以使用单个位并在调用任务时切换它。使用计数器的优点是,如果任务可以在同一时间步内调用两次,您将看到计数器递增 2,而单个位将切换两次并且在波形中不可见,除非您有零时间启用事件捕获。
使用断点
如果您无法访问任务的源代码,或者无法修改它,您可以在任务调用时设置断点,执行一些TCL命令,然后继续仿真。 TCL 命令可以切换信号或递增计数器。这可以通过一个小的 TCL 脚本自动完成。根据您的情况,这可能会影响模拟时间的性能。