Esempio n. 1
0
        public void SetGenerators(System.Windows.Forms.ListView lv)
        {
            GeneratorSettings set;
            GeneratorDialog   dialog = new GeneratorDialog();


            foreach (PortGenerator pg in selectedPorts)
            {
                if (pg.Name == lv.SelectedItems[0].Text)
                {
                    switch (pg.Port.subtype.sub_type_indication_string.ToLower())
                    {
                    case "std_logic":
                        set = new GeneratorSettings(1, GeneratorSettings.GeneratedValue.EnumerableValue, GeneratorSettings.GeneratedValue.EnumerableValue, new List <object>(VHDL.builtin.StdLogic1164.STD_ULOGIC.Literals));
                        //dialog = new GeneratorDialog(set);
                        dialog.GenSettings = set;
                        dialog.ShowDialog();
                        pg.Generator = dialog.Generator;
                        break;

                    case "std_logic_vector":
                        set = new GeneratorSettings((uint)(Math.Abs(pg.Port.subtype.range.leftRange - pg.Port.subtype.range.rightRange) + 1), GeneratorSettings.GeneratedValue.IntegerValue | GeneratorSettings.GeneratedValue.DoubleValue | GeneratorSettings.GeneratedValue.BoolArray, GeneratorSettings.GeneratedValue.IntegerValue);
                        //set = new GeneratorSettings((uint)(Math.Abs(pg.Port.subtype.range.leftRange - pg.Port.subtype.range.rightRange) + 1), GeneratorSettings.GeneratedValue.IntegerValue | GeneratorSettings.GeneratedValue.DoubleValue | GeneratorSettings.GeneratedValue.BoolArray, GeneratorSettings.GeneratedValue.BoolArray);
                        //dialog = new GeneratorDialog(set);
                        dialog.GenSettings = set;
                        dialog.ShowDialog();
                        pg.Generator = dialog.Generator;
                        break;

                    case "bit":
                        set = new GeneratorSettings(1, GeneratorSettings.GeneratedValue.EnumerableValue, GeneratorSettings.GeneratedValue.EnumerableValue, new List <object>(VHDL.builtin.Standard.BIT.Literals));
                        //dialog = new GeneratorDialog(set);
                        //dialog = new GeneratorDialog(set);
                        dialog.GenSettings = set;
                        dialog.ShowDialog();
                        pg.Generator = dialog.Generator;
                        break;

                    case "bit_vector":
                        set = new GeneratorSettings((uint)(Math.Abs(pg.Port.subtype.range.leftRange - pg.Port.subtype.range.rightRange) + 1), GeneratorSettings.GeneratedValue.IntegerValue | GeneratorSettings.GeneratedValue.DoubleValue | GeneratorSettings.GeneratedValue.BoolArray, GeneratorSettings.GeneratedValue.BoolArray);
                        //dialog = new GeneratorDialog(set);
                        dialog.GenSettings = set;
                        dialog.ShowDialog();
                        pg.Generator = dialog.Generator;
                        break;

                    default:
                        System.Windows.Forms.MessageBox.Show("Generators can work only with STD_LOGIC,STD_LOGIC_VECTOR,BIT,BIT_VECTOR types.");
                        return;

                        break;
                    }
                }
            }
        }
Esempio n. 2
0
 private void SetCounterGenerator_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     try
     {
         GeneratorDialog diag = new GeneratorDialog(cursorViewer.Selection.Variable, GeneratorType.Counter);
         if (diag.ShowDialog() == true)
         {
             BaseGenerator generator = diag.Generator;
             generator.Fill(cursorViewer.Selection.Variable.Signal, cursorViewer.Selection.Start, cursorViewer.Selection.End);
             cursorViewer.Selection = null;
             UpdateSignalView();
             core.IsModified = true;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }