#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
#[doc = "0x00 - PUF Control"]
pub ctrl: CTRL,
#[doc = "0x04 - PUF Key Index"]
pub keyindex: KEYINDEX,
#[doc = "0x08 - PUF Key Size"]
pub keysize: KEYSIZE,
_reserved3: [u8; 0x14],
#[doc = "0x20 - PUF Status"]
pub stat: STAT,
_reserved4: [u8; 0x04],
#[doc = "0x28 - PUF Allow"]
pub allow: ALLOW,
_reserved5: [u8; 0x14],
#[doc = "0x40 - PUF Key Input"]
pub keyinput: KEYINPUT,
#[doc = "0x44 - PUF Code Input"]
pub codeinput: CODEINPUT,
#[doc = "0x48 - PUF Code Output"]
pub codeoutput: CODEOUTPUT,
_reserved8: [u8; 0x14],
#[doc = "0x60 - PUF Key Output Index"]
pub keyoutindex: KEYOUTINDEX,
#[doc = "0x64 - PUF Key Output"]
pub keyoutput: KEYOUTPUT,
_reserved10: [u8; 0x74],
#[doc = "0xdc - PUF Interface Status and Clear"]
pub ifstat: IFSTAT,
_reserved11: [u8; 0x20],
#[doc = "0x100 - PUF Interrupt Enable"]
pub inten: INTEN,
#[doc = "0x104 - PUF Interrupt Status"]
pub intstat: INTSTAT,
#[doc = "0x108 - PUF Power Control"]
pub pwrctrl: PWRCTRL,
#[doc = "0x10c - PUF Configuration"]
pub cfg: CFG,
_reserved15: [u8; 0xf0],
#[doc = "0x200 - Key Lock"]
pub keylock: KEYLOCK,
#[doc = "0x204 - Key Enable"]
pub keyenable: KEYENABLE,
#[doc = "0x208 - Key Reset"]
pub keyreset: KEYRESET,
#[doc = "0x20c - Index Block Low"]
pub idxblk_l: IDXBLK_L,
#[doc = "0x210 - Index Block High Duplicate"]
pub idxblk_h_dp: IDXBLK_H_DP,
#[doc = "0x214..0x224 - Key Mask x"]
pub keymask: [KEYMASK; 4],
_reserved21: [u8; 0x30],
#[doc = "0x254 - Index Block High"]
pub idxblk_h: IDXBLK_H,
#[doc = "0x258 - Index Block Low Duplicate"]
pub idxblk_l_dp: IDXBLK_L_DP,
}
#[doc = "CTRL (rw) register accessor: an alias for `Reg<CTRL_SPEC>`"]
pub type CTRL = crate::Reg<ctrl::CTRL_SPEC>;
#[doc = "PUF Control"]
pub mod ctrl;
#[doc = "KEYINDEX (rw) register accessor: an alias for `Reg<KEYINDEX_SPEC>`"]
pub type KEYINDEX = crate::Reg<keyindex::KEYINDEX_SPEC>;
#[doc = "PUF Key Index"]
pub mod keyindex;
#[doc = "KEYSIZE (rw) register accessor: an alias for `Reg<KEYSIZE_SPEC>`"]
pub type KEYSIZE = crate::Reg<keysize::KEYSIZE_SPEC>;
#[doc = "PUF Key Size"]
pub mod keysize;
#[doc = "STAT (r) register accessor: an alias for `Reg<STAT_SPEC>`"]
pub type STAT = crate::Reg<stat::STAT_SPEC>;
#[doc = "PUF Status"]
pub mod stat;
#[doc = "ALLOW (r) register accessor: an alias for `Reg<ALLOW_SPEC>`"]
pub type ALLOW = crate::Reg<allow::ALLOW_SPEC>;
#[doc = "PUF Allow"]
pub mod allow;
#[doc = "KEYINPUT (w) register accessor: an alias for `Reg<KEYINPUT_SPEC>`"]
pub type KEYINPUT = crate::Reg<keyinput::KEYINPUT_SPEC>;
#[doc = "PUF Key Input"]
pub mod keyinput;
#[doc = "CODEINPUT (w) register accessor: an alias for `Reg<CODEINPUT_SPEC>`"]
pub type CODEINPUT = crate::Reg<codeinput::CODEINPUT_SPEC>;
#[doc = "PUF Code Input"]
pub mod codeinput;
#[doc = "CODEOUTPUT (r) register accessor: an alias for `Reg<CODEOUTPUT_SPEC>`"]
pub type CODEOUTPUT = crate::Reg<codeoutput::CODEOUTPUT_SPEC>;
#[doc = "PUF Code Output"]
pub mod codeoutput;
#[doc = "KEYOUTINDEX (r) register accessor: an alias for `Reg<KEYOUTINDEX_SPEC>`"]
pub type KEYOUTINDEX = crate::Reg<keyoutindex::KEYOUTINDEX_SPEC>;
#[doc = "PUF Key Output Index"]
pub mod keyoutindex;
#[doc = "KEYOUTPUT (r) register accessor: an alias for `Reg<KEYOUTPUT_SPEC>`"]
pub type KEYOUTPUT = crate::Reg<keyoutput::KEYOUTPUT_SPEC>;
#[doc = "PUF Key Output"]
pub mod keyoutput;
#[doc = "IFSTAT (rw) register accessor: an alias for `Reg<IFSTAT_SPEC>`"]
pub type IFSTAT = crate::Reg<ifstat::IFSTAT_SPEC>;
#[doc = "PUF Interface Status and Clear"]
pub mod ifstat;
#[doc = "INTEN (rw) register accessor: an alias for `Reg<INTEN_SPEC>`"]
pub type INTEN = crate::Reg<inten::INTEN_SPEC>;
#[doc = "PUF Interrupt Enable"]
pub mod inten;
#[doc = "INTSTAT (rw) register accessor: an alias for `Reg<INTSTAT_SPEC>`"]
pub type INTSTAT = crate::Reg<intstat::INTSTAT_SPEC>;
#[doc = "PUF Interrupt Status"]
pub mod intstat;
#[doc = "PWRCTRL (rw) register accessor: an alias for `Reg<PWRCTRL_SPEC>`"]
pub type PWRCTRL = crate::Reg<pwrctrl::PWRCTRL_SPEC>;
#[doc = "PUF Power Control"]
pub mod pwrctrl;
#[doc = "CFG (rw) register accessor: an alias for `Reg<CFG_SPEC>`"]
pub type CFG = crate::Reg<cfg::CFG_SPEC>;
#[doc = "PUF Configuration"]
pub mod cfg;
#[doc = "KEYLOCK (rw) register accessor: an alias for `Reg<KEYLOCK_SPEC>`"]
pub type KEYLOCK = crate::Reg<keylock::KEYLOCK_SPEC>;
#[doc = "Key Lock"]
pub mod keylock;
#[doc = "KEYENABLE (rw) register accessor: an alias for `Reg<KEYENABLE_SPEC>`"]
pub type KEYENABLE = crate::Reg<keyenable::KEYENABLE_SPEC>;
#[doc = "Key Enable"]
pub mod keyenable;
#[doc = "KEYRESET (w) register accessor: an alias for `Reg<KEYRESET_SPEC>`"]
pub type KEYRESET = crate::Reg<keyreset::KEYRESET_SPEC>;
#[doc = "Key Reset"]
pub mod keyreset;
#[doc = "IDXBLK_L (rw) register accessor: an alias for `Reg<IDXBLK_L_SPEC>`"]
pub type IDXBLK_L = crate::Reg<idxblk_l::IDXBLK_L_SPEC>;
#[doc = "Index Block Low"]
pub mod idxblk_l;
#[doc = "IDXBLK_H_DP (rw) register accessor: an alias for `Reg<IDXBLK_H_DP_SPEC>`"]
pub type IDXBLK_H_DP = crate::Reg<idxblk_h_dp::IDXBLK_H_DP_SPEC>;
#[doc = "Index Block High Duplicate"]
pub mod idxblk_h_dp;
#[doc = "KEYMASK (w) register accessor: an alias for `Reg<KEYMASK_SPEC>`"]
pub type KEYMASK = crate::Reg<keymask::KEYMASK_SPEC>;
#[doc = "Key Mask x"]
pub mod keymask;
#[doc = "IDXBLK_H (rw) register accessor: an alias for `Reg<IDXBLK_H_SPEC>`"]
pub type IDXBLK_H = crate::Reg<idxblk_h::IDXBLK_H_SPEC>;
#[doc = "Index Block High"]
pub mod idxblk_h;
#[doc = "IDXBLK_L_DP (rw) register accessor: an alias for `Reg<IDXBLK_L_DP_SPEC>`"]
pub type IDXBLK_L_DP = crate::Reg<idxblk_l_dp::IDXBLK_L_DP_SPEC>;
#[doc = "Index Block Low Duplicate"]
pub mod idxblk_l_dp;