什么这是否意味着如果一项任务是宣布自动的关键词在电气电子工程师学会?

task automatic do_things;
  input [31:0] number_of_things;
  reg [31:0] tmp_thing;
  begin
    // ...
  end
endtask;

注:这个问题主要是因为我很好奇如果有任何硬件的程序员,在网站上。:)

有帮助吗?

解决方案

这意味着,任务是重新参赛项声明内的任务动态的分配,而不是共享之间的不同调用的任务。

你看到的-我们中的一些做电气电子工程师学会...(嗯)

其他提示

"自动"实际上意思是"重新入境者".该术语本身是偷软件的语言--例如,C具有"自动"的关键词为宣布变量为被分配在栈当的范围,这是在执行和释放之后,这样的多次调用的范围相同,看不到持久价值,可变的。因为你可能没有听说过这个关键字在C是,它是默认存类别的所有类型:-)的替代办法是"静态",这意味着"分配这个变量的静态(以一个单一的全球定位在存储器),并参照这个相同的存储位置的整个执行程序,无论如何许多次的功能是援引",和"挥发性", 这意味着"这是一个登记册上的其他地方我SoC或什么东西在另一种设备,我们无法控制;编译器,请不要优化读给我走,甚至当你想你知道我的价值从先前读取,没有中间写的代码"。

"自动"的目的是为递归功能,但也运行相同功能在不同程的执行同时进行。例如,如果"叉"关闭N不同块(使用电气电子工程师学会的叉子->的加入声明),并将它们所有的电话相同功能的同时,同样的问题作为一个功能自称。

在许多情况下,你的代码将没有申报的任务或职能为"自动",但这是很好的做法,把它放在那里,除非你具体需要。

"自动的"关键字也允许编写递归功能(由于电气电子工程师学会2001年)。我相信他们应该synthesisable如果他们的底部,但我不知道如果他们有工具的支持。

我也做电气电子工程师学会!

如会和马蒂说的,自动的目的是为递归功能。

如果一个正常的(即不是自动的)功能就是所谓不同的价值观和处理模拟器在同一时间段,返回的价值是不确定的。这可以是一个相当棘手的错误!这只是一个模拟问题,当综合逻辑是正确的。

制作功能自动修复这一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top