コード例 #1
0
    def check():
        yield delay(100)
        yield clk.posedge
        rst.next = 1
        yield clk.posedge
        rst.next = 0
        yield clk.posedge
        yield delay(100)
        yield clk.posedge

        yield clk.posedge

        yield output_axis_tvalid.posedge

        mt = mt19937.mt19937()

        print("test 1: check 1000 values")
        current_test.next = 1

        for i in range(1000):
            while sink.empty():
                yield clk.posedge

            frame = sink.recv()
            assert frame.data[0] == mt.int32()

        print("test 2: pause sink")
        current_test.next = 2

        for i in range(100):
            sink_pause.next = True
            yield clk.posedge
            yield clk.posedge
            yield clk.posedge
            sink_pause.next = False
            yield clk.posedge

        for i in range(1000):
            while sink.empty():
                yield clk.posedge

            frame = sink.recv()
            assert frame.data[0] == mt.int32()

        yield delay(100)

        print("test 3: new seed")
        current_test.next = 3

        mt.seed(0x12345678)

        yield clk.posedge
        seed_val.next = 0x12345678
        seed_start.next = 1
        yield clk.posedge
        seed_start.next = 0
        yield clk.posedge

        while not sink.empty():
            sink.recv()

        for i in range(1000):
            while sink.empty():
                yield clk.posedge

            frame = sink.recv()
            assert frame.data[0] == mt.int32()

        raise StopSimulation
コード例 #2
0
    def check():
        yield delay(100)
        yield clk.posedge
        rst.next = 1
        yield clk.posedge
        rst.next = 0
        yield clk.posedge
        yield delay(100)
        yield clk.posedge

        yield clk.posedge

        yield output_axis_tvalid.posedge

        mt = mt19937.mt19937()

        print("test 1: check 1000 values")
        current_test.next = 1

        for i in range(1000):
            while sink.empty():
                yield clk.posedge

            frame = sink.recv()
            assert frame.data[0] == mt.int32()

        print("test 2: pause sink")
        current_test.next = 2

        for i in range(100):
            sink_pause.next = True
            yield clk.posedge
            yield clk.posedge
            yield clk.posedge
            sink_pause.next = False
            yield clk.posedge

        for i in range(1000):
            while sink.empty():
                yield clk.posedge

            frame = sink.recv()
            assert frame.data[0] == mt.int32()

        yield delay(100)

        print("test 3: new seed")
        current_test.next = 3

        mt.seed(0x12345678)

        yield clk.posedge
        seed_val.next = 0x12345678
        seed_start.next = 1
        yield clk.posedge
        seed_start.next = 0
        yield clk.posedge

        while not sink.empty():
            sink.recv()

        for i in range(1000):
            while sink.empty():
                yield clk.posedge

            frame = sink.recv()
            assert frame.data[0] == mt.int32()

        raise StopSimulation
コード例 #3
0
ファイル: testmt.py プロジェクト: ahiguti/pxc
#!/usr/bin/env python
import mt19937

m = mt19937.mt19937(123)
for i in range(0, 1024):
    print m.extract_number()
コード例 #4
0
#!/usr/bin/env python3

import sys
from mt19937 import mt19937, untemper

if __name__ == '__main__':
    # create our own version of an MT19937 PRNG.
    myprng = mt19937(0)

    # here are the random numbers generated in the snowball game
    with open(sys.argv[1], 'r') as file:
        numbers = [int(x) for x in file.readlines()]

    # clone the prng
    for i in range(mt19937.n):
        myprng.MT[i] = untemper(numbers[i])

    # predict the seed for the game
    print(myprng.extract_number())
    print(myprng.extract_number())
コード例 #5
0
ファイル: testmt.py プロジェクト: ahiguti/pxc
#!/usr/bin/env python
import mt19937

m = mt19937.mt19937(123)
for i in range(0, 1024):
	print m.extract_number()