In that case, then you should be able to get to the same output file.
I've refactored code moving stuff from one entity to another, added
new generics to entities and other stuff like that and been able to
get back the same output file.
Sounds like you might need to restart and take some small steps first
(like rebuild with the original design totally unchanged and verify
the output file; then add the new entity/architecture but not put any
code into it and verify; then start moving code). It could also be
where you say 'for the most part'. Any place where you did something
different than a copy/paste operation is a likely spot to cause a
subtle difference.
Are there unaccounted for differences in the QSF file? The only
difference should be adding the new source file. Any other changes
can cause the build to be different and create a different output
file.
Kevin Jennings
I haven't tried compiling with a blank entity. I'll try that next. I
tried to go back and move just one process at a time but things are so
inter-connected that it really has to go in one shot. I'd have to
create a bunch of signals to tie pieces together and I'm sure that
would create a new checksum.
The QSF file should be identical other than the addition of the new
source file. I'll check that however. Also ALL signals in the top
level are tied to pins so there is no chance that pins are being
placed by the fitter in different ways. I've run verification on the
design and as far as I can tell it's working the same but I'm still
very nervous.
One last thing. let me tell you exactly what I do to go from original
design to new design:
1) comment out all unneeded (redundant) signal declarations in the top
level (they are all in one block so that is easy)
2) comment out all the code that was copied to the new source file
(also all in one contiguous block)
3) uncomment the entity declaration/instantiation in the top level for
the new source file
4) add the new source file to the project
5) re-compile