mikrocontroller.net

Forum: FPGA, VHDL & Co. Stilfrage?


Autor: Fried Vissel (tich)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wann verwendet ihr std_logic_vector und wann unsigned?
Z.B. für internen Adressbus, mit unsigned kann ja doch direkt rechnen, 
mit std_logic_vector nur nach Wandlung, oder sehe ich da was falsch?

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Fried Vissel

>Wann verwendet ihr std_logic_vector und wann unsigned?

Unsigned it ein wenig moderner bezüglich arithmetischer Operationen.

>Z.B. für internen Adressbus, mit unsigned kann ja doch direkt rechnen,
>mit std_logic_vector nur nach Wandlung, oder sehe ich da was falsch?

Mit std_logic_vector kannst du auch einfach rechnen, einfach die Libs 
einbinden.

use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

MfG
Falk

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Verwendung von STD_LOGIC_UNSIGNED sollte man nicht mehr empfehlen, 
weil es das package NUMERIC_STD gibt.

Ich verwende bei Berechnungen immer unsigned/signed, z.B. bei Countern 
usw.
Der Code wird dadurch einfach klarer.
Für Port Signale werden diese aber auf std_logic_vector gewandelt.

Autor: Fried Vissel (tich)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

> Ich verwende bei Berechnungen immer unsigned/signed, z.B. bei Countern
> usw.
> Der Code wird dadurch einfach klarer.
> Für Port Signale werden diese aber auf std_logic_vector gewandelt.

Kleine Anfänger-Frage: Wie wandelt man die? Habe mich gestern damit 
herumgeplagt, aber irgendwie schaffte ich es nicht.

Gruss

Michael

Autor: adpat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt drauf an welche library du einbinjdest, die bringt Funktionen zum 
Umwandeln mit. EInfach nach std_logic_unsigned oder numeric_std googlen.

Autor: Freak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe bei einem aktuellen Design das Problem, daß es zwar 
synthetisiert, aber nicht im ModelSim läuft. Ich habe dann einfach die 
numeric eingeführt, hatte aber sofort eine Doppeldeutigkeit bez. 
std-logic. Dann habe ich das rausgenommen und nun ging die coversin auf 
den Port (CONV_STD_LOGIC_VECTOR) nicht mehr, weil er sie nicht mehr 
fand.

Ich habe dann allemöglichen Rechungen umschreiben müssen, so wie ich es 
kenne, nur damit Modelsim Ruhe gibt und simliert.

Wie kann man da vorgehen, um zu einem systematischen DEsign zu gelangen, 
was die Nutzung von Bibliotheken angeht?

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz einfach. Statt der .arith und .unsigned Bibliotheken NUR 
numeric_std benutzen. Dann die darin enthaltenen 
Konvertierungsfunktionen benutzen. Eine Übersicht, die mir da hilft, 
wenn was unklar ist, findet man zB unter:
http://www.alse-fr.com/English/apnotes.html (Onesheet reminder for ieee 
numeric library) Damit dürfte dann eigentlich alles klar sein.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.