Concatenate in Instanziierung

(Firma: Ich.AG) #2405280
Lesenswert?

Hallo!

Ich versuche folgendes:
1
  fifo_inst: entity work.FIFO
2
    generic map (
3
      FIFO_ADDRWIDTH => FIFO_ADDRWIDTH_C,
4
      FIFO_WORDWIDTH => FIFO_WORDWIDTH_C)
5
    port map (
6
      data_in  => data_received_s & reg_addr, -- data_in: std_logic_vector(15 downto 0)
7
      data_out => data_out,
8
      wr_i     => reg_wea,
9
      rd_i     => rd_i,
10
      empty_o  => empty_o,
11
      full_o   => full_o,
12
      clk_i    => clk_i);

Die Stelle die Probleme bereitet ist der '&' Operator bei der Zuweisung 
an data_in.
Die Synthese läuft ohne Probleme durch, aber die Simulation schmeisst 
den folgenden Fehler und bricht ab:
../rtl/camera_control_top.vhd:264:36: actual expression must be globally 
static

Ich werde mir jetzt erstmal mit einem Signal helfen, dass die beiden 
Signale vom Typ std_logic_verctor(7 downto 0) data_received_s und 
reg_addr zu einem 16 bit std_logic_vector vereint und diesen dann an 
data_in übergeben.

Aber gibt es eine Möglichkeit das in der Instantiierung zu machen?

Gruß,

     hhanff
Gast #2405310
Lesenswert?

Ich habe das so gemacht, und es funktionierte bei mir prima.
Also kein Concenate, sondern die Bits explizit zugewiesen.

 DDROutport : DDR_OUT
 port map
 (
   datain_h(3 downto 0) => OutByte(3 downto 0),
   datain_h(4)          => TXOut,
   datain_l(3 downto 0) => OutByte(7 downto 4),
   datain_l(4)          => TXOut,
   ...


müßte bei dir in etwa sein
 data_in(15 downto 8  => data_received_s,
 data_in( 7 downto 0) => reg_addr,
(Firma: Ich.AG) #2405319
Lesenswert?

PittyJ schrieb:
> Ich habe das so gemacht, und es funktionierte bei mir prima.
> Also kein Concenate, sondern die Bits explizit zugewiesen.
>
>  DDROutport : DDR_OUT
>  port map
>  (
>    datain_h(3 downto 0) => OutByte(3 downto 0),
>    datain_h(4)          => TXOut,
>    datain_l(3 downto 0) => OutByte(7 downto 4),
>    datain_l(4)          => TXOut,
>    ...
>
>
> müßte bei dir in etwa sein
>  data_in(15 downto 8  => data_received_s,
>  data_in( 7 downto 0) => reg_addr,

Das isses... daran hab' ich nicht gedacht. Vielen Dank aus Bremen,

     hhanff

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