#[repr(C)]
#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
#[doc = "Register block"]
pub struct RegisterBlock {
    mem_start_addr: MEM_START_ADDR,
    mem_end_addr: MEM_END_ADDR,
    mem_current_addr: MEM_CURRENT_ADDR,
    mem_addr_update: MEM_ADDR_UPDATE,
    fifo_status: FIFO_STATUS,
    intr_ena: INTR_ENA,
    intr_raw: INTR_RAW,
    intr_clr: INTR_CLR,
    trigger: TRIGGER,
    config: CONFIG,
    filter_control: FILTER_CONTROL,
    filter_match_control: FILTER_MATCH_CONTROL,
    filter_comparator_control: FILTER_COMPARATOR_CONTROL,
    filter_p_comparator_match: FILTER_P_COMPARATOR_MATCH,
    filter_s_comparator_match: FILTER_S_COMPARATOR_MATCH,
    resync_prolonged: RESYNC_PROLONGED,
    ahb_config: AHB_CONFIG,
    clock_gate: CLOCK_GATE,
    _reserved18: [u8; 0x03b4],
    date: DATE,
}
impl RegisterBlock {
    #[doc = "0x00 - Memory start address"]
    #[inline(always)]
    pub const fn mem_start_addr(&self) -> &MEM_START_ADDR {
        &self.mem_start_addr
    }
    #[doc = "0x04 - Memory end address"]
    #[inline(always)]
    pub const fn mem_end_addr(&self) -> &MEM_END_ADDR {
        &self.mem_end_addr
    }
    #[doc = "0x08 - Memory current addr"]
    #[inline(always)]
    pub const fn mem_current_addr(&self) -> &MEM_CURRENT_ADDR {
        &self.mem_current_addr
    }
    #[doc = "0x0c - Memory address update"]
    #[inline(always)]
    pub const fn mem_addr_update(&self) -> &MEM_ADDR_UPDATE {
        &self.mem_addr_update
    }
    #[doc = "0x10 - FIFO status register"]
    #[inline(always)]
    pub const fn fifo_status(&self) -> &FIFO_STATUS {
        &self.fifo_status
    }
    #[doc = "0x14 - Interrupt enable register"]
    #[inline(always)]
    pub const fn intr_ena(&self) -> &INTR_ENA {
        &self.intr_ena
    }
    #[doc = "0x18 - Interrupt raw status register"]
    #[inline(always)]
    pub const fn intr_raw(&self) -> &INTR_RAW {
        &self.intr_raw
    }
    #[doc = "0x1c - Interrupt clear register"]
    #[inline(always)]
    pub const fn intr_clr(&self) -> &INTR_CLR {
        &self.intr_clr
    }
    #[doc = "0x20 - Trace enable register"]
    #[inline(always)]
    pub const fn trigger(&self) -> &TRIGGER {
        &self.trigger
    }
    #[doc = "0x24 - trace configuration register"]
    #[inline(always)]
    pub const fn config(&self) -> &CONFIG {
        &self.config
    }
    #[doc = "0x28 - filter control register"]
    #[inline(always)]
    pub const fn filter_control(&self) -> &FILTER_CONTROL {
        &self.filter_control
    }
    #[doc = "0x2c - filter match control register"]
    #[inline(always)]
    pub const fn filter_match_control(&self) -> &FILTER_MATCH_CONTROL {
        &self.filter_match_control
    }
    #[doc = "0x30 - filter comparator match control register"]
    #[inline(always)]
    pub const fn filter_comparator_control(&self) -> &FILTER_COMPARATOR_CONTROL {
        &self.filter_comparator_control
    }
    #[doc = "0x34 - primary comparator match value"]
    #[inline(always)]
    pub const fn filter_p_comparator_match(&self) -> &FILTER_P_COMPARATOR_MATCH {
        &self.filter_p_comparator_match
    }
    #[doc = "0x38 - secondary comparator match value"]
    #[inline(always)]
    pub const fn filter_s_comparator_match(&self) -> &FILTER_S_COMPARATOR_MATCH {
        &self.filter_s_comparator_match
    }
    #[doc = "0x3c - Resync configuration register"]
    #[inline(always)]
    pub const fn resync_prolonged(&self) -> &RESYNC_PROLONGED {
        &self.resync_prolonged
    }
    #[doc = "0x40 - AHB config register"]
    #[inline(always)]
    pub const fn ahb_config(&self) -> &AHB_CONFIG {
        &self.ahb_config
    }
    #[doc = "0x44 - Clock gate control register"]
    #[inline(always)]
    pub const fn clock_gate(&self) -> &CLOCK_GATE {
        &self.clock_gate
    }
    #[doc = "0x3fc - Version control register"]
    #[inline(always)]
    pub const fn date(&self) -> &DATE {
        &self.date
    }
}
#[doc = "MEM_START_ADDR (rw) register accessor: Memory start address\n\nYou can [`read`](crate::Reg::read) this register and get [`mem_start_addr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mem_start_addr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mem_start_addr`] module"]
pub type MEM_START_ADDR = crate::Reg<mem_start_addr::MEM_START_ADDR_SPEC>;
#[doc = "Memory start address"]
pub mod mem_start_addr;
#[doc = "MEM_END_ADDR (rw) register accessor: Memory end address\n\nYou can [`read`](crate::Reg::read) this register and get [`mem_end_addr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mem_end_addr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mem_end_addr`] module"]
pub type MEM_END_ADDR = crate::Reg<mem_end_addr::MEM_END_ADDR_SPEC>;
#[doc = "Memory end address"]
pub mod mem_end_addr;
#[doc = "MEM_CURRENT_ADDR (r) register accessor: Memory current addr\n\nYou can [`read`](crate::Reg::read) this register and get [`mem_current_addr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mem_current_addr`] module"]
pub type MEM_CURRENT_ADDR = crate::Reg<mem_current_addr::MEM_CURRENT_ADDR_SPEC>;
#[doc = "Memory current addr"]
pub mod mem_current_addr;
#[doc = "MEM_ADDR_UPDATE (w) register accessor: Memory address update\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mem_addr_update::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mem_addr_update`] module"]
pub type MEM_ADDR_UPDATE = crate::Reg<mem_addr_update::MEM_ADDR_UPDATE_SPEC>;
#[doc = "Memory address update"]
pub mod mem_addr_update;
#[doc = "FIFO_STATUS (r) register accessor: FIFO status register\n\nYou can [`read`](crate::Reg::read) this register and get [`fifo_status::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@fifo_status`] module"]
pub type FIFO_STATUS = crate::Reg<fifo_status::FIFO_STATUS_SPEC>;
#[doc = "FIFO status register"]
pub mod fifo_status;
#[doc = "INTR_ENA (rw) register accessor: Interrupt enable register\n\nYou can [`read`](crate::Reg::read) this register and get [`intr_ena::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intr_ena::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intr_ena`] module"]
pub type INTR_ENA = crate::Reg<intr_ena::INTR_ENA_SPEC>;
#[doc = "Interrupt enable register"]
pub mod intr_ena;
#[doc = "INTR_RAW (r) register accessor: Interrupt raw status register\n\nYou can [`read`](crate::Reg::read) this register and get [`intr_raw::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intr_raw`] module"]
pub type INTR_RAW = crate::Reg<intr_raw::INTR_RAW_SPEC>;
#[doc = "Interrupt raw status register"]
pub mod intr_raw;
#[doc = "INTR_CLR (w) register accessor: Interrupt clear register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intr_clr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intr_clr`] module"]
pub type INTR_CLR = crate::Reg<intr_clr::INTR_CLR_SPEC>;
#[doc = "Interrupt clear register"]
pub mod intr_clr;
#[doc = "TRIGGER (rw) register accessor: Trace enable register\n\nYou can [`read`](crate::Reg::read) this register and get [`trigger::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`trigger::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@trigger`] module"]
pub type TRIGGER = crate::Reg<trigger::TRIGGER_SPEC>;
#[doc = "Trace enable register"]
pub mod trigger;
#[doc = "CONFIG (rw) register accessor: trace configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`config::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`config::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@config`] module"]
pub type CONFIG = crate::Reg<config::CONFIG_SPEC>;
#[doc = "trace configuration register"]
pub mod config;
#[doc = "FILTER_CONTROL (rw) register accessor: filter control register\n\nYou can [`read`](crate::Reg::read) this register and get [`filter_control::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`filter_control::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@filter_control`] module"]
pub type FILTER_CONTROL = crate::Reg<filter_control::FILTER_CONTROL_SPEC>;
#[doc = "filter control register"]
pub mod filter_control;
#[doc = "FILTER_MATCH_CONTROL (rw) register accessor: filter match control register\n\nYou can [`read`](crate::Reg::read) this register and get [`filter_match_control::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`filter_match_control::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@filter_match_control`] module"]
pub type FILTER_MATCH_CONTROL = crate::Reg<filter_match_control::FILTER_MATCH_CONTROL_SPEC>;
#[doc = "filter match control register"]
pub mod filter_match_control;
#[doc = "FILTER_COMPARATOR_CONTROL (rw) register accessor: filter comparator match control register\n\nYou can [`read`](crate::Reg::read) this register and get [`filter_comparator_control::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`filter_comparator_control::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@filter_comparator_control`] module"]
pub type FILTER_COMPARATOR_CONTROL =
    crate::Reg<filter_comparator_control::FILTER_COMPARATOR_CONTROL_SPEC>;
