in reply to solving Flip Flop equations in perl

In something like C or ASM, the obvious way to do this would be to encode the 3 input bits into an index into an array with 8 items. The value of that array would be Qn.

In Perl that is also possible. However using a hash table representation might be better for more complex situations than this. You can encode the inputs "$CP$EN$Qprev" as a hash key. $Qnext = $table{"$CP$EN$Qprev"}; etc....

In your case, this is a hardware thing that will produce 0,1 for any combination of inputs. When building a software state table, this hash approach allows us to deal with very sparse arrays and also deal specially with the "hey, this shouldn't happen case". Of course in complex hardware state tables, you will have to think about these "hey, this shouldn't happen case" and make sure that your state machine doesn't "dead end" into an infinite loop and so you have to have a better answer than an error message that says "program error"!

Anyway consider a hash table representation.

  • Comment on Re: solving Flip Flop equations in perl