Hi
I'm trying to estimate the power consumption of an architecture based on either Microblaze or PowerPC running a simple application (bubble sort). Using the EDK and ISE I managed to build the timing simulation model (Post Place and Route Model) for a Microblaze based architecture . Then I tried to simulate this using ModelSim SE 6. When I simulate the architecture using Modelsim it appeared to me that the memory was not initialized with the software program (I'm using only block rams for both instructions and data memories). I knew that because the program counter is incremented and addresses are generated from Microblaze but no data is transferred. After investigation I found out that Modelsim somehow was unable to initialize the block ram with the software program (a VHDL configuration is generated by the EDK to do so but Modelsim just ignored it).
I managed to solve this problem by using data2mem command to convert the ELF file into MEM files and load it into the block ram using Modelsim. Using this approach I managed to simulate the architecture and generate the expected results (except some problems with interrupts).
So the next step was to generate VCD file using Modelsim and then using XPower tried to estimate the power consumption. This seamed to be working fine, and generate some estimation. But when I tried to change the size of the array to be sorted and redo the simulation again, I found out that the power estimation is not affected much with the change I made to the software (although it is a significant one). To Clarify this I started with an array size of 10 integers, this array requires 887 clock cycles to be sorted and the total estimated power consumption was around 488.65 mW. When I increased the array size to 20 integers (which requires 3069 clock cycles to be sorted) the estimated power consumption was 492.28mW with increase of about
3.5 mW. When I increased the number of integers to 40 (11298 clock cycles are needed to sort that), the power consumption just increased by around 2mW to be 494.29mW. When I raised the number of integers to be 80 (43280 clock cycles to be sorted), the power consumption was reduced to 493mW. So it seems that the activities stored in the VCD file are not affecting the power estimation as I expected. When I tried to investigate this issue I found out that XPower gave me a warring saying that it was able to match only 25% of the signals in the VCD file, and it was not able to change the clock frequency to 100 MHz (although when I checked the frequency applied to the clock signals in XPower I found it to be 100MHz). So my two questions are:1- Why is Modelsim not able to load the software application correctly into the block ram? Is there another approach better than the one I mentioned above?
2- What is wrong with the VCD file and why XPower is not able to correctly estimate the power consumptions?So if have been through this before I would appreciate your feedback..
Best Regards