dcblack / technology_demonstrator

Zedboard and SystemC technologies combined...
Other
6 stars 0 forks source link

DESCRIPTION

This directory and its contents contain a project that ties a zedboard design to a SystemC ESL design. This was described in a presentation entitled "A SystemC Technology Demonstrator" at the SystemC Tutorial at DVCon 2013 in San Jose. The goal of the project was to demonstrate multiple technologies including:

This directory contains two subdirectories: sysc/ and zedboard/ representing the component parts. There are also a few supporting directories: docs/ contains information about the project. bin/ contains some supporting scripts for one of two makefile flows (SystemC related). NOTE: You probably do not need to understand the two makefile flows in any detail.

The zedboard/ directory contains C-code for a zedboard; although, it can be compiled for execution any any standard Linux environment that supports POSIX sockets and pthreads. main simply sends a variety of random data values to a driver that communicates with sockets to a remote SystemC design.

The sysc/ directory contains C++ code for a SystemC adaptor that takes TLMX packets and converts them to TLM 2.0 payloads, which are then sent to the TLM target.

REQUIREMENTS

HOW TO BUILD

Make sure you meet the general requirements. See NOTES.md for additional information.

To build the software for SystemC, type:

pushd sysc && make clean exe && popd

To build the software for zedboard, type:

pushd zedboard && make TARGET_ARCH=ZEDBOARD clean exe && popd

HOW TO RUN

Before running this software, it is necessary to connect the ethernet to a host that is running the SystemC server/simulator software called zynq.x. On the remote host, type:

sysc/async_adaptor-linux64.x -port=PORTNUMBER

It should output half a page of info and then pause.

To execute the initiator software in the zedboard directory type:

zedboard/software.x HOSTNAME PORTNUMBER

Where HOSTNAME should designate a host running the SystemC simulator on the ethernet and the PORTNUMBER should match the sysc PORTNUMBER number. You can specify either a DNS name or the IP address (e.g. 198.168.1.12)

Port numbers should be number greater than 2000 to avoid collisions with standard OS ports (e.g. mail or ssh). Suggest using 4000.

ABOUT THE SOURCE

SystemC code for simulated portion:

C-code for embedded system:

TAF!