TELKOM NIKA , Vol.12, No .2, June 20 14 , pp. 273~2 8 2   ISSN: 1693-6 930,  accredited  A  by DIKTI, De cree No: 58/DIK T I/Kep/2013   DOI :  10.12928/TELKOMNIKA.v12i2.1948    273      Re cei v ed Ma rch 2 3 , 2014;  Re vised Ma y 6, 2014; Acce pted May 1 8 , 2014   Overview on Strategies and Approaches for FPGA  Progra mming      Tole Sutikno * 1 ,   Nik Rum z i  Nik Idris 2 , Aiman Zak w a n  Jidin  Dep a rtment of Electrical E ngi neer ing,  F a cult y of Industri a T e chnolog y,   Univers i tas Ah mad Da hla n , Yog y ak arta, Ind ones ia   Dep a rtment of Energ y  C onver sion,  F a cult y of  Electrical En gi neer ing,   Univers i ti T e knolo g i Mal a ysia,  Johor, Mala ys i a   Dep a rtment El ectronics & Co mputer Eng i n e e rin g   T e chnolo g y , F a cu lt y  of  Engi neer in g T e chno log y   Univers i ti T e knikal Mal a ysi a  Melak a , Melak a , Mala ysi a   *Corres p o ndi n g  author, e-ma i l : tole@e e.ua d.ac.id 1 , nikrumzi@fke.utm.my 2 , aimanz ak w a n @ utem.ed u .m y 3       A b st r a ct  T h is pa per  pre s ents an  overv i ew   of strategi es an d a ppr oa ches for F P GA progr a m min g . At first,   desi gn  e n try meth ods are briefly  i n trod u c ed.  T hen,  th e conc epts of  F P GA progr amming  in s o me   persp ective vi ew points, suc h  as: exec uti on p e rspectiv e , mo de lli ng  persp ective, p r ogra m mi ng s t yle   persp ective, co nstruction  method olo g y p e rs pective  an d sy nthesis  persp e c tive w ill b e  ex plai ne d. Fina lly , the  princi pl e of VHDL pro g ra mmi ng use sync h ro ni z a ti on-ev ol uti on-acti on a ppr oach is i n trod u c ed.     Ke y w ords :  V HDL  progr a m mi ng, pr ogra m mi ng styl e per spec tive, synt hesis, sync h ro ni z a ti on-ev ol uti on- action a ppr oac     1. Introduc tion   A field programmabl e gate array (FPG A) can  be  co nsid ere d  as  a prop er sol u tion for  boo sting pe rf orma nce of controlle rs and  for dec re asi ng the gap  b e twee n the a nalog a nd dig i tal  worl d [1 -3]. F P GA ca sig n ificantly a ccelerate  th e  proce s sing  tim e  of  an  algo ri thm [4, 5].  When  addresse d to fast ADC, the extr emely  fast comput ation cap abili ty of FPGA  allows re al-ti m comp utation  of complex control alg o rithms  in a few  mic r oseconds  [2].  Today, FPG A  vendors provide a fairly  compl e te se t of tools whi c h allo w hig h  quality  desi gn  pro c e s s sta r ting f r o m  the h a rdware  de scriptio n u s ing  VHDL. Gen e rally,  the de sig n  to ols  cover ha rd wa re d e si gn  and  verificatio n  t ools (V HD L e d itor,  synthesizer,  pla c e/ro ute an d p h ysi c al   impleme n tation tools) [1,  6]. Some the example s  are Qua r tus f r o m  Altera, Integrated S o ftware   Environme n t (ISE) from Xilinx [7] and Libero from  Actel [8]. However, the unde rstan d ing a b o u perspe c tives  of FPGA prog rammin g  is n eede d to  use  the tools for realizi ng a digi tal desig n.      2. Design  En tr y   Methods   De signi ng by  han d o n  p a per  usi ng te chniqu es  such  as Boole a n  expre s sion s,  ci rcuit  schemati cs, Karna ugh m aps,  Q u ine - McCl uskey (T abula r ) mini mization,   an d state tran sition   diagram s were used in  the  past to  desi g n digital  circui ts. Cu rre ntly, the de sign  proce s s mig r at ed  to the comput er usi ng ele c t r oni c de sign  automation  (EDA) tools [9 -11].   For ente r in g a desi gn into  an EDA too l , a suitable  desi gn ent ry method i s  re quire d.   Typically, the desi gn entry  me thod s are followin g  [12-14]:  -   Circuit sch e m atics, p r e s e n t a gra phica l view of the  desig n u s in g logic  gate  symbol s an d   interconnec t wiring.  -   Boolean exp r ession s can  be entered a s  a text -based de scriptio n in combi n a t ional logic  desi g n s -   HDL d e si gn  entry, allo ws  a de scri ption  of the  di gital  logic ci rcuit o r   system  op e r ation  to b e   entere d  in text form using a  suitable la ng uage.   -   State transiti on diag ram s , present a graphi cal  vie w  of state machin e that identifies the  desi gn state s  and the tran sitions bet wee n  states.   The availabilit y of a particul a r de sign e n try method dep end s on the  DEA tool use d     Evaluation Warning : The document was created with Spire.PDF for Python.
                          ISSN: 16 93-6 930   TELKOM NIKA   Vol. 12, No. 2, June 20 14:  273 – 28 2   274 3.  Conc epts of  VHDL Prog r a mming  VHDL  is  a ha rdware de scri ption lan gua g e . Ho we ver, t he term  “h ard w are” i n  this  context   is u s ed  in  a  wide  variety  of co ntext, whi c co ve rs the compl e te ra nge  of a pplication s  from  compl e te sy stem s su ch  as pe rson al comp uter to  the small l ogical, and  can b e  u s ed  for  modelling di gital hardware in a ge neral way. V H DL is  suitable  f o r the design phases from   system  level  to gate lev e l. The exist ence of  “IEEE Standard  V HDL Language  Reference  Manual ” ha s i n crea sed th e use of V H DL and ha e nab led the creati on and  devel opment of hig h - perfo rman ce  comp uter-aid ed-d e si gn (CAD) tool [15-18].     3.1.  An Exec utio n Perspec t iv The di sting u i s hin g  of V H DL from  othe r l angu age s i s  i n  the  way h o w  a s signm ent can  be  execute d . Two basi c  types  of st atement s are kn own a s  [19-2 1 ]:  a. Sequential  statements  As in softwa r e programm i ng langu age s, thes statement types are execute d  one after  anothe r. So, the ord e r of th e assignm ent  must be con s ide r ed  whe n  use the s e types.    b. Con c u r rent  st atements  The types a r e active co ntinuou sly whe r e the orde r of  the stateme n ts is not rel e vant. So th e   types are e s p e cially suited  to model the parall e lism of  hard w a r e.     3.2.  A Modelling Perspec t iv e   Thre e imp o rt ant features  of the mod e ll ing  techniq u e s  a r e a b st raction, modula r ity and  hiera r chy [22-25].  a.  A b st ra ct ion   VHDL  is  rich in lan gua g e  co nst r u c tio n whi c ca n be u s e d  to de scribe  d i fferent  abstractio n  l e vels. Abst raction level s  are a  way  of hiding d e tails of a  particula r set  of  function ality. It allows for  the de scripti on of  di ffere nt part s   of a  digital  syste m  with  different  amount s of detail. Thus, h i era r chical an d modul a r  a ppro a che s  which a r e defi ned at different  levels  of a b st ractio n fo r ta king a d vantag es  of th e  VHDL  ca be  use in  digital  ci rcuit d e si gn   [ 22- 25].   There a r e  th ree  differe nt  abstractio n  l e vels fo r h a rd ware  de script ion la ngu age s h a ve   been  defin ed  to de al  with  the h uge  si ze of d e tailed   informatio n d e scribi ng  ele c troni c devices.  Each of level  is characte ri zed  by a set of prim itive  comp one nt a nd by the  size of inform ation   pro c e s sed at that level [10, 22, 23].    -  Behaviou r al  level  The be havio ural level i s   a simpl e  wa y to describe  the behavio ur of a ci rcui t. The level  con s i s ts of th e function al/a lgorithm d e scripti on of the  circuit. Usuall y , such d e scriptions a r only simulata ble, but not synthesi z abl e.  -   Regi ster tran sfer level (RT L The RT L deal s with words  of bits usin g combi nation a l  and se que ntial device s  su ch a s  wo rd   gates,  m u ltipl e xers, de cod e rs, arithm etic  op erat ors, regi sters,  et c.  Two  differe nt types of  pro c e s ses  ex ist  in RTL de scription s  are   t he pu re  co mbination a l p r ocess  and t he cl ocke d   pro c e ss. All   clo c ked  pro c esse s infe r f lip-flo ps  an d c a n  be  de sc r i be d  in  terms  o f  s t a t e   machi ne. In depth of the state machi ne  will explain in  sectio ns V a nd VI.    -  Gate  level  The logi c level is well defined by switchi ng  theo ry base d  on  Boolean or multi-valued   algeb ra. It i n volves all   of the logi c gate s  p r o c essing B ool ean of  multi p le-valu e  bit- informatio n. The logi c networks mu st be  optimize d The compl e xity of designed I C s f a voure d  the  developm e n t of new desi gn  methodol ogie s  ba sed on  abstra c tion.  Three  strat egie s  may be distin guished in de si gn   methodol ogie s  [26-2 9 ]:  -   Top-Do wn, p r oceed s hi erarchically fro m  an  ab stra ct level to a more d e tail ed one  by  su cc es siv e  d e com p o s it ion  int o  sub s y s t e ms.  Wit h  to p-do wn  de sig n , the circuit  can first be   modelle d by makin g  a be h a vioural m o d e l. The  advan tage of a beh avioural m o d e l is that the  desi gne r can  simulate  th e ci rcuit at an ea rl y sta ge an d di scover any  sy stem e r rors.  Ho wever, thi s  level ca n b e   ski ppe d in th e top-do wn fl ow in  many  case s. It is o n l y  in the case   of highly com p lex circuit s  (system s or if  a lo t of circu i ts have to b e  desi gne d a t  the same  time.     Evaluation Warning : The document was created with Spire.PDF for Python.
TELKOM NIKA   ISSN:  1693-6 930       Ove r view o n  Strategie s  an d Appro a che s  for FPGA Prog ram m i ng (Tole Sutikn o)  275 -   Bottom-Up, a c hieve s  the  desi gn of mo re  complex  sys tems  by as sembling les s   c o mplex   one s.  -   Meet-in - the - middle, d e co mposes a  sy stem i n to   su bsyste ms unt il the p a rt s of  the  re sulting  decompo sitio n  can b e  de signed u s in g a  library of  co mpone nt and  standa rd  cell s. This la st  approa ch is t he most fre q u ently used.   b. Modula r ity  For ve ry larg e model s, it i s  u s eful to  split  the wh ole  cod e  into m any files that  can  be   compil ed  se p a rately. A big  functio nal bl ock  can  be  split into small e r u n its  and  grou ped  cl osely  related p a rt s in self-contai n ed su b-bl ocks, so -c alled  module s . A complex syste m  can b e  divided   into ma nag e able  su b-syst ems by u s in g this te c hni que. F r om  a  functio nal  p o int of vie w ,  the  module s  are  easi e to   dev elop and ma ke se nse.  Th is can   be co ndu cted by  identificatio n and   extraction of  some  re-usea b le and in dep ende nt modul es [1, 22, 24].  c. Hierarchy   Hierarchy i s  useful fo r spl i tting an initial, compl e x probl em into  simple sub - probl em that can be  worked out se parately to achieve a so luti on to the initial probl em. Using hi era r chi e to handl co mplexities  do es n o t mea n  that the d e sign be co me s less  compl e x (so m etime s  it  become s  mo re co mplex instea d), but it becom e e a s ier to un derstand for d e signer. By usi n g   hiera r chy me thod, buil d ing  a d e si gn o u t  of modul es is  po ssi ble.  Each l e vel of  a hi era r chi c al  descri p tion  may contain  one or mo re modul es  that can even have different de gre e s  of  abstractio n . The su b-m o d u les of these  models a r pre s ent in th e next lower  hiera r chi c al level  [23-25].   Modula r ity an d hiera r chy h e lp to simply and organi ze  a desi gn proj ect.     3.3.  A Programm i ng St y l e Per s pec t iv e   VHDL  offers t h ree   styles  of de scription:  t he b ehavio ural, dataflo w,  and structu r al   styles.   In cont ra st to other lang uage s, the V H DL mo d e may inclu de  any com b ina t ion of the th ree   aboveme n tio ned style s  [7, 8, 12, 19, 30].  a. Behaviou r al  style  A behavioura l  descriptio n  model s the system as  to how the output s act with the  inputs. The  behavio ural   style pe rmits the d e si gne r to q u ickly t e st  con c e p t, wh ere  the  desi gne can   spe c ify the  hi gh-level  fun c tion of th e d e s ign  with out t a kin g  mu ch  care  ho w it  wi ll be  done  stru cturally. This  descript i on defin es t he fu n c tional ities of a d e vice  with a  seq uential   algorith m  with no referen c e to any structural  implem e n tation. For e x ample, an adder  will be  modelle d wit h  an additio n  operation. The synthe si zed fro m  be havioural de scription s  will  often end up  usin g a lot of more resou r ces than a c tua lly nece s sary, even after op timization.   b. Dataflow  s t yle  Dataflo w  de scrib e ho w the sy stem’s  sign als fl o w  from the in pu ts to the out puts. At the  dataflow  or t he RT L style ,  the system  is re pre s e n ted by a con c urre nt set o f  equation s   involving use r-d efined fun c tion s, and a r ithmetic   and  logic o p e r at ors  ope rating  on sig nal s of   arbitrary com p lex types. These equ ations exp r e s s the flow of  informatio n throu gh RT L   function al module s  impli ed by the func tion s and op erato r s. A dire ct hard w a r e   impleme n tation can be de rived  by  m a p p ing sign al s i n to wi re s a n d  dataflo w op e r ators i n  RTL  module s . Fo r example, an  adde r will b e  co nstructe d by mappin g  sign als i n to wires  an d   dataflow of th e pred efined l angu age s op erato r s XO R, AND, and  NO T.  c.  S t ruct u r al  st y l In a structu r a l  style, the de scription li sts  t he pa rts of t he sy stem a n d  their i n terconne ction s Structu r al d e scriptio ns  model th system  as comp one nts  or gate s Actually,  the   function alities of the com pone nts are not  part of the de scriptio n. The com p onent s are   viewed a s  bl ack boxe s  wi th rega rd to their inte rface .  The re sultin g system i s  e quivalent to  an interco n n e cted  set of  so ckets. Fo r exam pl e, a n  add er  coul d be d e scri b ed a s  the  interconn ecti on of two half - add ers a nd  an O R  g a te. In this  ca se th e half-add er  and the  gat e   are viewed a s  bla ck b o xes.  In VHDL, a  d e scriptio ca n mix diffe ren t  descrip tion  s t yles . In fac t ,  mos t  the desc riptions  of mode rate  to larg e-size-system s  a r mixed.  It is  possibl e for  descri b ing  so me pa rts  of the   system u s ing  one de scripti on style  and  other pa rts u s ing anoth e r st yle.        Evaluation Warning : The document was created with Spire.PDF for Python.
                          ISSN: 16 93-6 930   TELKOM NIKA   Vol. 12, No. 2, June 20 14:  273 – 28 2   276 3.4.  A Con s tr ucti on Metho dol og y  Perspec t iv e   De sign  of integrate d  ci rcui t is a map p in g pro c e s s of  function al de scription  of a  probl em  in order to  satisfy a  set o f  perfo rman ce crit eri a A con s tru c tion  methodol ogy perspe c tive may  c o nc en tr a t o n  an y le ve o f  a b s t r a c t io n d e f in ed   w i th in  th is pr oc ess :  Re ce n t  liter a t u r e  on  VHD L   prog ram m ing  pe rspe ctives d e scribe   a nu mbe r   of distin ct  methodol ogie s . All of  th ese   methodol ogie s  ca n be grou ped into thre e  mainstr eam s that differ in desi gn philo sophy [26-2 9 ]:  a. Top-do wn  ap proa ch  (be h a v ioural The d e si gn p r ocess i s   sta r ted from  hi g h -level, b eha vioural  de scri ptions  of blo c ks th at will   reali z e certai n function s. A good exa m ple for  the  top-do wn a ppro a ch is l ogic  synthesi s   methodol ogy. Standard  cel l  librari es b a sed-V H DL de scriptio n of a digital circuit  has b e come   a comm only  used te chni que for auto m atic synthe sis of such circuits. Thi s  appro a ch i s   addresse d to  avoid the  co mplexi ties  of physi cal  de sign an d thu s ,  spe e d s  u p  the p r o c e ss.   Yet, the we a k ne ss of thi s   approa ch  ca n not solve a  n u mbe r  of i s su es  su ch  a s   careful  sp eed  optimizatio n and area mini mization.   b. Bottom-up  ap proa ch  (phy si cal)  The low-level  elementa r y building bl ocks of t he circui t are desi gne d and combin ed to reali z e   the desi r e d  functio n . A good exampl e of the bo ttom - up d e si gn st rategy is full -cu s tom an d   mask-l evel d e sig n  of ele m entary b u il ding bl ocks. This  app ro ach  qui ckly  become s  very  difficult to manage the ove r all desi gn co mplexity in larger FPGA de sign s.   c. Meet-in - the - middle  ap pro a ch   The de sign o f  complex sy stem s sho u ld  employ  a co mbination of  top-do wn a n d bottom-u p   approa che s   whi c h is  calle d the "meet-i n-the - middl e"  appro a ch, for most efficie n t result s.     3.5.  A Sy nthesis Perspec t iv e   Synthesis i s  the tran slatio n  pro c e ss fro m   a descripti on of a ha rd ware devi c at highe r   abstractio n  le vel into an optimized im pl ementati on o n  a lowe r level abstractio n .  This pro c e s may be d one  by huma n  o r  a compute r   assiste d   p r og ram. Th ere  a r e two comm on catego rie s  of  the synthe sis  pro c e ss [10,  20, 26, 31-3 5 ]:    a.  Behaviou r  to stru cture   The g ap b e twee n the hi g h -level b ehav ioural  sp ecif i c ation of a  digi tal circuit a n d  its structu r e   are b r idg ed  high-l e vel sy nthesi s . The  high-level  synthesi s  as  oppo se d to logic  synthe si whi c h o p timizes o n ly com b inational l ogi c, deal with  memory el e m ents, the i n terco nne ction  stru cture such as b u ses  and multipl e xers, a nd the  seq uential  asp e ct s of a  desig n. Th e   behavio ural  specifi c ation  a i ms at de scri bing o n ly  the  function ality of a circuit,  or what the  circuit m u st  do. On  the o t her h and,  ci rcuit  st ructu r e give s st ron g  hint s ab out  the  circuit' imp l e m en ta tio n  or   h o w  it is  bu ilt. T h e s t r u c t ur is de scrib ed  by a  n e tlist, a li st of  co mpon ents  and their inte rcon ne ction s b.  Structu r e to p h ysical layout   Tran sfo r mati on from stru cture to physical lay out re pre s entatio n is calle d phy sical desi gn.  Physical  de si gn Physi c al  d e sig n  in clud e s  two ma jor parts : (i)  the firs pa rt is th e refin e ment  pro c e s s bet ween the  st ru ctural a nd  phy sical vi ews  which  de rives  a layout fo r a  netlist; an (ii) The  seco nd part invol v es the analy s is an d tuni n g  of a circuit' s elect r ical chara c te risti c s.  The main ta sks in  physi cal  desig n in clu de fl oor pl an ning, pla c em ent and routi ng and  circuit   extraction.   The synthe si s pro c e s s ca n also b e  viewed in  three  different level s  [10, 20, 26, 31-3 5 ]:  a. Behaviou r   sy nthesi s     Behaviou r al synthe sis all o ws  de sig n  at  highe r lev e ls of a b st ra ction by a u tomating th transl a tion a nd optimi z ati on of a be ha vioural d e scri ption, or hig h - level mod e l, into an RT L   impleme n tation whi c h fits in with existing des i gn flows. This m e thod can b e  sele ctively   applie d to portions of a design. It will derive t he greate s t benefit fro m  the using a  higher level  of abstractio n . This b eha vioural d e sig n  flow  in cre a s e s  de sign  p r odu ctivity, reduces e r rors,   and spee ds v e rificatio n b. Logi synthe sis  Logi c synthe sis involves b o t h combin at io nal and  seq u ential logi c de sign.    The p r o c e s of state mi ni mization  an d  then th e stat e en co ding  p r ocess  are a ddre s sed  if a  stable  diag ra m or ta ble i s  given.  Fo descr i b ing  th e rel a tion ship s bet wee n  in put, cu rre nt  state an d out put and  next state,  the opt imized t r uth t able s  or B ool ean exp r e ssi ons  ca n be   use d  after th e en co ding i s   compl e ted.  The  next st ep, the m a p p ing  pro c e ss co nverts the   Evaluation Warning : The document was created with Spire.PDF for Python.
TELKOM NIKA   ISSN:  1693-6 930       Ove r view o n  Strategie s  an d Appro a che s  for FPGA Prog ram m i ng (Tole Sutikn o)  277 optimize d  trut h table or Bo olean exp r e s sion into g a te s of a parti cul a r tech nolo g y.  c. Physical  synthesi s   Physical  synt hesi s  i s  the l a st sta ge in  a synt he si s d e sig n  flow a n d  is whe r e th e individual  gates a r e pla c ed a nd ro ute d  on the sp ecific FPGA platform.      4.  Using Arith m etic Oper ations and T y pes   In VHDL, the  decla ratio n  o f  the con s tant s, sig nals, va riable s , fun c tions  and p a ra meters  can be  con d u cted with a  type that defines an d re st ricts their  cha r acteri st ics. When obje c ts a r assign ed to a  type, they are rest ricte d  to the  values a nd ope ration s for that type [18, 36, 37].  Altera re com m end s usi ng  the followin g  types [37]:  a. STD_LOGIC  and  STD_LOGIC_ VECTOR types. These types are  defined in IEEE Std 1164- 1993 [38]. A  copy of the std_logi c_1 164  package,  wh ich incl ude s these types, is provid ed i n   the  ieee  library in the  \quartus\libraries\ v h d l\ieee  directory.   b.  BIT and BIT_VECTOR types. These types ar e defined in IEEE Std 1076-1987 [15]. A copy  of the stand a r d pa ckag e, whi c h in clud es the s e typ e s, is p r ovid ed in the  st d  library in the  \quartus\libraries\v hdl\st d  dire ctory.   c.  SIGNED a n d  UNSIGNE D  types.  T hese ty pes are  provid ed in th std_lo g ic_arit h,  nume r ic_std,  and n u me ri c_bit p a cka g e s in th ieee  library in the  \quar t u s \v hdl\ieee   dire ctory.        5. State  M achi n e   Boolean  form  ca n b e  u s e d  to spe c ify al l pro g ramma ble lo gic de si gns.  Ho weve r u s ing   non-B oolea model s a r e  e a sie r  to  con c eptuali z and  implem ent  some  de sign s. The  on su ch  model i s   stat e ma chin e m odel. A  state  ma chine   rep r esents a  sy stem  as a  set of state s the  transitio ns be tween  them,  along  with th e a s soci at ed  input s a nd  outputs. So,  it is a  pa rticu l a r   c o nc ep tu a l iz atio n  o f  a p a r t ic u l ar   s e qu en tia l  c i rcuit which  can  be  use d  for ma ny other thin gs  beyond lo gic  desi gn an d compute r  archi t ecture [2 7, 33, 35, 39, 40].  A finite state machi ne (F SM) or  simp ly  a state m a chi ne is  model of b e haviour  comp osed of  a finite num b e r of  states, t r an sition s bet wee n  tho s states, and  a c tions. It is li ke  a  "flow g r ap h"  whe r we  ca n see  ho w th e logi run s   whe n   certai con d ition s  a r e met [27,  33 -35,  39, 40].      6. Sy nchroniza tion-ev olution-ac ti on app r oach in state machine   A state  ma chine i s  actin g  a s   seq u ential  circuit.  The  u s e  of  state  ma chi nes is a n   effective me ans  of imple m enting  co nt rol fun c tion s.  The  cu rre nt state  st at e  ve ct or ” of t h e   machi ne i s  st ored i n  the st ate memo ry; and the n e xt  state of the m a chi ne is  det ermin ed ba se  on   the curre n t state and the in puts  a c qui red  [27, 33, 35, 39, 40].  The state m a chi ne u s uall y  works i n  two ph as es. I n  the first ph ase, the n e w state i s   cal c ulate d , a nd in  the  se cond  pha se  th e ne stat e i s   sampl ed i n to a regi ster.  In ge neral, for  descri b ing  a  state ma chi n e in V H DL, a n  en umerat io n type for the  state s   can  b e  de cla r ed,  a n d   process statements  can be utilized for  the state  registers and the next-st ate logics. Other  way  use s  th ree  different proce s ses: o ne to  decode  next state, one to  assi gn  cu rren t state and  o n e   for the o u tput  sign als [2 7, 33, 35, 39,  4 0 ]. In or de r to  be mo re  rea dable  and  ea sier to de bug,  this  thesi s  intro d u c e s  syn c h r on ization - evoluti on-a c ti on  ap proa ch  as th e way of de scribi ng a s   sta t machi ne in V H DL.  d.  Synchroni zati on      process  to synchro n ize  t he state  tra n s iti on  at every clo c k cy cle  i.e. the  state tran sitio n  will only occur at t he ri si ng edg e of the desi gnate d  clo ck.   e.  Evolution                     to  describ the  con d ition  of the state transit ion, from cu rre nt state to   anothe r state   f.  Action                          to generat e the app rop r iat e  output sig n a l for each cu rre nt state.            Evaluation Warning : The document was created with Spire.PDF for Python.
                          ISSN: 16 93-6 930   TELKOM NIKA   Vol. 12, No. 2, June 20 14:  273 – 28 2   278 library ieee;  use ieee.numeric_std.all;  use ieee.std_logic_1164.all;    Entity machine is    port (clk, inp, rst: in std_logic;          otp          : out std_logic_vector(3 downto 0));  end machine;    Architecture Moore of machine is  -- state declaration  type state_type is (st0, st1, st2, st3);   signal state: state_type;    begin    -- clocked process ( first process   machine_process: process(clk,rst)    begin       if rst = '1' then state<=st0;       elsif clk'event and clk='1' then         case state is           when st0=> if inp='1' then                        state<=st1;                      end if;           when st1=> if inp='0' then                        state<=st2;                      end if;           when st2=> if inp='1' then                        state<=st3;                      end if;           when st3=> if inp='0' then                        state<=st0;                      end if;         end case;       end if;    end process;      -- combinational process ( second process   output_process: process(state)    begin      case state is        when st0=> otp <="0000";        when st1=> otp <="1001";        when st2=> otp <="1100";        when st3=> otp <="1111";      end case;    end process;  end Moore;      Figure 1. A Moore m a chine  use s  two p r o c e s ses      library ieee;  use ieee.numeric_std.all;  use ieee.std_logic_1164.all;    Entity machine is    port (clk, inp, rst: in std_logic;          otp          : out std_logic_vector(3 downto 0));  end machine;    Architecture Moore of machine is  -- state declaration  type state_type is (st0, st1, st2, st3);   signal current_state, next_state: state_type;    begin    -- combinational process #1 ( first process   P0: process(current_state,inp)    begin      case current_state is           when st0=> if inp='1' then  Evaluation Warning : The document was created with Spire.PDF for Python.
TELKOM NIKA   ISSN:  1693-6 930       Ove r view o n  Strategie s  an d Appro a che s  for FPGA Prog ram m i ng (Tole Sutikn o)  279                       next_state<=st1;                      end if;           when st1=> if inp='0' then                        next_state<=st2;                      end if;           when st2=> if inp='1' then                        next_state<=st3;                      end if;           when st3=> if inp='0' then                        next_state<=st0;                      end if;       end case;    end process;      P1: process(clk,rst)  --  second process     begin     if rst = '1' then current_state<=st0; -- reset state     elsif clk'event and clk='1' then       current_state<=next_state;     end if;    end process;      -- combinational process #2 ( third process   P2: process(current_state)    begin      case current_state is        when st0=> otp <="0000";        when st1=> otp <="1001";        when st2=> otp <="1100";        when st3=> otp <="1111";      end case;    end process;  end Moore;      Figure 2. A Moore m a chine  use s  three p r oce s se       library ieee;  use ieee.numeric_std.all;  use ieee.std_logic_1164.all;    Entity machine is    port (clk, inp, rst: in std_logic;          otp          : out std_logic_vector(3 downto 0));  end machine;    Architecture Moore of machine is  -- state declaration  type state is (st0, st1, st2, st3);   signal current_state, next_state : state;    begin    synchronization:   process (clk, rst) is  begin  if rst = '1' then    current_state <= st0;  elsif rising_edge(clk) then    current_state <= next_state;  end if;  end process;    evolution:   process (inp, current_state) is  begin       --default state evolution       next_state <= current_state;            case current_state is         when st0=> if inp='1' then  Evaluation Warning : The document was created with Spire.PDF for Python.
                          ISSN: 16 93-6 930   TELKOM NIKA   Vol. 12, No. 2, June 20 14:  273 – 28 2   280                     next_state <=st1;                    end if;         when st1=> if inp='0' then                      next_state <=st2;                    end if;         when st2=> if inp='1' then                      next_state <=st3;                    end if;         when st3=> if inp='0' then                      next_state <=st0;                    end if;         end case;  end process;    action:   process (current_state) is  begin    case current_state is      when st0=> otp <="0000";      when st1=> otp <="1001";      when st2=> otp <="1100";      when st3=> otp <="1111";    end case;  end process;    end Moore;      Figure 3. A Moore m a chine  use s  Sync h r onization-evo l ution-a c tion approa ch       library ieee;  use ieee.numeric_std.all;  use ieee.std_logic_1164.all;    Entity machine is    port (clk, inp, rst: in std_logic;          otp          : out std_logic_vector(3 downto 0));  end machine;    Architecture Moore of machine is  -- state declaration  type state is (st0, st1, st2, st3);   signal current_state, next_state : state;    begin    synchronization:   process (clk, rst) is  begin  if rst = '1' then    current_state <= st0;  elsif rising_edge(clk) then    current_state <= next_state;  end if;  end process;    evolution_and_action:   process (inp, current_state) is  begin        --default state evolution      next_state <= current_state;        --default output      otp <="0000";             case current_state is         when st0=> if inp='1' then                      next_state <=st1;            otp  <="0000";                    end if;         when st1=> if inp='0' then                      next_state <=st2;            otp  <="1001";  Evaluation Warning : The document was created with Spire.PDF for Python.
TELKOM NIKA   ISSN:  1693-6 930       Ove r view o n  Strategie s  an d Appro a che s  for FPGA Prog ram m i ng (Tole Sutikn o)  281                   end if;         when st2=> if inp='1' then                      next_state <=st3;            otp  <="1100";                    end if;         when st3=> if inp='0' then                      next_state <=st0;            otp  <="1111";                    end if;         end case;  end process;    end Moore;      Figure 4. A Moore m a chine  use s  Synch r oniza tion-evo l ution-a c tion  approa ch: evolution an action  step s are me rge d       In som e   ca ses, the  evolu t ion and  a c tion st eps can  be m e rg ed  so th at unn e c e s sary  regi ster u s a g e s or lat c h p r oblem s ca n b e  avoided.       7. Conclu sion   This pa pe r has presented  an overview of  FPGA Pr ogra mming.  FPGA platforms an d   perspe c tives of VHDL   prog ram m ing ,  inclu ded   some persp e c tives (exe cution,  mo del ling,  prog ram m ing  style, con s truction  metho dology a nd  synthesi s ) h a ve bee n p r ese n ted. Finally,  the  synchro n ization-evol ution- action a pproa ch in state m a chi ne is introdu ced.     Referen ces   [1]    Monmass on E ,  Cirstea MN. F P GA Design  Method olo g y  for Industria l C ontrol S y stems - A Revie w .   IEEE Transactions on Industrial Electronics . 200 7; 54(4): 18 24-1 842.   [2]    Nao uar MW Monmass on E ,  Naass ani  A A , Slama-B e lk hod ja I, P a tin  N. F P GA-Ba s ed  Curre nt   Contro llers for  AC Machi ne  Drives-A R e vi e w IEEE Tra n sactio ns o n  Industri a l El ectronics . 20 07;  54(4): 19 07- 19 25.   [3]    Sutikno T ,   F a cta M. An Efficient Strateg y   t o  Generate H i gh Res o luti on  T h ree-Phase Pulse  W i dth  Modu latio n  Sig nal Bas ed o n  F i eld Pro g ram m abl e Gate Arra y .   Intern ation a l Jour nal of C o mputer a n d   Electrical E ngi neer ing . 2 010;  2(3): 413- 41 6.  [4]    Medic a l Imagi n g  Impleme n tati on Usi ng F P GA s.  W h ite Paper: Altera Corp oratio n. 201 0.  [5]    Monmass on E ,  Idkhaj ine  L,  Nao uar  MW . F P GA-based  Contr o ll ers.  IEEE Industri a l  Electro n ic s   Maga z i ne . 2 0 1 1 ; 5(1): 14-26.   [6]    Monmass on E, Idkhaji ne L, C i rstea MN, Ba hri  I,  T i san A, Nao uar MW . FPGAs in Indus trial Co ntro l   Appl icatio ns.  IEEE Transactions on Industrial Informatics . 201 1; 7(2): 224 -43.  [7]    Gonzal ez-Co n c ejer o C, Rod e llar V, Alva re z-Marqui na A,  Ica y a E, Gomez-Vild a P.  An  FFT/ IFF T   Desig n  versus  Altera an d Xili nx Cores .  Internatio nal C onf erenc e on R e c onfig urab le C o mputin g an d   F P GAs (ReConF ig ' 08). 200 8 :  337-34 2.  [8]    Mahd ian P, G r iebl in g M.  VHDL i m p l e m e n t a tion  of a bi di rection a l i n terface for 3AT I  avio nic su b- system s .  T he  23 rd  20 04 Di git a l Avio nics S y s t ems Confer e n c e (DASC 04).  200 4. 2: 11.C.5-.1-7.   [9   Al d e r ig hi  M, Ca si n i  F, D ' An ge l o  S, Man c in i M,  Pastore S, Sterpon e L, e t  al. Soft Errors in SRAM- F P GAs: A Co mpariso n   of T w o   Comp leme ntar y Ap pro a c hes.  IEEE  Transactions on Nuclear  Scienc e 200 8; 55(4): 22 67-2 273.   [10]   Richar ds MA. Simulati on l i br aries for s y st e m-level d e si gn.   Computer . 19 95; 28(2): 7 6 -7 7.  [11] Jung Uk  C, Qu y  Ng oc L,  Jae W ook J. An F P GA-Based Mu ltipl e - A xis Moti on C ontrol C h ip.  IEEE   T r ansactio n s o n  Industria l Ele c tronics . 200 9; 56(3): 85 6-7 0 [12]    Dra y er T H , T r ont JG, Co nn ers RW , Ara m an PA.  A de ve lo pm en t syste m  fo r cre a t i n g  re al -ti m mac h i ne visi on  hardw are usi ng fiel d pro g ra mma b le  gate  arrays .  Proce edi ngs of the  32n d Ann ual   Ha w a ii Intern ation a l Co nfere n c e on S y st ems  Sciences (HIC SS-32). 199 9: 5.  [13]   Grout I. Digital S y stems Des i g n   w i t h  F P GAs and CP LDs: El sevier Sci ence.  2011.   [14]    Mezei I, Ma lb asa V.  Us ing   VHDL to  Impr ove a n  F P GA Based  Ed uca t iona l Microc o m p u ter . T he  Internatio na l C onfere n ce o n  Comp uter  as a   T ool (EUROC O N 2005). 20 0 5 : 799-8 02.   [15]   IEEE Standard  VHDL La ng ua ge Refer enc e Manu al. IEEE Std 1076- 19 87 . 1988:0 _1.   [16]    IEEE Standards Interpreta tions: IEEE Std  1076-19 87, IE EE Standard  VHDL  Language Reference  Manu al. IEEE Std 1076/INT - 1991. 19 92:1.   [17]    IEEE Standar d VHD L  L a n g uag e R e fere nc e Ma n u a l . IEEE Std 10 76- 2 002 ( R evis io n  of IEEE Std  107 6, 200 2 Ed n). 2002:0 _1- 3 00.   Evaluation Warning : The document was created with Spire.PDF for Python.
                          ISSN: 16 93-6 930   TELKOM NIKA   Vol. 12, No. 2, June 20 14:  273 – 28 2   282 [18]    IEEE Standard  VHDL L ang ua ge  Ref e renc Manu al - Re dli ne. I EEE Std 1076- 200 8 (Rev ision  of IEE E   Std 1076- 20 02 ) - Redlin e. 20 09:1-6 20.   [19]    Hod ges B R , P r oico u MC,  hat rum T C A dist ribute d  ker n e l  f o r VHD L  s i mul a tion  Proc ee din g s of  the   IEEE 1990 N a tion al Aeros pac e and El ectron i cs Conf ere n ce  (NAECON 19 9 0 ). 1990; 1: 21 5-22 0.  [20]    Cogs w e l l  MC,  W ood  DE.  A  hybrid  event- s imulati on/cycle-sim u lation enviro nment for  VHDL- bas ed  desi gns .  199 7 Procee din g s V HDL Intern atio nal Us ers'  F o rum. 1997: 25 8-2 63.   [21]    Bui H, T ahar S.  Design  and synthesis of  an  IEEE-754 exponential function . 1999 IEEE Canadian  Confer ence  on  Electrical a nd  Comp ut er Engi neer ing. 1 999;  1: 450-4 55.   [22]    Agha G, F r olu nd S, W o o y o u ng K, Pan w a r   R, Pa tterson A ,  Sturman D. Abstraction  an d modu lar i t y   mechanisms f o r conc urre nt  comp utin g.  IEEE Parallel & Distribut ed  Technology:  System s &   Appl icatio ns . 1 993; 1(2): 3-1 4 .   [23]    Rotherm e l K,  Helb ig  T .  Clock  hi erarch ies: an abstracti on for  gro upi ng  an d co ntroll in g m edi a stream s .   IEEE Journal  on Selected Areas in Communications . 19 96;  14(1): 17 4-1 8 4 .   [24]    Leo ng C, B ent o P, Lous a P,  J oao  N, Reg o   J, Rodri gues P ,  et al . Desi gn  and test iss ues  of an F P GA   base d  d a ta  a c quisiti on  s y stem for m edic a l im ag ing  us i ng PEM.  IEE E  T r ansacti on s on  Nuc l ea r   Scienc e . 200 6; 53(3): 761- 76 9.  [25]    Bracken bur LEM, Pla na  LA, Pep per J .  S y stem-o n- Chip  D e sig n   and  Implem en tation.  IE EE  T r ansactio n s o n  Educati o n . 2 010; 53( 2): 272 -81.  [26]   Olsen  G.  System des ig n consi derat i ons  for F P GA syn thesis . Idea/Mi croel ectronics  Confer enc e   Recor d  (W ESCON/94). 199 4 :  592-59 5.  [27]    Donz ell i ni G, Ponta D.  A bott o m- up a ppr oac h to dig i tal d e s i gn w i th F P GA .  2011 IEEE Internati o n a l   Confer ence  on  Microelectr oni c S y st ems Edu c ation (MSE). 201 1: 31-3 4 [28]    Jimenez J, Martin JL , Zuloa g a  A, Bidarte U,  Arias J. Comp ar i s on  o f  tw o de si gn s fo r th e   mu l t i f u n c tion  vehicle bus.  IEEE Transactions on  Com p uter-Aided Des i gn  of Integrated  Cir cuits and Sy stem s . 2 006 ;   25: 797- 80 5.  [29]    Gohrin ger D,  Becker J.  Hi g h  perfor m anc e reco nfigur ab le  multi- proc e ssor-bas ed co mp utin g o n   FPGAs .  2010 IEEE Internatio nal S y mp osi u m on Para lle l & Distribute d   Processi ng, Worksho p s an d   Phd F o rum (IPDPSW ). 2010: 1-4.  [30]    Yan Y, Z h u J G, Guo YG. Initial  rotor  pos ition  estimati o n  a nd s ens orl e ss dir e ct torq ue c ontrol  of   surface-mo unt ed p e rma nent  magn et s y nc hron ous  m o to rs consi deri n g  saturatio n  s a lie nc y.  IET  Electric Pow e r Appl icatio ns . 2 008; 2(1): 4 2 -8 [31]    Camp osan o R.  F r om be havi o r to  structure:  hig h -lev el s y nt hesis.  IEEE Design & Test of Com puters 199 0; 7: 8-19.   [32]    Hua ng R, V e m u ri R.  PAH LS:  tow a rds run-ti me sy nthes is f o r F P GAs . 200 5 Intern ation a Confer ence   on F i el d Progr ammabl e Lo gic  and App lic atio ns. 2005: 7 39- 740.   [33]    Ra w ski M, Se lvaraj  H, Lu ba  T ,  Szotko w s k i  P.  Applic atio n of symbol ic   function al d e c ompos itio n   conce p t in F S M impl ementat ion tar geti ng F P GA devices 200 5 Si xth Int e rnati ona l C o n f erence  o n   Comp utation a Intelli genc e an d Multim e d ia A pplic atio ns. 20 05: 153- 15 8.  [34]    Szotko w ski P,  Ra w ski M.  S y mb olic F u ncti ona l Dec o mpo s ition Al gor ith m  for F S M Imple m entatio n .   T he Internation a l Co nferenc on Com puter  a s  a  T ool (EUR OCON 2007).  200 7: 484- 488.   [35]   Giomi  JC.  F i nite state mac h in e extraction fro m  har dw are de scriptio n  lan g u ages .  Procee din g s of th e   Eighth Annual IEEE Internat ional ASIC Confer enc e and Exhibit.  1995: 353-357.  [36]    IEEE Standar d VHD L  L a n g uag e R e fere nc e Ma n u a l . IEEE Std 10 76- 2 008 ( R evis io n  of IEEE Std  107 6-20 02). 20 09:c1-6 26.   [37]   Using Arit hmeti c  Operat ions a nd T y pes (VH D L). ALT E RA.  [38]    IEEE Stand ard  Multiva l u e  L o g ic S y stem  for   VHDL  Mo del   Interoper ab ilit y (Stdlo gic1 16 4 ) . IEEE Std   116 4-19 93. 19 93:0_ 1.  [39]    Koster M, T e ich J.  (Self-)r econfi gura b l e  finite state  mac h i nes: the o ry an d i m pl ementati o n Procee din g s o n  Desi gn, Auto mation a nd T e st in Europe C onfere n ce a nd  Exh i b i tion. 2 0 0 2 : 559-5 66.   [40]    T i w a ri A, T o mko KA.  Sav i ng   p o w e by mapp i ng  fi nite-state mac h i nes into embe dde d me mory   bl ock s   in FPGAs .  Design, Automati on an d T e st in  Europ e  Co nfer ence a nd E x h i bitio n . 200 4; 2: 916-9 21.         Evaluation Warning : The document was created with Spire.PDF for Python.