Dynamisch herconfigureerbare partoonherkenning voor reguliere expressies op FPGA

Maat: px
Weergave met pagina beginnen:

Download "Dynamisch herconfigureerbare partoonherkenning voor reguliere expressies op FPGA"

Transcriptie

1 Dynamisch herconfigureerbare partoonherkenning voor reguliere expressies op FPGA Mattias Merlier Promotor: prof. dr. ir. Dirk Stroobandt Begeleiders: ir. Karel Bruneel, ir. Tom Davidson, ir. Brahim Al Farisi Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar

2

3 Dynamisch herconfigureerbare partoonherkenning voor reguliere expressies op FPGA Mattias Merlier Promotor: prof. dr. ir. Dirk Stroobandt Begeleiders: ir. Karel Bruneel, ir. Tom Davidson, ir. Brahim Al Farisi Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar

4 Dankwoord Het schrijven van een masterproef is niet evident, er gaat namelijk heel wat aan vooraf. Het is het hoogtepunt van vijf jaar studies aan de universiteit. Ik zou dan ook heel wat mensen willen bedanken die hebben bijgedragen aan het verwezenlijken van dit document. In een soort van chronologische volgorde wens ik dan ook volgende personen te bedanken: Mijn ouders, die mij de mogelijkheid hebben gegeven om hogere studies te volgen. Al mijn kameraden en medestudenten in de loop van mijn studieloopbaan. Zonder jullie zou het verlopen van de voorbije vijf jaar waarschijnlijk een stuk minder draaglijk zijn. Familie, vrienden en vriendin voor de (brood)nodige ontspanning. Mijn begeleiders, Tom, Karel en Brahim voor de uitstekende begeleiding in de loop van het jaar. Alle leden van het leesteam, om er de soms schaamtelijke taalfouten uit te halen. Bedankt iedereen! Mattias Merlier, juni 2011 i

5 Toelating tot bruikleen De auteur geeft de toelating deze masterproef voor consultatie beschikbaar te stellen en delen van de masterproef te kopiren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef. Mattias Merlier, juni 2011 ii

6 Dynamisch herconfigureerbare partoonherkenning voor reguliere expressies op FPGA door Mattias Merlier Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: Computerwetenschappen Afstudeerrichting: Ingebedde Systemen Academiejaar Promotor: Prof. Dr. Ir. D. Stroobandt Begeleiders: Ir. K. Bruneel, Ir. T. Davidson, Ir. B. Al Farisi Faculteit Ingenieurswetenschappen en Architectuur Universiteit Gent Vakgroep Elektronica en Informatiesystemen Voorzitter: Prof. Dr. Ir. J. Van Campenhout Samenvatting In deze masterproef wordt besproken hoe een volledig dynamische patroonherkenner voor reguliere expressies kan worden opgebouwd. Dit gebeurt door te vertrekken van een bestaande patroonherkenner uit de literatuur, deze uit te breiden en te optimaliseren. De voornaamste optimalisaties gebeuren door gebruik te maken van de techniek van parametriseerbare configuraties en door de architectuur af te stemmen op de toepassing die voor ogen is. Trefwoorden Reguliere-expressieherkenning, FPGA, Run-time herconfiguratie

