首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UVM中的多线程

UVM中的多线程
EN

Stack Overflow用户
提问于 2014-05-07 05:56:51
回答 2查看 1.7K关注 0票数 0

我们如何在UVM中集成多线程。UVM测试平台中的线程、扩展的UVM组件、序列以及叉和连接之间的方法?到目前为止,我已经搜索过这样的多线程测试平台,除非将设计划分为硬件的多个核,否则很难对使仿真时间更快或性能更好产生影响。是真地吗?

EN

回答 2

Stack Overflow用户

发布于 2014-05-07 09:06:30

SystemVerilog/UVM上下文中的多线程与多核硬件无关。虽然EDA供应商确实提供了多核支持,但这并不是您可以通过编码来控制的。

还请看一下这个问题:running UVM phases on multiple cores

附带说明:

HDL模拟本质上是多线程的,因为您必须捕获并行发生的信号更新。SystemVerilog还允许用户使用构造的fork...join系列生成自己的并行执行线程。UVM本身大量使用这个特性来启动序列,例如,并行地启动所有组件的运行阶段。当然,如果需要,您也可以在自己的代码中使用fork...join启动自己的并行线程。

另一个注意事项:我认为在SV中启动线程的术语是“启动并行进程”。

票数 0
EN

Stack Overflow用户

发布于 2015-01-26 07:19:43

对我来说,问题和答案都显示出困惑。Ahlawat似乎在问两个问题:

(1) UVM测试平台是否具有多线程特性?和

(2)如果没有,多线程能否引入到UVM测试平台中?

我认为问题1的答案混淆了问题,因为我认为关于HDL模拟是多线程的说法是不正确的。HDL仿真试图在硬件设计中对并行性进行建模,在硬件设计中,所有不同的电子元件都是并行工作的;但是,它没有使用多线程来建模。相反,HDL模拟器(当然,它们本身就是程序)至少在传统上是单线程程序。在单个线程程序中对并行性的影响进行建模是完全可能的,而这正是HDL模拟器所做的。建模并行--这意味着同时发生事情的错觉--与实际同时发生的事情不一样。

多线程意味着将给定的程序分解成多个能够同时运行的程序。现在,这取决于操作系统是否真的同时运行。

而且,操作系统反过来又受到机器的处理器和内存结构的限制。

  1. 在一台多核计算机上,很可能会有不同的线程在一个核上运行.
  2. 在一台单核计算机上,它的核心是老式类型的,没有能力在其内部托管多线程,事实上,多线程不会发生,相反,不同的线程将随着上下文的切换而被切换。

好了,现在说的都是,给出的答案的一个方面就是标记,它不是UVM本身的一部分,而是Verilog和System的一部分,基本上允许我们告诉操作系统,您希望测试台中的某些代码在单独的线程中运行。但是,这不是UVM库的属性,它本身就是Verilog / System构造。

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

https://stackoverflow.com/questions/23509817

复制
相关文章

相似问题

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