7-Segement Anzeige /VHDL

Gast #6686490
Lesenswert?

1
 library ieee;
2
use ieee.std_logic_1164.all;
3

4
entity board is
5
  port ( sw: in std_logic_vector(9 downto 0);                                    -- Schalter (Eingangsvketor)
6
        hex5, hex4, hex3, hex2, hex1, hex0: out std_logic_vector (7 downto 0)  -- 7-Segment-Anzeigen (Ausgangsvektor) 
7
      );  
8
end FPGA;
9

10
architecture Verhalten of board is
11
begin
12
  process (sw) begin
13
    
14
    if sw(0)='1' then
15
  
16
  hex0 <= "11111001"; --1
17
  hex1 <= "11111001"; --1
18
  hex2 <= "11111001"; --1
19
  hex3 <= "11111001"; --1
20
  hex4 <= "11111001"; --1
21
  hex5 <= "11111001"; --1
22
  
23
  elsif sw(0) ='0' then
24
  hex0 <= "10100100"; --2
25
  hex1 <= "10100100"; --2
26
  hex2 <= "10100100"; --2
27
  hex3 <= "10100100"; --2
28
  hex4 <= "10100100"; --2
29
  hex5 <= "10100100"; --2
30
  end if; 
31
  
32
  end process;
33
end Verhalten;
Ich verstehe nicht, programm funktion nicht und ich erhalte den Fehler:
can't place node "hex1[4]" -- illegal loaction assignment PIN_A12 usw.
aber ich habe die Assignment datei importiert trotzdem meckert er...
Gast #6686698
Lesenswert?

Keine Informationen über das verwendete FPGA, nichts über die Toolchain, 
kein Pinmapping mitgeliefert, im falschen Forum, vier Rechtschreibfehler 
in drei Zeilen Text. Und:
1
entity board is
2
...
3
end FPGA;

Fällt dir da etwas auf?

So wird das nix. Wenn du keinen Bock hast, ein vernünftiges Posting zu 
verfassen, dann hat hier keiner Bock, dir zu helfen.
Gast #6702103
Lesenswert?

Ja, so siehts leider aus. Die haben anscheinend überhaupt keine Lust zum 
Nachdenken. Stattdessen werden Anfragen in alle Foren abgesetzt, die 
ansatzweise etwas mit dem Thema zu tun haben könnten. Irgendeiner wird 
schon die fertige Lösung posten. Falls nicht und der Abgabetermin 
verstreicht, dann braucht man auch nicht mehr weiter zu fragen.

Ich lese meistens schon gar nicht mehr weiter, wenn im ersten Satz 
steht, dass der TO ein FPGA-Anfänger ist, dann 5 Zeilen 
wischi-waschi-Beschreibung des Problems folgen, und dann um Hilfe 
gebeten wird, möglichst noch mit einer Deadline ("Please post code until 
tomorrow"). Das nervt genauso wie diese unsägliche Fragerei, bei welcher 
Firma man als FH-Bachelor ohne Berufserfahrung von Anfang an einen 
Dienstwagen bekommt und 120k abgreifen kann.

Das ist eigentlich schade, ich helfe Anfängern sehr gerne weiter, wenn 
ich den Eindruck habe, dass sie sich die Grundlagen angeeignet haben, 
lernwillig sind  und an einer Stelle hängen bleiben. So ging es uns ja 
allen einmal, niemand kommt als VHDL-Guru auf die Welt.
Persönliche Seite #6702506
Lesenswert?

Da werden wohl Bit-Ströme zugewiesen, die aufs LCD oder Video-Display 
geschrieben werden, wie es ausschaut, wobei ich ein wenig Probleme habe, 
die Muster einer 1 und einer 2 zuzuordnen. Das Ganze ist auch kein 
VHDL-Problem meine ich. Solche Sachen haben wir schon bei der 
Sprite-Programmierung gemacht und das im Teeny-Alter, ohne Internet.

Egal ... falls jemand den thead findet und auch keine Idee hat:

Als ich mein erstes Display in VHDL geschrieben habe, bin ich so 
vorgegangen, dass ich erst die DEZ in HEX- und diese danach in ein 7-SEG 
System übersetzt hab. Dann braucht es nur eine einfache Definition für 
die "LEDs". Darunter liegt dann die Schicht, die aus einem 8x8 oder 
(doppelzeilig) einem 16x8 pixel zeilenweise gesagt bekommt, welche Pixel 
bei welchem LED-Balken aktiv sein müssen. Der Synthesizer produziert da 
eine sehr einfache Beschreibung für die einschlägigen Ziffern 0...f, 
weil es jeweils nur 8 Gleichungen mit 7 Bit Eingängen sind (3 bit für 
die X-Position im 8er Raster und 4 Bit für die Zahl). In einem heutigen 
FPGA mit breiten LUTs rechnet sich das in 2 Stufen mit maximal 3 Takten 
für 1080p60 und in mit 4 Takten läuft es sogar in UHD mit 297MHz.
#6702518
Lesenswert?

Vermutlich ein Teil einer größeren Hausaufgabe. Vielleicht Multiplexing 
von Anzeigen oder so. Als ersten Schritt versucht der TO zwischen zwei 
Ziffern umzuschalten.

Aber hier fehlt schlicht benötigte Information denn der Fehler steckt 
nicht in diesem hier hergezeigtem Code.
Gast #6702846
Lesenswert?

Max schrieb:

> Ich verstehe nicht, programm funktion nicht und ich erhalte den Fehler:
> can't place node "hex1[4]" -- illegal loaction assignment PIN_A12 usw.
> aber ich habe die Assignment datei importiert trotzdem meckert er...

Was verstehst du unter 'assignment importiert'?  Das klingt schlau, sagt 
aber nix was du tatsächlich gemacht (oder nicht gemacht) hast.

Die Fehlermeldung klingt nach intel/Altera. Und dort nach einer 
Fehlermeldung des Fitters. Wahrscheinlich ist der FPGA-Typ falsch 
angegeben oder das pin-asignment (meist in einem *.qsf -file, oder 
*.tcl) passt nicht.

Mal im Fitter Report (*.fit.rpt) und im Pin-Report-file (*.pin) 
nachschauen.
Und das Ganze benutzen um die basics des FPGA-Designflows zu lernen.
#6703041
Lesenswert?

Fpgakuechle K. schrieb:
> Wahrscheinlich ist der FPGA-Typ falsch
> angegeben oder das pin-asignment (meist in einem *.qsf -file, oder
> *.tcl) passt nicht.

+1

Fpgakuechle K. schrieb:
> Was verstehst du unter 'assignment importiert'?

Ich nehme an, es geht um Quartus und dort speziell um den Menüpunkt 
"Assignments->Import Assignments", mit dem man Pinzuordnungen von 
anderen Projekten übernehmen kann. Das funktioniert natürlich nur, wenn 
der FPGA-Typ richtig (also identisch oder kompatibel zu dem im zu 
importierenden Projekt) gesetzt wurde.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren