Implementation Of Sequential Logic
Let us go to realize a simplified state-transition-table with the real circuit. We can learn how to implement the state-transition-table from many textbook:
- Assign logic-variable to the inputs and the states.
- Compute the application function.
- Create the input function from the excitation-table of the state-devices.
- Simplify the input functions and output functions with DONTCARE.
In our computation boolean algebra, we only have to this:
- Assign logic-variable and state-devices.
All the internal computation are automated.
[table]=StateTransition()
{
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;
}
implementation
{
inputs
{
// the format:
// input-index ':' binary value of the inputs
1: 1'b0;
2: 1'b1;
// in this example, we say 1 bit is assigned for the two inputs.
}
states
{
// the format:
// state-index ':' binary value for the state
1: 2'b01;
2: 2'b10;
3: 2'b11;
// in this example, we say assign 2 bits for the states.
}
statedevices
{
// the format:
// state-index ':' state-device-name '=' definition-of-the-excitation ';'
1: "JK-FF" ; // for first bit
2: "D-FF" ; // for second bit
// known-state-device-name : "SR-FF", "JK-FF", "T-FF", "D-FF" ;
}
}
}
[digital_system] = Sequential.Implementation(table);
Print(digital_system);
/*
The result should be :
digital_system = DigitalSystem()
{
outputs
{
[r1] = AndOr(){ 1,2,3; -1,2,-3; }
}
states
{
state(1)
{
variable = 2;
statedevice = "JK-FF";
inputto.J = AndOr(){ 1; }
inputto.K = AndOr(){ 1,3; }
g1 = AndOr(){ -1; -3; }
g2 = AndOr(){ 1; }
F = AndOr(){ -1,2; 2,-3; 1,-2,3; }
}
state(2)
{
variable = 3;
statedevice = "D-FF";
inputto.D = AndOr(){ 1,2; 1,-3; -1,3; }
g1 = AndOr(){ -1; 2; }
g2 = AndOr(){ 1; }
F = AndOr(){ 1,2; -1,3; }
}
}
statedevices
{
}
}
*/
Advanced IsBlankFunction IsParityFunction IsUnateFunctionTo ToBinary OneComplement binaryioset Convert ToShannonTree DiagramGateName Email Eq FeedbackSystem Minus Nor MantissaToPositiveInteger PositiveDecimalToMantissa PositiveNumberToMantissa Radixes object() Or To2LayerOrAnd To2LayerAndOr Backwardly ToFeedbackSystem Compatibility Canonical Full RandomGenerate Zero
The website is simply translated by using the Google Translate. Please inform us if you find the wrong/funny/weird translation.