Add testcase to test cumulative strobes. #38
This commit is contained in:
@@ -216,5 +216,88 @@
|
||||
cpuif.assert_read('h2C, 'h1234);
|
||||
cpuif.assert_read('h2E, 'h4);
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// strobes
|
||||
//--------------------------------------------------------------------------
|
||||
// reg1
|
||||
// reset field to known state
|
||||
cpuif.write('h0, 'h0000);
|
||||
cpuif.write('h2, 'h0000);
|
||||
cpuif.write('h4, 'h0000);
|
||||
cpuif.write('h6, 'h0000);
|
||||
@cb;
|
||||
cpuif.assert_read('h0, 'h0);
|
||||
cpuif.assert_read('h2, 'h0);
|
||||
cpuif.assert_read('h4, 'h0);
|
||||
cpuif.assert_read('h6, 'h0);
|
||||
assert(cb.hwif_out.reg1.f1.value == 0);
|
||||
|
||||
cpuif.write('h0, 'hABCD, 'hF000);
|
||||
cpuif.write('h2, 'h1234, 'h0F00);
|
||||
cpuif.write('h4, 'h5678, 'h00F0);
|
||||
cpuif.write('h6, 'hEF12, 'h000F);
|
||||
@cb;
|
||||
cpuif.assert_read('h0, 'hA000);
|
||||
cpuif.assert_read('h2, 'h0200);
|
||||
cpuif.assert_read('h4, 'h0070);
|
||||
cpuif.assert_read('h6, 'h0002);
|
||||
assert(cb.hwif_out.reg1.f1.value == 'h0002_0070_0200_A000);
|
||||
|
||||
// Check that strobes are cumulative
|
||||
cpuif.write('h0, 'h0030, 'h00F0);
|
||||
cpuif.write('h2, 'h0070, 'h00F0);
|
||||
cpuif.write('h4, 'h000D, 'h000F);
|
||||
cpuif.write('h4, 'hA000, 'hF000);
|
||||
cpuif.write('h2, 'h0008, 'h000F);
|
||||
cpuif.write('h0, 'h0200, 'h0F00);
|
||||
cpuif.write('h6, 'hA000, 'hF000);
|
||||
cpuif.write('h6, 'h0F00, 'h0F00);
|
||||
@cb;
|
||||
cpuif.assert_read('h0, 'hA230);
|
||||
cpuif.assert_read('h2, 'h0278);
|
||||
cpuif.assert_read('h4, 'hA07D);
|
||||
cpuif.assert_read('h6, 'hAF02);
|
||||
assert(cb.hwif_out.reg1.f1.value == 'hAF02_A07D_0278_A230);
|
||||
|
||||
// reg1_msb0
|
||||
// reset field to known state
|
||||
cpuif.write('h8, 'h0000);
|
||||
cpuif.write('hA, 'h0000);
|
||||
cpuif.write('hC, 'h0000);
|
||||
cpuif.write('hE, 'h0000);
|
||||
@cb;
|
||||
cpuif.assert_read('h8, 'h0);
|
||||
cpuif.assert_read('hA, 'h0);
|
||||
cpuif.assert_read('hC, 'h0);
|
||||
cpuif.assert_read('hE, 'h0);
|
||||
assert(cb.hwif_out.reg1_msb0.f1.value == 0);
|
||||
|
||||
cpuif.write('h8, 'hABCD, 'hF000);
|
||||
cpuif.write('hA, 'h1234, 'h0F00);
|
||||
cpuif.write('hC, 'h5678, 'h00F0);
|
||||
cpuif.write('hE, 'hEF12, 'h000F);
|
||||
@cb;
|
||||
cpuif.assert_read('h8, 'hA000);
|
||||
cpuif.assert_read('hA, 'h0200);
|
||||
cpuif.assert_read('hC, 'h0070);
|
||||
cpuif.assert_read('hE, 'h0002);
|
||||
assert({<<{cb.hwif_out.reg1_msb0.f1.value}} == 'h0002_0070_0200_A000);
|
||||
|
||||
// Check that strobes are cumulative
|
||||
cpuif.write('h8, 'h0030, 'h00F0);
|
||||
cpuif.write('hA, 'h0070, 'h00F0);
|
||||
cpuif.write('hC, 'h000D, 'h000F);
|
||||
cpuif.write('hC, 'hA000, 'hF000);
|
||||
cpuif.write('hA, 'h0008, 'h000F);
|
||||
cpuif.write('h8, 'h0200, 'h0F00);
|
||||
cpuif.write('hE, 'hA000, 'hF000);
|
||||
cpuif.write('hE, 'h0F00, 'h0F00);
|
||||
@cb;
|
||||
cpuif.assert_read('h8, 'hA230);
|
||||
cpuif.assert_read('hA, 'h0278);
|
||||
cpuif.assert_read('hC, 'hA07D);
|
||||
cpuif.assert_read('hE, 'hAF02);
|
||||
assert({<<{cb.hwif_out.reg1_msb0.f1.value}} == 'hAF02_A07D_0278_A230);
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user