
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
DrongoTerm
>
Read Me!!
What is DrongoSim?
DrongoSim is an FPGA simulator designed for the UNSW ELEC2141 labs. It interprets your project file (.xise), schematics (.sch) and constraints file (.ucf), and simulates what the actual board would be doing. The board simulated is a Digilent Nexys-3 featuring a Spartan-6 FPGA. It is now obsolete given that the labs now focus more on Verilog than on schematics. (this is a good thing!)
Sounds cool, how do I use it?
Once you have completed your design in a XILINX ISE project (set up for the aforementioned FPGA), ensure that you can successfully "Synthesize" and "Implement" your design in the ISE without any errors or serious warnings. To give your files to DrongoSim, click "Select some files" and select your .xise, .sch and .ucf files (all at once - use the ctrl key). DrongoSim will load your files and notify you of any errors. If successfully loaded, nice work! The virtual FPGA is running!
It's not working :-(
- Ensure your .ucf file has the same prefix as your top-level schematic (e.g. drongo.sch, drongo.ucf).
- Ensure no serious warnings occur when synthesizing in the ISE. Warnings you can ignore include those relating to subscription lapses, and for lab7 warnings regarding the output of the prescaler and truncation.
If all else fails, there is the possibility it's a bug. Flick me an email via the contact page of this site, attaching your .xise, .sch and .ucf files.
Anything else I should know?
DrongoSim is a tad slow. Due to the fact that it is implemented in an interpreted language running in your web browser, the maximum clock speed (for lab7) is 125Hz (compare that to the 100MHz clock on the real board!). The major implication of this is that DrongoSim isn't fast enough to drive the 4-digit 7-segment display without a little tweaking. In appendix A of your lab manual, you'll find that each digit needs to be refreshed at least every 16ms (i.e. a value displayed on a digit will persist or "hang around" for 16ms after it is turned off). If you do the maths, that requires a 250Hz clock in order to refresh each of the 4 digits before they fade. DrongoSim is a little sneaky and doubles the time a digit persists for, essentially halving the frequency needed to drive it.