Exemple #1
0
        public virtual string TransformText()
        {
            this.GenerationEnvironment = null;

            #line 6 ""
            this.Write(@"
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

-- library SYSTEM_TYPES;
use work.SYSTEM_TYPES.ALL;

-- User defined packages here
-- #### USER-DATA-IMPORTS-START
-- #### USER-DATA-IMPORTS-END

package CUSTOM_TYPES is

-- User defined types here
-- #### USER-DATA-CORETYPES-START
-- #### USER-DATA-CORETYPES-END

");

            #line default
            #line hidden

            #line 24 ""
            if (RS.CustomTypes.Any())
            {
            #line default
            #line hidden

            #line 25 ""
                this.Write("    -- Types for processes\n");

            #line default
            #line hidden

            #line 26 ""
                foreach (var t in RS.CustomTypes)
                {
            #line default
            #line hidden

            #line 27 ""
                    this.Write("    type ");

            #line default
            #line hidden

            #line 27 ""
                    this.Write(this.ToStringHelper.ToStringWithCulture(t.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 27 ""
                    this.Write(" is\n");

            #line default
            #line hidden

            #line 28 ""
                    foreach (var f in RS.ListMembers(t))
                    {
            #line default
            #line hidden

            #line 29 ""
                        this.Write("    ");

            #line default
            #line hidden

            #line 29 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(f));

            #line default
            #line hidden

            #line 29 ""
                        this.Write("\n");

            #line default
            #line hidden

            #line 30 ""
                    }

            #line default
            #line hidden

            #line 31 ""
                    this.Write("\n");

            #line default
            #line hidden

            #line 32 ""
                }

            #line default
            #line hidden

            #line 33 ""
                this.Write("\n");

            #line default
            #line hidden

            #line 34 ""
            }

            #line default
            #line hidden

            #line 35 ""
            foreach (var t in RS.TypeDefinitions)
            {
            #line default
            #line hidden

            #line 36 ""
                this.Write("    ");

            #line default
            #line hidden

            #line 36 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(t));

            #line default
            #line hidden

            #line 36 ""
                this.Write(";\n");

            #line default
            #line hidden

            #line 37 ""
            }

            #line default
            #line hidden

            #line 38 ""
            this.Write("\n");

            #line default
            #line hidden

            #line 39 ""
            foreach (var enumtype in RS.EnumTypes.Where(x => x.IsIrregularEnum))
            {
            #line default
            #line hidden

            #line 40 ""
                this.Write("    -- Converts an integer to ");

            #line default
            #line hidden

            #line 40 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 40 ""
                this.Write("\n    pure function fromValue_");

            #line default
            #line hidden

            #line 41 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 41 ""
                this.Write("(v: INTEGER) return ");

            #line default
            #line hidden

            #line 41 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 41 ""
                this.Write(";\n    -- Converts a ");

            #line default
            #line hidden

            #line 42 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 42 ""
                this.Write(" to an integer\n    pure function toValue_");

            #line default
            #line hidden

            #line 43 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 43 ""
                this.Write("(v: ");

            #line default
            #line hidden

            #line 43 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 43 ""
                this.Write(") return INTEGER;\n");

            #line default
            #line hidden

            #line 44 ""
            }

            #line default
            #line hidden

            #line 45 ""
            this.Write("\n");

            #line default
            #line hidden

            #line 46 ""
            if (RS.BusArrays.Any())
            {
            #line default
            #line hidden

            #line 47 ""
                this.Write("    -- Bus array definitions\n");

            #line default
            #line hidden

            #line 48 ""
                foreach (var signal in RS.BusArrays)
                {
                    var vhdltype    = RS.VHDLType(signal);
                    var elementtype = RS.TypeScope.GetByName(vhdltype.ElementName);
                    var bus         = signal.Parent as AST.Bus;
                    var arraylength = RS.GetArrayLength(signal);

                    if (elementtype.IsSystemType)
                    {
            #line default
            #line hidden

            #line 55 ""
                        this.Write("    subtype ");

            #line default
            #line hidden

            #line 55 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name));

            #line default
            #line hidden

            #line 55 ""
                        this.Write("_");

            #line default
            #line hidden

            #line 55 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name));

            #line default
            #line hidden

            #line 55 ""
                        this.Write("_type is ");

            #line default
            #line hidden

            #line 55 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(elementtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 55 ""
                        this.Write("_ARRAY(0 to ");

            #line default
            #line hidden

            #line 55 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(arraylength));

            #line default
            #line hidden

            #line 55 ""
                        this.Write(" - 1);\n");

            #line default
            #line hidden

            #line 56 ""
                    }
                    else if (RS.Config.USE_EXPLICIT_LITERAL_ARRAY_LENGTH)
                    {
            #line default
            #line hidden

            #line 57 ""
                        this.Write("    type ");

            #line default
            #line hidden

            #line 57 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name));

            #line default
            #line hidden

            #line 57 ""
                        this.Write("_");

            #line default
            #line hidden

            #line 57 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name));

            #line default
            #line hidden

            #line 57 ""
                        this.Write("_type is array (0 to ");

            #line default
            #line hidden

            #line 57 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(arraylength - 1));

            #line default
            #line hidden

            #line 57 ""
                        this.Write(") of ");

            #line default
            #line hidden

            #line 57 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(elementtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 57 ""
                        this.Write(";\n");

            #line default
            #line hidden

            #line 58 ""
                    }
                    else
                    {
            #line default
            #line hidden

            #line 59 ""
                        this.Write("    type ");

            #line default
            #line hidden

            #line 59 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name));

            #line default
            #line hidden

            #line 59 ""
                        this.Write("_");

            #line default
            #line hidden

            #line 59 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name));

            #line default
            #line hidden

            #line 59 ""
                        this.Write("_type is array (0 to ");

            #line default
            #line hidden

            #line 59 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(arraylength));

            #line default
            #line hidden

            #line 59 ""
                        this.Write(" - 1) of ");

            #line default
            #line hidden

            #line 59 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(elementtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 59 ""
                        this.Write(";\n");

            #line default
            #line hidden

            #line 60 ""
                    }

            #line default
            #line hidden

            #line 61 ""
                }

            #line default
            #line hidden

            #line 62 ""
            }

            #line default
            #line hidden

            #line 63 ""
            this.Write("\n");

            #line default
            #line hidden

            #line 64 ""
            foreach (var enumtype in RS.EnumTypes)
            {
            #line default
            #line hidden

            #line 65 ""
                this.Write("    -- converts ");

            #line default
            #line hidden

            #line 65 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.Name));

            #line default
            #line hidden

            #line 65 ""
                this.Write(" into a string\n    pure function str(b: ");

            #line default
            #line hidden

            #line 66 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 66 ""
                this.Write(") return string;\n");

            #line default
            #line hidden

            #line 67 ""
            }

            #line default
            #line hidden

            #line 68 ""
            this.Write("\n");

            #line default
            #line hidden

            #line 69 ""
            if (RS.Constants.Any())
            {
            #line default
            #line hidden

            #line 70 ""
                this.Write("    -- Constant definitions\n");

            #line default
            #line hidden

            #line 71 ""
            }

            #line default
            #line hidden

            #line 72 ""
            foreach (var c in RS.Constants)
            {
            #line default
            #line hidden

            #line 73 ""
                this.Write("    ");

            #line default
            #line hidden

            #line 73 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(c));

            #line default
            #line hidden

            #line 73 ""
                this.Write(";\n");

            #line default
            #line hidden

            #line 74 ""
            }

            #line default
            #line hidden

            #line 75 ""
            this.Write("\n\n-- User defined types here\n-- #### USER-DATA-TRAILTYPES-START\n-- #### USER-DATA" +
                       "-TRAILTYPES-END\n\n\nend CUSTOM_TYPES;\n\n");

            #line default
            #line hidden

            #line 84 ""
            if (RS.EnumTypes.Any())
            {
            #line default
            #line hidden

            #line 85 ""
                this.Write("package body CUSTOM_TYPES is\n");

            #line default
            #line hidden

            #line 86 ""
                foreach (var enumtype in RS.EnumTypes)
                {
            #line default
            #line hidden

            #line 87 ""
                    this.Write("    -- converts ");

            #line default
            #line hidden

            #line 87 ""
                    this.Write(this.ToStringHelper.ToStringWithCulture(enumtype));

            #line default
            #line hidden

            #line 87 ""
                    this.Write(" into a string\n    pure function str(b: ");

            #line default
            #line hidden

            #line 88 ""
                    this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 88 ""
                    this.Write(") return string is\n    begin\n        return ");

            #line default
            #line hidden

            #line 90 ""
                    this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 90 ""
                    this.Write("\'image(b);\n    end str;\n\n");

            #line default
            #line hidden

            #line 93 ""
                    if (enumtype.IsIrregularEnum)
                    {
            #line default
            #line hidden

            #line 94 ""
                        this.Write("    -- Converts an integer to ");

            #line default
            #line hidden

            #line 94 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 94 ""
                        this.Write("\n    pure function fromValue_");

            #line default
            #line hidden

            #line 95 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 95 ""
                        this.Write("(v: INTEGER) return ");

            #line default
            #line hidden

            #line 95 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 95 ""
                        this.Write(" is\n    begin\n        case v is\n");

            #line default
            #line hidden

            #line 98 ""
                        foreach (var f in RS.GetEnumValues(enumtype))
                        {
            #line default
            #line hidden

            #line 99 ""
                            this.Write("            when ");

            #line default
            #line hidden

            #line 99 ""
                            this.Write(this.ToStringHelper.ToStringWithCulture(f.Value));

            #line default
            #line hidden

            #line 99 ""
                            this.Write(" =>\n                return ");

            #line default
            #line hidden

            #line 100 ""
                            this.Write(this.ToStringHelper.ToStringWithCulture(f.Key));

            #line default
            #line hidden

            #line 100 ""
                            this.Write(";\n");

            #line default
            #line hidden

            #line 101 ""
                        }

            #line default
            #line hidden

            #line 102 ""
                        this.Write("           when others =>\n               return ");

            #line default
            #line hidden

            #line 103 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(RS.GetEnumValues(enumtype).First().Key));

            #line default
            #line hidden

            #line 103 ""
                        this.Write(";\n        end case;\n    end fromValue_");

            #line default
            #line hidden

            #line 105 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 105 ""
                        this.Write(";\n\n    -- Converts a ");

            #line default
            #line hidden

            #line 107 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 107 ""
                        this.Write(" to an integer\n    pure function toValue_");

            #line default
            #line hidden

            #line 108 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 108 ""
                        this.Write("(v: ");

            #line default
            #line hidden

            #line 108 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 108 ""
                        this.Write(") return INTEGER is\n    begin\n        case v is\n");

            #line default
            #line hidden

            #line 111 ""
                        foreach (var f in RS.GetEnumValues(enumtype))
                        {
            #line default
            #line hidden

            #line 112 ""
                            this.Write("            when ");

            #line default
            #line hidden

            #line 112 ""
                            this.Write(this.ToStringHelper.ToStringWithCulture(f.Key));

            #line default
            #line hidden

            #line 112 ""
                            this.Write(" =>\n                return ");

            #line default
            #line hidden

            #line 113 ""
                            this.Write(this.ToStringHelper.ToStringWithCulture(f.Value));

            #line default
            #line hidden

            #line 113 ""
                            this.Write(";\n");

            #line default
            #line hidden

            #line 114 ""
                        }

            #line default
            #line hidden

            #line 115 ""
                        this.Write("           when others =>\n               return ");

            #line default
            #line hidden

            #line 116 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(RS.GetEnumValues(enumtype).First().Value));

            #line default
            #line hidden

            #line 116 ""
                        this.Write(";\n        end case;\n    end toValue_");

            #line default
            #line hidden

            #line 118 ""
                        this.Write(this.ToStringHelper.ToStringWithCulture(enumtype.ToSafeVHDLName()));

            #line default
            #line hidden

            #line 118 ""
                        this.Write(";\n\n");

            #line default
            #line hidden

            #line 120 ""
                    }

            #line default
            #line hidden

            #line 121 ""
                }

            #line default
            #line hidden

            #line 122 ""
                this.Write("\n\n-- User defined bodies here\n-- #### USER-DATA-BODY-START\n-- #### USER-DATA-BODY" +
                           "-END\n\nend CUSTOM_TYPES;\n");

            #line default
            #line hidden

            #line 129 ""
            }

            #line default
            #line hidden
            return(this.GenerationEnvironment.ToString());
        }
Exemple #2
0
        public virtual string TransformText()
        {
            this.GenerationEnvironment = null;

            #line 1 ""
            this.Write("");

            #line default
            #line hidden

            #line 6 ""
            this.Write("#ifndef SME_SHAREDDEFINITIONS_HPP\n#define SME_SHAREDDEFINITIONS_HPP\n\n#include \"SystemTypes.hpp\"\n\n// Insert additional includes here\n// #### USER-DATA-INCLUDE-START\n// #### USER-DATA-INCLUDE-END\n\n");

            #line default
            #line hidden

            #line 15 ""
            foreach (var e in RS.EnumTypes)
            {
            #line default
            #line hidden

            #line 16 ""
                this.Write("enum ");

            #line default
            #line hidden

            #line 16 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(e.Name));

            #line default
            #line hidden

            #line 16 ""
                this.Write(" {\n");

            #line default
            #line hidden

            #line 17 ""

                var members = RS.ListMembers(e).ToArray();
                foreach (var el in members)
                {
            #line default
            #line hidden

            #line 21 ""
                    this.Write("    ");

            #line default
            #line hidden

            #line 21 ""
                    this.Write(this.ToStringHelper.ToStringWithCulture(el));

            #line default
            #line hidden

            #line 21 ""
                    this.Write(this.ToStringHelper.ToStringWithCulture(el == members.Last() ? "" : ","));

            #line default
            #line hidden

            #line 21 ""
                    this.Write("\n");

            #line default
            #line hidden

            #line 22 ""
                }

            #line default
            #line hidden

            #line 23 ""
                this.Write("}\n");

            #line default
            #line hidden

            #line 24 ""
            }

            #line default
            #line hidden

            #line 25 ""
            this.Write("\n");

            #line default
            #line hidden

            #line 26 ""
            foreach (var e in RS.StructTypes)
            {
            #line default
            #line hidden

            #line 27 ""
                this.Write("struct ");

            #line default
            #line hidden

            #line 27 ""
                this.Write(this.ToStringHelper.ToStringWithCulture(e.Name));

            #line default
            #line hidden

            #line 27 ""
                this.Write(" {\n");

            #line default
            #line hidden

            #line 28 ""

                var members = RS.ListMembers(e).ToArray();
                foreach (var el in members)
                {
            #line default
            #line hidden

            #line 32 ""
                    this.Write("    ");

            #line default
            #line hidden

            #line 32 ""
                    this.Write(this.ToStringHelper.ToStringWithCulture(el));

            #line default
            #line hidden

            #line 32 ""
                    this.Write(";\n");

            #line default
            #line hidden

            #line 33 ""
                }

            #line default
            #line hidden

            #line 34 ""
                this.Write("}\n");

            #line default
            #line hidden

            #line 35 ""
            }

            #line default
            #line hidden

            #line 36 ""
            if (RS.Constants.Any())
            {
            #line default
            #line hidden

            #line 37 ""
                this.Write("\n// Constants\n");

            #line default
            #line hidden

            #line 39 ""
                foreach (var e in RS.Constants)
                {
            #line default
            #line hidden

            #line 40 ""
                    this.Write(this.ToStringHelper.ToStringWithCulture(e));

            #line default
            #line hidden

            #line 40 ""
                    this.Write(";\n");

            #line default
            #line hidden

            #line 41 ""
                }

            #line default
            #line hidden

            #line 42 ""
            }

            #line default
            #line hidden

            #line 43 ""
            this.Write("\n// Insert additional code and classes here\n// #### USER-DATA-EXTRA-START\n// #### USER-DATA-EXTRA-END\n\n#endif /* SME_SHAREDDEFINITIONS_HPP */\n");

            #line default
            #line hidden
            return(this.GenerationEnvironment.ToString());
        }