mikrocontroller.net

Forum: FPGA, VHDL & Co. Schieberegister mir 2 Richtungen auf einem PAL


Autor: Alexander __ (bastlwastl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich soll auf einem PAL ein Schieberegister machen bei dem man Werte
laden und die Schieberichtung wächseln kann.

Ich habe bis jetzt:

"Inputs
Clock pin;
Enab pin;
Load pin;
Reset pin;
Left pin;
SR0 pin;
D8..D1 pin;

"Outputs
SR1..SR8 pin istype 'reg';

Equations
[SR1..SR8].CLK = Clock;
[SR1..SR8].AR = Reset;
[SR1..SR8].OE = Enab;

[SR1..SR8] := !Load & [SR0..SR7]
# Load & [D1..D8];

Wie bekomme ich die Schieberichtungsumkehr hin?

Ich habs schon damit versucht:
[SR1..SR8] := !Load & !Left & [SR0..SR7]
              # Load& !Left & [D1..D8]
                      #Left & [SR7..SR0];

Aber irgendwie habe ich einen Knopf in meiner Lodik.

Weis jemand was ich falsch mache?

mfg Alex

Autor: Mockup (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi.
kenne mich zwar nicht mit pals aus aber normaler weise ist das so
einmal so wie du hast:
======================
[SR1..SR8] := !Load & [SR1..SR7] (glaube die 0 sollte ne 1 sein, da du
ja sonst 9bit in 8bit schreiben würdest)
und das gegenstück wäre so:
===========================
[SR1..SR8] := [SR2..SR8] & !Load

hoffe das hilft.
mfg

Autor: Alexander __ (bastlwastl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SR0 ist der Pin in die die neuen Daten eingespeist werden.
Wie du es beschrieben hast, würde gar nichts funktionieren.
Es soll ja ein Schieberegister sein.

Solange Left low ist, läuft alles wie es soll.

Wenn ich aber Left auf high setze, dann springen die Daten einfach nur
Symetrisch um das 4. Bit hin und her.

Wenn ich also im Zustand : 01100000b die Richtung mit Left = high = 5V
ändere, springt die Anzeige im Clocktakt zwischen 01100000b und
00001100b hin und her.


mfg Alex

Autor: Mockup (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso ich hatte gedacht das load zum dateneinspeisen ist.
tschuldigung.

rechts
[SR1 bis SR8] := [SR0 bis SR7]
links
[SR1 bis SR8] := [SR2 bis SR8] & SR0

so wie du das jetzt hast, drehst du das byte ja nur um, srich du
spiegelst es immer.
versuch mal das.
mfg

Autor: Alexander __ (bastlwastl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Hilfe.

Ich werd's gleich mal ausprobieren.

Ein kleiner Hinweis.

Load wird verwendet um neue Daten parallel über [D1..D8]
hereinzuladen.
Die normalen seriellen Daten werden über SR0 eingelesen.

mfg Alex

Autor: Techniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, sowas such ich auch gerade als fertiges IC!

Sowas in einem PAL zu realisieren bin i noch garned draufgekommen..

Leider kenne ich mich mit programmierbarer Logik so gut wie fast nicht
aus (ausser ein paar Und und Oder in einem GAL zu proggen).

Funktioniert dein PAL-Proggi?

Autor: Alexander __ (bastlwastl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tag

Ich kann erst am Freitag ausprobieren ob's funktioniert.

Wenn du schon nach einem fertigen Baustein suchst, dann schau dir mal
die 74LSXXX Familie an.

Da müsste es sowas geben.

Ich hab das Gleiche aber auch schon mit 2 antiparallel veroderten
74LS164 Schieberegistern gemacht.
(Lauflicht)

mfg Alex

Autor: Sepp -o- (sepp_o)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Ich habs hinbekommen.
"Hier ist das fertige Programm.

´MODULE SR

TITLE 'Schieberegister'

Declarations

"Inputs

 clk  pin ; "Clk 1
 res  pin ; "S4
 load  pin ;"S2
 sr0  pin ;"S1
 d8..d1  pin ;"Mausklavier
 links pin ;"S3


"Outputs

 sr1..sr8 pin istype 'reg';

Equations

[sr1..sr8].clk = clk;
[sr1..sr8].ar = res;

[sr1..sr7] := !load & !links & [sr0..sr6] # load & !links & [d1..d7] #
links & [sr2..sr8];
sr8 := !load & !links & sr7 # load & !links & d8 # links & sr0;

END
"mfg Sepp

Autor: Alexander __ (bastlwastl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deinen Beitrag.

Du hast mir sehr weitergeholfen.

mfg Alex

Autor: Techniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sepp:

Könntest du bitte das JEDEC-File posten und den passenden PAL-Typ
angeben?

Autor: Sepp -o- (sepp_o)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs bei nem Kumpel gemacht der ein Übungsboard mit einem Mach4
hat.

Mit einem 22V10 dürfte es aber auch gehen.

Hast du ein Programiergerät?

Wie sieht die benötigte Pinbelegung aus?

Dass möchte ich schon wissen.

Soviel ich weis hat Lattice Demo-Programierprogramme.

mfg Sepp

Autor: Techniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sepp!

Programmiergerät habe ich (HiLo Systems ALL-07).
Pinbelegung ist mir egal - ich richte mich nach dem PAL.

Im Vorraus schonmal danke!

:-D

Autor: Sepp -o- (sepp_o)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Leider ist mein Kumpel jetzt die nächsten paar Wochen auf Urlaub und
ich hab keine Möglichkeit das Jed zu erzeugen.

Mal eine andere Frage.

Wieso erzeugst du dir das JED nicht selbst?

Du kannst dir doch selbst den Code einfach kopieren und das JED selbst
erzeugen.

So lernst du wenigstens mit dem Programiersystem umgehen.

Du kannst ja nicht immer erwarten dass dir irgendwer das passende Jed
erstellt.

Ich denke da vor allem an veränderte Anforderungen.

Ich hab mir mal den 22V10 genauer angeschaut.
Der hat ausreichent I/O's und das Programm passt auch drauf.
Da hast du sogar noch einen Pin für den Enable frei.

mfg Sepp

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.