Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16606 Discussions

Linux/Windows bitfile equivalence?

Altera_Forum
Honored Contributor II
1,099 Views

The Linux and Windows tools don't produce the same bitfile (either sof or jic) - is this to be expected? 

 

The tools I'm using are: 

 

XP SP3, 32-bit: 12.1/SP1 build 243 

Linux x86_64: 12.1/SP1 build 243, 32-bit 

 

There are lots of differences in the output - it's not just a date, for example.
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
385 Views

I have heard of differences in windows and linux in the fitter before - using the same seed on both will give different fit results, hence the bitfile being different.

0 Kudos
Altera_Forum
Honored Contributor II
385 Views

 

--- Quote Start ---  

The Linux and Windows tools don't produce the same bitfile (either sof or jic) - is this to be expected? 

 

The tools I'm using are: 

 

XP SP3, 32-bit: 12.1/SP1 build 243 

Linux x86_64: 12.1/SP1 build 243, 32-bit 

 

There are lots of differences in the output - it's not just a date, for example. 

--- Quote End ---  

 

 

From memory some of the tools include the tool version in the sof/pof so differing output files isn't surprising. 

 

(I think if you should get an identical file out of each tool when it's run if all inputs are the same). 

 

Nial.
0 Kudos
Altera_Forum
Honored Contributor II
385 Views

 

--- Quote Start ---  

From memory some of the tools include the tool version in the sof/pof so differing output files isn't surprising. 

Nial. 

--- Quote End ---  

 

 

No, the tool versions are the same - build 243, both 32-bit, downloaded together. There are lots of differences - about 10% of all bytes for the SOF file, and a bit less than 2% for the JIC file, so it's not a date/version number/etc thing. It's a bit surprising - maybe the code calls a platform-specific random number generator (if it does, it shouldn't, in my opinion).
0 Kudos
Altera_Forum
Honored Contributor II
385 Views

It doesn't use any random generator, all the "randomness" is generated from the seed. Each run with the same project files, run from scratch (i.e. without incremental compilation or anything taken from a previous compile), with a given Quartus version and platform will give the same result. Using different platforms (Windows / Linux, or 32-bit / 64-bits) will give different results. I'm not sure of the exact reason why the Linux and Windows versions give different results. The real question is why is it so important? Different seeds will also give you different results, but if your project is constrained correctly it should just work as well.

0 Kudos
Altera_Forum
Honored Contributor II
385 Views

 

--- Quote Start ---  

It doesn't use any random generator, all the "randomness" is generated from the seed.  

--- Quote End ---  

 

 

In normal usage, you might expect a 'seed' to seed a random number generator, implying the existence of an actual generator. A single seed by itself isn't of much value.  

 

 

--- Quote Start ---  

The real question is why is it so important? Different seeds will also give you different results, but if your project is constrained correctly it should just work as well. 

--- Quote End ---  

 

 

Primarily as a sanity check. A colleague uses a DOS batch file to implement a project, and I use Linux makefile. If the two produce different results with the same seed, then the obvious conclusion is that one of us has got our setup wrong or, at the least, that the two flows aren't equivalent. Secondly, I have some experience of developing translators that run on both Linux and Windows, and differing output on the two platforms is a good indicator of a bug somewhere, which might be the result of differing word widths, different and incompatible implementations of STL or the C library, and so on. At the least, you have to know why they're different, and let your customers know that it doesn't matter. 

 

I think the seed issue is a different matter. If you can't route under one set of circumstances - the seed - you try it differently. It's important that the Linux and Windows versions route identically with the same seed, otherwise there's no specific correlation between the seed value and the ability, or otherwise, to route.
0 Kudos
Altera_Forum
Honored Contributor II
385 Views

I meant that Quartus uses a pseudo-random generator from the seed, and not any other OS-related "more random" source. But to answer your problem, the only way to provide the same result is to use Quartus on the same operating system family and CPU architecture. If you really want to have something consistent on several different platforms, you can try and run Quartus in a virtual machine on both systems.

0 Kudos
Reply