SystemC 2.3.3-Accellera --- Jan 6 2020 19:21:25 Copyright (c) 1996-2018 by all Contributors, ALL RIGHTS RESERVED ------------------------------ --- Event-based simulation --- ------------------------------ Print control for master, via command line option: All info types will be shown Print control for producer, via command line option: All info types will be shown Print control for consumer, via command line option: All info types will be shown Top: Start simulation Done Master::initialize() Done Producer::initialize() Done Consumer::initialize() M Master will ask Producer to send 2 batches of packets Producer::controller(): thread started ... Producer::register_file_handler(): thread started ... Consumer::controller(): thread started ... Consumer::register_file_handler(): thread started ... --------------------------------------------- --- Batch 0 --- at time 100 ps Master will ask Producer to send 3 packets to Consumer --------------------------------------------- M < Master is about to send a register command to Producer[0]: Register_Bus: reg_bus: Write, addr 0x100, data 0xc031 M < Master is about to send a register command to Consumer[0]: Register_Bus: reg_bus: Write, addr 0x200, data 0x4031 M < Master is about to send a register command to Producer[1]: Register_Bus: reg_bus: Read, addr 0x100 P > Producer received register command[0]: Register_Bus: reg_bus: Write, addr 0x100, data 0xc031 P . Register: control = 0x0c031 (Packet generation control), addr offset = 0x0 Register: control: ver = 0x6 (Unit version number), position [15:13], width 3 bits, mask 0xe000, reset 0x6, access R Register: control: num_pkt = 0x3 (Number of packets to produce per invocation), position [7:4], width 4 bits, mask 0x00f0, reset 0x8, access RW Register: control: en = 0x1 (Enable sending num_pkt packets to Consumer), position [0:0], width 1 bit, mask 0x0001, reset 0x0, access RW P > Producer received register command[1]: Register_Bus: reg_bus: Read, addr 0x100 P . reading: Register: control = 0x0c031 (Packet generation control), addr offset = 0x0 Register: control: ver = 0x6 (Unit version number), position [15:13], width 3 bits, mask 0xe000, reset 0x6, access R Register: control: num_pkt = 0x3 (Number of packets to produce per invocation), position [7:4], width 4 bits, mask 0x00f0, reset 0x8, access RW Register: control: en = 0x1 (Enable sending num_pkt packets to Consumer), position [0:0], width 1 bit, mask 0x0001, reset 0x0, access RW P < Producer about to respond to register read command[0] data = 0x0c031 C > Consumer received register command[0]: Register_Bus: reg_bus: Write, addr 0x200, data 0x4031 C . Register: control = 0x04031 (Consumer control), addr offset = 0x0 Register: control: ver = 0x2 (Unit version number), position [15:13], width 3 bits, mask 0xe000, reset 0x2, access R Register: control: num_pkt = 0x3 (Number of packets to be received per invocation), position [7:4], width 4 bits, mask 0x00f0, reset 0x0, access RW Register: control: en = 0x1 (Enable receiving packets from Producer), position [0:0], width 1 bit, mask 0x0001, reset 0x0, access RW P + start sending packets C + start waiting for packets M > Master received register read data from Producer[0]: data 0x0c031 M < Master is about to send a register command to Consumer[1]: Register_Bus: reg_bus: Read, addr 0x200 C > Consumer received register command[1]: Register_Bus: reg_bus: Read, addr 0x200 C . reading: Register: control = 0x04031 (Consumer control), addr offset = 0x0 Register: control: ver = 0x2 (Unit version number), position [15:13], width 3 bits, mask 0xe000, reset 0x2, access R Register: control: num_pkt = 0x3 (Number of packets to be received per invocation), position [7:4], width 4 bits, mask 0x00f0, reset 0x0, access RW Register: control: en = 0x1 (Enable receiving packets from Producer), position [0:0], width 1 bit, mask 0x0001, reset 0x0, access RW C < Consumer about to respond to register read command[0]: data 0x04031 M > Master received register read data from Consumer[0]: data 0x04031 P <- Producer about to send packet[0] data = 0x002, at time 101 ps C -> Consumer received packet[0] data = 0x002 at time 101 ps P <- Producer about to send packet[1] data = 0x004, at time 102 ps C -> Consumer received packet[1] data = 0x004 at time 102 ps P <- Producer about to send packet[2] data = 0x006, at time 103 ps P = done sending packets C -> Consumer received packet[2] data = 0x006 at time 103 ps C == Consumer about to send done signal[0] C - done receiving expected number of packets M > Master received done signal from Consumer[0] --------------------------------------------- --- Batch 1 --- at time 203 ps Master will ask Producer to send 8 packets to Consumer --------------------------------------------- M < Master is about to send a register command to Producer[2]: Register_Bus: reg_bus: Write, addr 0x100, data 0xc081 M < Master is about to send a register command to Consumer[2]: Register_Bus: reg_bus: Write, addr 0x200, data 0x4081 M < Master is about to send a register command to Producer[3]: Register_Bus: reg_bus: Read, addr 0x100 P > Producer received register command[2]: Register_Bus: reg_bus: Write, addr 0x100, data 0xc081 P . Register: control = 0x0c081 (Packet generation control), addr offset = 0x0 Register: control: ver = 0x6 (Unit version number), position [15:13], width 3 bits, mask 0xe000, reset 0x6, access R Register: control: num_pkt = 0x8 (Number of packets to produce per invocation), position [7:4], width 4 bits, mask 0x00f0, reset 0x8, access RW Register: control: en = 0x1 (Enable sending num_pkt packets to Consumer), position [0:0], width 1 bit, mask 0x0001, reset 0x0, access RW P > Producer received register command[3]: Register_Bus: reg_bus: Read, addr 0x100 P . reading: Register: control = 0x0c081 (Packet generation control), addr offset = 0x0 Register: control: ver = 0x6 (Unit version number), position [15:13], width 3 bits, mask 0xe000, reset 0x6, access R Register: control: num_pkt = 0x8 (Number of packets to produce per invocation), position [7:4], width 4 bits, mask 0x00f0, reset 0x8, access RW Register: control: en = 0x1 (Enable sending num_pkt packets to Consumer), position [0:0], width 1 bit, mask 0x0001, reset 0x0, access RW P < Producer about to respond to register read command[1] data = 0x0c081 C > Consumer received register command[2]: Register_Bus: reg_bus: Write, addr 0x200, data 0x4081 C . Register: control = 0x04081 (Consumer control), addr offset = 0x0 Register: control: ver = 0x2 (Unit version number), position [15:13], width 3 bits, mask 0xe000, reset 0x2, access R Register: control: num_pkt = 0x8 (Number of packets to be received per invocation), position [7:4], width 4 bits, mask 0x00f0, reset 0x0, access RW Register: control: en = 0x1 (Enable receiving packets from Producer), position [0:0], width 1 bit, mask 0x0001, reset 0x0, access RW P + start sending packets C + start waiting for packets M > Master received register read data from Producer[1]: data 0x0c081 M < Master is about to send a register command to Consumer[3]: Register_Bus: reg_bus: Read, addr 0x200 C > Consumer received register command[3]: Register_Bus: reg_bus: Read, addr 0x200 C . reading: Register: control = 0x04081 (Consumer control), addr offset = 0x0 Register: control: ver = 0x2 (Unit version number), position [15:13], width 3 bits, mask 0xe000, reset 0x2, access R Register: control: num_pkt = 0x8 (Number of packets to be received per invocation), position [7:4], width 4 bits, mask 0x00f0, reset 0x0, access RW Register: control: en = 0x1 (Enable receiving packets from Producer), position [0:0], width 1 bit, mask 0x0001, reset 0x0, access RW C < Consumer about to respond to register read command[1]: data 0x04081 M > Master received register read data from Consumer[1]: data 0x04081 P <- Producer about to send packet[3] data = 0x008, at time 204 ps C -> Consumer received packet[3] data = 0x008 at time 204 ps P <- Producer about to send packet[4] data = 0x00a, at time 205 ps C -> Consumer received packet[4] data = 0x00a at time 205 ps P <- Producer about to send packet[5] data = 0x00c, at time 206 ps C -> Consumer received packet[5] data = 0x00c at time 206 ps P <- Producer about to send packet[6] data = 0x00e, at time 207 ps C -> Consumer received packet[6] data = 0x00e at time 207 ps P <- Producer about to send packet[7] data = 0x010, at time 208 ps C -> Consumer received packet[7] data = 0x010 at time 208 ps P <- Producer about to send packet[8] data = 0x012, at time 209 ps C -> Consumer received packet[8] data = 0x012 at time 209 ps P <- Producer about to send packet[9] data = 0x014, at time 210 ps C -> Consumer received packet[9] data = 0x014 at time 210 ps P <- Producer about to send packet[10] data = 0x016, at time 211 ps P = done sending packets C -> Consumer received packet[10] data = 0x016 at time 211 ps C == Consumer about to send done signal[1] C - done receiving expected number of packets M > Master received done signal from Consumer[1] M *** Master request to end the simulation now (at time 311 ps) Info: /OSCI/SystemC: Simulation stopped by user. Top: End simulation