Artykuł opisuje implementację algorytmu DES z wykorzystaniem języka Impulse C. Język Impulse C należy do rodziny języków określanych wspólnym mianem języków HLL (High Level Language), których zadaniem jest, w stosunku do języków VHDL i Verilog, rozwinięcie możliwości opisu sprzętu na poziomie systemu. W założeniu, opis taki ma być syntezowalny i możliwy do implementacji w układach FPGA. W artykule skrótowo przedstawione zostały najważniejsze cechy charakterystyczne języka Impulse C oraz narzędzi programistycznych związanych z tym językiem. Przedstawiono również kilka sposobów optymalizacji projektów wykonywanych w języku Impulse C.
EN
In this paper we describe an FPGA implementation of the DES algorithm using Impulse C language. Impulse C is the one of the representatives of a growing group of hardware description languages known as High Level Languages (HLLs). The Impulse C extends standard ANSI C by introducing an extensive set of pragmas, new data types and library functions [3]. The Impulse C compiler translates programs that are written in 'C' into RTL-level system description. Section 1 describes some of the most important properties of the Impulse C language that are used in discussion conducted on later sections. Section 2 presents briefly the DES algorithm. In the next section a basic implementation of the DES algorithm is given. The block diagram of the designed circuit is shown in Fig. 1. The design was implemented using Xilinx Virtex 5 LX 220 FPGA. The basic version originates from the software version of the algorithm. Thus it is not optimized for hardware implementation. In the last section some improvements of the basic design available in the Impulse C are described. Those include a migration of arrays from a block RAM to FPGA internal registers and replication combinatorial logic. The result for the basic version of the algorithm and its optimized versions are presented in Table 1. Fig. 2 depicts the final algorithm implementation. The optimized version allows for a 8,25 times speedup over the basic version.
Narzędzia do projektowania bazujące na opisie HLL są już powszechnie dostępne dla projektantów struktur rekonfigurowalnych. Ciągle jednak, problemem jest wydajność osiągana przez dostępne rozwiązania. Aktualne i potrzebne jest więc porównywanie rozwiązań i poszukiwanie tych, które w określonych zastosowaniach sprawdzają się najlepiej. Artykuł porównuje dwie realizacje potokowego algorytmu CORDIC. Autorzy dzielą się swoimi wynikami oraz wnioskami i spostrzeżeniami, które powstały w toku realizacji obu implementacji.
EN
A design of hardware architectures using high level description languages becomes more and more popular in common engineering practice regarding science and technology. Design entry tools that accept a hardware description similar in syntax to ANSI C are commonly avaliable for designers of reconfigurable structures. Hovewer, despite maturity of those tools, performance is still a problem if compared to RTL de-scriptions which can be entered if languages such as Verilog and VHDL are used. Thus, comparing and evaluating the mentioned styles of hardware pro-gramming seems to be necessary and up-to-date. That can lead to a common knowledge what tools and languages are best for particular pur-poses. This paper presents a comparison of two implementaions of a CORDIC algorithm which were performed on the SGI RASC reconfigurable platform. The implementations were described both in VHDL and a high level style hardware language: Mitrion-C. The authors present the results, remarks and conclusions which arose during the process of creation of both implementations.
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ć.