mindrobots/P8X32A_Emulation — pull request #1 by jacgoudsmit (2014-08-18 04:07:44+00:00)
Title: Cleanup

Hi Mindrobots,

I just started learning about the P1V code, and ordered the BeMicro CV board too. I don't know enough yet to write my own code and until I actually receive the board I can't test anything anyway, but I noticed you added the BeMicro code to your fork so that's why I forked from you.

However, I noticed there were a lot of unnecessary files in the repo, such as the db/ and db_maintenance/ directories, and files that were clearly generated by Quartus.

I deleted the unnecessary files, and added a .gitignore so that Git won't want to re-add the files when you do a build.

I also did a compare between the .v files in each directory, and noticed that the files in the DE2-115 directory had a more-or-less sane layout, whereas the ones in the other directories had their columns jumping all over the place. I don't know who's responsible for this, but I used a tool (BeyondCompare) to carefully compare and merge the layout changes to the other directories. I made sure not to change the actual code, just spaces.

The result is that the Verilog files are now identical between the directories, except for the one line in the one file that comments out the character ROM for the DE0 and BeMicro, but not for the DE2. I didn't make any changes to the code, and I verified that all targets still build as before (using Quartus 13.1 for the DE2 and Quartus 14 for the other targets, as Chip apparently did). I'm inviting you to integrate this into your branch, and I think Heater should integrate your fork back into his repo afterwards (you should send him a pull request).

My plan is to eliminate the redundancy between the three directories. I want to change the tree so that files that are common between the target devices are only stored in one place (following the basic DRY / Don't Repeat Yourself principle of software engineering). Furthermore I want to make it easier to manage features that people come up with in the forums: I want to create a file (say "features.inc") that determines which features are enabled or disabled. That way, someone in the future can download the repository and build the standard P1V, or they can edit the features file and e.g. add INB/OUTB or add hub memory or do other cool stuff without having to dig through the forums or the source code. All of this is for the future but I'll announce it in the forums.

Thanks for pulling! Sorry there are a lot of changes, but most of them should be deletes anyway.

===Jac