7 Dynamic Reconfigurable Pattern Matcher for Regular Expressions on FPGA Mattias Merlier Supervisor(s): ir. Karel Bruneel, ir. Tom Davidson, ir. Brahim Al Farisi Abstract In this article we describe how to expand a partially dynamic reconfigurable pattern matcher for regular expressions presented in previous work by Divyasree and Rajashekar [2]. The resulting pattern matcher is fully dynamic reconfigurable. Methods are presented to adapt the pattern matcher to the application. By doing this the pattern matcher s performance increases. The design is targeted for use with parameterizable reconfigurations. Keywords Regular Expression Matching, FPGA, Run-Time reconfigurable hardware. I. INTRODUCTION REGULAR expressions are widely used in the domain of Computer Sciences. Regular expressions describe patterns in a confined and standardized way. Table I shows an overview of the possible syntax. Applications that use regular expressions range from scripting languages (eg. php) to Network Intrusion Detection Systems (NIDS) such as Snort. Regular expression matching is a computationally intensive problem. Furthermore the patterns that have to be matched vary frequently. Because of this pattern matching is usually done in software, which is extremely flexible. Snort is a widly used NIDS, which has a pure software-based matching engine. The payload of network packets has to be matched with a database of regular expressions. Based on the matching, malicious packets will be dropped. As network rates are increasing to higher data-rates, so is the need for high performance systems. The inherent sequential nature of software limits the performance of such a regular expression matcher, especially for large sets of expressions. Hardware solutions are inherently parallel and should be able to provide greater performance. Network security applications require frequent updates of the regular expression database. To support this, reconfigurable hardware like FPGAs can be used for the implementation. The normal update process includes regeneration of the HDL, synthesis, place and route (PAR) and completely reconfiguration of the FPGA. This complete process is called the toolflow for configuring FPGAs. This generation process might take up to a few hours, especially for large sets of patterns. The proposed solution uses parameterizable reconfigurations. With this new technique dynamic an FPGA design can be made reconfigurable automatically. In this technique all NP hard problems in the FPGA toolflow are solved off line. On line generation is used for specializing the design, this takes in the order of milliseconds. II. PARAMETERIZABLE RECONFIGURATIONS The technique of parameterizable reconfigurations is a stateof-the-art method for designing dynamic reconfigurable hardware on the Hardware Description Language (HDL) level [1]. TABLE I SUPPORTED REGULAR EXPRESSION SYNTAX Syntax Description a All ASCII alpanumerics ˆ$*+? ()[{.-\ Metacharacter, each of these has a special meaning. Dot: matches any character other than newline \? Backslash combined with a metacharacter reduces them to their literal meaning [abc] Characterclass, matches each character within brackets [ˆabc] Reversed characterclass, matches any character other than these between brackets [a-za-e] Characterclass with range RegExp1RegExp2 Concatenation: Regular expression 1 followed by regular expression 2. RegExp1 RegExp2 Union: Regular expression 1 OR regular expression 2. RegExp Kleene Star: Matches zero or more occurences of the regular expression RegExp+ Plus: Matches one or more occurences of the regular expression RegExp? Question Mark: Matches zero or one occurences of the regular expression RegExp{M,N} Constraint Repetition herhaling. Matches between M and N occurences of the regular expression ˆRegExp Caret. Only matches the regular expression at the beginning of the string. RegExp$ Dollar. Only matches the regular expression at the end of the string. Flags i s m Description Case sensitivity Dot (.) matches any character, including newline ˆ en $ match at each newline The resulting hardware is run-time reconfigurable which means that the FPGA does not have to be shut down during a change of functionality. The functionality is changed by overwriting the thruth-tables of the LUTS. Because the structure of the circuit does not change, we do not have to go through the complete toolflow. This results in a fast reconfiguration. III. PREVIOUS WORK Most of the work done around implementing regular expressions on hardware requires the complete regeneration of the hardware. These designs aren t suitable for applications where fast dynamic reconfiguration is required. However there are three exceptions. The first approach is the ASIC implementation of Brodie et al. [3]. This design uses memory which describes the regular expressions. Overwriting this memory results in other regular expressions, which allows for run-time reconfiguration. The second approach is the microcontroller implementation of Baker et al. on FPGA [4]. Similar to the first approach, overwriting the memory changes the functionality. Lastly Divyasree and Rajashekar propose a pattern matcher built by generic blocks in cascade [2]. The generic blocks are able to implement regular expressions and are dynamic reconfigurable to a certain degree. Reconfiguration is done by changing the configuration inputs of the generic blocks. This approach will be used as starting point. Figure 1 shows the architecture of the regular expression matcher from [2] which will be modified. A. Limitations The proposed architecture for a dynamic pattern matcher by Divyasree and Rajashekar has a few limitations and shortcomings when in need of a fully dynamic pattern matcher.

8 Input characters 8 1-bit character signals Global Decoder G G G G G G G G... G G... G G Fig. 1. Architecture of starting point N regular expressions of varying but fixed length First of all the proposed implementation is optimized by designing on low level. When small changes (such as the number of bits of the used counter decoder) have to be made, these changes also have to be made on this low level, thus increasing the design cost. Secondly, dynamic character changes are not possible. For example the regular expression a + b c? can be changed dynamically to a b{5}c+, but not to d + b c?. This problem is a result of the used architecture: a global decoder receives the incoming character and sends a one-bit matching signal to each generic block. The routing in the design is fixed and the decoder is static. A character change on a generic block thus requires the complete rerun of the toolflow. The third limitation involves the use of character classes, special characters and flags. These functionalities are possible with the proposed architecture but they are not dynamically adaptable. Lastly the proposed architecture comprises of regular expressions of static length, the length of a given regular expression cannot be increased or decreased once implemented in the regular expression matcher. IV. PROPOSED SOLUTIONS AND RESULTS The proposed solutions try to tackle the limitations described above. A. Parameterizable configurations With the use of parameterizable configurations the design can be done on a high level such as VHDL. This results in efficient development of basic blocks. Experiments have shown that using this technique on the basic generic block results in a circuit with the same area size of the manually optimized design. Every approach suggested in this paper uses parameterizable configurations wherever this is possible. B. Dynamic character changes To support dynamic character changes, two methods are proposed. The first one extends the current generic block and the second modifies the global decoder. The proposed solutions also enable efficient usage of character classes and special characters. Additionally with these approaches the /i and /s flags can be dynamically changed. B.1 Extending the generic block In the first approach the global decoder is omitted and the generic block is extended. Each generic block now receives 8 character bits instead of one. Each extended generic block can be configured to match any character, a special character, a character class or a combination of one or more. The set of possible character classes and special characters is limited but should suffice in practical situations. The minimum additional cost for an extended generic block is 3 LUTS. B.2 Dynamic global decoder In the second approach we keep the basic generic block and extend the decoder to provide dynamic character changes. The design is RAM based. On an FPGA we can use distributed RAM or Block RAMs to implement the design, depending on the available hardware resources. The distributed RAM method uses 17 LUTS per generic block whereas for use with BRAM we need 256 bits per generic block. With this method, all possible character classes and special characters can be implemented. C. Introduction of S-block In order to support a variable regular expression length, we need an additional block, the S-block. The S-block is placed in between generic blocks (basic or extended). The S-block has two modes, start-stop and connect-through. The mode is chosen by a configuration input. When in start-stop mode, the regular expression formed by the former generic blocks ends here and a new regular expression starts with the next generic block. In the second mode, the signals coming from the previous generic block are put through to the next block. Because the modes of the S-block can be changed dynamically, regular expressions can vary in length. This is shown on figure 2. The S-block also allows dynamic change of the /m flag. The cost of this block is 8 LUTS. start-stop connect-through S G S G S G S G S... Expression of length 1 Expression of length 3 Fig. 2. Introduction of S-block V. CONCLUSION The original dynamic pattern matcher can be extended and optimized. This results in a fully dynamic pattern matcher for regular expressions and can be used in practice. REFERENCES [1] K. Bruneel, P. Bertels, and D. Stroobandt, A method for fast hardware specialization at run-time, in FPL (K. Bertels, W. A. Najjar, A. J. van Genderen, and S. Vassiliadis, eds.), pp , IEEE, [2] J. Divyasree, H. Rajashekar, and K. Varghese, Dynamically reconfigurable regular expression matching architecture, in Proceedings of the 2008 International Conference on Application-Specific Systems, Architectures and Processors, (Washington, DC, USA), pp , IEEE Computer Society, [3] B. C. Brodie, D. E. Taylor, and R. K. Cytron, A scalable architecture for high-throughput regular-expression pattern matching, SIGARCH Comput. Archit. News, vol. 34, pp , May [4] Z. K. Baker, H. jip Jung, and V. K. Prasanna, Regular expression software deceleration for intrusion detection systems, in in 16th International Conference on Field Programmable Logic and Applications (FPL06, pp , 2006.

9 Inhoudsopgave Dankwoord i Toelating tot bruikleen ii Overzicht iii Extended abstract iv Inhoudsopgave vi Gebruikte afkortingen ix 1 Inleiding Probleemstelling Doelstelling Opbouw Reguliere expressies Inleiding Syntax Eindigetoestandsautomaten Toepassingen Snort vi

10 Inhoudsopgave 3 Parametriseerbare herconfiguratie op FPGA Basisconcepten FPGA Architectuur Toolflow Parametriseerbare configuratie Klassieke run-time herconfiguratie Parametriseerbare configuratie Voorbeeld decoder Reguliere expressies herkennen op hardware Overzicht Hardware vriendelijke reguliere expressies Snort Dynamische patroonherkenners Uitdieping artikel Architectuur patroonherkenner Globale decoder Generiek blokje Optimalisaties Implementatie van automaat Optionele encoder Klokfrequentie Beperkingen Volledig dynamische patroonherkenner voor reguliere expressies Toepassing van parametriseerbare configuratie Dynamische karakterverandering Karakterherkenningsblok Dynamische globale decoder vii

11 Inhoudsopgave Samenvatting Reguliere expressies van variabele lengte Op basis van verdeling Toevoegen van S-blok Praktisch gebruik van dynamische patroonherkenner Optimalisaties Generiek blok-niveau Expressieniveau Systeemintegratie Combinatie met statische patroonherkenner Combinatie met software patroonherkenner Ontwerpen van een dynamische patroonherkenner Conclusies en toekomstig werk Conclusies Toekomstig werk A Syntax van PCRE 56 B Snort overzicht 59 C Kost van de functionaliteiten 62 Lijst van figuren 67 Lijst van tabellen 68 viii

12 Gebruikte afkortingen ASCII ASIC BRAM CAD CM DFA DNA DRAM I/O ELIS FF FIR FPGA HDL KHB LUT NFA PCRE PLA POSIX RAM American Standard Code for Information Interchange Application-Specific Integrated Circuit Block RAM Computer-Aided Design Configuratie Manager Deterministic Finite Automaton Deterministische eindigetoestandsautomaat Desoxyribonucleïnezuur Distributed RAM Gedistribueerd RAM Input/Output Elektronica en Informatiesystemen Flip-flop Finite Impulse Response Field Programmable Gate Array Hardware Description Language Karakterherkenningsblok Look-Up Table Nondeterministic Finite Automaton Nietdeterministische eindigetoestandsautomaat Perl Compatible Regular Expressions Programmable Logic Arrays Portable Operating-System Interface Random-access memory ix

13 Inhoudsopgave ROM SRAM TLUT TPC USB VHDL VHSIC Read Only Memory Statische RAM Tunable Look-Up Table Techniek van parametriseerbare configuratie Universele Seriële Bus VHSIC Hardware Description Language Very High Speed Integrated Circuit x

14 Hoofdstuk 1 Inleiding Dynamisch herconfigureerbare patroonherkenning voor reguliere expressies op FPGA is waarschijnlijk niet de meest tot de verbeelding sprekende titel. Dit document begint met inleidende hoofdstukken die enkele benodigde basisbegrippen uitleggen en waarbij iets dieper wordt ingegaan op de stukken die relevant zijn voor deze masterproef. Na deze inleidende hoofdstukken ga ik wat dieper in op het bestaande werk en de tekortkomingen ervan. Hierna volgt dan het toelichten van mijn werk en de bespreking van de resultaten. Patroonherkenning bestaat erin om één of meerdere gegeven patronen te herkennen in ruwe, ongezuiverde gegevens. Dit kan gaan van het zoeken naar een specifiek woord in een tekst tot het herkennen van bepaalde patronen in een DNA sequentie. Andere mogelijkheden zijn visuele patronen, muziekpatronen enzovoort. In deze masterproef wordt de focus gelegd op tekstuele patronen en gegevens. In het domein van de computerwetenschappen wordt er veel van dit soort data gebruik gemaakt, denken we maar aan de vele tekstdocumenten of unix pijplijnen. Om deze patronen te beschrijven kunnen we gebruik maken van reguliere expressies. Reguliere expressies komen voort uit de wiskunde, meer bepaald uit de theorie van de formele talen. Een reguliere expressie beschrijft een verzameling mogelijke karaktercombinaties zonder deze allemaal op te sommen. Deze verzameling kan oneindig veel elementen bevatten. 1.1 Probleemstelling Reguliere expressies herkennen gebeurt tegenwoordig vooral in software omdat in de meeste toepassingen een beperkt aantal reguliere expressies tegelijk moet herkend worden. Wanneer echter vele reguliere expressies tegelijk moeten herkend worden, dan speelt het sequentiële karakter van software hier sterk in het nadeel. Dat zulke toepassingen bestaan bewijst Snort. Dit is een geavanceerde firewall waarbij aan diepe pakket inspectie gedaan wordt; hierbij wordt de data van een netwerkpakket vergeleken met een databank van regels. Een groot deel van die regels maken gebruik van reguliere expressies. Het aantal regels in de databank kan oplopen tot een paar duizend zodat een parallelle aanpak (zoals hardware) de voorkeur krijgt. 1

15 Hoofdstuk 1. Inleiding De grote eigenschap van software is dat dit heel flexibel is. Indien de reguliere expressies moeten veranderd worden is dit kinderspel in software. Indien we hardware wensen te gebruiken krijgen we een ander verhaal. Flexibele hardware ontwikkelen brengt een grote hardwarekost met zich mee, en is doorgaans minder efficiënt. In het geval van Snort veranderen de regels uit de databank regelmatig, tot meerdere keren per dag, zodat een flexibele aanpak vereist is. Is het wel mogelijk om reguliere expressies efficiënt te implementeren in hardware én zijn de reguliere expressies dan wel dynamisch aanpasbaar? Hier stelt het probleem zich. Bestaande implementaties zijn ofwel niet efficiënt genoeg of niet dynamisch aanpasbaar. 1.2 Doelstelling Het doel van deze masterproef is het ontwerp en de optimalisatie van een patroonherkenner voor reguliere expressies die snel aanpasbaar moet zijn. Er is gekozen voor een aanpak op Field Programmable Gate Array (FPGA). Dit is een hardwareplatform dat herconfigureerbaar is. Omdat een FPGA herconfigureerbaar is kunnen we telkens wanneer de patronen moeten veranderen een nieuwe configuratie (online) genereren en in de FPGA laden. Er zijn verschillende manieren om te bepalen welke configuratie in de FPGA geladen moet worden. Een eerste mogelijkheid is om de configuratie volledig te genereren wanneer dat nodig is. Het grote probleem bij deze on-line generatie is de grote hoeveelheid tijd die nodig is om zo een specifieke configuratie te genereren. Dit kan oplopen tot een paar uur. Een tweede aanpak is dat we op voorhand alle mogelijke combinaties van patronen bepalen, de bijhorende configuraties offline aanmaken en vervolgens opslaan in een databank. Wanneer de patronen dan moeten veranderen, halen we de bijhorende configuratie uit de databank en laden deze in in de FPGA. Het probleem met de tweede aanpak is dat het aantal mogelijke combinaties zeer groot kan zijn en dat de benodigde opslagruimte om deze op te slaan te groot wordt. Aan de vakgroep Elektronica en Informatiesystemen (ELIS) is onlangs een techniek ontwikkeld die de twee voorgaande aanpakken combineert: specifieke configuraties kunnen gegenereerd worden in een fractie van de tijd die vroeger nodig was en de benodigde geheugenruimte is beperkt. In deze masterproef zal gebruik gemaakt worden van deze nieuwe techniek om het ontwerp te optimaliseren. 1.3 Opbouw De opbouw van dit document is als volgt: in dit hoofdstuk werd een korte inleiding gegeven, alsook de probleemstelling en de doelstelling. Hoofdstuk 2 handelt over reguliere expressies en gaat dieper in op een belangrijke toepassing ervan, namelijk Snort. In hoofdstuk 3 worden de basisprincipes van FPGA uitgelegd en wordt de techniek van parametriseerbare configuraties uitgediept. Vervolgens worden de uitgelegde begrippen uit voorgaande hoofdstukken gecombineerd en begint vanaf hoofdstuk 4 het eigenlijke werk van deze masterproef, nl. het 2

16 Hoofdstuk 1. Inleiding implementeren van reguliere expressies op hardware. In hoofdstuk 4 wordt een overzicht gegeven van het relevante werk in de literatuur en wordt er dieper ingegaan op het artikel dat het vertrekpunt van de masterproef is. In dit artikel wordt een patroonherkenner voorgesteld die beperkt dynamisch herconfigureerbaar is. In hoofdstuk 5 wordt deze dan uitgebreidt tot een volledig dynamische patroonherkenner. Uiteindelijk wordt in hoofdstuk 6 besproken hoe een praktisch bruikbare en efficiënte patroonherkenner kan ontworpen worden door ondermeer gebruik te maken van de voorgestelde technieken uit hoofdstuk 4. In hoofdstuk 7 worden dan uiteindelijk de voornaamste conclusies geformuleerd en wordt een overzicht geschetst voor het toekomstig werk. 3

17 Hoofdstuk 2 Reguliere expressies 2.1 Inleiding Een reguliere expressie over een alfabet Σ is een formele manier om patronen op een beknopte en flexibele manier te beschrijven. De American Standard Code for Information Interchange (ASCII) -tekenset is een voorbeeld van een alfabet [1]. In deze masterproef zal uitsluitend gewerkt worden met de ASCII-tekenset als alfabet. Een ander alfabet kan bijvoorbeeld gebruikt worden in een DNA-toepassing. Dan bestaat het alfabet uit de vier basiselementen: guanine (G), cytosine (C), adenine (A) en thymine (T). Door de combinatie van verschillende symbolen uit het alfabet krijgen we een zogenaamde string. Deze string wordt aangelegd aan een patroonherkenner die er één of meerdere reguliere expressies in kan herkennen. Een reguliere expressie is geschreven in een formele taal. Dit is een kunstmatig ontworpen taal met een strikte opbouw en structuur. De beschrijving van deze opbouw en structuur wordt de syntax genoemd. Doordat reguliere expressies aan strikte regels moeten voldoen kunnen computers deze gemakkelijk verwerken. Enkele voorbeelden van reguliere expressies: [dkl]at herkent dat, kat en lat T. S herkent iedere karaktercombinatie dat begint met een T en eindigt op een S, tussenin kan een willekeurige combinatie van karaktertekens voorkomen. Ook de lengte is niet gespecifieerd. Deze expressie herkent onder andere: T S, T ROS, T HESIS en T \%9*.S [0-9]{3} herkent getallen bestaande uit exact drie cijfers 2.2 Syntax De syntax blijft in grote lijnen een gemeenschappelijke conventie volgen maar verschilt in details van programmma tot programma. In een poging om de syntax te standaardiseren zijn er twee algemene basis versies, de Portable Operating-System Interface (POSIX) en de 4

18 Hoofdstuk 2. Reguliere expressies Perl standaard voortgevloeid. De POSIX standaard is dan nog opgesplitst in een basis en een uitgebreide versie. De syntax die tegenwoordig het meest gebruikt word is deze van Perl. Deze is consistenter en rijker dan de POSIX basis-en uitgebreide standaarden. Deze eigenschap heeft er dan ook voor gezorgd dat veel programma s en programmeertalen deze Perl aanpak hebben overgenomen als basis. Enkele voorbeelden zijn Java, JavaScript, Python, Ruby, het.net Framework van Microsoft en de W3C s XML Schema s. De syntax die in deze masterproef gebruikt zal worden is gebaseerd op de Perl Compatible Regular Expressions (PCRE). De reden hiervoor is dat in de literatuur het meest met PCRE gewerkt wordt en ook Snort gebruikt deze syntax. Een samenvatting van de PCRE syntax staat weergegeven op tabel 2.1. In de bijlage in tabellen A.1, A.2 en A.3 wordt een completer overzicht gegeven van de gebruikte syntax. Bij PCRE is het mogelijk om vlaggen mee te geven na de reguliere expressie, welke zorgen voor beter leesbare uitdrukkingen. Vlaggen worden na de reguliere expressie toegevoegd, na een slash. De reguliere expressie ab/i beschrijft een hoofdletterongevoelige uitdrukking waarbij ab, Ab, ab en AB herkend worden. Merk op dat de reguliere expressie ook herschreven kan worden zonder gebruik te maken van een vlag: (a A)(b B). Tabel 2.1: Samenvatting van de gebruikte syntax Syntax Omschrijving a Alle ASCII-karakters behalve meta-karakters, herkent één karakter. ^$*+? ()[{.-\ Meta-karakters, elk van deze heeft een speciale betekenis.. Herkent elk karakter behalve een nieuwe lijn. \? Backslash voor een meta-karakter brengt deze terug naar hun letterlijke betekenis. [abc] Karakterklasse, herkent elk karakter binnen de vierkante haakjes. [^abc] Omgekeerde karakterklasse, herkent elk karakter behalve deze binnen de vierkante haakjes. [a-za-e] Karakter klasse met bereik. RegExp1RegExp2 Concatenatie. Reguliere expressie 1 gevolgd door reguliere expressie 2. RegExp1 Reg- Unie. Reguliere expressie 1 of reguliere expressie 2. Exp2 RegExp* Kleense Ster. Herkent nul of meer keer de voorgaande reguliere expressie. RegExp+ Plus. Herkent ëën of meer keer de voorgaande reguliere expressie. RegExp? Vraagteken. Herkent nul of meer keer de voorgaande reguliere expressie. RegExp{M,N} Beperkte herhaling. Herkent wanner de voorgaande reguliere expressie tussen N en M keer is voorgekomen. ^RegExp Dakje. Herkent de reguliere expressie enkel in het begin van de data. RegExp$ Dollar. Herkent de reguliere expressie enkel op het eind van de data. Vlaggen i s m Omschrijving Hoofdletterongevoeligheid Een. herkent ieder karakter, inclusief het nieuwelijn-karakter ^ en $ worden herkend aan het begin, respectievelijk eind van iedere nieuwe lijn 5

19 Hoofdstuk 2. Reguliere expressies 2.3 Eindigetoestandsautomaten Om reguliere expressies te herkennen gebruikt men eindige toestandsautomaten. Een eindige toestandsautomaat is een model voor het gedrag van een systeem, bestaande uit een eindig aantal toestanden, overgangen tussen die toestanden en acties horende bij die overgangen en/of toestanden [2]. Er zijn twee soorten eindigetoestandsautomaten: deterministische (DFA) en niet-deterministische (NFA). De afkortingen staan voor hun engelse vertaling. Een DFA kan zich slechts in één toestand bevinden terwijl een NFA zich in meerdere actieve toestanden tegelijk kan bevinden. De herkenning van een reguliere expressie begint in de starttoestand en consumeert één karakter van de aangelegde karakterstring per keer. Afhankelijk van de waarde van dit karakter zal de automaat al dan niet naar een (of meerdere) volgende toestand(en) overgaan. Bij NFA s zijn ook ongelabelde transities mogelijk, genoemd ɛ-transities. Wanneer een NFA zich in een toestand bevindt met een ɛ-transitie, dan wordt de toestand waarnaar deze verwijst ook actief. In figuur 2.1 worden de DFA en NFA van een voorbeeld reguliere expressie getoond. Het alfabet, de verzameling karakters die de automaat kan verwerken, is {x, y}. De expressie (x y) x{2} betekent dat er eerst 0 of meer x of y karakters mogen voorkomen, gevolgd door exact 2 keer x. Geldige strings zijn bijvoorbeeld xx, yxx, yyxx, yxxx. De automaat begint in de starttoestand, aangeduid met de startpijl. Wanneer de automaat zich in de eindtoestand bevindt, in de figuur aangeduid met dubbele omlijning, dan is de reguliere expressie herkend. Figuur 2.1: DFA (links) en NFA (rechts) representaties van de reguliere expressie (x y) x{2} Een DFA voorstelling kan efficiënter in software worden geïmplementeerd dan NFA s omdat dan maar één toestand moet bijgehouden worden, namelijk deze waarin de automaat zich bevindt. Er moet ook slechts één volgende toestand berekend worden. Dit is duidelijk niet het geval bij NFA s, de automaat kan zich in een variabel aantal toestanden bevinden. Het nadeel van DFA s is dat deze aan toestandsexplosie lijden: voor eenzelfde reguliere expressie kan het aantal benodigde toestanden van de DFA vele malen groter zijn dan voor de NFA. Een worst-case studie toont aan dat het aantal benodigde toestanden van een DFA van exponentiële orde is (in functie van de lengte van de reguliere expressie) terwijl dit bij een NFA lineair is [3, 4]. Een eenvoudig voorbeeld is te zien in figuur

20 Hoofdstuk 2. Reguliere expressies Figuur 2.2: Toestandsexplosie van DFA voor de reguliere expressie (x y) y(x y){2}. 2.4 Toepassingen Reguliere expressies hebben vele toepassingen in de praktijk: Tekstverwerkende programma s waarbij de gebruiker op zoek is naar een bepaald patroon in een gegeven tekstdocument (bv. grep) of waarbij de gevonden patronen vervangen worden (bv. sed). Een eenvoudige variant in besturingssystemen, dit gebeurt meestal onder de vorm van jokertekens die dan gebruikt kunnen worden bij het zoeken naar bestandsnamen. In de front-end van compilers, waarbij de broncode wordt omgezet naar een interne representatie (lexicale en syntactische analyse). In het domein van de bio-informatica waarbij aan patroonanalyse gedaan wordt op DNA en/of proteïne moleculen. Hiervoor is een gespecialiseerd programma ontwikkeld genaamd biogrep. Dit is gebaseerd op Perl en grep, geoptimaliseerd voor patroonanalyse in de biologie. Netwerkintrusiedectieprogramma s zoals Snort waarbij in tegenstelling tot traditionele firewalls niet enkel de header wordt gecontroleerd maar ook de data in het netwerkpakket zelf. Deze data wordt vergeleken met een databank van regels, waarin reguliere expressies kunnen gebruikt worden. In deze masterproef worden de implementaties en optimalisaties getest aan de hand van de Snort databank. Om deze reden staat in de volgende sectie wat meer over Snort. 7

21 Hoofdstuk 2. Reguliere expressies 2.5 Snort Snort is een gratis netwerkintrusiedetectie en intrusiepreventie systeem ontwikkeld door Martin Roesch in 1998 [5]. Deze software wordt wereldwijd gebruikt om netwerken te beschermen tegen aanvallen. Het systeem analyseert in ware tijd de netwerkpakketten en vergelijkt deze met een databank aan regels. De standaardregels worden voorzien door de Snort-gemeenschap en gebruikers kunnen indien gewenst ook hun eigen regels toevoegen. Deze regels beschrijven hoe een netwerk pakket van een aanval eruitziet. Naast de beschrijving van de header -zoals gebeurt in traditionele firewalls- wordt ook de inhoud van het pakket beschreven. Dit kan met behulp van statische patronen, wat neerkomt op woorden en/of karaktercombinaties, of met dynamische patronen waarbij men dus reguliere expressies gebruikt. Het gebruik van reguliere expressies is relatief nieuw en hun aandeel in de databank blijft stijgen. De databank wordt regelmatig bijgewerkt, tot meerdere keren per dag. Aangezien een Snort-systeem op software draait en dit intrinsiek sequentieel is, is het dan ook logisch dat hoe meer regels er zijn, des te trager het systeem zal werken. Er zijn wel een aantal optimalisaties zodat niet alle regels één per één moeten overlopen worden. Zo wordt er voor gezorgd dat gemeenschappelijke delen van regels slechts eenmalig gecontroleerd moeten worden. Een Snort-systeem wordt typisch geconfigureerd zodat de software een optimale doorvoersnelheid kan halen. Zo wordt er gekeken naar het interne netwerk en worden regels al dan niet geactiveerd. Wanneer er bijvoorbeeld een databankserver in het netwerk draait dan is het activeren van de SQL-regels een goede zet. Deze zijn uiteraard overbodig bij de gemiddelde thuisnetwerken. De databank bevat op het moment van schrijven ongeveer regels, waarvan standaard geactiveerd zijn. De helft van deze gebruikt een reguliere expressie om de patronen te beschrijven, de andere helft werkt met statische patronen. Een gemiddeld Snort-systeem heeft een doorvoersnelheid van Mb/sec terwijl een systeem afgestemd voor een specifieke toepassing Mb/sec kan halen. 8

22 Hoofdstuk 3 Parametriseerbare herconfiguratie op FPGA Vooraleer het concept van parametriseerbare herconfiguratie uitgelegd kan worden, worden eerst de benodigde basisconcepten over FPGA s aangehaald. Een uitgebreider overzicht over FPGA s en CAD-programma s is te vinden in [6]. De figuren uit dit hoofdstuk komen grotendeels uit het doctoraat van ir. Karel Bruneel en bijhorende presentatie. 3.1 Basisconcepten FPGA Architectuur FPGA staat voor Field Programmable Gate Array en is een geïntegreerde schakeling die configureerbaar is tot een willekeurig digitaal circuit. De FPGA is de tegenhanger van het Application-Specific Integrated Circuit (ASIC), die ook een geïntegreerde schakeling is, maar ontworpen voor één bepaalde toepassing. De hardware die gemaakt wordt kan nadien niet meer aangepast worden. Over het algemeen, en in voldoende grote oplages, is een ASIC goedkoper dan een FPGA. Omdat ASIC s geoptimaliseerd zijn voor 1 enkele taak zijn ze vaak ook sneller dan FPGA implementaties. Een basis FPGA bestaat uit 3 elementen: logische blokken, programmeerbare interconnecties en ingang/uitgang (I/O) blokken. Moderne FPGA s bevatten ook nog extra componenten die een gespecialiseerde functie op zich kunnen nemen. In figuur 3.1 staat een schematische voorstelling afgebeeld. Logische Blokken Een logisch blok is een verzameling van Look-Up Tables (LUT), multiplexers en flip-flops (FF). De exacte aantallen van elk verschillen per fabrikant en per FPGA familie. Om de gedachten te vestigen wordt uitgegaan van een FPGA-architectuur met een eenvoudig logisch blok dat bestaat uit één multiplexer, één LUT en één flip-flop (Figuur 3.2). 9

23 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA Figuur 3.1: Schematische voorstelling van een FPGA Figuur 3.2: Eenvoudig logisch blok Een multiplexer is een logische schakeling die signalen ontvangt aan zijn dataingangen en slechts één daarvan doorstuurt naar zijn uitgang. Welke van de ingangen gekozen wordt, wordt bepaald door de selectieingangen. Een flip-flop is een geheugenelement van één bit. Een (K-)LUT heeft K ingangen en 1 uitgang. Het is een combinatie van 2 K statische RAM (SRAM) geheugencellen en een multiplexer met 2 K dataingangen en K selectie-ingangen. In de figuur is K=3. Voor iedere mogelijke combinatie van ingangen kan dan een gewenste uitgangswaarde geprogrammeerd worden. Dit gebeurt aan de hand van een waarheidstabel waarin voor iedere mogelijke combinatie van ingangen een uitgang toegekend is. De waarden van de waarheidstabellen worden bij het programmeren van de FPGA in de SRAM geheugencellen geladen. Wanneer nu een bepaalde combinatie wordt aangelegd aan de ingang van de LUT, dan kiest de multiplexer de overeenstemmende waarde uit de rij geheugencellen en verbindt deze door met de uitgang. Op deze manier kan een willekeurige Boolese functie van K ingangen en 1 uitgang geïmplementeerd worden. Op deze zelfde manier kunnen LUT s dus ook Read Only Memory (ROM) voorstellen. Dit is een geheugenelement waarbij de inhoud enkel kan gelezen worden, een constante waarde dus. 10

24 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA Bij bepaalde FPGA s van Xilinx kunnen LUT s echter ook gebruikt worden als RAM (Random Acces Memory) [7] en als schuifregisters [8]. Bij RAM-geheugens kan de inhoud van het geheugen veranderen na het configureren van de FPGA, in tegenstelling tot ROM. Schuifregisters dienen om de waarde in het geheugen met 1 of meerdere posities op te schuiven. Door hiervan gebruik te maken zijn we voor toepassingen die geheugen nodig hebben niet langer beperkt tot de aanwezige flip-flop. Ontwerpen die gebruik maken van LUT s als schuifregisters en RAM zijn doorgaans efficiënter. De verbindingen van in- en uitgangen van logische blokken worden dan nog verbonden met multiplexers. Zo kan men er dan bijvoorbeeld voor kiezen om de uitgang van een LUT rechtstreeks met de uitgang van het logisch blok te verbinden, zonder de flip-flop te gebruiken. Soms bevatten logische blokken nog andere stukken vaste logica zoals een opteller waarbij het gebruik van deze ook weer afhangt van de stand van bijhorende multiplexers. Programmeerbare interconnecties Tussen de logische blokken, I/O blokken en eventuele andere componenten liggen programmeerbare interconnecties. Deze bevatten ook SRAM geheugencellen die bepalen of verbindingen al dan niet gelegd moeten worden. Deze kunnen gezien worden als kleine schakelaartjes die open of toe staan (zie figuur 3.3). De geheugencellen worden bij het programmeren van de FPGA ingeladen. Op een FPGA wordt het grootste deel van de oppervlakte ingenomen door deze routeringselementen. Figuur 3.3: Verschillende routering door veranderen geheugencellen I/O-blokken I/O blokken verbinden de interne logica met de uitgangspinnen van de FPGA. Deze pinnen kunnen ingangen, uitgangen of bidirectioneel zijn. Op deze manier kan een FPGA verbinding maken met externe logica, bijvoorbeeld een externe USB controller. 11

25 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA Andere componenten Moderne FPGA s bevatten nog extra componenten die veel gebruikt worden in digitale circuits. Doordat deze een specifieke taak hebben kunnen ze efficiënter geïmplementeerd worden. Sommige van deze zijn nog configureerbaar. Een aantal voorbeelden zijn: DCM: Digital Clock Manager. De configuratie van de klok(ken) kan door dit blokje verzorgd worden. BRAM: Block RAM. Dit zijn grote stukken geheugencellen die kunnen gebruikt worden in een digitaal ontwerp. Signaalverwerkingsblokken zoals vermenigvuldigers en optellers Volledige processoren, zo zijn bij de Virtex2Pro tot twee PowerPC-processoren ingebed [9] Toolflow Het spreekt voor zich dat indien we een FPGA willen gaan configureren we niet iedere waarheidstabel handmatig moeten opstellen en/of de bijhorende configuratiebits gaan bepalen. Figuur 3.4 toont de standaard toolflow voor het configureren van een FPGA. Deze vertrekt van een ontwerp beschreven in een Hardware Description Language (HDL) en eindigt met een configuratiebitstroom. Deze bitstroom bevat de correcte waarden van de waarheidstabellen en de routeringsbits. De verschillende stappen in de toolflow worden nu kort toegelicht. Figuur 3.4: Toolflow voor het configureren van een FPGA 12

26 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA HDL ontwerp De benodigde hardware wordt beschreven in een Hardware Description Language (HDL) zoals bijvoorbeeld VHDL of Verilog. Een dergelijke taal beschrijft hoe een hardwarecomponent er moet uitzien met betrekking tot ingangen en uitgangen. De beschrijving bevat ook hoe een hardware blok zich moet gedragen bij het aanleggen van bijhorende ingangen. Zo zou een beschrijving van een 4 naar 1 multiplexer er kunnen uitzien in VHDL: Figuur 3.5: Voorbeeld VHDL code van een multiplexer De beschrijving start met de definitie van de in-en uitgangen van de multiplexer. De dataingang bestaat uit een vector van 4 bits en de selectie-ingang uit een vector van 2 bits. Voor iedere combinatie van selectiebits is er dus 1 dataingang beschikbaar. De gekozen ingang verschijnt dan uiteraard aan de uitgang. Vervolgens hebben we de gedragsbeschrijving van de multiplexer. Bij verandering van een selectiebit of een dataingang wordt gekeken welke waarde de selectiebits hebben en wordt de corresponderende dataingang verbonden met de uitgang. Synthese De HDL beschrijving wordt in deze stap omgezet naar een beschrijving op logisch niveau, genoemd de netlijst. Dit is een generieke hardwarebeschrijving met behulp van EN, OF, NIET poorten en flip-flops. De netlijst is technologie-onafhankelijk. 13

27 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA Technologie afbeelding In deze stap wordt de netlijst afgebeeld op de basiselementen beschikbaar op de gekozen FPGA. Deze elementen zijn LUT s, RAM s, vermenigvuldigers enzovoort. Hierbij worden de beschikbare hardwaremiddelen zo optimaal mogelijk gekozen en zal dan ook direct duidelijk zijn of het ontwerp op de gekozen FPGA kán passen. Er kan geoptimaliseerd worden naar oppervlakte, snelheid of een combinatie van beide. Het resultaat van deze stap heet de circuitbeschrijving. Plaatsing en routering De basiselementen zijn nu gekozen maar hebben nog geen fysieke plaats op de FPGA. Dit gebeurt in de plaatsingsstap. Vervolgens worden de verbindingen tussen de fysieke elementen gelegd, dit is de routeringsstap. Eerst gebeurt de plaatsing en daarna de routering. Het is wel zo dat de plaatsing een schatting maakt van de routering en zo de basiselementen zo optimaal mogelijk probeert te plaatsen. De ontwerper kan er dan voor kiezen om extra beperkingen op te leggen aan het ontwerp. De plaatsings-en routeringssoftware probeert dan aan deze beperkingen te voldoen. Men kan bijvoorbeeld een gewenste minimum klokfrequentie meegeven. Configuratiebitstroom De inhoud van de waarheidstabellen, de plaatsing en de routering is nu gekend. Dit komt overeen met de waarden van de configuratiebits die in de SRAM geheugencellen van de FPGA moeten ingeladen worden. Deze informatie wordt in deze stap samengevoegd tot 1 grote bitstroom en is dan klaar voor gebruik. Op welke manier deze bits precies in de FPGA geladen worden is voor deze masterproef minder essentiëel en wordt dus niet besproken. 14

28 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA 3.2 Parametriseerbare configuratie Parametriseerbare configuratie is een techniek ontwikkeld aan de vakgroep ELIS van de universiteit Gent om FPGAs dynamisch partiëel te herconfigureren. Deze techniek staat nog steeds centraal in het onderzoek rond run-time herconfiguratie aan deze vakgroep [10, 11, 12, 13, 14, 15, 16, 17]. Met deze techniek is het mogelijk om de functionaliteit van het circuit aan te passen tijdens de uitvoering. Deze techniek zal gebruikt worden in deze masterproef om het totaal aantal benodigd LUT s van het ontwerp te verlagen terwijl het geheel nog steeds dynamisch aanpasbaar is Klassieke run-time herconfiguratie Wanneer we de functionaliteit van een circuit willen veranderen zijn er twee mogelijkheden. Ofwel ontwerpen we een generiek circuit waarbij de functionaliteit bepaald wordt door extra ingangen, ofwel genereren we een geoptimaliseerd circuit voor iedere mogelijke functionaliteit. Bij een generiek ontwerp blijven de ingangen die de functionaliteit bepalen constant gedurende een deel van de uitvoering. Zo een circuit is dus bij gevolg minder efficiënt. Het grote voordeel van deze aanpak is wel dat de toolflow slechts eenmaal moet doorlopen worden, het aantal LUT s en de routering blijft constant. Een verandering van functionaliteit kan zeer snel gebeuren, dit komt neer op het aanpassen van de ingangen van het generiek circuit. Een geoptimaliseerd ontwerp daarentegen gebruikt minder middelen en is in het algemeen daardoor ook sneller, de routering kan beter bepaald worden. Het nadeel is wel dat wanneer de functionaliteit veranderd moet worden de volledige toolflow opnieuw doorlopen moet worden. Dit komt omdat het aantal LUT s en de routering zal veranderen. In een groot design kan dit een paar uur duren. Bij verschillende moderne aanpakken worden de configuraties offline berekend voor iedere mogelijke functionaliteit en worden deze opgeslagen in een databank. Wanneer dan een verandering moet gebeuren wordt de nieuwe configuratie ingeladen vanuit de databank. Wanneer echter het aantal mogelijke functionaliteiten oploopt zal dit teveel plaats vragen in een databank en praktisch niet meer haalbaar zijn. Deze concepten worden geïllustreerd aan de hand van een Finite Impulse Response (FIR) filter. Dit is een digitaal signaalverwerkingsfilter dat een aantal signaalwaarden neemt en elk van deze vermenigvuldigt met een verschillende coëfficiënt, waarna de som van de producten genomen wordt. Dit kan gemakkelijk in hardware worden geïmplementeerd. Bij een generieke implementatie wordt de hardware dan zo beschreven dat de coëfficiënten ingangen zijn van het circuit. Door verandering van de coëfficiëntingangen verandert het gedrag van de FIRfilter. Bij een geoptimaliseerd ontwerp daarentegen worden de coëfficiënten vast gekozen. Het resulterende circuit is dan enkel geschikt voor gebruik met deze coëfficiënten, maar is wel veel sneller en kleiner dan het generieke. 15

29 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA Parametriseerbare configuratie Bij de techniek van parametriseerbare configuraties worden de vorige beschreven vormen van run-time configuratie gecombineerd tot een hybride vorm. Hierbij vertrekt men vanuit het generieke circuit (HDL-beschrijving) en worden de traag variërende signalen gezocht. Deze traag variërende signalen noemt men parameters. Deze parameters worden geannoteerd in de HDL-beschrijving van het ontwerp. Dan wordt de HDL-beschrijving door de aangepaste toolflow gehaald. Deze aangepaste toolflow is ontwikkeld aan de vakgroep. Uit de aangepaste toolflow komen twee dingen: de masterconfiguratie en de herconfiguratie procedures, zoals te zien in figuur 3.6. Parameterizable HDL Design Synthesis TMAP Extract Static LUT Circuit Extract Tuning Functions Place & Route Generate Reconfiguration Procedure Master Configuration Reconfiguration Procedure Figuur 3.6: Aangepaste toolflow Na synthese en technologie afbeelding van het geannoteerde ontwerp, bekomen we een circuit dat bestaat uit gewone LUT s en TLUT s. TLUT staat voor Tunable LUT. Bij TLUT s bevatten de waarheidstabellen Boolese functies van de parameters, deze functies worden tuningfuncties genoemd. De parameters zijn als het ware opgenomen in het circuit en zijn dus 16

30 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA ook geen fysieke ingangen meer. Dit TLUT-circuit wordt, na plaatsing en routering, de masterconfiguratie genoemd. De masterconfiguratie is kleiner dan het generieke circuit (in aantal LUT s) en zal hierdoor in het algemeen beter gerouteerd kunnen worden en dus sneller zijn. Voor iedere functionaliteit hebben we een set aan parameterwaarden en door evaluatie van de tuningfuncties bekomen we de waarheidstabellen van de TLUT s. Wanneer we de functionaliteit dus willen aanpassen moeten we enkel de waarheidstabellen van de TLUT s overschrijven. De structuur van de masterconfiguratie zal tijdens de uitvoering niet meer veranderen. Dit wil zeggen dat de ingangen en uitgangen blijven zoals ze gegenereerd zijn en de routering tussen de LUT s niet meer verandert. De waarden van de waarheidstabellen van de TLUT s kunnen wel nog veranderen. Doordat de structuur van de applicatie niet verandert, moeten we de tijdsverslindende plaatsing-en routeringsstap slechts éénmaal, offline, doorlopen. De tuningfuncties worden opgeslagen en geëvalueerd in een zogenaamde Configuratie Manager (CM). Dit is meestal software die draait op een ingebedde processor. Een schematisch overzicht staat in figuur 3.7. Op welke manier de nieuwe waarheidstabellen dan exact in de juiste TLUT s worden geladen is beschreven in de herconfiguratieprocedure. Parameteringangen... Masterconfiguratie Tuningfunctie Configuratie specifieke LUTs Software op configuratiemanager Hardware met vaste structuur Fysieke in-en uitgangen Figuur 3.7: Resultaat van de aangepaste toolflow 17

31 Hoofdstuk 3. Parametriseerbare herconfiguratie op FPGA Voorbeeld decoder In deze sectie wordt de techniek van parametriseerbare configuraties toegepast op een decoder. Deze decoder neemt als input een getal, voorgesteld voor 8 bits. De uitgang is 1 bit groot en is een 1 indien het getal zich tussen 2 vooral gedefiniëerde waarden (boven-en ondergrenzen) bevindt en een 0 indien dit niet zo is. De grenswaarden zijn uiteraard ook 8 bits groot. We zullen er van uitgaan dat de grenswaarden parameters zijn. Om het generieke circuit uit figuur 3.8 te implementeren hebben we 14 LUT s nodig, waarbij gebruik gemaakt wordt van de standaard toolflow. Figuur 3.8: Gedeeltelijke, geannoteerde, VHDL beschrijving van een decoder Met behulp van de PARAM annotatie kunnen we aan de aangepaste toolflow meegeven welke de parameters zijn. Het resultaat van de aangepaste toolflow is schematisch weergegeven in figuur 3.9. We krijgen een kleiner circuit (masterconfiguratie) met enkel het getal als ingang en de uitkomst als uitgang. Verder hebben we nu ook een functie die de twee grenswaarden als input neemt en daaruit de waarheidstabellen van het kleiner circuit bepaalt. De masterconfiguratie is een circuit van slechts 5 LUT s. Ondergrens Bovengrens Tuningfunctie Software Getal in Configuratie specifieke LUTs Masterconfiguratie Uit Hardware Figuur 3.9: Resultaat van de aangepaste toolflow toegepast op het decoder voorbeeld Voor dit eenvoudige voorbeeld hebben we reeds 2 16 mogelijke vormen van de decoder, het aantal mogelijke combinaties van de grenswaarden. Het mag dus duidelijk zijn dat al deze configuraties genereren en opslaan in een databank praktisch bijna niet haalbaar is en dat conventionele run-time herconfiguratie hier niet mogelijk is. 18

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie.

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie. Samenvatting Field programmabale gate arrays (FPGA s) zijn heel aantrekkelijk als ontwerpplatform voor digitale systemen. FPGA s zijn geïntegreerde schakelingen die geprogrammeerd of geconfigureerd kunnen

Nadere informatie

Dynamische Circuitspecialisatie

Dynamische Circuitspecialisatie Dynamische Circuitspecialisatie Karel Bruneel promotor: prof. Dirk Stroobandt Field Programmable Gate Array 11111111111 1111111111111 1111111111 11111111111 Digitale GSM- 111111111 1111111111 11111 chip

Nadere informatie

Herconfigureerbare Hardware in Ieders Bereik

Herconfigureerbare Hardware in Ieders Bereik Herconfigureerbare Hardware in Ieders Bereik Prof. Dirk Stroobandt Universiteit Gent Vakgroep ELIS Onderzoeksgroep PARIS http://www.elis.ugent.be/~dstr/ Overzicht Nood aan digitale verwerking van gegevens

Nadere informatie

Automatiseren van SRL-herconfiguratie

Automatiseren van SRL-herconfiguratie Automatiseren van SRL-herconfiguratie Karel Heyse Promotor: prof. dr. ir. Dirk Stroobandt Begeleiders: ir. Karel Bruneel, Tom Davidson, Brahim Al Farisi Masterproef ingediend tot het behalen van de academische

Nadere informatie

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain.

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain. Domino tiles Dominoes is a game played with rectangular domino 'tiles'. Today the tiles are often made of plastic or wood, but in the past, they were made of real stone or ivory. They have a rectangle

Nadere informatie

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead 7.1 Exploring Combinations of Ten Look at these cubes. 2. Color some of the cubes to make three parts. Then write a matching sentence. 10 What addition sentence matches the picture? How else could you

Nadere informatie

CTI SUITE TSP DETAILS

CTI SUITE TSP DETAILS CTI SUITE TSP DETAILS TAPI allows an application to access telephony services provided by a telecom PABX. In order to implement its access to ETRADEAL, a TAPI interface has been developed by Etrali. As

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 8 februari 2010 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information Activant Prophet 21 Prophet 21 Version 12.0 Upgrade Information This class is designed for Customers interested in upgrading to version 12.0 IT staff responsible for the managing of the Prophet 21 system

Nadere informatie

Introductie in flowcharts

Introductie in flowcharts Introductie in flowcharts Flow Charts Een flow chart kan gebruikt worden om: Processen definieren en analyseren. Een beeld vormen van een proces voor analyse, discussie of communicatie. Het definieren,

Nadere informatie

General info on using shopping carts with Ingenico epayments

General info on using shopping carts with Ingenico epayments Inhoudsopgave 1. Disclaimer 2. What is a PSPID? 3. What is an API user? How is it different from other users? 4. What is an operation code? And should I choose "Authorisation" or "Sale"? 5. What is an

Nadere informatie

Genetic code. Assignment

Genetic code. Assignment Genetic code The genetic code consists of a number of lines that determine how living cells translate the information coded in genetic material (DNA or RNA sequences) to proteins (amino acid sequences).

Nadere informatie

Sequentiële Logica. Processoren 24 november 2014

Sequentiële Logica. Processoren 24 november 2014 Sequentiële Logica Processoren 24 november 2014 Inhoud Eindige automaten Schakelingen met geheugen Realisatie van eindige automaten Registers, schuifregisters, tellers, etc. Geheugen Herinnering van week

Nadere informatie

Travel Survey Questionnaires

Travel Survey Questionnaires Travel Survey Questionnaires Prot of Rotterdam and TU Delft, 16 June, 2009 Introduction To improve the accessibility to the Rotterdam Port and the efficiency of the public transport systems at the Rotterdam

Nadere informatie

Promotor: prof. dr. ir. Dirk Stroobandt Begeleiders: ir. Karel Bruneel, Fatma Mostafa Mohamed Ahmed Abouelella

Promotor: prof. dr. ir. Dirk Stroobandt Begeleiders: ir. Karel Bruneel, Fatma Mostafa Mohamed Ahmed Abouelella Herconfiguratie van LUT s via hun schuifregisterfunctionaliteit Brahim Al Farisi Promotor: prof. dr. ir. Dirk Stroobandt Begeleiders: ir. Karel Bruneel, Fatma Mostafa Mohamed Ahmed Abouelella Masterproef

Nadere informatie

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

Settings for the C100BRS4 MAC Address Spoofing with cable Internet. Settings for the C100BRS4 MAC Address Spoofing with cable Internet. General: Please use the latest firmware for the router. The firmware is available on http://www.conceptronic.net! Use Firmware version

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

Nadere informatie

Today s class. Digital Logic. Informationsteknologi. Friday, October 19, 2007 Computer Architecture I - Class 8 1

Today s class. Digital Logic. Informationsteknologi. Friday, October 19, 2007 Computer Architecture I - Class 8 1 Today s class Digital Logic Friday, October 19, 2007 Computer Architecture I - Class 8 1 Digital circuits Two logical values Binary 0 (signal between 0 and 1 volt) Binary 1 (signal between 2 and 5 volts)

Nadere informatie

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij ENGLISH VERSION SEE PAGE 3 Tentamen Lineaire Optimalisering, 0 januari 0, tijdsduur 3 uur. Het gebruik van een eenvoudige rekenmachine is toegestaan. Geef bij elk antwoord een duidelijke toelichting. Als

Nadere informatie

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14 QUICK GUIDE C Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14 Version 0.9 (June 2014) Per May 2014 OB10 has changed its name to Tungsten Network

Nadere informatie

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

Add the standing fingers to get the tens and multiply the closed fingers to get the units. Digit work Here's a useful system of finger reckoning from the Middle Ages. To multiply $6 \times 9$, hold up one finger to represent the difference between the five fingers on that hand and the first

Nadere informatie

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf!

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf! Martijn Hooning COLLEGE ANALYSE OPDRACHT 1 9 september 2009 Hierbij een paar vragen over twee stukken die we deze week en vorige week hebben besproken: Mondnacht van Schumann, en het eerste deel van het

Nadere informatie

Basisconcept VHDL. Digitaal Ontwerpen Tweede studiejaar. Wim Dolman. Engineering, leerroute Elektrotechniek Faculteit Techniek

Basisconcept VHDL. Digitaal Ontwerpen Tweede studiejaar. Wim Dolman. Engineering, leerroute Elektrotechniek Faculteit Techniek Basisconcept VHDL Tweede studiejaar Wim Dolman Engineering, leerroute Elektrotechniek Faculteit Techniek 1 Deze presentatie toont de stappen voor het ontwerpen van een digitale combinatorische schakeling

Nadere informatie

MyDHL+ ProView activeren in MyDHL+

MyDHL+ ProView activeren in MyDHL+ MyDHL+ ProView activeren in MyDHL+ ProView activeren in MyDHL+ In MyDHL+ is het mogelijk om van uw zendingen, die op uw accountnummer zijn aangemaakt, de status te zien. Daarnaast is het ook mogelijk om

Nadere informatie

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml DOWNLOAD OR READ : OPEN STANDAARD HYPERTEXT MARKUP LANGUAGE INTERNETPROTOCOL TRANSMISSION CONTROL PROTOCOL INTERNET RELAY CHAT OFFICE OPEN XML PDF EBOOK EPUB MOBI Page 1 Page 2 relay chat office open xml

Nadere informatie

Automaten & Complexiteit (X )

Automaten & Complexiteit (X ) Automaten & Complexiteit (X 401049) Inleiding Jeroen Keiren j.j.a.keiren@vu.nl VU University Amsterdam Materiaal Peter Linz An Introduction to Formal Languages and Automata (5th edition) Jones and Bartlett

Nadere informatie

MyDHL+ Van Non-Corporate naar Corporate

MyDHL+ Van Non-Corporate naar Corporate MyDHL+ Van Non-Corporate naar Corporate Van Non-Corporate naar Corporate In MyDHL+ is het mogelijk om meerdere gebruikers aan uw set-up toe te voegen. Wanneer er bijvoorbeeld meerdere collega s van dezelfde

Nadere informatie

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education DUTCH 055/02 Paper 2 Reading MARK SCHEME Maximum Mark: 45 Published This mark scheme is published

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours. TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examination 2DL04 Friday 16 november 2007, 14.00-17.00 hours. De uitwerkingen van de opgaven dienen duidelijk geformuleerd en overzichtelijk

Nadere informatie

Invloed van het aantal kinderen op de seksdrive en relatievoorkeur

Invloed van het aantal kinderen op de seksdrive en relatievoorkeur Invloed van het aantal kinderen op de seksdrive en relatievoorkeur M. Zander MSc. Eerste begeleider: Tweede begeleider: dr. W. Waterink drs. J. Eshuis Oktober 2014 Faculteit Psychologie en Onderwijswetenschappen

Nadere informatie

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT TELETASK Handbook Multiple DoIP Central units DALISOFT 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool Connect the TDS20620V2 If there is a TDS13620 connected to the DALI-bus, remove it first.

Nadere informatie

Ontpopping. ORGACOM Thuis in het Museum

Ontpopping. ORGACOM Thuis in het Museum Ontpopping Veel deelnemende bezoekers zijn dit jaar nog maar één keer in het Van Abbemuseum geweest. De vragenlijst van deze mensen hangt Orgacom in een honingraatpatroon. Bezoekers die vaker komen worden

Nadere informatie

Calculator spelling. Assignment

Calculator spelling. Assignment Calculator spelling A 7-segmentdisplay is used to represent digits (and sometimes also letters). If a screen is held upside down by coincide, the digits may look like letters from the alphabet. This finding

Nadere informatie

Non Diffuse Point Based Global Illumination

Non Diffuse Point Based Global Illumination Non Diffuse Point Based Global Illumination Karsten Daemen Thesis voorgedragen tot het behalen van de graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Promotor: Prof. dr.

Nadere informatie

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right.

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right. Mijn Inspiratie Ik kreeg het idee om een variant te maken van een lamp die ik al eerder had gemaakt. Bij de lamp die in de onderstaande foto s is afgebeeld kun je het licht dimmen door de lamellen open

Nadere informatie

WWW.EMINENT-ONLINE.COM

WWW.EMINENT-ONLINE.COM WWW.EMINENT-OINE.COM HNDLEIDING USERS MNUL EM1016 HNDLEIDING EM1016 USB NR SERIEEL CONVERTER INHOUDSOPGVE: PGIN 1.0 Introductie.... 2 1.1 Functies en kenmerken.... 2 1.2 Inhoud van de verpakking.... 2

Nadere informatie

Data Handling Ron van Lammeren - Wageningen UR

Data Handling Ron van Lammeren - Wageningen UR Data Handling 1 2010-2011 Ron van Lammeren - Wageningen UR Can I answer my scientific questions? Geo-data cycle Data handling / introduction classes of data handling data action models (ISAC) Queries (data

Nadere informatie

After that, the digits are written after each other: first the row numbers, followed by the column numbers.

After that, the digits are written after each other: first the row numbers, followed by the column numbers. Bifid cipher The bifid cipher is one of the classical cipher techniques that can also easily be executed by hand. The technique was invented around 1901 by amateur cryptographer Felix Delastelle. The cipher

Nadere informatie

0515 DUTCH (FOREIGN LANGUAGE)

0515 DUTCH (FOREIGN LANGUAGE) UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education MARK SCHEME for the May/June 2011 question paper for the guidance of teachers 0515 DUTCH (FOREIGN

Nadere informatie

Digitale Systemen (ET1 410)

Digitale Systemen (ET1 410) Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2011 28-4-2011 EE1 410 (Stephan Wong) Pagina 1 Verschil simulatie en synthese Simulatie: functioneel

Nadere informatie

Lichamelijke factoren als voorspeller voor psychisch. en lichamelijk herstel bij anorexia nervosa. Physical factors as predictors of psychological and

Lichamelijke factoren als voorspeller voor psychisch. en lichamelijk herstel bij anorexia nervosa. Physical factors as predictors of psychological and Lichamelijke factoren als voorspeller voor psychisch en lichamelijk herstel bij anorexia nervosa Physical factors as predictors of psychological and physical recovery of anorexia nervosa Liesbeth Libbers

Nadere informatie

Four-card problem. Input

Four-card problem. Input Four-card problem The four-card problem (also known as the Wason selection task) is a logic puzzle devised by Peter Cathcart Wason in 1966. It is one of the most famous tasks in the study of deductive

Nadere informatie

Classification of triangles

Classification of triangles Classification of triangles A triangle is a geometrical shape that is formed when 3 non-collinear points are joined. The joining line segments are the sides of the triangle. The angles in between the sides

Nadere informatie

Pesten onder Leerlingen met Autisme Spectrum Stoornissen op de Middelbare School: de Participantrollen en het Verband met de Theory of Mind.

Pesten onder Leerlingen met Autisme Spectrum Stoornissen op de Middelbare School: de Participantrollen en het Verband met de Theory of Mind. Pesten onder Leerlingen met Autisme Spectrum Stoornissen op de Middelbare School: de Participantrollen en het Verband met de Theory of Mind. Bullying among Students with Autism Spectrum Disorders in Secondary

Nadere informatie

Procedure Reset tv-toestellen:

Procedure Reset tv-toestellen: Procedure Reset tv-toestellen: Volgende procedure is te volgen wanneer er een tv-toestel, op een van de kamers niet meer werkt. TV Re-installation Factory Default Her-installeren van de TV Fabrieksinstellingen

Nadere informatie

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt.

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt. OPEN TRAINING Onderhandelingen met leveranciers voor aankopers Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt. Philip Meyers Making sure to come well prepared at the negotiation

Nadere informatie

Reguliere Expressies

Reguliere Expressies Reguliere Expressies Een reguliere expressie (regexp, regex, regxp) is een string (een woord) die, volgens bepaalde syntaxregels, een verzameling strings (een taal) beschrijft Reguliere expressies worden

Nadere informatie

Demultiplexing reads FASTA format genome sequencing reads run

Demultiplexing reads FASTA format genome sequencing reads run Demultiplexing reads In bioinformatics, FASTA format is a text-based format for representing either nucleotide sequences or peptide sequences, in which nucleotides or amino acids are represented using

Nadere informatie

ETS 4.1 Beveiliging & ETS app concept

ETS 4.1 Beveiliging & ETS app concept ETS 4.1 Beveiliging & ETS app concept 7 juni 2012 KNX Professionals bijeenkomst Nieuwegein Annemieke van Dorland KNX trainingscentrum ABB Ede (in collaboration with KNX Association) 12/06/12 Folie 1 ETS

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 4 Binaire optellers, tellen, vermenigvuldigen, delen Jesse op den Brouw INLDIG/25-26 Optellen Optellen is één van meest gebruikte rekenkundige operatie in digitale systemen.

Nadere informatie

Innovatief monitoren van sportvelden. 31 mei 2018

Innovatief monitoren van sportvelden. 31 mei 2018 Innovatief monitoren van sportvelden 31 mei 2018 31 mei 2018 Met Intelligent Play een gegarandeerde levensduur en exploitatie van sportsportvelden Wim Glaap, Newae Alex Talton, Intelligent Play Sportvelden

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 6 januari 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Demo document template available on the Rapptorlab website

Demo document template available on the Rapptorlab website Proef ingediend met het oog op het behalen van de graad van bachelor in de Ingenieurswetenschappen Demo document template available on the Rapptorlab website Course/thesis example Laurent Segers, Tom van

Nadere informatie

HANDLEIDING - ACTIEVE MOTORKRAAN

HANDLEIDING - ACTIEVE MOTORKRAAN M A N U A L HANDLEIDING - ACTIEVE MOTORKRAAN MANUAL - ACTIVE MOTOR VALVE Model E710877 E710878 E710856 E710972 E710973 www.tasseron.nl Inhoud / Content NEDERLANDS Hoofdstuk Pagina NL 1 ALGEMEEN 2 NL 1.1

Nadere informatie

Handleiding Installatie ADS

Handleiding Installatie ADS Handleiding Installatie ADS Versie: 1.0 Versiedatum: 19-03-2014 Inleiding Deze handleiding helpt u met de installatie van Advantage Database Server. Zorg ervoor dat u bij de aanvang van de installatie

Nadere informatie

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen Jan Genoe KHLim Situering RAM-geheugens Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Statische RAM SRAM

Nadere informatie

Maillijsten voor medewerkers van de Universiteit van Amsterdam

Maillijsten voor medewerkers van de Universiteit van Amsterdam See page 11 for Instruction in English Maillijsten voor medewerkers van de Universiteit van Amsterdam Iedereen met een UvAnetID kan maillijsten aanmaken bij list.uva.nl. Het gebruik van de lijsten van

Nadere informatie

Group work to study a new subject.

Group work to study a new subject. CONTEXT SUBJECT AGE LEVEL AND COUNTRY FEATURE OF GROUP STUDENTS NUMBER MATERIALS AND TOOLS KIND OF GAME DURATION Order of operations 12 13 years 1 ste year of secundary school (technical class) Belgium

Nadere informatie

Daylight saving time. Assignment

Daylight saving time. Assignment Daylight saving time Daylight saving time (DST or summertime) is the arrangement by which clocks are advanced by one hour in spring and moved back in autumn to make the most of seasonal daylight Spring:

Nadere informatie

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren (1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs (2) Ons gezelschap is er om kunsteducatie te verbeteren (3) Ons gezelschap helpt gemeenschappen te vormen en te binden (4) De producties

Nadere informatie

Intermax backup exclusion files

Intermax backup exclusion files Intermax backup exclusion files Document type: Referentienummer: Versienummer : Documentatie 1.0 Datum publicatie: Datum laatste wijziging: Auteur: 24-2-2011 24-2-2011 Anton van der Linden Onderwerp: Documentclassificatie:

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Bewijzen en Technieken 1 7 januari 211, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe.

Nadere informatie

Engels op Niveau A2 Workshops Woordkennis 1

Engels op Niveau A2 Workshops Woordkennis 1 A2 Workshops Woordkennis 1 A2 Workshops Woordkennis 1 A2 Woordkennis 1 Bestuderen Hoe leer je 2000 woorden? Als je een nieuwe taal wilt spreken en schrijven, heb je vooral veel nieuwe woorden nodig. Je

Nadere informatie

Online Resource 1. Title: Implementing the flipped classroom: An exploration of study behaviour and student performance

Online Resource 1. Title: Implementing the flipped classroom: An exploration of study behaviour and student performance Online Resource 1 Title: Implementing the flipped classroom: An exploration of study behaviour and student performance Journal: Higher Education Authors: Anja J. Boevé, Rob R. Meijer, Roel J. Bosker, Jorien

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

liniled Cast Joint liniled Gietmof liniled Castjoint

liniled Cast Joint liniled Gietmof liniled Castjoint liniled Cast Joint liniled Gietmof liniled is een hoogwaardige, flexibele LED strip. Deze flexibiliteit zorgt voor een zeer brede toepasbaarheid. liniled kan zowel binnen als buiten in functionele en decoratieve

Nadere informatie

Teardrop readout gradient waveform design. Ting Ting Ren

Teardrop readout gradient waveform design. Ting Ting Ren Teardrop readout gradient waveform design Ting Ting Ren Overview MRI Background Teardrop Model Discussion Future work MRI Background: Classical Description of MRI Spins: MR relevant nuclei, like 1 H. Main

Nadere informatie

Relationele Databases 2002/2003

Relationele Databases 2002/2003 1 Relationele Databases 2002/2003 Hoorcollege 4 8 mei 2003 Jaap Kamps & Maarten de Rijke April Juli 2003 Plan voor Vandaag Praktische dingen 3.1, 3.2, 3.3, 3.4, 3.5. SQL Aantekeningen 2 Tabellen. Theorie

Nadere informatie

Relationele Databases 2002/2003

Relationele Databases 2002/2003 Relationele Databases 2002/2003 Hoorcollege 4 8 mei 2003 Jaap Kamps & Maarten de Rijke April Juli 2003 1 Plan voor Vandaag Praktische dingen Huiswerk 3.1, 3.2, 3.3, 3.4, 3.5. SQL Aantekeningen 2 Tabellen.

Nadere informatie

Esther Lee-Varisco Matt Zhang

Esther Lee-Varisco Matt Zhang Esther Lee-Varisco Matt Zhang Want to build a wine cellar Surface temperature varies daily, seasonally, and geologically Need reasonable depth to build the cellar for lessened temperature variations Building

Nadere informatie

ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers

ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers English Instructions Windows 8 out-of-the-box supports the ICARUS Illumina (E653) e-reader. However, when users upgrade their Windows

Nadere informatie

B1 Woordkennis: Spelling

B1 Woordkennis: Spelling B1 Woordkennis: Spelling Bestuderen Inleiding Op B1 niveau gaan we wat meer aandacht schenken aan spelling. Je mag niet meer zoveel fouten maken als op A1 en A2 niveau. We bespreken een aantal belangrijke

Nadere informatie

FRAME [UPRIGHT MODEL] / [DEPTH] / [HEIGHT] / [FINISH] TYPE OF BASEPLATE P Base plate BP80 / E alternatives: ZINC finish in all cases

FRAME [UPRIGHT MODEL] / [DEPTH] / [HEIGHT] / [FINISH] TYPE OF BASEPLATE P Base plate BP80 / E alternatives: ZINC finish in all cases FRAME XS UPRIGHT BASE PLATE UPRIGHT HORIZONTAL PROFILE DIAGONAL PROFILE DESCRIPTION A vertical structure consisting of 2 uprights, joined by a system of bracing profiles, and base plates intended to support

Nadere informatie

OUTDOOR HD BULLET IP CAMERA PRODUCT MANUAL

OUTDOOR HD BULLET IP CAMERA PRODUCT MANUAL OUTDOOR HD BULLET IP CAMERA PRODUCT MANUAL GB - NL GB PARTS & FUNCTIONS 1. 7. ---- 3. ---- 4. ---------- 6. 5. 2. ---- 1. Outdoor IP camera unit 2. Antenna 3. Mounting bracket 4. Network connection 5.

Nadere informatie

Summary 124

Summary 124 Summary Summary 124 Summary Summary Corporate social responsibility and current legislation encourage the employment of people with disabilities in inclusive organizations. However, people with disabilities

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 7 februari 2011 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam.

Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam. Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam. Welke hoort in dit rijtje niet thuis? Weg- en waterbouw Huizen- en kantoorbouw Stedenbouw Auto- en vliegtuigbouw

Nadere informatie

How to install and use dictionaries on the ICARUS Illumina HD (E652BK)

How to install and use dictionaries on the ICARUS Illumina HD (E652BK) (for Dutch go to page 4) How to install and use dictionaries on the ICARUS Illumina HD (E652BK) The Illumina HD offers dictionary support for StarDict dictionaries.this is a (free) open source dictionary

Nadere informatie

High Performance Computing

High Performance Computing High Performance Computing Kristian Rietveld (krietvel@liacs.nl, kamer 138) Groep Computer Systems High-Performance Computing Optimizing compilers (generieke codes, maar ook specifieke rekenkernels). Parallel

Nadere informatie

EM7680 Firmware Update by OTA

EM7680 Firmware Update by OTA EM7680 Firmware Update by OTA 2 NEDERLANDS/ENGLISH EM7680 Firmware update by OTA Table of contents 1.0 (NL) Introductie... 3 2.0 (NL) Firmware installeren... 3 3.0 (NL) Release notes:... 3 4.0 (NL) Overige

Nadere informatie

0515 FOREIGN LANGUAGE DUTCH

0515 FOREIGN LANGUAGE DUTCH UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education MARK SCHEME for the May/June 2010 question paper for the guidance of teachers 0515 FOREIGN LANGUAGE

Nadere informatie

3HUIRUPDQFH0HDVXUHPHQW RI'\QDPLFDOO\&RPSLOHG -DYD([HFXWLRQV

3HUIRUPDQFH0HDVXUHPHQW RI'\QDPLFDOO\&RPSLOHG -DYD([HFXWLRQV 3HUIRUPDQFH0HDVXUHPHQW RI'\QDPLFDOO\&RPSLOHG -DYD([HFXWLRQV Tia Newhall and Barton P. Miller {newhall *, bart}@cs.wisc.edu Computer Sciences University of Wisconsin 1210 W. Dayton St. Madison, WI 53706

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Tentamen Calculus B (2WBB1) op maandag 28 januari 2013, 14:00 17:00 uur

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Tentamen Calculus B (2WBB1) op maandag 28 januari 2013, 14:00 17:00 uur ENGLISH VERSION: SEE PAGE 7 TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Tentamen Calculus B (WBB) op maandag 8 januari 03, 4:00 7:00 uur Maak dit vel los van de rest van het tentamen.

Nadere informatie

Workflow en screenshots Status4Sure

Workflow en screenshots Status4Sure Workflow en screenshots Status4Sure Inleiding Het Status4Sure systeem is een ICT oplossing waarmee de transportopdrachten papierloos door het gehele proces gaan. De status kan gevolgd worden door de logistieke

Nadere informatie

Quick start guide. Powerbank MI Mah. Follow Fast All rights reserved. Page 1

Quick start guide. Powerbank MI Mah. Follow Fast All rights reserved. Page 1 Quick start guide Powerbank MI 16.000 Mah Follow Fast 2016 - All rights reserved. Page 1 ENGLISH The Mi 16000 Power Bank is a very good backup option for those on the move. It can keep you going for days

Nadere informatie

Interface tussen Stuurbediening en Sony autoaudio

Interface tussen Stuurbediening en Sony autoaudio The information in this document is in Dutch, English version follows later in this document Interface tussen Stuurbediening en Sony autoaudio LET OP! HOEWEL DE UITERSTE ZORGVULDIGHEID IS BETRACHT BIJ

Nadere informatie

Stap 1: Registreer via de link op de G-schijf beschikbaar na inloggen met de teken-account, verzend via Submit. Nadien krijg je een bevestiging op

Stap 1: Registreer via de link op de G-schijf beschikbaar na inloggen met de teken-account, verzend via Submit. Nadien krijg je een bevestiging op Stap 1: Registreer via de link op de G-schijf beschikbaar na inloggen met de teken-account, verzend via Submit. Nadien krijg je een bevestiging op het scherm met de melding dat de registratie compleet

Nadere informatie

COGNITIEVE DISSONANTIE EN ROKERS COGNITIVE DISSONANCE AND SMOKERS

COGNITIEVE DISSONANTIE EN ROKERS COGNITIVE DISSONANCE AND SMOKERS COGNITIEVE DISSONANTIE EN ROKERS Gezondheidsgedrag als compensatie voor de schadelijke gevolgen van roken COGNITIVE DISSONANCE AND SMOKERS Health behaviour as compensation for the harmful effects of smoking

Nadere informatie

FAAC DRIVER. Driver install procedure for FAAC boards. Installatieprocedure voor driver voor FAAC-kaarten.

FAAC DRIVER. Driver install procedure for FAAC boards. Installatieprocedure voor driver voor FAAC-kaarten. FAAC DRIVER Driver install procedure for FAAC boards Installatieprocedure voor driver voor FAAC-kaarten www.record-toegangstechniek.nl 1 When a FAAC board (E124 or E145) is connected to the USB port, it

Nadere informatie

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14)

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14) Quality requirements concerning the packaging of oak lumber of (09.09.14) Content: 1. Requirements on sticks 2. Requirements on placing sticks 3. Requirements on construction pallets 4. Stick length and

Nadere informatie

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 6e hoorcollege

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 6e hoorcollege EE4: Digitale Systemen BSc. EE, e jaar, 22-23, 6e hoorcollege Arjan van Genderen, Stephan Wg, Computer Engineering 22-4-23 Delft University of Technology Challenge the future Rooster 4e kwartaal (der voorbehoud)

Nadere informatie

De Samenhang tussen Dagelijkse Stress, Emotionele Intimiteit en Affect bij Partners met een. Vaste Relatie

De Samenhang tussen Dagelijkse Stress, Emotionele Intimiteit en Affect bij Partners met een. Vaste Relatie De Samenhang tussen Dagelijkse Stress, Emotionele Intimiteit en Affect bij Partners met een Vaste Relatie The Association between Daily Stress, Emotional Intimacy and Affect with Partners in a Commited

Nadere informatie

Systeem Wand Samenstellings Applicatie. Cabinet configuration tool. Nederlandse handleiding

Systeem Wand Samenstellings Applicatie. Cabinet configuration tool. Nederlandse handleiding Systeem Wand Samenstellings Applicatie Cabinet configuration tool Nederlandse handleiding 1 Handleiding bylsma wand configuratie tool... 2 1.1 Disclaimer... 2 2 Wand samenstellen... 2 2.1 Applicatie lay-out...

Nadere informatie

René Bos, T&M Consultant. Den Bosch 14 juni 2018

René Bos, T&M Consultant. Den Bosch 14 juni 2018 René Bos, T&M Consultant Den Bosch 14 juni 2018 Batterij Emulatie Area of Expertise Measurement know-how Application know-how Batterij Emulatie Batterij Emulatie De elektrochemische cel Opbouw cel Waarom

Nadere informatie

!!!! Wild!Peacock!Omslagdoek!! Vertaling!door!Eerlijke!Wol.!! Het!garen!voor!dit!patroon!is!te!verkrijgen!op! Benodigdheden:!!

!!!! Wild!Peacock!Omslagdoek!! Vertaling!door!Eerlijke!Wol.!! Het!garen!voor!dit!patroon!is!te!verkrijgen!op!  Benodigdheden:!! WildPeacockOmslagdoek VertalingdoorEerlijkeWol. Hetgarenvoorditpatroonisteverkrijgenopwww.eerlijkewol.nl Benodigdheden: 4strengenWildPeacockRecycledSilkYarn rondbreinaaldnr8(jekuntnatuurlijkookgewonebreinaaldengebruiken,maar

Nadere informatie

Joos Vandewalle. wiskunde voor iedereen

Joos Vandewalle. wiskunde voor iedereen Joos Vandewalle wiskunde voor iedereen Hoe kan je het wiskundig denken laten groeien en bloeien bij alle leerlingen? Joos Vandewalle Op basis van de ideeën van Jo Boaler Youcubed Mythes over wiskunde Mythes

Nadere informatie

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM Read Online and Download Ebook RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN STAFLEU

Nadere informatie