tree bc59415c4919259a47cd15d5ac15e6e44c3f892c
parent 0247ff80af46fa7047021cdb127708de5339d5da
author Eunchan Kim <eunchan@opentitan.org> 1573602248 -0800
committer Eunchan Kim <eunchan@opentitan.org> 1573676303 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEEuEBfHXBX1JgKhUPPmhfzJJT+XB8FAl3MZQ8ACgkQmhfzJJT+
 XB9BCgv/dW7OgpkmPN4l4FqQNz0T/R2Gqq4z/w9x+/fGf8YaSfZSkJkvFlO9myUW
 Iw4xIiMbdbNjOUMjihOGmxpoFnrtOAbpYHx4c6XtBL4EiPO3hnt4F46tFLsQsesh
 RMHGxVy7oYWKa6VvBYYpiyq3hrcAymE2hZRkSJdFxHBxTaa2IKYfluFclNljXqqh
 uOOWrHyzqgw2TP42zjUeJAN4fnNJm+yM8mnFKZ/f3wWZkdfV3OPcHqIT6W1GQoP+
 rbGB5umboVg8WN3LsKp9lkkXTUonhXsz0HB35Ml81cm05e7eGEmuIVY8QJFyENFF
 1GRKgg68UZV7U0SbTEgdMdNTJuoBgquYJS5skzgpbMgXvdI0gR0zJs927h6IVbRE
 BJO8qK0a7KP4ekFrTAwW2J4uaqQFD/2OCehonkEE0caZNQadoXILN6H0Xp2LS0OS
 4oS2ddf5LHC2gKS4OKtmq3zd4scn3v1H8ZF2ycRJyaNKAdgsG4QfX/tB8zPMyJ7N
 tj9djPbj
 =y2fO
 -----END PGP SIGNATURE-----

[reggen] Register to have typedef struct

In transition to the parameterized multireg #47, now each register has
its own struct packed type, which is named as
`module_reg2hw/hw2reg_regname_reg/mreg_t`. It creates mane typedef
inside the register package file but the overal reg2hw and hw2reg
structures are cleaner.

It gives more flexibility to transition to register interface from the
struct. The interface should consider the number of registers, not the
fields names.

There's still TODOs in this change.

1.  The field name function call `get_basename()` doesn't work properly
    with field having digits in its name. For instance, alert_handler
    has `en_e0` to `en_e3` in CLASSD_CTRL register, and the function
    chops the digit and returns `en_e` only, which creates an error.
2.  Handling the multi register and normal register is not standardized.
    The functions defined in `util/reggen/data.py` are specific for
    multireg type. It should be commonly used regardless of the register
    type.
3.  `util/topgen/lib.py` could be useful if it is moved to its own
    module. The functions inside lib.py can be used in any generator for
    RTLs.

This is related to #606 #270 #47

Signed-off-by: Eunchan Kim <eunchan@opentitan.org>
