Spartan 6, Synthese optimiert Signal weg

#2132693
Lesenswert?

Moin,

da möchte man es richtig machen... und die Synthese (Spartan-6, ISE 
12.3) haut mir die doppelten FF wech. :-(

Fall 1: So wird "q_LC_sync0" von der Synthese eliminiert:
1
  process(FC_Clk0_in)
2
  begin
3
    if( FC_Clk0_in'event and FC_Clk0_in = '1' ) then
4
      q_LC_sync0     <= LC_in_i;
5
      LC_sync0     <= q_LC_sync0;
6
    end if;
7
  end process;

Fall 2: So nicht:
1
  process(FC_Clk0_in)
2
  begin
3
    if( FC_Clk0_in'event and FC_Clk0_in = '1' ) then
4
      if( FC_Reset_in = '1' ) then
5
        q_LC_sync0   <= '1';
6
        LC_sync0   <= '1';
7
      else
8
        q_LC_sync0   <= LC_in_i;
9
        LC_sync0   <= q_LC_sync90;
10
      end if;
11
    end if;
12
  end process;

Warum das denn bitte?
Fall 2 geht aus anderen Design-Gründen nicht, ich will auf diesen 
Signalen keinerlei Reset, aber unbedingt das doppelte syncen.

Das RTL-Synthese Schematic zeigt in Fall 1 noch q_LC_sync, das 
"Technology-Schematic" nicht mehr.

Wie bekomme ich Fall 1 (also ohne Reset) synthetisiert, ohne dass er mir 
q_LC_sync wegoptimiert?

Danke,
X
#2132770
Lesenswert?

Lothar Miller schrieb:
> X- Rocka schrieb:
>> Das RTL-Synthese Schematic zeigt in Fall 1 noch q_LC_sync, das
>> "Technology-Schematic" nicht mehr.
> Und wieviele FFs sind dann dort zwischen LC_in_i und LC_sync0?

Ah, jetzt ich verstehe!

Im "Technology-Schematic" zeigt er ein SRLC16.
Das hat zur Folge, dass das Signal nach der Synthese nicht mehr als 
q_LC_sync existiert, weil es im SRLC16 nur noch intern vorhanden ist.
Er macht also schon was er soll... hat mich auch gewundert.

Warum ich dachte, q_LC_sync wäre weg: LOC Constraint.
Diese Signale müssen in bestimmte Slices gepackt werden, die nicht alle 
CARRY4 haben (ich nehme an, dass SRLC16 dann mit CARRY4 realisiert wird, 
das im S6 "nur" in der Hälfte der Slices vorhanden ist).

Hmmm, wie sage ich der Synthese, dass sie das bitte nicht mit nem SRLC16 
realisiert? Ich möchte lieber beide FFs in ein Slice packen und den 
"schnellen" Rückweg von Slice In zu Out nehmen.
Moderator (Firma: Titel) Persönliche Seite #2132797
Lesenswert?

X- Rocka schrieb:
> wie sage ich der Synthese, dass sie das bitte nicht mit nem SRLC16
> realisiert?
Indem du einen Reset dranbastelst. Denn ein LUT-SR hat keinen Reset...

> Ich möchte lieber beide FFs in ein Slice packen
Das Schieberegister in der LUT ist auch in 1 Slice...

> und den "schnellen" Rückweg von Slice In zu Out nehmen.
Wozu die Hektik?
#2132814
Lesenswert?

Lothar Miller schrieb:

>> Ich möchte lieber beide FFs in ein Slice packen
> Das Schieberegister in der LUT ist auch in 1 Slice...
Ich werde das mal versuchen, und kucken, ob er das auch in ein SliceX 
(ohne CARRY4) packt.

>> und den "schnellen" Rückweg von Slice In zu Out nehmen.
> Wozu die Hektik?
Äußerst grenzwertiges Design, was Timing angeht. Da ist jeder Signal und 
Clockpfad entscheidend, und wird deswegen mit LOCs vorgegeben. Timing 
Constraints haben leider nicht gereicht, deswegen Platzierung von Hand.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren