Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
9 years ago

StateMachine States in SignalTAP

I am not able (anymore) to observe the state machine's states in SignalTAP. I was trying to Import the states from the *.stp in order to get the Mnemonics as it once worked for one hot coded states, but this does not work.

What could be done?

I once managed to get a Mnemonic table and can still Import this from an old *.stp file, but the states are not shown the way I like it, although I assigned the statenames as the Radix for the state vector.

Another issue:

I once changed the state to Grey and then to automatic, and somehow am not able to get the one hot back. I commanded the explicitly in the Setting "one hot" but still see a 5 bit vector coding the states straight Forward up to 17...

How can this by changed?

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Quartus defaults to one-hot encoding as long as it recognizes the state machine and there are more than two states, so it should not be hard to get it to do that. Maybe search your .qsf file for any settings that affect state machine encoding and remove them (that can sometimes be easier that finding settings in Quartus).

    As for SignalTap, when you use the node finder to add signals do you use post-fitting or pre-synthesis. I recommend pre-synthesis because the signals match your rtl code and state machines should be listed as one-hot with the state names matching the names you defined in your rtl.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I think he's referring to the state machine tapping feature in SignalTap, allowing you to create a mnemonic table based off the coded states. If you've made a change to your machine that is preventing the tool from "recognizing" your state machine, you would have the issues mentioned. Check the state machine viewer debug tool to see if your state machine is being recognized. If it's not, you've changed something in your code that is preventing recognition.

  • MWeng3's avatar
    MWeng3
    Icon for New Contributor rankNew Contributor

    try in Compiler Setting -> Advanced Settings(Synthesis) "Extract State Machines "on".