 PROJECT 1:
"Integrating Synthesis with Negative
Gates with Boolean Functional Decomposer for VLSI Layout Minimization".
This is a C language project. (continuation from Fall quarter)
I would like to obtain from you problem's formulation of the project in writing.
Programs are available from Craig Files.
I would like to see some initial results of programs working together, in the simplest mode, soon.
 PROJECT 2:
"Realization of Hardware Search Machine on DECPERLE1 Board FPGA Accelerator".
This is VHDL and C language project. (continuation)
I would like to have your complete paper that you have been writing for the
last two quarters with your previous group memebers,
plus proposal what to do this quarter.
Please learn how to use the new Xilinx tools that we obtained recently.
The machine must be realized practically in Xilinx.
 PROJECT 3:
"State Assignment of Finite State Machines for High Testability".
This is a LISP language project.
Read first about state assignment from my book and Kohavi.
Next read about state assignment for improved testability.
Think how our Lisp algorithms can be adopted for testability.
Test on state machines in order to analyse testability.
Use EXORCISM program for realization of logic after state assignment.
If the solution function
happens to be a GRM, use test generation for GRM, if it happens to be PPRM, use test for PPRM, etc.
In the worst case of ESOP, use single fault method of Ugur.
This way, you will be able to observe how often statistically good
state assignment will give functions with multiplefault testability,
and how often with single fault testability.
Use Ugur's method to evaluate multifault testability for your ESOP functions.
Compare various state assignment programs from POLO, compare various coefficients.
Perform improvements based on tests to Hypercoder/Tea based on codes "n our of k" and next
logic realized in AND/EXOR forms.
This is a totally new research area and the three of you should obtain excellent and innovative results.
Please prepare your initial results in writing in a form of a
"journal paper".
 PROJECT 4:
"MOPS  A New Regular Layout for Logic Functions"
This is LISP language project. (new project).
I would like to have your problem formulation of the project in writing.
I would like to see, what exactly you will program in Lisp and how.
Your project is broad, so you have to pick some simpler topic, but present in detail
what is the research issue there and how you plan to accomplish your goals.
 PROJECT 4:
Improvements to Dave Matson's LISPbased Fault Simulator.
 PROJECT 5. SYMMETRIC FUNCTIONS IN PARTITIONBASED DECOMPOSITION
1.
Read papers about Dietmeyer method of using symmetry in decomposition. Read other
paper on this topic from my reading list in Package 11.
2.
Read Selvaraj, Luba et al papers about partitionbased decomposition, also for mv logic.
3.
Formulate a unified theory which will allow to use Dietmeyer's method
for symmetry detection and usage
within the framework of Partitionbased Decomposition formalism of Luba et al.
This new approach must have two separate variants:
 binary (I know for sure that this can be done),
 multiplevalued (I feel that this can be done but I have no proof).
Try to "rewrite" Dietmeyer's papers from his formalism to Luba's formalism.
Because in Luba's approach the formalism
for binary logic is very close to the formalism for multiplevalued logic,
it should be not too difficult to create a uniform theory
that will be good for both. Think, what are the main concepts of
Dietmeyer, express them algebraically.
Expressing everything in terms of strong algebraic
concepts such as cofactor, decision function, tautology, derivative, minimum, maximum,
etc., will unify and simplify both our comprehensive theory, the programs,
and the explanations of our future theory in our future journal papers.
4.
Write a detailed report with figures, present nice slides, and present a lecture in class.
The most important in your report and class presentation
is to explain the idea of using symmetry in decomposition.
Next, it is important to do this explanation algebraically,
and have examples that will help other students to understand the principles.

