Design of D-AMPS Channel Decoder with Codesign Methodologies

Mattias O'Nils mattias@ele.kth.se
Kalle Tammemäe
nalle@ele.kth.se

Axel Jantsch (Siemens AG, Austria ) jantsch@lappi.hai.siemens.co.at
Ahmed Hemani
ahmed@ele.kth.se

Royal Institute of Technology
Electronic System Design Laboratory,
Electrum 229, S-16440 Kista, Sweden


In this paper we will present the design of a channel decoder in a D-AMPS base station. We will with help of this design example describe the codesign methodologies in the codesign tool AKKA[1][2]. AKKA is a research tool for codesign of complex telecommunication systems. The channel decoder functionality is a part of a industrial design, and the model consist of 5000 line C++ code. In this paper we will describe the design steps in the tool: analyses, user guided hardware-software partitioning, co-verification and implementation of a prototype. We will also compare our results with the ones from the actual design, made in industry.

AKKA takes a C/C++ specification as input to the system, this code is then compiled with a modified GNU C compiler. After compilations and execution of the specification, the tools extract the following information: software execution time, object access count, hardware estimations (cost and hardware execution time) and parameters describing the architecture. This information is used in the hardware-software partitioning process, which can be fully automatic or user guided. If the partition is made user guided, it is done with in a graph browsing tool, daVinci. It present the system in a graphical way together with analysis results. The user can choice implementation style by marking functions and loops to either hardware and software.

Behavioral VHDL code is generated for hardware parts and system bus interfaces. For the software parts, the code generation replaces the code intended for hardware with interfaces to the hardware. The behavioral VHDL code is synthesized with the high level synthesis tool SYNT. AKKA provide a co-verification mechanism for the hardware and software, this is done with help of UNIX sockets. Co-verification can be performed before and after synthesis, with out any changes on either the hardware or software interfaces.

With in the tool set, there is support for co-emulation and prototyping. For the hardware parts we target a Xilinx based reconfigurable board, from Virtual Computer Inc., which have a X4013 device on it. This board is situated in a Sparc IPX workstation, connected with the SBus. The software parts is also implemented on the workstation.


References
  1. Mattias O'Nils, Axel Jantsch, Ahmed Hemani, Hannu Tenhunen, ``Interactive Hardware-Software Partitioning and Memory Allocation Based on Data Transfer Profiling'', Proceeding of International Conference on Recent Advances in Mechatronics, Page 447-452, August, 1995.

  2. Kalle Tammeme, Mattias O'Nils, Axel Jantsch and Ahmed Hemani, ``Akka: A Tool-kit for Co-Synthesis'', IEE colloquium on Hardware-software cosynthesis for reconfigurable systems, Bristol, February, 1996.