用Python给Verilog设计自仿(11):协程、阻塞勘误及AXIS开源验证剖析
前言 在上一篇文章中,我们提到相同协程是阻塞的,不同协程是并发的这一说法。然而,这种理解存在偏差,所以第一个现象并不像我们之前想象的那样。今天,我们将专门梳理协程的概念,深入剖析其本质,以纠正上次关于协程与阻塞的说明。 案例说明 下面我将介绍一种非常典型的现象 for i in range(2): await device_to_host_source.send(frame) for
关于「协程」的技术文章、设计资料与工程师讨论,持续更新。
前言 在上一篇文章中,我们提到相同协程是阻塞的,不同协程是并发的这一说法。然而,这种理解存在偏差,所以第一个现象并不像我们之前想象的那样。今天,我们将专门梳理协程的概念,深入剖析其本质,以纠正上次关于协程与阻塞的说明。 案例说明 下面我将介绍一种非常典型的现象 for i in range(2): await device_to_host_source.send(frame) for
前言 在使用 cocotb 编写测试时,很多人可能都会遇到一些让人困惑的现象:比如说,你明明在发送一帧完整数据之后,加了 await RisingEdge(clk) 想等待 5 个周期再发下一帧,但在波形上却发现帧与帧之间并没有间隔;或者你在别的地方加了 Timer 也没起作用更甚至cocotb直接卡住不动了;又或者明明指定了发包数,却提前结束了。 这些现象的背后,其实不是 cocotb 出了问题
在数字化时代,数据处理和分析已经成为各个领域的核心需求。为了提升计算效率,我们常常会使用并行计算技术。与传统的串行执行模型不同,并行计算可以划分成时间并行和空间并行。时间并行就是流水线技术,空间并行使用多个处理器执行并发计算。目前以研究空间并行为主。从空间并行的角度来说,并行计算将一个大任务分割成多个子任务,每个子任务占用一定处理资源。并行计算中不同子任务占用的不同的处理资源来源于