Embedded System Environment (Front End): ESE Version 2.0 evaluation; Tutorial | ||
---|---|---|
Next |
This section deals with design of JPEG encoder on a platform consisting of five MicroBlaze processors. The JPEG application code is available as a C model. The JPEG encoder has five processes and each process is mapped to a unique processor, thus the processes can be executed concurrently. The communication between the processes can take place through pairs of various channels such as process-to-process (or point-to-point) massege passing channel, shared memory channel and First-In-First-Out (FIFO) channel. In this Chapter, all the channels in the JPEG encoder are via the FIFO channels. ESE provides well defined communication APIs for this purpose. The encoded output is shown graphically during the TLM simulation of the JPEG encoder.
The chapter starts by explaining the set up for ESE. It then shows, using screenshots, how the platform is created. To speed up the demostration, and to emphasize on the features, we start with an existing partial platform that is upgraded with additional processors and a bus. Then we show the application mapping on the platform, followed by TLM generation, simulation and performance estimation. Thus, we present the core capabilities of the ESE Front-End tools in easy platform design & upgrade, model generation, validation and estimation.
Before starting the demonstration, please ensure that you have the ESE software installed in the right location at "/home/ese/local." Also make sure that you have an "/home/ese/local" directory containing the SystemC 2.2.0 libraries and Simple Directmedia Layer (SDL) libraries that are needed for simulation of generated TLMs. Also make sure that you have GCC version 3.4 or higher because it is needed to correctly compile the generated TLMs. The demonstration shown here assumes the user to have a bourne shell. For C shell, the user may call the ".csh" version of the setup scripts. Alternately, just use "sh" to create a new bourne shell and follow the tutorial directions.
We start by setting up the environment variables to access ESE binaries. This is provided by the "setup.sh" script in your installation. Typically, the installation path would be "/home/ese/local." The script is in the "bin" directory in the installation. The script modifies your PATH environmental variable to include path to ESE as well as the LD_LIBRARY_PATH variable to access the shared libraries that ESE depends on. Run the command "source /home/ese/local/bin/setup.sh" and create a new local directory for the demo.
Once the environmental variables have been set, the user is ready to launch ESE and create his or her design. For the purposes of this tutorial, we will start with a partial design to quickly demonstrate the key capabilities of the toolset. We have created a shell script called "esedemo_mpd.sh" that prepares a partial design to start the demo for the JPEG encoder. At this point, run the "esedemo_mpd.sh" script after changing into the local directory created for the demo.
After running the "esedemo_mpd.sh" script, you will notice several files in the working directory. Some of these files will have a ".eds" extension. They are the ESE design files for the JPEG encoder design that we will be using for this demo. You may also see links to source directories. These point to the C code for the processes of the JPEG application. To launch the ESE GUI, simply run "ese" from your shell.
The ESE GUI should now appear as shown in the screenshot. The GUI has several menu items that we shall explore over this tutorial. It is divided into five windows. The top left window is the "PE" window. It organizes the various application processes mapped to the Processing Elements (PEs) in the design. The mid-left window is the "Channel" window that organizes the various channels used for communication between the application processes. The tabs represent the physical communication links in the platform. The bottom left window is the "Database" window that organizes the PE, Communcation Element (CE), memory and RTOS model. The top right window is the "Platform Canvas" on which the platform architecture is edited graphically. The bottom right window is the "Logging" window that logs the messages from various ESE tools.
Before creating a new design, we must ensure that the components needed for our JPEG platform are accessible by the GUI. To do so, we edit the database preferences by selecting Edit->Preferences from the menu bar.
In the Preferences dialog, select the tab for Database. This will allow the user to browse for the database file that has a ".edb" extension. The database file needed for the JPEG demonstration already comes with the ESE installation. Typically, this file will be called "ese.edb" and will be located at "/data/users/ese/local/db/ese.edb." If the selection is not already there, please browse for the file and press OK. All the elelements should now be visible in the database window, if they weren't already.