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