CoreTML framework
an open-source template-based IP core generator

About

CoreTML framework is an open-source template-based configuration system (template engine). It allows the developer to create parametrized templates by inserting special content to any text files. These templates are intended to be used to generate output files depending upon parameters chosen by the user.

CoreTML framework was created primarily as an IP core generator platform for the design and deployment of semiconductor IP cores on a register transfer level (RTL) using hardware description languages (HDL). It provides a few advantages over the other approaches:

CoreTML framework has been successfully used as a code generation tool in complex FPGA and ASIC projects. The CoreTML distribution includes a couple of IP core generator examples.

CoreTML framework is not limited to any particular task and can be also used for purposes other than semiconductor IP design.

Language

TML stands for Template Markup Language. A template is simply a text file which incorporates some TML tags. These tags are inserted using an escape character (backslash). Some tags allow the developer to invoke Lua scripts. It is also possible to invoke a TML template from another TML template.

A few examples:

Template Parameters Output
Hello, world! - Hello, world!
architecture \eval{archname} of \eval{entityname} is archname="behavioral"
entityname="mycore"
architecture behavioral of mycore is
always @(\if{edge=="rising"}\then{posedge}\else{negedge} clk) begin edge="rising" always @(posedge clk) begin
z<=\eval{2^m-x} m=3
x=2
z<=6
\include{scriptlib.tml}
y<='1' when \script{
for i=1,n do
write("x=\\""..binarystring(2^(i-1),n).."\\"")
if i<n then write(" or ") end
end
} else '0';
n=8 y<='1' when x="00000001" or x="00000010" or x="00000100" or x="00001000" or x="00010000" or x="00100000" or x="01000000" or x="10000000" else '0';

Structure

From the user's standpoint, CoreTML has two processing stages:

  1. TMLconf creates user interface from a TML-c interface description. This user interface allows the user to configure template parameters. As a result, an invocation script is generated.
  2. TMLgen parses invocation script and TML template(s) and generates output file(s).

CoreTML also includes a Windows-only CoreTML Editor (heavily based on SciTE) supporting TML syntax highlighting.

Contacts

To submit a bug report or a feature request, use our tracker system. Otherwise, send a message to the developer.


Get coretml at SourceForge.net. Fast, secure and Free Open Source software downloads

Copyright © 2010-2014 by Alex I. Kuznetsov.

All product and company names mentioned here are trademarks or registered trademarks of their respective owners.