PROJECT 6. UNIFIED PARTITIONBASED THEORY OF DECOMPOSITION
WITH BDDS TO REPRESENT SETS
1.
Read Luba, Selvaraj, et al about partitionbased decomposition.
3.
Combine all these ideas to one unified theory for general lookup blocks;
not AND, OR or EXOR gates, not Xilinx or other FPGAs.
Some of recent papers of their group about mv logic are already
very close to these concepts.
4.
Describe the unified theory in which every partition
is represented using a BDD for every block of partition.
Set operations used in partition calculus
operations are now represented by using AND, OR and other operations on BDDs.
There are some ideas on it in my proposal/report to WL.
You will have to use several BDDs, which will have some common parts.
However, since all your BDDs will represent sets.
5.
Write a detailed report with figures, present nice slides, and present a lecture in class.
The most important in your case is to explain
on examples the ideas of partitionbased decomposition
that uses BDDs to represent partitions.
In this theory, the initial data have rows, enumerated with integers.
Regardless whether the function is binary or multivalued,
the rows with their numbers exist. Let us denote the set of these numbers by X.
Each binary variable makes a partition of set X into two sets.
Each ternary variable makes a partition of set X into three sets.
Each kary variable makes a partition of set X into k sets.
A pair of binary variables makes a partition of set X into 2 * 2 = 4 sets.
Therefore, the program has always to operate on sets.
This is very convenient and allows comprehensive treatment of
both binary and mv logic.
I quess, fuzzy logic and continuous logic will be also possible to describe in a
similar way. But do not do this yet.
Your point
is to represent these sets efficiently. I propose to use BDDs.
Each BDD represents a block of the partition.
So, the design will be a set of partitions. To save space,
the commond parts of these BDDs must be combined, as in BDDs for multipleoutput functions.
You can also use BDDs with negated nodes or Zerosupressed BDDs for better effect.
 PROJECT 7. HOW TO IMPROVE THE BEST AVAILABLE PROGRAM FOR
DECOMPOSITION FOR STRONGLY UNSPECIED MULTIPLEVALUED FUNCTIONS.
1.
Read Wei Wan Thesis.
Read Pedram's paper. Read another paper about BDDs in Curtislike decomposition from Package 11.
2.
How can be Wei's methods combined with those of Pedram's?
Generalize Pedram/Wei Wan for binary strongly unspecified functions.
The difficulty is that Wei Wan's ideas are in terms of cubes, and
cubes are basically absent in Pedram's approach.
3.
Generalize for multiplevalued strongly unspecified functions.
You need a mv diagram that has k successors of a node and k terminal nodes
instead of 2 successors (0 and 1) and two terminal nodes
(0 and 1) in BDD.
4.
Write a detailed report with figures, present nice slides, and present a lecture in class.
The most important here is the very good
explanation of the concept of using decision diagrams for decomposition.
Write definitions, show examples.
List all ideas of Pedram. List all ideas of Wei Wan.
Think about similarities and differences.
All introduced concepts must be illustrated with examples.

PROJECT 8. UNIFY STEINBACH DECOMPOSITION AND ASHENHURST/CURTIS DECOMPOSITION.
1.
Read Steinbach's approach from lecture notes.
2.
Use his algebraic concepts to express Ashenhurst decomposition for binary logic.
Do everything for strongly unspecified functions.
3.
Use his algebraic concepts to express Curtis decomposition for binary logic.
4.
Use his algebraic concepts to express Ashenhurst decomposition for multiplevalued logic.
5.
Use his algebraic concepts to express Curtis decomposition for multiplevalued logic.
6.
Draw the diagram showing all necessary operations for binary decomposition.
Draw the diagram showing all necessary operations for multiplevalued decomposition.
7.
Instead using TVL's use consistently BDDs.
8.
Write a detailed report with figures, present nice slides, and present a lecture in class.
The most important in this report
is the algebraic formalism
for Ashenhurst, Curtis, and perhaphs Generalized Curtis Decompositions.
Whatever will be later on our decision on internal representation,
your formalism, together with the formalism of Steinbach, will remain.
We will have just to find the ways of
calculating cofactors, derivatives, etc, using this representation,
and we will be able to have short programs that
will do all decompositions from:
 Steinbach,
 Luba,
 Curtis,
 generalized Curtis,
 Ashenurst,
 other that I will discuss in the future.
