Software for generating combinational circuits based on given parameters.
The following parameters are required for the correct operation of the program:
- Microsoft Visual Studio 17.1.1
- .NETFramework,Version=v4.8
The following packages are required for the correct operation of the program:
- ConsoleTables - output tables to the console. Version: 2.4.2.
- Newtonsoft - interaction with JSON files. Version: 13.0.1.
- NotificationWindow - library for displaying pop-ups. Version: 1.1.38.
All of the packages listed can be installed through Manage NuGet Packages in Microsoft Visual Studio.
Descriptions of the generators implemented in the program will be added to this section:
- Basic methods and classes for implementing generators
- Convert truth table to boolean expression
- To canonical normal forms
- Implementation of boolean expression parsing
- Implementation of a graph for storing a combinational circuit
- Generation of structural Verilog based on graph
- Implementation of the structure with the main logical elements, their designations and hierarchy level
- Implementation of the structure for storing the truth table
- Base class implementations for generating a combinational circuit dataset
- Generation using random truth table generator
- Implementation of a class for storing a combinational circuit
- Convert truth table to boolean expression
- Implementation of combinational circuit generators
- Based on truth tables:
The simplest method of generating a combinational circuit is the generation of a truth table of the circuit and its subsequent processing. To perform schema generation, you need to follow several steps:
- generation of a truth table;
- construction of SDNF and/or SKNF;
- representation of the resulting logical expression in a given basis;
- synthesis of a combinational circuit in Verilog.
- Method of level-by-level random connection of elements among themselves
- With random connection of vertices
- Implementation of helper functions
- Main software implementation
- Genetic Algorithm
- Parent selection implementation
- Implementation of parent selection parameters class
- Class implementation with 5 types of parent selection
- Crossbreeding Implementation
- Crossover parameter class implementation
- Class implementation with 5 crossover types
- Mutation Implementation
- Mutation parameter class implementation
- Class implementation with 6 types of mutations
- Implementation of the main class for type selection and direct mutation
- Implementation of the selection of a new population
- Implementation of the new population selection parameter class
- Implementation of a class with a base type of selection of a new population
- Parent selection implementation
- Mechanism for adding and evaluating parameters of third-party schemes
- Based on truth tables:
The simplest method of generating a combinational circuit is the generation of a truth table of the circuit and its subsequent processing. To perform schema generation, you need to follow several steps:
- Implementation of algorithms for assessing the reliability of combinational circuits
- Polynomial calculation implementation
- Connecting a third-party program Nadezhda
Программное обеспечение для генерации комбинационных схем на основе заданных параметров.
Для корректной работы необходимы:
- Microsoft Visual Studio 17.1.1
- .NETFramework,Version=v4.8
Для корректной работы необходимы следующие пакеты:
- ConsoleTables - вывод таблиц в консоль. Версия: 2.4.2.
- Newtonsoft - взаимодействие с файлами типа JSON. Версия: 13.0.1.
- NotificationWindow - библиотека для отображения всплывающих окон. Версия: 1.1.38.
Все перечисленные пакеты можно установить через "Управление пакетами NuGet" в Microsoft Visual Studio.
В данный раздел будут добавляться описания генераторов, реализованных в программе:
- Основные методы и классы для реализации генераторов
- Перевод таблицы истинности в логическое выражение
- В канонические нормальные формы
- Реализация парсинга логического выражения
- Реализация графа для храния комбинационной схемы
- Генерация структурного Verilog на основе графа
- Реализация структуры с оснвоными логическими элементами, их обозначениями и уровня иерархии
- Реализации структуры для хранения таблицы истинности
- Реализации базового класса для генерации датасета комбинационной схемы
- Генерация с использованием генератора на основе случайной таблицы истинности
- Реализация класса для хранения комбинационной схемы
- Перевод таблицы истинности в логическое выражение
- Реализация генераторов комбинационных схем
- На основе таблиц истинности:
Наиболее простым методом генерации комбинационной схемы является генерация таблицы истинности схемы и ее последующая обработка. Для выполнения генерации схемы необходимо выполнить несколько шагов:
- генерация таблицы истинности;
- построение СДНФ и/или СКНФ;
- представление полученного логического выражения в заданном базисе;
- синтез комбинационной схемы в Verilog.
- Методом поуровнего случайного соединения элементов между собой
- Со случайным соединением вершин
- Реализация вспомогательных функций
- Основна программная реализация
- Генетический алгоритм
- Реализация отбора родителей
- Реализация класса параметров отбора родителей
- Реализация класса с 5 типами отбора родителей
- Реализация скрещивания
- Реализация класса параметров скрещивания
- Реализация класса с 5 типами скрещивания
- Реализация мутаций
- Реализация класса параметров мутации
- Реализация класса с 6 типами мутаций
- Реализация основной класса для выбора типа и непосредственно мутации
- Реализация отбора новой популяции
- Реализация класса параметров отбора новой популяции
- Реализация класса с базовым типом отбора новой популяции
- Реализация отбора родителей
- Механизм добавления и оценки параметров сторонних схем
- На основе таблиц истинности:
Наиболее простым методом генерации комбинационной схемы является генерация таблицы истинности схемы и ее последующая обработка. Для выполнения генерации схемы необходимо выполнить несколько шагов:
- Реализация алгоритмов оценки надежности комбинационных схем
- Реализация вычисления полинома
- Подключение сторонней программы Nadezhda