コード例 #1
0
ファイル: test_regfile.py プロジェクト: Godtec/rhea
def create_regfile():
    """
    [0] 0x0018: control register
    [1] 0x0020:
    [2] 0x0040:
    [3] 0x0080:
    [4] 0x0100: regro (read-only)
    [5] 0x0200: status (read-only, with namedbits)
    :return:
    """
    global regdef
    print("creating test register file")
    regfile = RegisterFile()
    regfile.base_address = 0

    # --register 0--
    reg = Register('control', width=8, access='rw', default=0, addr=0x0018)
    reg.comment = "register 0"
    reg.add_namedbits('enable', slice(1, 0))  # read-only namedbit
    reg.add_namedbits('loop', slice(2, 1))    # read-only namedbit
    regfile.add_register(reg)
    
    # -- more registers register --
    for addr, default in zip((0x20, 0x40, 0x80),
                             (0xDE, 0xCA, 0xFB)):
        reg = Register('reg%s' % (addr,), 8, 'rw', default, addr)
        regfile.add_register(reg)

    # -- read only register --
    reg = Register('regro', 8, 'ro', 0xAA, 0x100)
    regfile.add_register(reg)

    # another read only register, with named bits
    reg = Register('status', 8, 'ro', 0, 0x200)
    reg.add_namedbits('error', slice(1, 0))  # bit 0, read-write namedbit
    reg.add_namedbits('ok', slice(2, 1))     # bit 1, read-write namedbit
    reg.add_namedbits('cnt', slice(8, 2))    # bits 7-2, read-write namedbit
    regfile.add_register(reg)

    return regfile
コード例 #2
0
ファイル: test_regfile.py プロジェクト: wingel/rhea
def create_regfile():
    """
    [0] 0x0018: control register
    [1] 0x0020:
    [2] 0x0040:
    [3] 0x0080:
    [4] 0x0100: regro (read-only)
    [5] 0x0200: status (read-only, with namedbits)
    :return:
    """
    global regdef
    print("creating test register file")
    regfile = RegisterFile()
    regfile.base_address = 0

    # --register 0--
    reg = Register('control', width=8, access='rw', default=0, addr=0x0018)
    reg.comment = "register 0"
    reg.add_namedbits('enable', slice(1, 0))  # read-only namedbit
    reg.add_namedbits('loop', slice(2, 1))  # read-only namedbit
    regfile.add_register(reg)

    # -- more registers register --
    for addr, default in zip((0x20, 0x40, 0x80), (0xDE, 0xCA, 0xFB)):
        reg = Register('reg%s' % (addr, ), 8, 'rw', default, addr)
        regfile.add_register(reg)

    # -- read only register --
    reg = Register('regro', 8, 'ro', 0xAA, 0x100)
    regfile.add_register(reg)

    # another read only register, with named bits
    reg = Register('status', 8, 'ro', 0, 0x200)
    reg.add_namedbits('error', slice(1, 0))  # bit 0, read-write namedbit
    reg.add_namedbits('ok', slice(2, 1))  # bit 1, read-write namedbit
    reg.add_namedbits('cnt', slice(8, 2))  # bits 7-2, read-write namedbit
    regfile.add_register(reg)

    return regfile