|
Betreff |
Autor |
Datum |
|
Re: Was ist hier falsch?
[quote:nobbe]
während ich den post geschrieben habe ist mir ein licht aufgeangen.....
habs jetzt rausgefunden, warum das bei mir net getan hat, habe aus dem bit_vector jetzt mal ein std_logic_vector gemacht und scho tuts....
jetzt muss mir das nur noch jemand erklären.
[/quote]
Nun ja: Als ob es in VHDL nicht genug Zahlentypen gibt, hat es ZWEI Sorten von Signed/Unsigned, je nachdem welches Modul du benutzt:
use ieee.numeric_std.all;
--> type UNSIGNED is array (NATURAL range <>) of STD_LOGIC;
use ieee.numeric_bit.all;
--> type UNSIGNED is array (NATURAL range <> ) of BIT;
Bleib bei STD_LOGIC, das ist der De-Facto-Standard für alle, und die mehrwertigen Zustände haben schon ein paar Mal den Abend beim Debuggen gerettet.
|
pzwack |
01.02.06, 20:07 |
|
Re: programmablaufproblem
Ich nehme mal an, dass du bereits bei der Simulation Probleme hast.
> process(P1) is
>
> begin
>
> if rising_edge(clock) then
> ...
clock steht nicht in der Sensitivity List steht, deshalb wird rising_edge(clock) nie wahr. So wie du es schreibst muss ein Event auf P1 kommen damit was passiert. Schreib mal sowas wie process(clock,reset) da am Anfang, dann geht's weiter.
Da gibt's bestimmt noch mehr zu kritteln, aber warum dir den ganzen Spass nehmen? ;-)
Peter
|
pzwack |
17.01.06, 17:26 |
|
Re: I/O von binaries
Seit VHDL'93 soll Modelsim binaries lesen/schreiben können. Keine Gewähr für andere Simulatoren. Textio wäre portabler, und umkodierer gibt's wie sand am meer (hexdump, uuencode), aber wir reden hier ja von Hardware. Hust.
Also probier mal so etwas wie...
subtype byte is integer range 0 to 255;
type buffer is array of byte;
type binfile is file of character;
procedure lesen(data: inout buffer) is
--file F: binfile open read_mode is "buffer.bin";
file F: binfile;
variable C: character;
begin
file_open(F, "buffer.bin", read_mode);
for i in data'range loop
read(F, C);
data(i) := character'POS(C);
end loop;
file_close(F);
end procedure;
Ich hoffe dass der Ansatz was bringt, ich bitte um Rückmeldung hier im Forum.
Peter
|
pzwack |
10.01.06, 21:22 |
|
Re: S.O.S!
[quote]
wie funktioniert das shit shift-funktion?
[/quote]
Die ganzen Rotierfunktionen sind für Vektoren (bit / std_logic_vector / unsigned) definiert, aber nicht für Integer.
Bevor du jetzt was schreibst wie
[quote]
original := 21;
shifted := to_integer( to_unsigned(original,8) sll 1)
[/quote]
probiers doch lieber mit original*2, original/2 oder original*(2**n).
Peter
|
pzwack |
14.12.05, 09:10 |
|
|
|