<' type cpu_opcode: [ADD, SUB, OR, AND, JMP, LABEL]; type cpu_reg: [reg0, reg1, reg2, reg3]; struct inst { opcode: cpu_opcode; op1: cpu_reg; op2: byte; event info; event data_change; event inst_driven; cover data_change using no_collect is { item data: uint(bits:16) = op2; }; cover info is { item opcode; }; cover inst_driven is { item opcode; item op1; }; post_generate() is also { emit info; emit data_change; emit inst_driven; }; }; extend sys { inst : inst; run() is also { for {var i: uint = 0; i < 10 ; i = i + 1} do { gen inst; print inst; }; }; }; '>