Spartan 6, Synthese optimiert Signal weg

OP #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
OP #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?
OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.