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