This is a hardware design example for the Altera NEEK development board. This is the hardware design example called "video" which was distributed in the 8.0.1 release of the NEEK development platform CD. This design has been updated so that it can be compiled under the 9.0sp1 Altera tools.
An attempt was made to not make any changes to the design at all, but for simplicity the El Camino SD card controller was removed from the design. Additionally the SDC constraints file for this design was reworked to more appropriately constrain the design in the 9.0sp1 environment. Other than these modifications the design should be unchanged.
Please see the NEEK 8.0.1 release CD and documentation for more information on this design.
This example is published in a minimal source form only. You will need to run the build script to create a full project representation of the design.
Download the archives you are interested in and place them in a directory on your system that does not include spaces in the path name. The entire path name of this directory must not contain spaces, so on Windows systems you should avoid putting these in the "My Documents" folder, or on your "Desktop" since these locations are subdirectories of the "Documents and Settings" path, and that would mean that these locations inherit the spaces in that part of the path name.
In order to extract the archives after downloading them, it is recommended that you run the "tar -xzf <filename>" command from a bash shell. For linux users you should have ready access to a bash shell. For windows users, you may need to install the Altera development tools to gain access to a bash shell. On Windows it is recommended that you install the Altera Quartus II FPGA development tools along with the IP base suite as well as the Nios II EDS development tools. Once these tool chains are properly installed on your workstation, you can launch a bash shell by running:
"Start -> Programs -> Altera -> Nios II EDS 9.0 -> Nios II 9.0 Command Shell"
Once you are in the bash shell, you can "cd" into the directory containing the archives that you've downloaded, and running the following command to extract them:
tar -xzf <archive_filename>
Note that if you use some other archiving software to extract these archives, like WinZip, you may loose the execution privileges on some of the shell scripts within the archives that are used to perform various activities associated with building and using the example. If this happens, you can restore execute privileges from within a bash shell with the command "chmod +x <filename>". It is recommended that you avoid this situation by using "tar" to extract the archives from within a bash shell and avoid using any Windows oriented archive utilities with these archives.
Building the example
After you have extracted the archive you should be able to locate the shell script "create-this-hardware" within the "build_scripts" subdirectory of the archive directory. In the bash shell, "cd" into this directory and run this script like this:
This script should run and fully create the example design without any errors, however, there is no guarantee that this particular build will meet timing. A timing check is run at the end of the build script and a PASS / FAIL indication should be printed to the console regarding timing closure. If your timing closure fails, there are three things that you can manipulate to remedy this, first and most difficult is the development platform, different versions of Linux can produce different results, and Windows will produce different results from Linux, however, most of us don't have multiple development platforms to throw at any given build to change the timing results. Second, is the Quartus II placement seed, this is rather easy to change in Quartus, and then recompiling the design will tell you if this new seed has been more successful or not. Third, you can change the source code, in this example design this is not very difficult, since the design contains a system ID peripheral, regenerating the SOPC Builder system will alter the timestamp constant in this peripheral and produce a source code change. So you could re-generate the SOPC Builder system and then recompile the design in Quartus and see where that takes your timing closure. Another way to achieve this third option is to simply rerun the "create-this-hardware" script from scratch as this will essentially accomplish option 3 from above, and it is this very action that makes the timing closure results unpredictable from build to build.
The "create-this-hardware" is a simple bash shell script that invokes other shell scripts and TCL scripts to create the example design. Please examine these scripts to get a better understanding of how the system is built. Once you have built the system, you can examine the resultant Quartus project for information about how the system was constructed and any other details about the SOPC system and Quartus project.
This is a hardware design example for the Altera NEEK development board.