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 IsCovering IsPositiveUnateFunctionTo IsUnateFunction IsUnateFunctionTo ToAndOr FromBinary ToBinary TwoComplement binaryioset() ToAndXor ToTruthTable Get Load logicvardef RadixFromIndex Realization SAT Solve OutputAndStateBasedly StateTransitionBasedly Compatibility Shannon SimpleCover TimingChart GetDontCareLogicFunction RandomGenerate Utility AdjustLogicVariableCount Zero

Search This Website :

 
Buy website traffic cheap