mbschenkel
mbschenkel

Reputation: 1905

Canonical term for "simultaneous data-latching"

I have a module (in my case on an FPGA) where several input values (registers) are updated sequentially (if at all), but are all copied in parallel in a single, atomic step to guarantee coherency during the following data processing steps. Is there a common term for this?

Illustration

               store_1             store_all             do_stuff
                  |                    |                     |                               
                +-+-+                +-+-+                 +-+-+                                       
   value_1 -->  |Reg| --- int_1 -->  |Reg| --> input_1 --> | M |                                                          
                +---+                +---+                 | o |                                    
                                       |                   | d |
               store_2                 |                   | u | --> outputs                             
                  |                    |                   | l |                                
                +-+-+                +-+-+                 | e |                                    
   value_2 -->  |Reg| --- int_2 -->  |Reg| --> input_2 --> |   |                                                           
                +---+                +---+                 +---+                                   

                 __  ____________________
    value_1      __><____________________       


    store_1      ______|_________________                                                                                       

                 _______  _______________
    input_1      _______><_______________


                 __________  ____________
    value_2      __________><____________                                                                                     


    store_2      ______________|_________                                               

                 _______________  _______
    input_2      _______________><_______



    store_all    ____________________|___

                 _____________________  _
    out_1        _____________________><_

                 _____________________  _
    out_2        _____________________><_


    do_stuff     _______________________|

Here store_1, store_2 and store_all are write-enable signals for their registers, are synchronously clocked with the same clock.

Upvotes: 0

Views: 38

Answers (1)

shuckc
shuckc

Reputation: 2994

Looks like basic shift-registers to me.

This type of arrangement might be called retiming registers if there presence is purely to help ease the routing pressure to 'Module'. Or perhaps pipelining registers if they are inserted to maintain some specific alignment between 'value_1/value_2' and 'outputs', say if the latency through Module changed at some point.

If control signals store_1 / store_2 /store_all are infact clocks, they may be called synchronisation stages, although the design has problems in this case.

Your question mixes words that are tangentially related to digital logic timing, without being specific.

Upvotes: 1

Related Questions