FPGA, clk, bufg, ibufg osv.

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
Hej alle

Device: XiLinx Spartan II xc2s100pq208
Software: XiLinx WebPack 5.1i

Jeg har trods min ekstremt lille kunnen indenfor verden af elektronik
fået bygget noget op i VHDL, som faktisk kan syntetiseres og som optager
pænt meget logic i kredsen.

Som jeg jo selv skriver er min kunnen jo ikke den fineste i verden, så
derfor flg. spørgsmål:

Ved implementering opstår flg.:

+--------------------+----------+--------+------------+-------------+
|     Clock Net      | Resource | Fanout |Max Skew(ns)|Max Delay(ns)|
+--------------------+----------+--------+------------+-------------+
|     clk_int01      |  Global  |  143   |  0.477     |  0.702      |
+----------- --------+----------+--------+------------+-------------+
|     clk_bufgp      |  Global  |    4   |  0.477     |  0.673      |
+--------------------+----------+--------+------------+-------------+
|     clk_int02      |  Global  |  143   |  0.486     |  0.681      |
+--------------------+----------+--------+------------+-------------+
|     clk_int03      |  Global  |  145   |  0.480     |  0.704      |
+--------------------+----------+--------+------------+-------------+

Hvad vil Skew sige? og hvad mener de med Delay? (i ovenstående
situationer, men også generelt)



Hvorfor kan man ikke lave et kombinatorisk clock-signal internt i
fpga'en (altså hvis man ikke vil have WARNINGS som f.eks. gated clock)?
Hvad menes der med at clock'en er "gated"?

For at undgå ovenstående problem har jeg anvendt en BUFG-fætter i
kredsen. Hvad gør en BUFG og hvorfor er den nødvendig?



Ved syntetisering opstår flg. (del af report):
Cell Usage :
# BELS                             : 1105
#      GND                         : 1
#      LUT1                        : 12
#      LUT2                        : 37
#      LUT2_D                      : 4
#      LUT2_L                      : 11
#      LUT3                        : 207
#      LUT3_D                      : 6
#      LUT3_L                      : 171
#      LUT4                        : 351
#      LUT4_D                      : 41
#      LUT4_L                      : 41
#      MUXCY                       : 21
#      MUXF5                       : 132
#      MUXF6                       : 48
#      VCC                         : 1
#      XORCY                       : 21
# FlipFlops/Latches                : 456
#      FD                          : 117
#      FDCE                        : 6
#      FDE                         : 294
#      FDR                         : 6
#      FDRE                        : 9
#      FDSE                        : 24
# RAMS                             : 4
#      RAMB4_S16                   : 3
#      ramb4_s8                    : 1
# Tri-States                       : 51
#      BUFT                        : 51
# Clock Buffers                    : 4
#      bufg                        : 3
#      BUFGP                       : 1
# IO Buffers                       : 10
#      IBUF                        : 1
#      OBUF                        : 9
=========================================================================

Device utilization summary:
---------------------------

Selected Device : 2s100pq208-5

  Number of Slices:                     495  out of   1200    41%
  Number of Slice Flip Flops:           456  out of   2400    19%
  Number of 4 input LUTs:               881  out of   2400    36%
  Number of bonded IOBs:                 10  out of    144     6%
  Number of TBUFs:                       51  out of   1200     4%
  Number of BRAMs:                        4  out of     10    40%
  Number of GCLKs:                        4  out of      4   100%


=========================================================================
TIMING REPORT

NOTE: THESE TIMING NUMBERS ARE ONLY A SYNTHESIS ESTIMATE.
       FOR ACCURATE TIMING INFORMATION PLEASE REFER TO THE TRACE REPORT
       GENERATED AFTER PLACE-and-ROUTE.

Clock Information:
------------------
-----------------------------------+------------------------+-------+
Clock Signal                       | Clock buffer(FF name)  | Load  |
-----------------------------------+------------------------+-------+
processor03_arb_clkt:q             | bufg                   | 152   |
clk                                | BUFGP                  | 4     |
processor02_arb_clkt:q             | bufg                   | 152   |
processor01_arb_clkt:q             | bufg                   | 152   |
-----------------------------------+------------------------+-------+



