The block diagram of forward function given in Figure 1 shows the achieved temporal parallelisms, namely computing the wavefield at time step \(t\) and \(t+1\) simultaneously. The streaming interfaces of the basic modules allow them to be connected directly by FIFOs, which hold the wavefield data without storing them back to external memory. This streamlined architecture is the key to achieving high parallelism both spatially and temporally. Each Forward streaming module labeled with F basically takes the wavefield data from the last time stamp then computes the wavefield for current time stamp and outputs both the data and boundary data to other modules in streams.
Red line: data stream of wavefield \(p(t)\); Blue line: data stream of velocity model \(v^2 \Delta t^2\); Black line: data stream of boundaries