Added simple example plugin creating instruction histogram

This commit is contained in:
2018-02-11 21:23:26 +00:00
parent c5a7adcef5
commit 36be8b87f1
10 changed files with 186 additions and 6 deletions

View File

@ -1,8 +1,9 @@
{
'${coreDef.name}' : [<%instructions.each{instr -> %>
"${coreDef.name}" : [<%instructions.eachWithIndex{instr,index -> %>${index==0?"":","}
{
'name' : '${instr.name}',
'delay' : ${generator.hasAttribute(instr.instruction, com.minres.coredsl.coreDsl.InstrAttribute.COND)?[1,1]:1
},<%}%>
"name" : "${instr.name}",
"size" : ${instr.length},
"delay" : ${generator.hasAttribute(instr.instruction, com.minres.coredsl.coreDsl.InstrAttribute.COND)?[1,1]:1}
}<%}%>
]
}

View File

@ -52,6 +52,8 @@ struct ${coreDef.name.toLowerCase()};
template<>
struct traits<${coreDef.name.toLowerCase()}> {
constexpr static char const* const core_type = "${coreDef.name}";
enum constants {${coreDef.constants.collect{c -> c.name+"="+c.value}.join(', ')}};
enum reg_e {<%
@ -110,6 +112,8 @@ struct ${coreDef.name.toLowerCase()}: public arch_if {
${coreDef.name.toLowerCase()}();
~${coreDef.name.toLowerCase()}();
const std::string core_type_name() const override {return traits<${coreDef.name.toLowerCase()}>::core_type;}
void reset(uint64_t address=0) override;
uint8_t* get_regs_base_ptr() override;