#[doc = "filter comparator match control register"]
pub mod filter_comparator_control;
#[doc = "FILTER_P_COMPARATOR_MATCH (rw) register accessor: primary comparator match value\n\nYou can [`read`](crate::Reg::read) this register and get [`filter_p_comparator_match::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`filter_p_comparator_match::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@filter_p_comparator_match`] module"]
pub type FILTER_P_COMPARATOR_MATCH =
    crate::Reg<filter_p_comparator_match::FILTER_P_COMPARATOR_MATCH_SPEC>;
#[doc = "primary comparator match value"]
pub mod filter_p_comparator_match;
#[doc = "FILTER_S_COMPARATOR_MATCH (rw) register accessor: secondary comparator match value\n\nYou can [`read`](crate::Reg::read) this register and get [`filter_s_comparator_match::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`filter_s_comparator_match::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@filter_s_comparator_match`] module"]
pub type FILTER_S_COMPARATOR_MATCH =
    crate::Reg<filter_s_comparator_match::FILTER_S_COMPARATOR_MATCH_SPEC>;
#[doc = "secondary comparator match value"]
pub mod filter_s_comparator_match;
#[doc = "RESYNC_PROLONGED (rw) register accessor: Resync configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`resync_prolonged::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`resync_prolonged::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@resync_prolonged`] module"]
pub type RESYNC_PROLONGED = crate::Reg<resync_prolonged::RESYNC_PROLONGED_SPEC>;
#[doc = "Resync configuration register"]
pub mod resync_prolonged;
#[doc = "AHB_CONFIG (rw) register accessor: AHB config register\n\nYou can [`read`](crate::Reg::read) this register and get [`ahb_config::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ahb_config::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ahb_config`] module"]
pub type AHB_CONFIG = crate::Reg<ahb_config::AHB_CONFIG_SPEC>;
#[doc = "AHB config register"]
pub mod ahb_config;
#[doc = "CLOCK_GATE (rw) register accessor: Clock gate control register\n\nYou can [`read`](crate::Reg::read) this register and get [`clock_gate::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`clock_gate::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clock_gate`] module"]
pub type CLOCK_GATE = crate::Reg<clock_gate::CLOCK_GATE_SPEC>;
#[doc = "Clock gate control register"]
pub mod clock_gate;
pub use crate::aes::{date, DATE};
