Vollständigkeit von potentiellen Registern

Steven
Kernelcompilierer
Kernelcompilierer
Beiträge: 425
Registriert: 2. Sep 2008 10:00
Wohnort: Frankfurt am Main

Vollständigkeit von potentiellen Registern

Beitrag von Steven »

In der Musterlösung von Übung 5 wird "if (C1 = '1') C1 := '0';" als äquivalent zu "C1 := '0';" bezeichnet, damit ist C1 vollständig. Für C1 = 1 und C1 = 0 kann ich das nachvollziehen, wass passiert aber bei C1 = X? Dann evaluiert "if (C1 = '1')" zu false und die Zuweisung wird nicht ausgeführt. Schließt die Definition aus den Folien ("Ein potentielles Register ist vollständig, falls es bei jedem Durchlauf des process-Blocks nicht-redundant geschrieben wird") solche Fälle implizit aus?

Turing-Test
Mausschubser
Mausschubser
Beiträge: 91
Registriert: 17. Okt 2008 02:06

Re: Vollständigkeit von potentiellen Registern

Beitrag von Turing-Test »

Steven hat geschrieben: Für C1 = 1 und C1 = 0 kann ich das nachvollziehen, wass passiert aber bei C1 = X? Dann evaluiert "if (C1 = '1')" zu false und die Zuweisung wird nicht ausgeführt.
C1 ist aber STD_LOGIC_VECTOR ( 0 downto 0 ) (was auch immer das soll...), also nur ein Bit breit. Damit kann es nur 0 oder 1 sein.
File deletion is murder!

Jan R.
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 5. Okt 2007 09:51
Kontaktdaten:

Re: Vollständigkeit von potentiellen Registern

Beitrag von Jan R. »

Laut dem auf der Vorlesungsseite verlinkten "Überblick über die Arithmetik Librarys" ist ja aber für STD_LOGIC (neben X und noch einigen anderen) auch Z (also hochohmig) ein zulässiger Wert, also nicht nur 0 oder 1. Insbesondere Z dürfte doch auch "synthesefähig" sein, sofern dies überhaupt als Initialwert auftreten kann. Ist natürlich auch die Frage, was bei der Synthese dann draus wird... Und wie ein hochohmiger Ausgangswert an einem Eingang interpretiert wird

Turing-Test
Mausschubser
Mausschubser
Beiträge: 91
Registriert: 17. Okt 2008 02:06

Re: Vollständigkeit von potentiellen Registern

Beitrag von Turing-Test »

Oops. Hmm, was nun?
File deletion is murder!

ChristianK
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 127
Registriert: 13. Sep 2007 01:15
Wohnort: Darmstadt
Kontaktdaten:

Re: Vollständigkeit von potentiellen Registern

Beitrag von ChristianK »

Hätte auch noch eine Frage zu der Aufgabe (Übung 5):

Warum ist Sum2 nicht unvollständig wie Sum3? Das wird ja auch nur bei aufsteigender Flanke geschrieben und nicht immer wenn sich s_C0 ändert...

Ist das A hier dann vollständig oder nicht?
process(clk)
begin
if(clk' event and clk='1') then
A <= '0';
end if;
end process;

Steven
Kernelcompilierer
Kernelcompilierer
Beiträge: 425
Registriert: 2. Sep 2008 10:00
Wohnort: Frankfurt am Main

Re: Vollständigkeit von potentiellen Registern

Beitrag von Steven »

Ich denke mal, das potentielle Register A in deinem Beispiel ist vollständig: Es ist teil eines synchronen Prozessblocks. Jedes Mal, wenn dieser durchlaufen wird (was per Definition nur bei der spezifizierten Taktflanke passiert, sonst wäre der Prozess nicht synchron), wird der Wert geschrieben.

Über eine bessere Betreuung dieses Forums durch die Tutoren / Assistenten würde ich mich sehr freuen :!:

Benutzeravatar
AlexB
Kernelcompilierer
Kernelcompilierer
Beiträge: 487
Registriert: 8. Jul 2004 09:51
Kontaktdaten:

Re: Vollständigkeit von potentiellen Registern

Beitrag von AlexB »

Steven hat geschrieben:Ich denke mal, das potentielle Register A in deinem Beispiel ist vollständig: Es ist teil eines synchronen Prozessblocks. Jedes Mal, wenn dieser durchlaufen wird (was per Definition nur bei der spezifizierten Taktflanke passiert, sonst wäre der Prozess nicht synchron), wird der Wert geschrieben.
Der Prozess wird auch durchlaufen, wenn die Bedingung "if(clk'event and clk='1')" nicht erfüllt ist, d.h. auch, obwohl der Inhalt der if-Abfrage nicht betreten wird. A ist daher im folgenden Beispiel nicht vollständig:

Code: Alles auswählen

process(clk)
begin
     if(clk' event and clk='1') then
          A <= '0';
     end if;
end process;
Beachten Sie jedoch bitte, dass der Begriff der Vollständigkeit in getakteten Prozessen sowieso unerheblich ist. Zur Bestimmung, ob in einem getakteten Prozess ein Flip-Flop oder Kombinatorik entsteht genügt eine Aussage zur Lokalität.
Steven hat geschrieben:Über eine bessere Betreuung dieses Forums durch die Tutoren / Assistenten würde ich mich sehr freuen :!:
Solche Fragen lassen sich idealerweise auch in den hierfür eingerichteten Übungsgruppen beantworten. Weiterhin stehen zur Klausurvorbereitung die Übungsgruppen am folgenden Montag und Dienstag zur Verfügung.
Aktuelle Veranstaltungen
"Hardwaremodellierungssprachen" [SS 2012] - Webseite - Jetzt im TUCaN't anmelden!
TUCaN't - wenn's mal wieder länger dauert.
Bild

Antworten

Zurück zu „Archiv“