VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks
Addition unsigned mit natural

Anfang   zurück   weiter   Ende
Autor Beitrag
Bogomil
Registrierter Benutzer


Beiträge: 3

New PostErstellt: 16.09.06, 21:37  Betreff: Addition unsigned mit natural  drucken  Thema drucken  weiterempfehlen Antwort mit Zitat  

Servus,

ich bin erst seit gestern in die Materie eingestiegen und habe mich gefragt ob es möglich ist sowas zu schreiben wie:

ARCHITECTURE nur_bedieneinheit OF bedieneinheit IS
SIGNAL Z : unsigned(7 downto 0);
BEGIN
Z <= "00101000";
-- das wären dann 10#40#
.
.
.
PROCESS(...)
BEGIN
IF ..... AND Z > "00101000" THEN
Z <= Z - 1;


So also da soll dann in dem Process binär 1 von Z abgezogen werden.
Also wenn jetzt der Process startet mit:

Z = 00101001 (binär)

soll

Z = 00101000 (binär) rauskommen!

Geht sowas,...wenn nicht wie geht sowas ?

Hilfe wäre echt super. ;-)

MfG Bogomil

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
xGCFx
Stammgast


Beiträge: 33
Ort: Dresden

New PostErstellt: 17.09.06, 13:04  Betreff: Re: Addition unsigned mit natural  drucken  weiterempfehlen Antwort mit Zitat  

Ja, das geht.
In etwa so:

ARCHITECTURE nur_bedieneinheit OF bedieneinheit IS
SIGNAL Z : unsigned(7 downto 0);
BEGIN
Z <= to_unsigned(integer(40),8);
.
.
PROCESS(...)
BEGIN
IF ..... AND integer(Z) > 40 THEN
Z <= Z - 1;


Bei den Umwandlungsfunktionen geb ich keinbe Gwähr auf Korrektheit, aber wie du dir das denkst geht das schon.

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Danke
Gast
New PostErstellt: 17.09.06, 18:55  Betreff: Re: Addition unsigned mit natural  drucken  weiterempfehlen Antwort mit Zitat  

Jo,....

danke auch...find ich trotzdem irgendwie seltsam das ganze!

Will nur wissen ob ich das richtig verstanden hab!

Ein UNSIGNED ist ein Bitvektor der als Binärzahl interpretiert wird!?

Und weil mit UNSIGNED arithmetische Vergleiche möglich sind brauch ich sowas wie die Typkonvertierung in einen Integer gar nicht, oder ??? Oder doch ?????
(Hab ich in irgendeiner Kurzanleitung gelesen,...glaub ich zumindest!)

So wie du das gemacht hast hab ich das noch gar nicht gemeint...Typkonvertierung hab ich mir auch erst heute so richtig angeschaut...

Was ich damit sagen will,
Funktioniert das folgende:

ENTITY bedieneinheit IS
PORT ( etakt, korrektur, vorwahl : IN STD_LOGIC;
eingabe : OUT STD_LOGIC;
einstellung : OUT UNSIGNED(7 downto 0)
);
END bedieneinheit;

ARCHITECTURE bedieneinheit_v1 OF bedieneinheit IS
SIGNAL Z : UNSIGNED(7 downto 0);
BEGIN
Z <= "00101000";
PROCESS(korrektur,vorwahl,etakt)
BEGIN
IF korrektur'EVENT AND korrektur = '1' AND vorwahl = '0'
AND Z > "00101000" THEN
Z <= Z - 1;
ELSEIF vorwahl = '1' AND korrektur = '0' AND Z < "11010000" THEN
IF (vorwahl'LAST_EVENT >= 1 sec) AND etakt'EVENT
AND etakt = '1' THEN
eingabe <= '1';
Z <= Z + 1;
ELSEIF vorwahl'EVENT THEN
Z <= Z + 1;
END IF;
ELSEIF vorwahl'EVENT AND vorwahl = '0'
eingabe <= '0';
END IF;
END PROCESS;
einstellung <= Z;
END ARCHITECTURE;


PS: Wie kann man das machen das alle sehen können das ich den Code eingerückt hab?
Wenn das einer weiß werd ich das sofort editieren! ;-)

MfG danke für die Hilfe,

Bogomil
nach oben
Bogomil
Registrierter Benutzer


Beiträge: 3

New PostErstellt: 17.09.06, 19:05  Betreff: Re: Addition unsigned mit natural  drucken  weiterempfehlen Antwort mit Zitat  

    Zitat: xGCFx

    ARCHITECTURE nur_bedieneinheit OF bedieneinheit IS
    SIGNAL Z : unsigned(7 downto 0);
    BEGIN
    Z <= to_unsigned(integer(40),8);
    .
    .
    PROCESS(...)
    BEGIN
    IF ..... AND integer(Z) > 40 THEN
    Z <= Z - 1;
Ist doch deutlich schöner,...ich werd das auch so noch übernehmen...sollte irgendjemand meinen Code lesen wollen freut der sich bestimmt wenn er nicht erst alles in dezimalsystem umrechnen muss zumal das ja gängiger ist

Jetzt weiß ich auch warum meine Code nicht eingerückt ist ! Naja....VHDL nimmt das mit Groß und kleinschreibung ja auch nicht so genau!

Funzt trotzdem nicht: Naja wenn ihr auf Zitat geht könnt ihr den Code eingerückt sehen! ;-)


[editiert: 17.09.06, 19:08 von Bogomil]
nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Sortierung ndern:  
Anfang   zurück   weiter   Ende
Seite 1 von 1
Gehe zu:   
Search

powered by carookee.com - eigenes profi-forum kostenlos

Design © trevorj