Tesi Robotica Algoritmi ed architetture per la risoluzione di... | Page 60

3.2. CONVERSIONE C TO HARDWARE: HIGH LEVEL SYNTESIS 60 ); 90 // @.str1 = private unnamed_addr constant [12 x i8] c"homogeneous\00" 95 100 105 ram_dual_port _str1 ( ... ); defparam _str1.width_a = 8; defparam _str1.width_b = 8; defparam _str1.widthad_a = 4; defparam _str1.widthad_b = 4; defparam _str1.width_be_a = 1; defparam _str1.width_be_b = 1; defparam _str1.numwords_a = 12; defparam _str1.numwords_b = 12; defparam _str1.init_file = "_str1.mif"; ... Legup ci permette di gestire due di erenti flussi di sintesi: • Hardware Puro • Hybryd Noi abbiamo scelto il flusso Hardware Puro che converte l’intero codice Ansi C in codice Verilog. Ovvimanete per fare questo bisogna prendere piccole accortezze come ad esempio non utilizzare memoria dinamica che a livello hardware non è gestibile. Gli approfondimenti sono lasciati al capitolo 4, qui ci limiteremo semplicemente ad esporre e/o evidenziare i punti chiave dell’implementazione. Come si evince dal codice, LegUp ha trasformato le istruzioni di agast5_8.c in moduli, ogni modulo ha un compito specifico nel linguaggio Verilog(lasciamo al lettore il compito di approfondimenti per quanto riguarda il linguaggio Verilog).