Tutorials
// Get information about current user to see which version of the tutorials we display.
global $current_user ;
get_currentuserinfo() ;
$userHasAccessToRoccc = current_user_can('roccc') ;
$userHasAccessToConvey = current_user_can('roccc_convey') ;
$userHasAccessToPico = current_user_can('roccc_pico') ;
if ($userHasAccessToRoccc)
{
echo 'The following tutorials correspond to ROCCC 2.0 version 0.7.4.’ ;
}
else
{
echo ‘The following tutorials correspond to ROCCC 2.0 version 0.6.0.’ ;
}
?>
 |
1. Getting Started
- Installing ROCCC 2.0
Installing ROCCC 2.0: Step by step instructions on downloading and installing both the ROCCC 2.0 compiler and the Eclipse GUI plugins. At the end of this tutorial, ROCCC will be set up and ready to use.
- GUI Overview
GUI Overview: Get a brief overview of all the various menus, buttons, and views that come with the ROCCC GUI.
|
|
 |
2. Basic Construction
- Project Creation
Project Creation: Learn how to create your own project in the ROCCC GUI for organizing your modules and systems.
- Module Construction
Module Construction: Learn how to create and properly code a new module in ROCCC.
- System Construction
System Construction: Learn how to create and properly code a new system. We will also go over how to determine how many data elements ROCCC will expect from your streams.
|
 |
3. Re-usability
- Using Compiled Modules
Using Compiled Modules: Take advantage of ROCCC 2.0's bottom up design to reuse modules you have already compiled in other components.
- Adding and Using External Cores
Adding and Using External Cores: Learn how to tell ROCCC that you have external cores available for use and how to call those external cores in your code.
|
|
 |
4. Optimizations
- High-Level
High-Level: Learn about all of the high-level optimizations available for modules and systems and how to call them. These include loop unrolling, inlining, and systolic array generation.
- Low-Level
Low-Level: Learn about all of the low-level optimizations available for modules and systems and how to call them. These include arithmetic balancing, copy reduction, and maximizing precision.
- Area vs Frequency
Area vs Frequency: Tune the level of pipelining and compaction of your circuit to achieve the right level of area vs frequency.
- Stream Accessing
Stream Accessing: Increase the number of parallel input and output channels on your streams. This will also go over how to set the maximum number of outstanding memory requests for input streams.
|
 |
5. Advanced Usage
- Bit Width Specification
Bit Width Specification: Learn how to specify bit sizes of integer and floating point variables in ROCCC 2.0.
- Control Flow
Control Flow: See how ROCCC 2.0 translates C-level control flow down to hardware so you get a better idea of what kind of circuit you are creating.
- Intrinsic Usage and Management
Intrinsic Usage and Management: See how ROCCC 2.0 handles non-standard hardware operations such as integer division, floating point operations, and variable casts.
|
|
 |
6. Testing and Porting
- Testbench Generation
Testbench Generation: Generate VHDL testbenches out of your modules and systems to verify the correctness of your circuit.
- PCore Generation
PCore Generation: Generate Xilinx PCores from modules and run them on FPGAs using EDK.
- Connecting to ROCCC Generated Code
Connecting to ROCCC Generated Code: See what signals ROCCC generates for modules and systems and how to connect to them.
// If the user has access to the additional plugins, give them links to these new tutorials
//if ($userHasAccessToConvey)
//{
// echo '
- Using the Convey HC-1 Port
Using the Convey HC-1 Port: See how to create synthesis and simulation projects for use on the Convey HC-1.
‘ ;
//}
//if ($userHasAccessToPico)
//{
// echo ‘
- Using the Pico Port
Using the Pico Port: See how to create projects for synthesis and simulation for use on the Pico M501.
‘ ;
//}
?>
|