Changes between Version 1 and Version 2 of ToolsCourseTp4


Ignore:
Timestamp:
May 4, 2007, 12:13:18 PM (17 years ago)
Author:
anne
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsCourseTp4

    v1 v2  
    11{{{
    22#!html
    3 <h1> TP1 : Modélisation Comportementale VHDL Data-Flow </h1>
     3<h1> TP4 : Le chemin de données de l'AMD2901 </h1>
    44}}}
    55[[PageOutline]]
    66
    77
    8 
    9 
    10  = Réalisation du chemin de données =
    118
    129
     
    1815place en utilisant plusieurs fois le même matériel. Par exemple, le NOT d'un mux de n
    1916bits est instancié une seule fois pour ces n bits...
     17
     18
    2019
    2120= 1 Exemple de description avec Stratus =
     
    3938# definition de la cellule
    4039class circuit ( Model ):
    41 # declaration des connecteurs
    42 def Interface ( self ):
    43 self.a = SignalIn ( "a" , 4 )
    44 self.b = SignalIn ( "b" , 4 )
    45 self.c = SignalIn ( "c" , 4 )
    46 self.v = SignalIn ( "v" , 1 )
    47 self.cout = SignalOut ( "cout", 1 )
    48 self.s = SignalOut ( "s" , 4 )
    49 self.cmd = SignalIn ( "cmd" , 1 )
    50 self.vdd = VddIn ( "vdd" )
    51 self.vss = VssIn ( "vss" )
    52 # instanciation des operateurs
    53 def Netlist ( self ):
    54 # declaration des signaux internes
    55 d_aux = Signal ( "d_aux", 4 )
    56 e_aux = Signal ( "e_aux", 4 )
    57 ovr = Signal ( "ovr" , 1 )
    58 # generation
    59 Generate ( "DpgenNand2", "instance_nand2_4bits"
    60 , param = { ’nbit’ : 4 }
    61 )
    62 # instanciation
    63 self.instance_nand2_4bits = Inst ( "instance_nand2_4bits"
    64 , map = { ’i0’ : Cat ( self.v
    65 , self.v
    66 , self.v
    67 , self.v )
    68 , ’i1’ : self.a
    69 , ’nq’ : d_aux
    70 , ’vdd’ : self.vdd
    71 , ’vss’ : self.vss
    72 }
    73 )
    74 Generate ( "DpgenOr2", "instance_or2_4bits"
    75 , param = { ’nbit’ : 4 }
    76 )
    77 self.instance_or2_4bits = Inst ( "instance_or2_4bits"
    78 , map = { ’i0’ : d_aux
    79 , ’i1’ : self.b
    80 , ’q’ : e_aux
    81 , ’vdd’ : self.vdd
    82 , ’vss’ : self.vss
    83 }
    84 )
    85 Generate ( "DpgenAdsb2f", "instance_add2_4bits"
    86 , param = { ’nbit’ : 4 }
    87 )
    88 self.instance_add2_4bits = Inst ( "instance_add2_4bits"
    89 , map = { ’i0’ : e_aux
    90 , ’i1’ : self.c
    91 , ’q’ : self.s
    92 , ’add_sub’ : self.cmd
    93 , ’c31’ : self.cout
    94 , ’c30’ : ovr
    95 , ’vdd’ : self.vdd
    96 , ’vss’ : self.vss
    97 }
    98 )
     40 # declaration des connecteurs
     41 def Interface ( self ):
     42  self.a = SignalIn ( "a" , 4 )
     43  self.b = SignalIn ( "b" , 4 )
     44  self.c = SignalIn ( "c" , 4 )
     45  self.v = SignalIn ( "v" , 1 )
     46  self.cout = SignalOut ( "cout", 1 )
     47  self.s = SignalOut ( "s" , 4 )
     48  self.cmd = SignalIn ( "cmd" , 1 )
     49  self.vdd = VddIn ( "vdd" )
     50  self.vss = VssIn ( "vss" )
     51 # instanciation des operateurs
     52 def Netlist ( self ):
     53  # declaration des signaux internes
     54  d_aux = Signal ( "d_aux", 4 )
     55  e_aux = Signal ( "e_aux", 4 )
     56  ovr = Signal ( "ovr" , 1 )
     57  # generation
     58  Generate ( "DpgenNand2", "instance_nand2_4bits"
     59            , param = { ’nbit’ : 4 }
     60            )
     61  # instanciation
     62  self.instance_nand2_4bits = Inst ( "instance_nand2_4bits"
     63                                    , map = { ’i0’ : Cat ( self.v
     64                                                          , self.v
     65                                                          , self.v
     66                                                          , self.v )
     67                                              , ’i1’ : self.a
     68                                              , ’nq’ : d_aux
     69                                              , ’vdd’ : self.vdd
     70                                              , ’vss’ : self.vss
     71                                              }
     72                                     )
     73  Generate ( "DpgenOr2", "instance_or2_4bits"
     74           , param = { ’nbit’ : 4 }
     75            )
     76  self.instance_or2_4bits = Inst ( "instance_or2_4bits"
     77                                 , map = { ’i0’ : d_aux
     78                                         , ’i1’ : self.b
     79                                         , ’q’ : e_aux
     80                                         , ’vdd’ : self.vdd
     81                                         , ’vss’ : self.vss
     82                                         }
     83                                  )
     84  Generate ( "DpgenAdsb2f", "instance_add2_4bits"
     85           , param = { ’nbit’ : 4 }
     86           )
     87  self.instance_add2_4bits = Inst ( "instance_add2_4bits"
     88                                  , map = { ’i0’ : e_aux
     89                                          , ’i1’ : self.c
     90                                          , ’q’ : self.s
     91                                          , ’add_sub’ : self.cmd
     92                                          , ’c31’ : self.cout
     93                                          , ’c30’ : ovr
     94                                          , ’vdd’ : self.vdd
     95                                          , ’vss’ : self.vss
     96                                          }
     97                                   )
    9998
    10099}}}
     100
    101101
    102102