Fletchgen
The Fletcher Design Generator
|
A structure for all components in a Fletcher design. More...
#include <design.h>
Public Member Functions | |
Design (const std::shared_ptr< Options > &opts) | |
Make a new Design structure based on program options. | |
void | AnalyzeSchemas () |
Analyze the supplied Schemas. | |
void | AnalyzeRecordBatches () |
Analyze the supplied RecordBatches. | |
void | AnalyzeExternalIO () |
Analyze custom IO. | |
std::vector< cerata::OutputSpec > | GetOutputSpec () |
Obtain a Cerata OutputSpec from this design for Cerata back-ends to generate output. | |
Static Public Member Functions | |
static std::vector< MmioReg > | GetRecordBatchRegs (const std::vector< fletcher::RecordBatchDescription > &batch_desc) |
Obtain requited mmio registers based on the RecordBatch descriptions. More... | |
static std::vector< MmioReg > | ParseCustomRegs (const std::vector< std::string > ®s) |
Obtain required custom registers based on a vector of strings. | |
static void | RunVhdmmio (const std::vector< std::vector< MmioReg > * > ®s, Axi4LiteSpec axi_spec) |
Generate vhdmmio yaml and run it. | |
Public Attributes | |
std::shared_ptr< Options > | options |
The program options. | |
std::shared_ptr< SchemaSet > | schema_set |
The SchemaSet to base the design on. | |
std::vector< MmioReg > | default_regs |
Default registers. | |
std::vector< MmioReg > | recordbatch_regs |
RecordBatch registers. | |
std::vector< MmioReg > | kernel_regs |
Custom registers. | |
std::vector< MmioReg > | profiling_regs |
Profiling registers. | |
std::vector< std::vector< MmioReg > * > | all_regs = {&default_regs, &recordbatch_regs, &kernel_regs, &profiling_regs} |
Pointers to all registers vectors. | |
Axi4LiteSpec | mmio_spec |
std::optional< std::shared_ptr< Type > > | external |
External signals type. | |
std::vector< fletcher::RecordBatchDescription > | batch_desc |
The RecordBatchDescriptions to use in SREC generation. | |
std::vector< std::shared_ptr< RecordBatch > > | recordbatch_comps |
The RecordBatch(Readers/Writers) in the design. | |
std::shared_ptr< Kernel > | kernel_comp |
The Kernel component of this design. | |
std::shared_ptr< Mantle > | mantle_comp |
std::shared_ptr< Nucleus > | nucleus_comp |
The Nucleus component, that wraps the kernel and mmio. | |
std::shared_ptr< Component > | mmio_comp |
The Nucleus-level component generated by vhdmmio. | |
|
static |
Obtain requited mmio registers based on the RecordBatch descriptions.
Generate mmio registers from properly ordered RecordBatchDescriptions.
std::shared_ptr<Mantle> fletchgen::Design::mantle_comp |