FPGA, clk, bufg, ibufg osv.

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!!!
Reply to
64bit[at]mailme[dot]dk
Loading thread data ...

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.

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.

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.

snip

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

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

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

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

-Lasse

Reply to
Lasse Langwadt Christensen

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 //

Reply to
Bo Bjerre

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!!!
Reply to
64bit[at]mailme[dot]dk

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.