ISE Simulator

Xilinx ISE 9.2 and 10.1 (Webpack)

signal cntr: integer range 0 to 3; ... if(clk'event and clk='1') then cntr

Reply to
meralonurlu
Loading thread data ...

Yeah, well... the Xilinx simulator is not the best. They even admit that, but say they are working to improve it. This is clearly a simulator bug. When the integer gets incremented above 3, the simulation should stop.

Rick

Reply to
rickman

Hi,

ISE Simulator has simulation run time value range check turned off by default, hence you do not see your out of range value being detected and reported as error.

If you are using ISE 9.2, please do following to turn the value range check on:

1) Right click on "Simulate Behavioral Model" and select "Properties.." 2) On the Properties dialog set the "Propert display level" to Advanced 3) You will see a Property named "Value Range Check". Select the box against this property to turn the value range check on.

If you are a command line user, type fuse -help and you will see that there is a switch called -rangecheck that turns on the value range check. Use this switch and you would see value range check being performed during simulation.

Generaly speaking, ISE 10.1 verison of ISE simulator is hugely improved in quality and speed over ISE 9.2 version of the simulator; However, I have to admit that 10.1 ISim does have run time value rangecheck broken. We are going to fix the broken value range check in

10.1 Service pack 3.

Thank you for using ISim (SE Simulator) and providing this feedback! Kumar (ISE Simulator team)

Reply to
kumarator

One of the differences I have noticed between the ISE simulator and the Active-HDL simulator is that ISE seems to compile to machine runnable code and Active-HDL does not. Active-HDL compiles much faster, typically around a second for my current project, while ISE can take many 10's of seconds. I would assume this is done because it makes for faster simulation? So I guess there is a break point where running for a shorter time is faster on the Active-HDL simulator and for a longer time is faster on the ISE simulator. Do you have any idea of where that break point is? Is there an option for not compiling to executable code when running short simulations?

Rick

Reply to
rickman

r

Hi Rick,

Thank you for sharing your observation on compilation time of ISim with us!

It is true that ISim compiler creates native machine runnable code as opposed to creating a pseudo byte code or interpretable intermediate representation. The native machine runnable code does help simulaiton go faster on a bit of extra cost to compilation. On the other hand, I can see that creating pseudo byte code instead of runnable machine code can make compilation go faster at cost of making simulation launch a bit slower -- cost to convert the pseudo byte code to machine code will need to be shifted to simulaiton launch time.

ISim does not have option to create pseudo byte code as such. But, we are continually looking at speeding up compilation and simulation. For example, ISE 10.1 ISim compiler is 5X faster that ISE 9.2 ISim compiler as measured by a suite of around 75 behavioral/timing tests. We used to generate complex C++ code out of HDL in ISE 9.2 version which made our compilation slow. In ISE 10.1 we started generating simple assmebly like C from HDL and that has reduced compilation time by 5X.

Thank you again! Kumar

Reply to
kumarator

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.