Huffman Simplification For Sequential Logic
For a well-defined State-Transition-Table, the Huffman Simplification is the common algorithm to simplify state-transition.
[table]=StateTransition()
{
transitions
{
1: [1] -> 1/1'b0, [2] -> 3/1'b0;
2: [1] -> 2/1'b1, [2] -> 4/1'b0;
3: [1] -> 3/1'b1, [2] -> 5/1'b0;
4: [1] -> 4/1'b0, [2] -> 1/1'b1;
5: [1] -> 5/1'b0, [2] -> 1/1'b1;
}
}
[simtable]=Simplification.HuffmanMealy(table);
Print("result:");
Print(simtable);
/*
The result should be :
result:
StateTransition()
{
transitions
{
1: [1] -> 1/1'b0, [2] -> 3/1'b0;
2: [1] -> 2/1'b1, [2] -> 4/1'b0;
3: [1] -> 3/1'b1, [2] -> 5/1'b0;
4: [1] -> 4/1'b0, [2] -> 1/1'b1;
5: [1] -> 5/1'b0, [2] -> 1/1'b1;
}
simplification
{
tabletype = "well-defined" ;
algorithm = "equivalance" ;
grouping
{
1:1;
2:2,3;
3:4,5;
}
transitions
{
1: [1] -> 1/1'b0, [2] -> 2/1'b0;
2: [1] -> 2/1'b1, [2] -> 3/1'b0;
3: [1] -> 3/1'b0, [2] -> 1/1'b1;
}
}
}
*/
IsInverse IsLinearFunction IsPositiveFunction IsSymmetricFunction IsSymmetricFunctionTo AndXor FromBinary List BCD bool() ToShannonTree ToXORP Diagram Email Imply minterm Nand Not PositiveIntegerToMantissa Or PermutationMatrix real SAT Solve TransitionSeries InputVariables Forwardly GetSubTable ShrinkLogicFunction Zero