Forum: FPGA, VHDL & Co. multi-cycle path


von Martin O. (ossi-2)


Lesenswert?

1
module SecondOrderSigmaDeltaDac1v01
2
 (input            clk ,
3
  input            clkEna ,
4
  input  [MSBI:0]  DACin ,  
5
  output reg       DACout
6
  );
7
8
parameter MSBI=7 ;
9
10
reg signed [MSBI:0] din ;
11
reg signed [MSBI+3:0] del1 ;
12
reg signed [MSBI+3:0] del2 ;
13
reg signed [MSBI+3:0] d_q ;
14
15
always @(posedge clk) begin
16
  if ( clkEna ) begin
17
    din <= DACin ;
18
    del1 <= din - d_q + del1 ;
19
    del2 <= din - d_q + del1 - d_q + del2 ;
20
    if ( din - d_q + del1 - d_q + del2 > 0 )
21
      begin
22
      d_q  <= 11'h 100 ;
23
      DACout <= 1;
24
      end
25
     else
26
      begin
27
      d_q  <=  11'h 700 ;
28
      DACout <= 0;
29
      end
30
    end
31
  end   
32
33
endmodule
Ich benutze den obigen Code wobei clkEna nach jeweils 16 Takten von clk 
für einen Takt auf 1 geht. Der Code ergibt timing-violations. Durch ein 
multi-cycle path constraint möchte ich dem timing-analyser mitteilen, 
dass alle Pfade in diesem Modul multicycle Pfade sind. Wie mache ich das 
?
Wie spezifiziere ich insbesondere diese Pfade im SDC File? Wo gibt es 
gute Beispiele?

von Fpgakuechle K. (Gast)


Lesenswert?

In diesem thread findet sich etwas: 
Beitrag "Implementierungsfrage VHDL"

von Martin O. (ossi-2)


Lesenswert?

Inzwischen benutze ich die SDC Zeilen:
1
# set_multicycle_path -hold -to [get_pins -compatibility_mode DACb|*] 1
2
# set_multicycle_path -setup -to [get_pins -compatibility_mode DACb|*] 2

um in dem Modul DACb (Instanz von SecondOrderSigmaDeltaDac1v01 vom 
topLevel) alle Pins mit nem multicycle_path Constraint zu versehen. Das 
scheint zu klappen. Weiss jemand, wie ich die Formulierung ohne 
"-compatibility_mode" hinbekomme ?

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.