Moreover, some of these
decompositions will be now uniformly generalized to mv logic.
I believe further generalizations
to fuzzy and other logics is also possible.
This is everything totally new and very publishable,
even without computer program.

PROJECT 9.
GENERALIZED DECOMPOSITION OF FUZZY FUNCTIONS.
1.
Read paper by Francione and Abraham Kandel about Ashenhurstlike decomposition
of fuzzy functions using tabular approach. (Package 11).
2.
Read two papers about using Binary Decision Diagrams
for finding bound sets and for actual decomposing
functions from diagrams. (Package 11).
3.
Define formally and describe new Fuzzy DDs that were defined by Perkowski  see his new notes.
Call them Fuzzy Logic Decision Diagrams (FLDDs).
Show examples of creating such diagrams from flat and
multilevel fuzzy functions.
4.
Convert the approach of Francione and Kandel to FLDDs.
Immediately generalize it to Curtislike, rather than Ashenhurstlike decomposition.
(The column multiplicity is the number of nodes
in the graph with negated edges directly below the level of the cut.
The variables above the cut are bound set, the ones below are the free set.
Terminal nodes 0 and 1 do not count in the multiplicity index.
5.
This approach requires
solving the tautology problem for fuzzy logic. Can you find something
in the literature on fuzzy logic?
If not, try to do this on your own.
5.
Describe how to calculate the following:
 the multiplicity index,
 the successor function,
 the predecessor function,
 the minimal realization with fuzzy gates MIN, MAX, NOT.
 successor functions,
6.
Write a detailed report with figures, present nice slides, and present a lecture in class.
The only paper that I know of is by Kandel, and it is very complex.
I believe using FLDDs will simplify the explanation, will give
intuitive reasons what we are doing (this is totally lacking in Kandel), and
will allow to use software developed for mv logic.
Some existing package can be easily adapted and only the top
transformations must be programmed.
Again, this can be quickly published.
The most important is that
your report and class presentation will illustrate on practical
examples the concepts of fuzzy logic, FLDDs, their creation and transformations.
Use as much uniformity as you can with other diagrams and topics
that we have already discussed in the class.
Write an algorithm for FLDD decomposition and check it on few fuzzy logic
examples.
Write your plan how you want to proceed with your M.S.
Your schedule.

PROJECT 7. UNIFICATION OF PARTITIONBASED THEORY OF DECOMPOSITION
WITH THE METHOD OF PEDRAM
1.
Read Pedram's paper. Read another paper about BDDs in Curtislike decomposition. Package 11.
2.
Read Luba, Selvaraj, and other papers of their group about partitionbased decomposition.
3.
The programs of Luba and Pedram are perhaps currently THE BEST two programs in the world.
 what is the strength of Luba's approach?
 what is the strength of Pedram's approach?
Think and analyze, what ideas of Pedram can be improved?
Think and analyze, what ideas of Pedram can be improved?
How Luba's approach can be improved by Pedram's representation, heuristics, or algorithms?
How Pedram's approach can be improved by Luba's representation, heuristics, or algorithms?
4.
How can be Luba et al Partitionbased method combined with that of Pedram in the optimal way?
It must satisfy the following conditions:
 be good for strongly unspecified functions in the same way as Luba is
but represent sets more efficiently.
 allow for multivalued, multioutput functions (the recent papers by Luba et al.).
 can it be extended to fuzzy logic? talk to Paul Burkey.
 can it be extended to continuous logic? read paper about continuous logic by Tim Ross.
4.
Write a detailed report with figures, present nice slides, and present a lecture in class.
How do you want to program it? Your plan?
Write your detailed schedule and planned achievements.
The most important is for me that you will prove
that you really well understand the main ideas of both Pedram and Luba.
Your lecture is one of the last, so you
will learn in the meantime from my lectures and those of your collegues.
It would be ideal (the plan maximum) if in this presentation you will present some unified
theory that will give us plan of what to do next and will take into
account all good ideas from literature and generated by us until now.
The plan minimum is to show unification of Luba and Pedram's
approches, so that the new program will be faster than that of Pedram,
and will allow to decompose larger functions, assuming that these functions
are very strongly unspecified.
Therefore, especially important is an analysis what is in Pedram's
approach that prohibits it to use for functions that have
extremely many variables but also extremely high percent of don't cares.
 PROJECT 8. MOMENT DIAGRAMS IN FUNCTIONAL DECOMPOSITION
1.
Read new Bryant's paper about Moment Diagrams.
Read papers about using BDDs in Curtislike decomposition. Package 11.
2.
Propose your own ideas on how to base the general
decomposition on such new diagrams.
3.
The program of Pedram is perhaps currently THE BEST for circuit applications.
 what would be the advantage of having Moment Diagram as the
representation for decomposition in his approach?
4.
How can any other ideas that you
have learned from this class (either from lecture, from
reading, or from student presentations) be used to improve the
decomposition approach based on Moment Diagrams?
Can these Moment Diagrams be further generalized
to allow decomposition of more general classes of functions?
Read or listen about fuzzy, multiplevalued and continuous logic.
There are definitely close relationships of binary and mv,
mv and fuzzy, mv and continuous, and fuzzy and continous logic.
How can the most general decision diagrams be created for all of them.
(I am personally not sure that it can be done, but my feeling is  yes).
5.
Write a detailed report with figures, present nice slides, and present a lecture in class.
How do you want to program it? Your plan? Schedule?
Basically, I would like to make an experiment, and I do not suggest you
in more detail what to do.
The most important is for me that you will prove
that you really well understand the main ideas of
all kinds of Decision Diagrams and their advantages,
so you will be either able
to propose interesting new application of Moment Diagrams,
or you will come out with a new kind of DDs, that will
even generalize Moment Diagrams.
I know that this can be done because I have done it.
I just do not know how practical is what I found.
Your lecture is one of the last, so you
will learn in the meantime from my lectures and those of your collegues.
The plan minimum is to show unification of some of decompositions
from the class with Moment Diagrams.
It can be done in many ways, since you
can always take Moment Diagrams instead of BDDs, cube arrays
or lists of minterms.
However, what is the best way of using them?
The one that would allow to decompose substantially
larger functions than all the existing methods.
It would be ideal (the plan maximum) if in this presentation you will present some unified
theory that will give us plan of what to do next and will take into
account all good ideas from literature and generated by us until now.
Of course, basing everything on Moment Diagrams,
and proving that using them is the best way to go.
May be, we will get a good implementation of Moment Diagrams from
Bryant, so we will be able to concentrate only on using it.
If his implementation is not very good,
the project could be to implement a good sifting algorithm for them.
I leave you freedom of defining your project.
Other projects:
"Minimalization of Boolean Functions using CDEC Gates".
"TwoDimensional Minimization of FSMs".
"ESOP Factorization".
"Multiplevalued EXOR Trees. Comparison with previous approaches".
"Old/New approach to FSM synthesis in Cellular Logic with Application to CLi6000 Device".
"Old/New approach to FSM synthesis in Cellular Logic
with Application to Xilinx Series 4000 Devices".
"Ideas of Artificial Life and Genetic Programming Applied to CLi6000 Device Logic Synthesis".
"Program for evaluating nearunateness of Boolean Functions".
This term each report should have not only information from
literature but your own ideas, formalizations, and programs.
Give your program pseudocode as well as source.
Provide comments. Give examples. Figures.
Give tables evaluating the quality of your program.
Be creative and innovative. Think. Produce not reproduce. Prove
that you can invent new things.
Or, at least that you are able to compile old information
in a new way required by the new technology.
Be professional in the way your paper is presented.
Write it as a IEEE journal paper.
See my directions in the first class materials from Fall 91.
I will not accept jargon and sketches.
Be complete and comprehensive.
Give speed/memory/quality of results comparison with some program
which is your closest competitor.