assertnot(is_power_of_two_f(ipb_entries_c)= false)report"NEORV32 CPU CONFIG ERROR! Number of entries in instruction prefetch buffer <ipb_entries_c> has to be a power of two."severityerror;
assertnot(is_power_of_two_f(ipb_entries_c)= false)report"NEORV32 CPU CONFIG ERROR! Number of entries in instruction prefetch buffer <ipb_entries_c> has to be a power of two."severityerror;
-- A extension - only lr.w and sc.w are supported yet --
-- A extension - only lr.w and sc.w are supported yet --
assertnot(CPU_EXTENSION_RISCV_A = true)report"NEORV32 CPU CONFIG WARNING! Atomic operations extension (A) only supports <lr.w> and <sc.w> instructions."severitywarning;
assertnot(CPU_EXTENSION_RISCV_A = true)report"NEORV32 CPU CONFIG WARNING! Atomic operations extension (A) only supports <lr.w> and <sc.w> instructions."severitywarning;
-- Bit manipulation notifier --
-- Bit manipulation notifier --
assertnot(CPU_EXTENSION_RISCV_B = true)report"NEORV32 CPU CONFIG WARNING! Bit manipulation extension (B) only supports 'base' instruction sub-set (Zbb) yet and is still 'unofficial' (not-ratified)."severitywarning;
assertnot(CPU_EXTENSION_RISCV_B = true)report"NEORV32 CPU CONFIG WARNING! Bit manipulation extension (B) is still highly experimental (not ratified yet)."severitywarning;
-- PMP regions check --
-- PMP regions check --
assertnot(PMP_NUM_REGIONS >64)report"NEORV32 CPU CONFIG ERROR! Number of PMP regions <PMP_NUM_REGIONS> out of valid range (0..64)."severityerror;
assertnot(PMP_NUM_REGIONS >64)report"NEORV32 CPU CONFIG ERROR! Number of PMP regions <PMP_NUM_REGIONS> out of valid range (0..64)."severityerror;
-- PMP granulartiy --
-- PMP granulartiy --
assertnot((is_power_of_two_f(PMP_MIN_GRANULARITY)= false)and(PMP_NUM_REGIONS >0))report"NEORV32 CPU CONFIG ERROR! PMP granulartiy has to be a power of two."severityerror;
assertnot((is_power_of_two_f(PMP_MIN_GRANULARITY)= false)and(PMP_NUM_REGIONS >0))report"NEORV32 CPU CONFIG ERROR! PMP granulartiy has to be a power of two."severityerror;