Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników

Znaleziono wyników: 15

Liczba wyników na stronie
first rewind previous Strona / 1 next fast forward last
Wyniki wyszukiwania
Wyszukiwano:
w słowach kluczowych:  SystemC
help Sortuj według:

help Ogranicz wyniki do:
first rewind previous Strona / 1 next fast forward last
1
Content available remote Formal Analysis of SystemC Designs in Process Algebra
EN
SystemC is an IEEE standard system-level language used in hardware/software co-design and has been widely adopted in the industry. This paper describes a formal approach to verifying SystemC designs by providing a mapping to the process algebra mCRL2. Our mapping formalizes both the simulation semantics as well as exhaustive state-space exploration of SystemC designs. By exploiting the existing reduction techniques of mCRL2 and also its model-checking tools, we efficiently locate the race conditions in a system and resolve them. A tool is implemented to automatically perform the proposed mapping. This mapping and the implemented tool enabled us to exploit process-algebraic verification techniques to analyze a number of case-studies, including the formal analysis of a single-cycle and a pipelined MIPS processor specified in SystemC.
EN
SystemC is gaining popularity in the field of modeling and verification of hardware. Especially beneficial of this language usage is the stage of architectural analysis where the task to be computed are split between the HW and SW domains. Fast simulation of such system-level models is crucial in trade-offs between speed, area and power consumption of the target system. However, the hardware synthesis stage is still often performed from VHDL or Verilog models that have to be created manually or semi-automatic from a SystemC code. Thus in this paper we decided to present a complete design flow from a system-level rnodel to hardware synthesis of an example video codec based on SystemC using the 3rd part generation C-synthesis technology. The SystemC-based implementation will be compared with its handwritten VHDL counterpart.
PL
SystemC zdobywa popularność w zakresie modelowania i weryfikacji sprzętu. Szczególnie opłacalne wydaje się użycie tego języka na etapie analizy architektury, gdzie zadania są przydzielane do domen sprzętowych i programowych. Szybka symulacja takich modeli jest krytyczna przy wyznaczaniu kompromisu między szybkością, powierzchnią i energią zużywaną przez docelowy system. Jednakże sam proces syntezy sprzętowej jest wciąż często wykonywany z modeli w VHDL lub Verilogu, które muszą być przepisywane ręcznie lub półautomatycznie z kodu w SystemC. Dlatego w niniejszym artykule zostanie przedstawiona synteza przykładowego kodeka wideo, w pełni wykorzystująca SystemC, z wykorzystaniem technologii syntezy C firm trzecich. Implementacja z SystemC zostanie porównana z ręcznie napisanym odpowiednikiem kodu w VHDL.
PL
Artykuł prezentuje nowe podejście do projektowania systemów wbudowanych z użyciem języka C z dyrektywami OpenMP. Opisano w nim motywację użycia standardu OpenMP do syntezy sprzętowo-programowej. Przedstawiono proponowane rozwiązanie oraz porównano je z klasycznym projektowaniem systemów sprzętowych. Przedstawiono także konstrukcje równoległe standardu OpenMP, syntezowane do postaci współbieżnych układów cyfrowych. Pokazano przykładowy program w języku OpenMP wraz z jego przekładem do kodu SystemC oraz schemat RTL układu będącego wynikiem syntezy opisanego źródła.
EN
The embedded system is a special-purpose computer that performs one or a few dedicated tasks. It contains hardware and software parts [3]. The paper presents a new approach to embedded system design using C language with OpenMP directives. It is different from classic hardware design (Fig. 1a) because it allows describing both hardware and software using a common language (Fig. 1b). OpenMP is a standard that specifies parallel programs using a shared memory architecture. It is the collection of compiler directives and runtime library functions in C/C++ and Fortran languages [11]. Support for concurrency that corresponds to hardware performance is the main motivation of using OpenMP to embedded system design. OpenMP enables describing chips on high level of abstraction without knowledge about details of its structure. It improves flexibility of the software/hardware migration. OpenMP offers simulation, verification and estimation of the system performance. There is sufficient amount of legacy C libraries which facilitate the task of system modeling. Fig. 2a shows an example of OpenMP code that adds two matrixes A and B using a parallel loop. The systemC program being the results of behavioral synthesis of the example 2a is presented in Fig. 2b. Parallel regions in OpenMP have been transformed to SC_METHODS processes in SystemC. Fig. 3 shows the RTL schematic diagram of the chip synthesized from a code 2b. It contains three blocks proc1, proc2, proc3 that are equivalent to threads in OpenMP program. A schematic diagram of the single block is presented in Fig. 4. The unit consists of an adder, a FDE flip-flop that realizes barrier synchronization and two FDR flip-flops representing signals S and R.
EN
Article presents a new approach to embedded systems design using C/C++ languages with OpenMP directives. Motivations of using the OpenMP standard for hardware/software codesign are presented. A proposed approach of the chip design is described and compared with a classie approach. It is differ from a classie hardware design because it allows us to describe both hardware and software using only one language. OpenMP parallel constructs are presented that can be translated into concurrent hardware modules.
EN
In this paper, we present a model of a multi-core chip realizing lossless audio codec, FLAC. This model is developed in the SystemC language at the bus-cycle accurate level. We analyse the blocks of both the encoder and decoder, and determined the inter-module data flows. To increase the computation time, we replicate the modules whose functionalities are of high computational complexity. The blocks dedicated to the hardware realization are synthesized to a reprogrammable chip. We also measure the required FPGA chip area, including memory and a processor core realizing the computation of the software domain blocks.
PL
W artykule zaprezentowano opracowany model wielordzeniowego układu realizującego bezstratny kodek dźwięku FLAC. Model został wykonany w języku SystemC na poziomie abstrakcji z dokładnością do cyklu magistrali. Dokonano przeglądu bloków kodera i dekodera, a następnie wyznaczono przepływy międzymodułowe. W celu przyspieszenia obliczeń dokonano replikacji bloków realizujących funkcjonalność o wysokim stopniu złożoności obliczeniowej. Bloki przeznaczone do realizacji w domenie sprzętowej zostały zsyntetyzowane do układu reprogramowalnego, podano rozmiar wymaganych zasobów układu FPGA uwzględniając procesor realizujący obliczenia części programowej i potrzebną pamięć.
6
Content available remote SystemC-based codesign of distributed embedded systems
EN
Most of existing co-synthesis methods for embedded systems requires a task graph model of a system. This work presents a codesign methodology for embedded systems specified using SystemC language. For each system specification, developed according to this methodology, it is possible to automatically generate the task graph or the conditional task graph corresponding to this specification. To simplify the codesign process and to reduce the time required to develop the specification, a framework in the form of a library built on top of the SystemC language core was created. This library contains definitions of communication channels, interfaces, ports and macros implementing a model of computation corresponding to the task graph semantics. Benefits of the presented methodology were demonstrated by comparing synthesis results of the same system, represented by different SystemC models and using our co-synthesis methods for SOC, SOPC and dynamically reconfigurable SOPC systems.
7
Content available remote Asynchronous circuits through systemC description
EN
Asynchronous design is fundamentally different and not yet a well-established methodology. An important obstacle to growth of this methodology is lack of CAD tools to design circuit automatically. The starting point in developing a circuit is its modeling and simulation. At this paper we will propose an asynchronous library as extension to SystemC language to enable asynchronous circuit description at the highest level of abstraction. For this purpose, channel, join, fork, mux, demux, and merge that are basic elements of asynchronous circuits are introduced into the library. Also a tool was developed which extracts optimized control flow graph and data flow graphs from the high level description. By using proposed library modeling and designing of efficient asynchronous circuits can be done without having to deal with detail of asynchronous implementations. Extracted CFG and DFG were prepared in well-defined form that can easily be used for synthesis purpose, verification or test generation in later steps of our digital design flow.
PL
Przedstawione w artykule wzorce projektowe definiują konstrukcję modułów front-end'u taką aby mogły one być wykorzystane w większej liczbie zastosowali związanych z przetwarzaniem kodu źródłowego. Wzorce pomagają uzyskać modularną implementację, pozwalającą na wygodne składanie ścieżki przetwarzania ze skompilowanych bibliotek dynamicznych. Pozwalają oddzielić bloki przetwarzania wstępnego od bloku semantyki. Ich stosowanie daje też korzyści w procesie produkcyjnym samych narzędzi - poprawia architekturę ich konstrukcji, wymusza wyodrębnienie wewnętrznych interfejsów pomiędzy blokami funkcjonalnymi, które stanowią następnie ważne elementy dokumentacji technicznej narzędzia. Wzorce z powodzeniem zastosowano w kilku projektach - zarówno komercyjnych jak i badawczych.
EN
Nowadays, the source code apart from behavioral description - which is essential to generate executable form. -contains also records of its construction assumptions, implementation details notes, testing process requirements, and other information as well. All those data are crucial to achieve good ratings in project supervision, risk minimizing, and product quality. In consequence, there are many purposes of source code processing: compilation, but also documentation generation, refactorizalion, integrity and.correctness verification etc. Design Patterns presented here define front-end modules construction, which gives a possibility of modules reuse. The Patterns enforce modular implementation style, which allows composing code processing path from dynamically linked units in a convenient way. They clearly separate source text processing front-end from semantics units. Also the tools development process can benefit from using these patterns: they improve internal architecture, introduce mid-interfaces between functional blocks that become important form of technical documentation of tool interiors. The design patterns described here have been successfully applied in a few projects - commercial and research ones.
PL
Standard IEEE 1666-2005 - SystemC - jest odmianą notacji języka opisu sprzętu (HDL - Hardware Description Language). W odróżnieniu od innych notacji HDL, SystemC nie jest samodzielnym językiem, ale biblioteką klas szablonowych, która uzupełnia język C++ o elementy semantyki HDL. Z myślą o zastosowaniu w konstrukcji szerokiej gamy narzędzi projektowych został opracowany komponent programowy analizatora notacji SystemC. Istotą analizy notacji SystemC jest rekonstrukcja semantyki HDL, zawartej w kodzie źródłowym modelu. Analizator notacji SystemC dokonuje detekcji wzorców na poziomach: leksykalnym, składniowym oraz semantycznym, których kombinacja stanowi podstawę do wnioskowania o rozpoznaniu elementów semantyki HDL. Potrzebne informacje są uzyskiwane z reprezentacji pośredniej, generowanej przez moduł analizatora C++ z dostępnego publicznie projektu kompilatora GNU GCC. Architektura przyjęta w ramach zrealizowanego projektu wyodrębnia niezależne moduły analizatora C++ (część kompilatora GCC) oraz analizatora SystemC - oba zostały wyposażone w otwarte interfejsy aplikacyjne (API) umożliwiające współpracę z dowolnymi modułami implementującymi kolejne etapy przetwarzania, dołączanymi w postaci skompilowanych bibliotek dynamicznych. Zakres możliwych zastosowań obu modułów znacznie wykracza poza ramy omawianego projektu.
EN
Standard IEEE 1666-2005 - SystemC is one of the Hardware Description Languages (HDL). SystemC notation differs from classic HDL in that it is not a self-contained language but only a class library, which supplies the C++ language with HDL semantics. SystemC analyzer has been built as a base for a large variety of development tools. The analysis is based on the HDL semantics reconstruction from the C++ code. The analyzer uses lexical, syntactical, and semantic information extracted from an internal code representation built by the C++ compiler front-end from GCC. Both C++ analyzer from GCC and SystemC analyzer have open application interfaces what makes cooperation with different modules possible. Those modules are provided as dynamically linked libraries and implement next transformation steps. The scope of application of both modules significantly oversteps the project being discussed.
EN
In this paper, we describe Partial Point Matching Algorithm (PPMA) for binary images matching and provide some information about a developed SystemC system-level hardware implementation model. We present some data obtained from a cycle accurate simulator taking into account computation and routing delays of a target FPGA chip and compare it with its software counterparts.
PL
W artykule opisano algorytm częściowego dopasowywania z użyciem punktów do porównywania obrazów binarnych i przedstawiono opracowany model na poziomie systemowym w języku SystemC. Zaprezentowano dane otrzymane z symulatora pracującego na poziomie dokładności co do cyklu zegarowego, biorącego pod uwagę opóźnienia bramek i rutingu, oraz porównano go z jego programowym odpowiednikiem.
EN
The article presents a novel method of lossy compression of still images by means of two-dimensional principal component analysis. The algorithm is based on three main steps: transform coding of image blocks resulting feature-space dimensionality reduction, quantization of resulting coefficients and optional entropy coding. Although the compression ratio of presented approach is comparable to other, well-known algorithms, this new method gives images of very high visual quality. Some details on the hardware implementation in a reprogrammable chip are provided.
PL
Przedstawiono technikę stratnej kompresji obrazów statycznych wykorzystującą dwuwymiarową analizę komponentów głównych. Algorytm składa się z trzech etapów: kodowania transformacyjnego bloków obrazu, realizującego redukcję wymiarowości przestrzeni cech, kwantyzacji uzyskanych współczynników i opcjonalnego kodowania entropijnego. Pomimo tego, że uzyskiwany współczynnik kompresji jest porównywalny do innych znanych algorytmów, opracowana metoda daje obrazy o dużo lepszej jakości wizualnej. Pokazano również szczegóły implementacyjne do układów reprogramowalnych.
EN
A new implementation of an architecture for lossless compression based on subpredictors blending is described in this paper. This implementation utilizes the Network-on-Chip architecture with packet-switching approach. Experimental results show that the proposed algorithm is slightly more efficient than other one-pass blending techniques known in the literature, whereas the proposed hardware realization is much faster than its software counterparts and requires significantly less wires than the dedicated-wiring approach.
PL
Opisano nowy algorytm i implementację architektury dedykowanej bezstratnej kompresji, wykorzystującej metodę mieszanych predyktorów. Przedstawiona implementacja stosuje sieci wewnątrzukładowe z przełączaniem pakietów. Badania eksperymentalne pokazują, że przedstawiony algorytm jest bardziej efektywny niż inne jednoprzebiegowe metody mieszania predyktorów, a zaproponowana implementacja sprzętowa jest dużo szybsza niż jej programowy odpowiednik i wymaga znacznie mniej traktów połączeniowych niż podejście z dedykowanymi połączeniami.
13
Content available remote Modele projektowe w języku SystemC
PL
W niniejszym artykule przedstawiono modele projektowe dla języka SystemC, umożliwiające wykonanie automatycznej syntezy systemów wbudowanych na podstawie specyfikacji w tym języku. Modele projektowe określają zbiór dozwolonych konstrukcji językowych oraz zasady ich stosowania. Konstrukcje te opracowane są w formie biblioteki klas i makrodefinicji. Biblioteka stanowi rozszerzenie standardowego środowiska SystemC. Dla każdej specyfikacji zgodnej z opracowanymi modelami możliwa jest automatyczna generacja grafu zadań, warunkowego grafu zadań lub grafu zadań z krawędziami sterującymi, które mogą być bezpośrednio zastosowane do syntezy systemowej za pomocą istniejących metod. Przydatność opracowanych modeli została oceniona na praktycznym przykładzie.
EN
This article presents design models for SystemC language. Design models enable creating synthesisable specifications for embedded systems. These models are defined by a set of specification rules implemented in the form of a library build on top of the SystemC standard library. For each specification corresponding to one of the presented design models it is possible to automatically generate a task graph, a conditional task graph or a control/data flow task graph. Task graph representation is required in existing system synthesis methods. Presented examples demonstrate the benefits of the design models.
PL
W artykule przedstawiono technikę formalnej weryfikacji systemów sprzętowo-programowych opisanych za pomocą języka opisu systemów SystemC. Formalnej weryfikacji dokonuje się z wykorzystaniem logiki temporalnej CTL i asercji. Przedstawiono formuły CTL dla systemu z jedną sekcją równoległą. Badania eksperymentalne wykazały liniowy wzrost liczby formuł i liniowy przyrost czasu działania programu automatycznie wstawiającego asercję, przez co prezentowane podejście nadaje się do zastosowań przemysłowych.
EN
In this paper, we present a formal verification technique of software/hardware systems given in the SystemC system description language. The verification is performed using temporal logic CTL and assertions. We enumerate the CTL formulas generated from a system with a single parallel section. Experimental results present a linear growth of a number of formulas and linear growth of the execution time of the developed tool that automatically inserts CTL assertions. Consequently, the proposed approach is suitable for industrial applications.
PL
W artykule przedstawiona jest propozycja algorytmów kompilacji i modelu kompilatora pozwalającego na zmniejszanie zużycia energii. Problemy związane ze zbyt dużym zużyciem energii stają się coraz bardziej istotne, szczególnie w systemach osadzonych, głównie w urządzeniach przenośnych. Ze względu na fakt, że jednym z największych odbiorców energii w takim systemie jest pamięć, w poniższym artykule są zaprezentowane zagadnienia dotyczące oszczędności energii podczas korzystania z pamięci. Omawiany kompilator jest przeznaczony do kompilacji programów dedykowanych przede wszystkim dla systemów osadzonych, ale również dla innych typów urządzeń, głównie takich, które funkcjonują dzięki zasilaniu bateryjnemu.
EN
This paper presents a proposition of compilation algorithms and a model of compilation that allows to minimize memory energy consumption. Problems connected with excessive energy consumption are becoming increasingly important, especially in embedded systems and mobile devices. Because of the fact that the memory is one of the biggest energy consumer in such systems, this article presents energy-saving problems connected with memory access. Described compiler is designed for compilation of programs dedicated especially for embedded systems, but also for other types of devices, mainly battery-powered.
first rewind previous Strona / 1 next fast forward last
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.