Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Technische Informatik » Aus VHDL-Code das Zeitdiagramm zeichnen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 5 Beiträge
deppensido

danke für die Hilfe. Ich hab es mir jetzt noch mal Schritt für Schritt aufgeschrieben, was passiert und hab es dann hinbekommen. Ich kam da im Kopf nicht so richtig mit, aber wenn man sich die Schritte nacheinander aufschreibt klappt es dann recht zügig. Ein weiterer Fehler bei mir war auch, dass ich den Logic_Vector (2 downto 0) so gelesen habe (A(0),A(1),A(2)) anstatt (A(2),A(1),A(0)) also genau umgekehrt gedacht. Habe auch nochmal ähnliche Aufgaben geübt und diese dann auch recht schnell hinbekommen. Ziel bei diesen Aufgaben ist es ja das Zeitdiagramm zu zeichnen.
Nochmals Vielen Dank!

Grüße
eulerscheZahl

Zitat:
Aber bei der nächsten steigenden Taktflanke bleibt A(2) = 1, obwohl invert doch 0 wird

Darüber solltest du nochmal nachdenken:
invert ist not sr(0), das invertierte Signal kam aber erst bei s(2) an. s(0) ist immernoch 0, die Variable invert ist daher weiterhin 1. Das ändert sich erst, wenn eben jene 1 über s(2) und s(1) bis zu s(0) vorgedrungen ist.

Du musst dich nicht entschuldigen, wenn du etwas nicht sofort verstehst, dafür ist das Forum ja da. So ist es mir lieber, als wenn ich mir die Zeit nehme und dann trotz Unklarheiten keine Nachfrage mehr kommt, da hätte ich es dann auch gleich bleiben lassen können smile
deppensido

hallo,

ich versteh es ehrlich gesagt immer noch nicht. Bei der ersten Positiven Taktflanke ist ja invert = 1, sr(2) = 0 und sr(1) = 0 und A bekommt die Werte:
A(2) = 1 (von invert) A(1) = 0 (von sr(2) und A(0) = 0 (von sr(0). Aber bei der nächsten steigenden Taktflanke bleibt A(2) = 1, obwohl invert doch 0 wird und A(1) und A(0) müssten doch 0 bleiben, weil sr(2) und sr(1) auch jeweils 0 bleiben. Was heißt dabei: "sr(2) & sr(1) verschiebt die anderen beiden Werte."
Ich konnte leider auch durch den Signalverlauf das nicht nachvollziehen. Sorry, aber manchmal tu ich mich echt schwer sowas zu verstehen.

Grüße
eulerscheZahl

sr ist ein Vektor aus 3 Variablen (2 downto 0).
mit
sr <= neues_sr2 & neues_sr1 & neues_sr0;
kann das sr befüllt werden.
invert an erster Stelle sorgt dafür, dass das neue sr2 das negierte alte sr0 ist.
sr(2) & sr(1) verschiebt die anderen beiden Werte.

Ich habe die Simulation nachbearbeitet: gleichfarbige Signale hängen durch verschieben/invertieren wie oben beschrieben voneinander ab.

eulerscheZahl hat dieses Bild (verkleinerte Version) angehängt:
deppensido.png

deppensido Aus VHDL-Code das Zeitdiagramm zeichnen

hallo,

beim Üben bin ich auf folgende Aufgabe gestoßen, bei der man den Zeitverlauf von A(0), A(1) und A(2) in ein Zeitdiagramm einzeichnen soll, wobei das clk und das rst Signal vorgegeben ist. Im folgenden der Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Toplevel_A is
port( CLK, RST : in std_logic;
A : out std_logic_vector(2 downto 0));
end entity;
architecture Behavioral of Toplevel_A is
signal sr : std_logic_vector(2 downto 0);
signal invert : std_logic;
begin
A <= sr;
invert <= not sr(0);
process(CLK,RST) begin
if RST = '1' then
sr <= "000";
elsif CLK'event and CLK = '1' then
sr <= invert & sr(2) & sr(1);
end if;
end process;
end architecture;


ich verstehe nun folgende Zeile nicht
code:
1:
sr <= invert & sr(2) & sr(1);

was genau passiert da?

Vielen Dank im voraus.