40 lines
861 B
Python
40 lines
861 B
Python
from migen.fhdl.std import *
|
|
from migen.genlib.record import *
|
|
|
|
K28_5 = 0b1010000011
|
|
|
|
ALIGN_VAL = 0x7B4A4ABC
|
|
CONT_VAL = 0x9999AA7C
|
|
DMAT_VAL = 0x3636B57C
|
|
EOF_VAL = 0xD5D5B57C
|
|
HOLD_VAL = 0xD5D5AA7C
|
|
HOLDA_VAL = 0x9595AA7C
|
|
PMACK_VAL = 0x9595957C
|
|
PMNAK_VAL = 0xF5F5957C
|
|
PMREQ_P_VAL = 0x1717B57C
|
|
PMREQ_S_VAL = 0x7575957C
|
|
R_ERR_VAL = 0x5656B57C
|
|
R_IP_VAL = 0x5555B57C
|
|
R_OK_VAL = 0x3535B57C
|
|
R_RDY_VAL = 0x4A4A957C
|
|
SOF_VAL = 0x3737B57C
|
|
SYNC_VAL = 0xB5B5957C
|
|
WTRM_VAL = 0x5858B57C
|
|
X_RDY_VAL = 0x5757B57C
|
|
|
|
def ones(width):
|
|
return 2**width-1
|
|
|
|
class DRPBus(Record):
|
|
def __init__(self):
|
|
layout = [
|
|
("clk", 1, DIR_M_TO_S),
|
|
("en", 1, DIR_M_TO_S),
|
|
("rdy", 1, DIR_S_TO_M),
|
|
("we", 1, DIR_M_TO_S),
|
|
("addr", 8, DIR_M_TO_S),
|
|
("di", 16, DIR_M_TO_S),
|
|
("do", 16, DIR_S_TO_M)
|
|
]
|
|
Record.__init__(self, layout)
|