Esempio n. 1
0
    def test_split256(self):
        split = Split(self.bank0, self.bank1,
                      self.main, offset=256)
        split.reset(self.machine)

        t = split.process(0, False, 0, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank0.reads, 1)
        self.assertEqual(self.bank1.reads, 0)
        self.assertEqual(self.bank0.writes, 0)
        self.assertEqual(self.bank1.writes, 0)
        self.assertEqual(self.main.reads, 1)
        self.assertEqual(self.main.writes, 0)

        t = split.process(0, False, 256, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank0.reads, 1)
        self.assertEqual(self.bank1.reads, 1)
        self.assertEqual(self.bank0.writes, 0)
        self.assertEqual(self.bank1.writes, 0)
        self.assertEqual(self.main.reads, 2)
        self.assertEqual(self.main.writes, 0)

        t = split.process(0, True, 256, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank0.reads, 1)
        self.assertEqual(self.bank1.reads, 1)
        self.assertEqual(self.bank0.writes, 0)
        self.assertEqual(self.bank1.writes, 1)
        self.assertEqual(self.main.reads, 2)
        self.assertEqual(self.main.writes, 1)

        t = split.process(0, True, 0, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank0.reads, 1)
        self.assertEqual(self.bank1.reads, 1)
        self.assertEqual(self.bank0.writes, 1)
        self.assertEqual(self.bank1.writes, 1)
        self.assertEqual(self.main.reads, 2)
        self.assertEqual(self.main.writes, 2)

        t = split.process(0, False, 252, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank0.reads, 2)
        self.assertEqual(self.bank1.reads, 2)
        self.assertEqual(self.bank0.writes, 1)
        self.assertEqual(self.bank1.writes, 1)
        self.assertEqual(self.main.reads, 4)
        self.assertEqual(self.main.writes, 2)

        t = split.process(0, False, 2 ** 32 - 4, 8)
        self.assertEqual(t, 1600)
        self.assertEqual(self.bank0.reads, 3)
        self.assertEqual(self.bank1.reads, 3)
        self.assertEqual(self.bank0.writes, 1)
        self.assertEqual(self.bank1.writes, 1)
        self.assertEqual(self.main.reads, 6)
        self.assertEqual(self.main.writes, 2)

        t = split.process(0, False, 2 ** 32 - 1, 1)
        self.assertEqual(t, 200)
        self.assertEqual(self.bank0.reads, 3)
        self.assertEqual(self.bank1.reads, 4)
        self.assertEqual(self.bank0.writes, 1)
        self.assertEqual(self.bank1.writes, 1)
        self.assertEqual(self.main.reads, 7)
        self.assertEqual(self.main.writes, 2)

        t = split.process(0, False, 255, 1)
        self.assertEqual(t, 200)
        self.assertEqual(self.bank0.reads, 4)
        self.assertEqual(self.bank1.reads, 4)
        self.assertEqual(self.bank0.writes, 1)
        self.assertEqual(self.bank1.writes, 1)
        self.assertEqual(self.main.reads, 8)
        self.assertEqual(self.main.writes, 2)

        t = split.process(0, False, 2 ** 32 - 1, 2)
        self.assertEqual(t, 400)
        self.assertEqual(self.bank0.reads, 5)
        self.assertEqual(self.bank1.reads, 5)
        self.assertEqual(self.bank0.writes, 1)
        self.assertEqual(self.bank1.writes, 1)
        self.assertEqual(self.main.reads, 10)
        self.assertEqual(self.main.writes, 2)
Esempio n. 2
0
 def test_path(self):
     split = Split(self.bank0, self.bank1, self.main, offset=8)
     split.reset(self.machine)
     self.assertEqual(split.get_path_length(), self.machine.addr_bits)
Esempio n. 3
0
 def test_simplify3(self):
     split = Split(self.join0, self.join1, self.main, offset=256)
     simplified = split.simplify()
     self.assertEqual(simplified, self.main)
Esempio n. 4
0
 def test_cost(self):
     split = Split(self.bank0, self.bank1, self.main, offset=8)
     self.assertEqual(split.get_cost(), 0)
Esempio n. 5
0
 def test_simplify2(self):
     split = Split(self.bank0, self.bank1, self.main, offset=0)
     simplified = split.simplify()
     self.assertEqual(simplified, split)