Question: FINAL PROJECT C + + Console Simulator for Digital Integrated Circuits Digital integrated circuits are designed to process digital signals and implement logical functions. Develop

FINAL PROJECT
C++
Console Simulator for Digital Integrated Circuits
Digital integrated circuits are designed to process digital signals and implement logical functions. Develop a console program in C++ that assists in designing and analyzing digital logic integrated circuits. For the purposes of this project, integrated circuits can have several digital inputs and one digital output.
The program should implement four main functions: DEFINE, RUN, ALL, and FIND.
Define a logical integrated circuit - DEFINE:
The DEFINE command allows the user to define a logical integrated circuit with a given name. Integrated circuits can be composed of basic logical operations AND, OR, and NOT, implementing a given logical function. The input of the logical function should be checked for errors and can be in infix or postfix notation, at your choice.
Examples (in infix):
DEFINE ic1(a, b): "a & b"//defines an integrated circuit ic1 with inputs a and b, performing the logical AND operation between them;
DEFINE ic2(a, b, c, d): "a & (b | c) & !d"
DEFINE ic3(a, b, c): "a & b | c |!d"//error: input d is not defined
When executing the DEFINE command, the program should parse the user's input and process its components:
DEFINE - command name;
icX(a, b, c, d)- name of the defined function and order of its inputs;
((a & b)| c)|!d - logical expression (function body).
Simulation of an integrated circuit for given parameters - RUN:
The RUN command allows the user to activate one of the defined integrated circuits for given input values.
Examples:
RUN ic1(1,0)-> Result: 0
When executing the RUN command, the program should parse the user's input and process its components:
RUN - command name;
icX(1,0,1,0)- name of the defined integrated circuit and values of its inputs;
Generating a truth table for a logical integrated circuit - ALL
The ALL command allows the user to execute one of the defined integrated circuits. It should generate all possible values of the arguments and output the corresponding result.
Example:
ALL ic1->
a | b | res
0|0|0
0|1|0
1|0|0
1|1|1
Bonus: Synthesis of a logical function - FIND:
The FIND command allows the user to find a logical function that is not available, based on an input truth table. The logical function can then be used to synthesize a logical circuit for the corresponding integrated circuit.
Example:
FIND 0,0,0:0;
0,0,1:0;
0,1,0:0;
0,1,1:0;
1,0,0:0;
1,0,1:0;
1,1,0:0;
1,1,1:1
Example:
FIND "table.csv"
Result: "a & b & c"
The input data can be provided via stdin and/or an external file.
The synthesis of the logical function can be performed using a method of your choice, such as:
Synthesis by 0 or synthesis by 1-(Perfect Conjunctive Normal Form and Perfect Disjunctive Normal Form).
Exhaustive search.
a & b & c & d;
a & b & c | d;
...
Search using a heuristic method. A heuristic implementation is possible, for example through a genetic algorithm. For this purpose, tree crossover operations should be implemented, which is an approach of genetic programming.
Additional functionalities may be added to the project. Solve this problem detaility using only these things if it is nesecarry and do NOT use COPILOT Stages of the software life cycle
Linux basics (Basic Linux commands)
Compilation process - gcc, make and makefiles
Binary number system, floating point numbers
Data types and variables.
Arithmetic, logic and bitwise operators, logic gates
General operators - conditional statements, loops
Homework #1
Functions
Pointers & pointer arithmetics
Arrays, strings
Dynamic memory - malloc(), calloc(), realloc(), free()
Homework #2
Function pointers, Static variables, variadic functions
Recursion
Dynamic structures - multidimensional arrays
Structs, unions, and bitfields
Homework #3
Preprocessor basics
Linked lists

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!