Vicky M. schrieb:
> Zweite Frage ist dazu noch, warum geht der Lösungsansatz vom bit_vector
> ST nicht?
... und was ist die erste Frage? Du solltest dir angewöhnen, Fragen so
zu stellen, dass die Frage klar erkennbar ist.
Vicky M. schrieb:
> signal Takt_2MHz_zaehler: std_logic_vector(Counter_size-1 downto
> 0):=conv_std_logic_vector(Teiler,Counter_size);
So wie ich es verstanden habe, möchtest Du wissen, ob "man" das mit
generics so macht, wie Du es beschrieben hast.
Ja, macht man.
Allerdings deutet die Verwendung von conv_std_logic_vector darauf hin,
dass Du die veralteten Synopsys-Libraries std_logic_unsigned und
std_logic_arith verwendest. Das solltest Du dir abgewöhnen und
stattdessen die "offizielle" numeric_std verwenden. Da sähe das dann so
aus:
1 | signal Takt_2MHz_zaehler : std_logic_vector(Counter_size - 1 downto 0) := std_logic_vector(to_unsigned(Teiler, Counter_size));
|
Das hier:
Vicky M. schrieb:
> signal BiT_ST: std_logic_vector(15 downto 0):= "ST";
geht nicht. Und das ist gut so. Du versuchst hier, einem
std_logic_vector einen String zuzuweisen. VHDL ist eine streng
typisierte Sprache und das funktioniert nur, wenn der String
ausschliesslich die erlaubten Zeichen aus std_ulogic enthält (und das
tut er bei dir nicht).
Du wolltest wahrscheinlich dem std_logic_vector das Bitmuster des
bit_vector generics ST zuweisen. Das geht, aber erst nach einer
Typumwandlung:
1 | signal BiT_ST: std_logic_vector(15 downto 0):= to_stdlogicvector(ST);
|
Allerdings stellt sich dann die berechtigte Frage, warum Du ST nicht
gleich als std_logic_vector generic definiert hast?
Vicky M. schrieb:
> Ich würde gerne mit 'length
> arbeiten aber irgendwie werde ich nicht darauß schlau. Muss, sollte man
> das anders lösen?
Wo?