Som det kan ses benyttes der fire "GCLK"s ud af de fire som befinder sig
i kredsen, men hvad bruges disse GCLKs til? (Jeg går ud fra det har
noget med BUFG'erne at gøre).

Jeg har kigget lidt i databladet for kredsen, og alle clock-komponenter
(det være dividers, multipliers) så fremgår der en BUFG i dem alle?
Hvorfor? Hvad gør den godt for?




Logiske enheder?

Hvad er en LUT?
De forskellige flipflops/latches - hvad er forskellen?
FD, FDCE, FDE, FDR, FDRE, FDSE




Takker på forhånd!


Mvh / Preben


--
If your Dell laptop is unstable, try change the power supply - it works!
But the Dell will still stink! Nothing can change that!!!


Re: FPGA, clk, bufg, ibufg osv.
Quoted text here. Click to load it

jeg vil tro at Max Delay er hvor meget delay der alt i alt er på hver
enkelt clk-net,

Skew er forskellen mellem hvor når de enkelt flipflops ser clk
flankerne, det er vigtigt, ta' for eksempel et skifte register lavet af
en række flipflops i serie, hvis ikke de alle sammen ser klokken
samtidigt vil du ikke få et skifteregister.

Quoted text here. Click to load it

det ku' f.eks betyde at man laver en clk man kan "tænde" og "slukke"
for, det er en meget dårlig ide i en fpga, i en asic kan det gi' mening
hvis man vil spare strøm

For det første skal man være sikker på at man laver gating på den
rigtige måde, ellers kan man få glitches på den resulterende clk.

for det andet betyder det at man har blandet logic til gating ind i
ens clk træ at man indfører en ukendt delay, dvs. man har ingen anelse
om hvad skew der er mellem gatede og ikke gatede clks.

Quoted text here. Click to load it

det at du indsætter en bufg betyder at du får routed din clk på et af
dedikerede clk-net, dvs. Xilinx nu garanterer et skew der er så lavt at
du ikke skal bekymre dig om det, du kan koncentrere om et simpelt
synkront design hvor det eneste timing du behøver at bekymrer dig om er
om er om din logik  er hurtig nok i forhold til clk perioden.

Quoted text here. Click to load it
snip

GCLKS er global low-skew nets dedikeret til clks, der er fire bufg's der
hver driver et GCLK net

Quoted text here. Click to load it

Hele forudsætningen for synkront design er at clk'en i alle praktiske
henseender har et skew på nul, det kan kun lade sig gøre hvis du har et
dediceret net der er designet til det.

hvis man vil gøre livet let for sig selv holder man sig til een global
clk og bruger clk-enables  i en fpga

Quoted text here. Click to load it

Look Up Table, istedet for en masse and-gates osv. har man en masse
LUT'er logikken er så implementeret i tabellen.

Quoted text here. Click to load it

med og uden set,reset,clk-enable osv.

-Lasse


Re: FPGA, clk, bufg, ibufg osv.

"64bit[at]mailme[dot]dk" <"64bit[at]mailme[dot]dk"> wrote in message
Quoted text here. Click to load it

Et stort problem er, at vi ofte bruger forkortelser, uden at vide hvad de
betyder:

ASIC: Application Specific Integrated Circuit, en IC, der er designet til at
specielt formål, og derfor KUN kan det, den er designet til. f.x  at være en
grafikchip, en netchip eller lignende.

FPGA: Field Programmable Gate Array, en samling gates og flip-flops, hvis
sammenhobling kan programmeres, og ofte omprogrammeres, til den funktion man
ønsker.

Bo //



Re: FPGA, clk, bufg, ibufg osv.
Quoted text here. Click to load it

Jo tak, jeg kendte ikke lige ASIC-forkortelsen (af en god grund), men
FPGA og VHDL er jo to dejlige forkortelse (det første jeg lærte i kurset
om VHDL).


Mvh
Preben Holm

--
If your Dell laptop is unstable, try change the power supply - it works!
But the Dell will still stink! Nothing can change that!!!


Site Timeline