What's the semantics of "hw.generator.schema", "hw.module.extern", and "hw.module.generated" in CIRCT HW Dialect

I encountered some challenges while reading this documentation, specifically regarding the semantics of “hw.generator.schema,” “hw.module.extern,” and “hw.module.generated”. For instance, even after compiling a file like “rocket-small.fir.gz” from https://github.com/circt/arc-tests/blob/main/rocket/rocket-small.fir.gz into HW, I still find references to “hw.generator.schema” and “hw.module.generated”. However, I’m unsure about the specific definition of “tag_array_0_combMem.” I couldn’t find relevant information in the CIRCT files. So, how can I obtain the definition of “tag_array_0_combMem”, and what do these three operations mean?

hw.generator.schema @FIRRTLMem, "FIRRTL_Memory", ["depth", "numReadPorts", "numWritePorts", "numReadWritePorts", "readLatency", "writeLatency", "width", "maskGran", "readUnderWrite", "writeUnderWrite", "writeClockIDs", "initFilename", "initIsBinary", "initIsInline"]
hw.module.generated @tag_array_0_combMem, @FIRRTLMem(%RW0_addr: i6, %RW0_en: i1, %RW0_clk: i1, %RW0_wmode: i1, %RW0_wdata: i21) -> (RW0_rdata: i21) attributes {depth = 64 : i64, initFilename = "", initIsBinary = false, initIsInline = false, maskGran = 21 : ui32, numReadPorts = 0 : ui32, numReadWritePorts = 1 : ui32, numWritePorts = 0 : ui32, readLatency = 1 : ui32, readUnderWrite = 0 : i32, width = 21 : ui32, writeClockIDs = [], writeLatency = 1 : ui32, writeUnderWrite = 1 : i32}

The above is a fraction of the compiled rocket. I would appreciate any guidance or information on these topics.