Angabe von Instanzen im ucf

Gast #671654
Lesenswert?

Hi,

ich will die BRAMS fest im FPGA platzieren, nur leider kommt folgende 
Fehlermeldung:

Could not find instance(s) 'BER_MEAS/USER/TOP_REF/D_BLOCK_0' in the 
design.  To suppress this error, specify the correct instance name or 
remove the constraint.


Im ucf-File habe ich folgende Zeile angegeben:
INST "BER_MEAS/USER/TOP_REF/D_BLOCK_0" LOC = "RAMB16_X2Y6";

Ich habe keinen Instanznamen ausgelassen. Gibt es irgendwelche Tricks?
Gast #671708
Lesenswert?

Hallo Rick,

im RTL-Viewer heisst die Instanz genauso. Woran könnte es noch liegen?

Ich habe meine BRAMs nicht als ramb16_s36_s36 implementiert sondern ein 
Synthese Construct von Xilinx verwendet und als Komponente abgelegt.


type ram_type is array (511 downto 0) of std_logic_vector (8 downto 0);
signal   Sig_RAM : ram_type;
begin


process (<clockA>)
begin
   if (<clockA>'event and <clockA> = '1') then
      if (<enableA> = '1') then
         if (<write_enableA> = '1') then
            Sig_RAM(conv_integer(<addressA>)) <= <input_dataA>;
         end if;
      end if;
   end if;
end process;

process (<clockB>)
begin
   if (<clockB>'event and <clockB> = '1') then
      if (<enableB> = '1') then
         <ram_outputB> <= <ram_name>(conv_integer(<addressB>));
      end if;
   end if;
end process;
Gast #671709
Lesenswert?

Egon wrote:
> Hi,
>
> ich will die BRAMS fest im FPGA platzieren, nur leider kommt folgende
> Fehlermeldung:
>
> Could not find instance(s) 'BER_MEAS/USER/TOP_REF/D_BLOCK_0' in the
> design.  To suppress this error, specify the correct instance name or
> remove the constraint.
>
>
> Im ucf-File habe ich folgende Zeile angegeben:
> INST "BER_MEAS/USER/TOP_REF/D_BLOCK_0" LOC = "RAMB16_X2Y6";
>
> Ich habe keinen Instanznamen ausgelassen. Gibt es irgendwelche Tricks?

1) Pfad (Path) bedeutet nicht Pfad der Datei auf der festplatte sondern 
innerhalb der Designhierarchie. Hast du den BRAM in deinem Top-Level 
(Name der obersten Entity als D_BLOCK_0 instanziert lautet der Pfad:
TOP_REF/D_BLOCK_0
2) Groß/Kleinschreibung kann das Problem sein, oder es werden andere 
Schrägstriche erwartet.
3)Man die Pfade mit * als Jokerzeichen abkürzen, also
 INST "*D_BLOCK_0"
Gast #671745
Lesenswert?

1) Pfad (Path) bedeutet nicht Pfad der Datei auf der festplatte sondern
innerhalb der Designhierarchie. Hast du den BRAM in deinem Top-Level
(Name der obersten Entity als D_BLOCK_0 instanziert lautet der Pfad:
TOP_REF/D_BLOCK_0

--> ???

2) Groß/Kleinschreibung kann das Problem sein, oder es werden andere
Schrägstriche erwartet.

--> ich habe alles mehrmals überprüft, ich finde keine Unterschiede


3)Man die Pfade mit * als Jokerzeichen abkürzen, also
 INST "*D_BLOCK_0"

--> das habe ich auch schon probiert, er findet die Instanz einfach 
nicht.
Gast #671761
Lesenswert?

Schreib Labels um deinen source und versuche es damit:

INST "*toller_labelname*" LOC = "RAMB16_X2Y6";



architecture .. of .. is
...
begin
toller_labelname:BLOCK is
Begin

type ram_type is array (511 downto 0) of std_logic_vector (8 downto 0);
signal   Sig_RAM : ram_type;

process (<clockA>)
begin
   if (<clockA>'event and <clockA> = '1') then
      if (<enableA> = '1') then
         if (<write_enableA> = '1') then
            Sig_RAM(conv_integer(<addressA>)) <= <input_dataA>;
         end if;
      end if;
   end if;
end process;

process (<clockB>)
begin
   if (<clockB>'event and <clockB> = '1') then
      if (<enableB> = '1') then
         <ram_outputB> <= <ram_name>(conv_integer(<addressB>));
      end if;
   end if;
end process;

end block toller_labelname;
...
end architecture;

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