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:

  1. Assign logic-variable to the inputs and the states.
  2. Compute the application function.
  3. Create the input function from the excitation-table of the state-devices.
  4. Simplify the input functions and output functions with DONTCARE.

In our computation boolean algebra, we only have to this:

  1. 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
  {
  }
}

*/



PermuteLogicFunction IsInverse IsNegativeUnateFunctionTo IsThresholdFunction IsUnateFunction And binary() binaryioset ToOrAnd ToNotFunction ToROBDD ToVariableInvertedFunction DigitalSystem minterm() PositiveDecimalToMantissa PositiveIntegerToMantissa Or Print To2LayerOrAnd To2LayerNand ShortestInputsForDistinguishTwoStates ToStateTransitionTable Compatibility BestVariableOrder StateDeviceName StateTransition RandomGenerate SemanticEval ShrinkLogicFunction Zero

Search This Website :

 
Buy website traffic cheap