首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在verilog中创建定期任务集

在verilog中创建定期任务集
EN

Stack Overflow用户
提问于 2013-12-28 06:51:13
回答 1查看 696关注 0票数 0

我想要创建一组周期任务集,具有不同的周期和执行时间,在verilog模块中,该任务将创建这样将操作某种操作,并将在一定时期后执行。

所以,在高级语言中,如c

代码语言:javascript
复制
func()
{
for(;;)
}
and sleep()

我想,我会用那个func()作为操作,然后再调用..this func() .在verilog这样做是正确的吗??同时也可以测量testbench...after仿真中的执行时间和执行周期。任何建议都是非常有用的。

问候

EN

回答 1

Stack Overflow用户

发布于 2013-12-28 14:08:23

就像..。

代码语言:javascript
复制
`timescale 1ns/1ns
always begin
  // do stuff
  # amount of nanoseconds to wait until next execution
end

例如:这个周期性任务每1.5微秒增加一次变量counter

代码语言:javascript
复制
`timescale 1ns/1ns
integer counter = 0;
always begin
  counter = counter + 1;
  #1500;
end

如果不需要纳秒精度,可以使用不同的`timescale。例如,可以将前一个块编写如下:

代码语言:javascript
复制
`timescale 1us/1ns
integer counter = 0;
always begin
  counter = counter + 1;
  #1.5;
end

编辑

重要的是要弄清楚,用#{insert_delay}表示的模拟延迟不能被合成。它们只应在测试工作台中用于模拟来自驱动程序的延迟。因此,您的func()sleep()不是在一个测试平台中,它们需要被建模为某种计数器,然后重新设置,然后计算x的时钟脉冲数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20811899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档