MicroTESK 2.3.23 beta released
The new release contains the following changes:
- Several bug fixes and general improvements
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
limit
was renamed to branch_exec_limit
trace_count_limit
that bounds the number of execution traces was introducedatomic
was renamed to sequence
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
What's new (*):
Preparator Randomization
Now it is possible to specify several variants of a preparator, which can be selected at random when the preparator is instantiated. Syntax is the following:
preparator(:target => 'REG') {
variant(:name => '1', :bias => 50) {
comment 'Variant 1'
lui target, value(16, 31)
ori target, target, value(0, 15)
}
variant(:name => '2', :bias => 50) {
comment 'Variant 2'
ori target, zero, value(16, 31)
sll target, target, 16
addi target, target, value(0, 15)
}
}
A variant description has two optional parameters: name
and bias
.
The name
attribute allows specifying a preferred preparator variant when a preparator is explicitly inserted by using the prepare
function. For example:
prepare t1, 0xdeadbeef, :variant => '1' # Preparator '1' is chosen.
prepare t2, 0xbaadf00d, :variant => '2' # Preparator '2' is chosen.
Search by variant name is performed after a suitable preparator is chosen according to value mask and argument values. So if a variant with the specified name is not defined for the chosen preparator, MicroTESK reports a warning and uses a randomly chosen variant of the given preparator.
The bias
attribute is used set up a bias for the current variant. It works in a similar way as the dist
construct which is for selecting random values. The atribute can be skipped if you want to define equally probable variants.
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
What's new (*):
Instruction Permutations
Test template blocks how have a new parameter permutator
that specifies the permutation method to be applied to instruction sequences described by these blocks. Currently, two methods are supported:
trivial
- order of instruction is not changedrandom
- instructions come in random orderFor example, the following code produces a random permutation of the specified instructions:
atomic(:permutator => 'random') {
Add reg(_), reg(_), reg(_)
Sub reg(_), reg(_), reg(_)
And reg(_), reg(_), reg(_)
Or reg(_), reg(_), reg(_)
Nor reg(_), reg(_), reg(_)
Xor reg(_), reg(_), reg(_)
}.run
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
What's new (*):
Explicit Preparators Invocation
A preparator can be explicitly inserted into code using the prepare
method. Supported use cases:
1. Preparators can be invoked explicitly anywhere in a test template to assign constant or random values to registers. For example:
prepare t0, 0xDEADBEEF
prepare t1, rand(1, 63)
2. Preparators can be invoked explicitly inside of preparator
and buffer_preparator
blocks to initialize registers with values provided when the block is instantiated. For example:
buffer_preparator(:target => 'L1') {
prepare t0, address
lw t1, 0, t0
}
Constraint for Memory-Related Situations
Now test situations for MMU can be specified using constraints. There are two kinds of constraints: event-based (hit, mist and event with distribution) and equality-based (for a single value, array, range and distribution). Syntax is the following:
simple_dist = dist(range(:value => 0, :bias => 50),
range(:value => 1..3, :bias => 25),
range(:value => [5, 7], :bias => 25))
lw s0, 0, t0 do situation('address',
:path => constraints(eq('L1.V', 0), hit('L1'))) end
lw s0, 0, t0 do situation('address',
:path => constraints(eq('L1.V', [0, 2]), hit('L1'))) end
lw s1, 0, t1 do situation('address',
:path => constraints(eq('L1.V', 0..3), miss('L1'))) end
lw s0, 0, t0 do situation('address',
:path => constraints(eq('L1.V', simple_dist), hit('L1'))) end
lw s1, 0, t1 do situation('address',
:path => constraints(eq('L1.V', 0), event('L1', :hit => 50, :miss => 50))) end
Added by Andrei Tatarnikov almost 9 years ago
The new release contains the following changes:
The MicroTESK distribution package can be downloaded from here: http://forge.ispras.ru/projects/microtesk/files
Also available in: Atom