Forum: FPGA, VHDL & Co. dcm bei xilinx. locked


von neuer Gast (Gast)


Lesenswert?

Hallo!

Ich habe bei einem cyclon2 einmal gezeigt bekommen wie die pll 
funktioniert. Dabei wurde geraten, das locked signal sozusagen als 
asynchronen reset für das Ganze design zu benutzen.
Da ich als passiver Leser hier mitbekommen habe, dass i.d.R von einem 
asynchronen reset design abgeraten wird (nicht zuletzt aus Gründen des 
höheren Logik Bedarfes und damit der Geschwindigkeit), war ich 
überrascht. Mein Kumpel hat aber vehement vertreten, dass die asynchrone 
Schreibweise das Mittel der Wahl ist. Jedenfalls bei Altera.
Das habe ich heute nach etwas googeln auch so gelesen, aber da ich 
selber nicht viel mehr als Anfängerstatus auf der Fahne habe, kann ich 
mir gut denken, dass ich etwas einfach nicht begriffen habe.... Ich 
frage euch also deswegen.

Mit ise habe ich ein dcm Projekt zum rumprobieren erstellt.
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
4
-- Uncomment the following library declaration if using
5
-- arithmetic functions with Signed or Unsigned values
6
--use IEEE.NUMERIC_STD.ALL;
7
8
-- Uncomment the following library declaration if instantiating
9
-- any Xilinx primitives in this code.
10
--library UNISIM;
11
--use UNISIM.VComponents.all;
12
13
entity dcmtst is
14
    Port ( isl_clk50 : in  STD_LOGIC;
15
           osl_led : out  STD_LOGIC);
16
end dcmtst;
17
18
architecture Behavioral of dcmtst is
19
  COMPONENT dcm90 IS
20
   port ( CLKIN_IN        : in    std_logic; 
21
          CLKFX_OUT       : out   std_logic; 
22
          CLKIN_IBUFG_OUT : out   std_logic; 
23
          LOCKED_OUT      : out   std_logic);
24
  END COMPONENT;
25
  
26
  signal sl_clk : STD_LOGIC;
27
  signal sl_locked : STD_LOGIC;
28
  signal sl_led : STD_LOGIC := '0';
29
begin
30
31
MAP_DCM : dcm90 PORT MAP( CLKIN_IN=>isl_clk50 , CLKFX_OUT=>sl_clk , CLKIN_IBUFG_OUT=>OPEN, LOCKED_OUT=>sl_locked );
32
33
osl_led <= sl_led;
34
process (sl_clk, sl_locked) begin
35
  
36
  --mit locked-Abfrage ist max Frequency 260 MHz,
37
  --ohne locked -Abfrage ist max Frequency 328 MHz
38
  --da frage ich mich, ob und wie ich locked bei xilinx benutze
39
  
40
  --if( sl_locked /= '1' ) then
41
  --reset halten o.ä
42
  --else
43
    if( rising_edge(sl_clk) ) then
44
      sl_led <= not sl_led;
45
    end if;
46
  --end if;
47
end process;
48
49
end Behavioral;


3 Fragen:
1) Verstehe ich es richtig, dass der asynchrone reset mit reset fast 70 
MHz kostet bei diesen zugegeben praxisfernen Beispiel? Im RTL wird auch 
ein anderes FF benutzt. Nämlich ohne locked ein fdr FF und mit ein fde 
FF.

2) Wie gehe ich denn nun real mit einer dcm um...loocked abfragen? Oder 
nicht? Wenn abfragen wie und wo?

3) Wenn es wirklich so ist, dass bei Altera eine Schreibweise wie im 
Reichert also asynchrone Reset Signale BESSER ist und bei Xilinx 
SCHLECHTER ist... ist es dann überhaupt einigermaßen sinnvoll möglich 
die Familien zu wechseln. Code transferieren ist ja schon mal schlecht 
und Gewohnheiten (beinahe) noch schlechter

von J. S. (engineer) Benutzerseite


Lesenswert?

Das ist schon möglich, zumal die beiden Werte oberhalb der real sinnvoll 
nutzbaren FPGA-System-Taktfrequenzen liegen. Allerdings sollte man den 
Schätzungen der XST-SYnthese generell nicht zuviel Vertrauen schenken. 
Das design wird ja auch beim Mappen optimiert und da können wieder 
andere Ergebnisse rauskommen.

Zudem ist es so, dass Du das locked Signal eintakten kannst und solltest 
und von daher ist das wieder was anderes.

Was asynchrone Resets angeht, sind die bei machen Altera FPGAs 
resourcenschonender einzubauen, das stimmt, aber Du musst das davon 
abhängig machen, ob Du den wirklich brauchst.

Wie Du sicher schon überall gelesen hast, kann man gut ohne asynchronen 
reset auskommen, teilweise sollte / muss der auch noch synchron gemacht 
werden und als ein solcher genutzt werden.

einen asynchronen Reset bei Xilinx benutze ich in aller Regel nur für 
die startup reset machine und dort auch nur für die master pll.

Deren locked-Signal ist dann wiederum ein Signal aus dem Resets für 
andere DCMs/PLLS abgeleitet werden.

Normalwerweise wirst Du das locked-Signal einmal mit dem Takt der 
erzeugenden PLL "puffern" und es in invertierter Form als Design Reset 
benutzen.

von Neuer Gast (Gast)


Lesenswert?

Wenn du davon sprichst das locked Signal einzutakten, dann mit dem dcm 
Takt?
Und ich bin eben verunsichert, weil angeblich altera besser mit 
asynchronem reset klarkommt. Ich meine die Notation, das asynchrone 
Signal mag eingetaktet sein.

Alles nicht so leicht, vielleicht sollte man einfach machen solange es 
klappt.....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.