Forum: FPGA, VHDL & Co. Problem mit assert


von BorisM (Gast)


Lesenswert?

Hallo zusammen,
ich beschäftige mich gerade mit ASSERT Statements. Ich habe einen pCore 
geschrieben, welcher sich anhand der Busfrequenz ein enable Signal 
generiert. Das klappt auch so weit ganz gut. Jetzt will ich aber dem 
user während der Synthese eine Info ausgeben welcher Takt für den Bus 
gewählt wurde. Dafür habe ich mich dem assert bedient. Das klappt auch, 
aber nur wenn ich einen Text schreibe. Ich will aber auch die 
Busfrequenz mit ausgeben mache ich etwas falsch. Hier mal ein kleiner 
Codeschnippsel mit allem was wichtig ist:
1
use std.textio.all;
2
3
entity core_logic is
4
    generic(
5
      C_S_AXI_ACLK_FREQ_HZ : integer := 100_000_000
6
      );
7
    port(
8
      ...
9
      );
10
end core_logic;
11
12
architecture Behavioral of core_logic is
13
begin
14
process
15
   variable i           : integer := 32;
16
   variable pcore_takt  : LINE;
17
begin
18
   assert C_S_AXI_ACLK_FREQ_HZ = 0
19
   report "PCORE CLK is " & pcore_takt(C_S_AXI_ACLK_FREQ_HZ, i) & " Hz"
20
   severity note;
21
end process;
22
end Behavioral;

Das generic wird übergeben, die 100MHz habe ich nur als default gewählt. 
Orientiert habe ich mich am axi uart_lite.

Jetz bekomme ich aber folgenden Fehler:
1
ERROR:HDLCompiler:540 - "/home/CORRAIL/metka/projects/orion/xps/pcores/sensor_head_v1_01_a/hdl/vhdl/core_logic.vhd" Line 72: Indexed name prefix type string expects 1 dimensions

Aber was mache ich an der konvertierung von integer zu line falsch? Ich 
sehe es gerade nicht.

Gruß Boris

von Duke Scarring (Gast)


Lesenswert?

Probier mal:
1
  report "PCORE CLK is " & integer'image(C_S_AXI_ACLK_FREQ_HZ) & " Hz"

Duke

von BorisM (Gast)


Lesenswert?

Hallo Duke,
danke das geht. >>Da hätte ich ja auch selber drauf kommen können.<<
Aber war mein Weg über LINE jetzt komplett falsch?
Gruß Boris

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Wie bekomme ich einen Zeilenumbruch in einer Assertmeldung hin?

die typische printf Variante "\n" geht nicht.

von Duke Scarring (Gast)


Lesenswert?

René D. schrieb:
> Wie bekomme ich einen Zeilenumbruch in einer Assertmeldung hin?
Das wüßte ich auch gern. Ich würde einfach ein zweites report 
verwenden.

Duke

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.