Is there a guide to behaviorally simulating a MB embedded system? I have gotten as far as compiling the libraries, running simgen, instatiating the system in a top_level, and writing a testfixture for that top level. It all loads correctly in NC-Sim, and I am able to look at all signals within the system. I am able to validate that the dcm is working as it should. It gets the input clock from the testfixture and outputs the multiplied/divided frequency that it should.
Our system has a Xilinx GPIO connected to a simple USB chip (FTDI). When a signal from the USB chip goes low, the microblaze code starts the process of reading the data from the chip. I thought I had that working even though I was blindly writing timing in the testfixture without knowledge of where the MicroBlaze processor was or when things should occur. It really isn't working...in the sim at least.
Is there a way to know what code the MicroBlaze is running at a particular time? There are MANY signals available to look at in regards to MB. There doesn't seem to be any documentation explaining how to do this. It all kind of leaves off after getting everything compiled.
When do I know that the MicroBlaze has finished all the intitialization code that is written? Will I have to actually analyze the number of cycles used and insert that timing in the testfixture? It seems like there should be an easier way to do this.
Eventually, I would like to get to the point of running timing sims to see where our problems lie. We get weird results after different builds when we change a signal or two on a debug port we are pulling out from our modules. Sometimes things totally hose up!
Thanks.