public static ProtoCore.VHDL.AST.IfNode GenerateClockSyncTemplate() { // rising_edge call List <ProtoCore.VHDL.AST.VHDLNode> argList = new List <ProtoCore.VHDL.AST.VHDLNode>(); argList.Add(new ProtoCore.VHDL.AST.IdentifierNode(ProtoCore.VHDL.Constants.Naming.ClockSignalName)); ProtoCore.VHDL.AST.FunctionCallNode clockedgeCall = new ProtoCore.VHDL.AST.FunctionCallNode( ProtoCore.VHDL.Constants.Naming.RisingEdge, argList ); // clock sync ifstmt ProtoCore.VHDL.AST.IfNode clockIf = new ProtoCore.VHDL.AST.IfNode(ProtoCore.VHDL.Constants.Naming.ClockSync); clockIf.IfExpr = clockedgeCall; return(clockIf); }
public static ProtoCore.VHDL.AST.IfNode GenerateResetSyncTemplate() { // Reset sync ifstmt ProtoCore.VHDL.AST.IfNode resetSyncIf = new ProtoCore.VHDL.AST.IfNode(ProtoCore.VHDL.Constants.Naming.ResetSync); resetSyncIf.IfExpr = new ProtoCore.VHDL.AST.BinaryExpressionNode( new ProtoCore.VHDL.AST.IdentifierNode(ProtoCore.VHDL.Constants.Naming.ResetSignalName), new ProtoCore.VHDL.AST.BitStringNode(1), ProtoCore.VHDL.AST.BinaryExpressionNode.Operator.Eq ); resetSyncIf.ElsifExprList.Add(new ProtoCore.VHDL.AST.BinaryExpressionNode( new ProtoCore.VHDL.AST.IdentifierNode(ProtoCore.VHDL.Constants.Naming.ResetSignalName), new ProtoCore.VHDL.AST.BitStringNode(0), ProtoCore.VHDL.AST.BinaryExpressionNode.Operator.Eq )); return(resetSyncIf); }