Memory decoder - VHDL of schema

bprosman

Golden Member

Zoals in een ander topic aangehaald , ik heb een stapeltje EPM3064's liggen (ik weet dat ze -bijna- obsolete zijn).
Altera software is inmiddels aan de praat.

Wat is nu wijsheid (Wat ik graag wil is een memory decoder maken. Dus het vervangen van TTL LS138's etc.), me te verdiepen in VHDL ? Of het "schema" tekenen in de Altera software ?.
Wat is het voordeel (of nadeel) van VHDL tov een schema tekenen met logic gates ?

De laatste memory decoders die ik zelf gemaakt heb waren met PAL'en en GAL'en met "Abel".

De jongere generatie loopt veel te vaak zijn PIC achterna.

Om te beginnen maakt het voor de uiteindelijke werking niet veel uit of je een schema tekent of VHDL/Verilog gebruikt, in beide gevallen definieer je een stel logicavergelijkingen.

Je moet voor jezelf bepalen wat je wil gebruiken, als je niets van VHDL of Verilog kent is een schema tekenen misschien makkelijker.

Het nadeel van een schema is dat deze meestal als een binair bestand wordt opgeslagen en alleen met de Altera software geopend kan worden.

VHDL en Verilog zijn allebei gewoon tekst bestanden en zijn later altijd nog te gebruiken met de software van een andere chip fabrikant.

Hobby, maar sample met mate. | BumbleBee plus pack | Weerstand calculator voor je PSP

Ik denk dat je met het bekijken van een paar voorbeelden een Verilog ding snel aan de praat kan krijgen.

Ik ben een beetje tegen VHDL. Daar heeft een commissie goed nagedacht over eea met als gevolg dat je allerlei dingen drie keer moet opschrijven. Dat maakt het echt onhandig in het gebruik.

Verilog is voor wat jij wil denk ik snel onder de knie te krijgen.

Schema tekenen voor FPGA heb ik nog nooit gedaan, maar kan ook. Schijnt. :-)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
bprosman

Golden Member

Schema tekenen voor FPGA heb ik nog nooit gedaan, maar kan ook. Schijnt

Dat komt denk ik omdat ik met mijn hersenen FPGA's nog teveel benader als "opgewaardeerde PAL'en" denk ik.
Verilog had ik nog niet eens aan gedacht.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Gewoon met HDL doen (VHDL of Verilog, maakt geen snars uit). Je kunt je functie dan functioneel opschrijven. In gates moet je nog in je hoofd de vertaalslag maken van functie naar hoe-doe-ik-dat-in-logica. Voorbeeld:

code:


if (address >= 00) and (address < 0x20) then sel_ram = '1'
if (address >= 20) and (address < 0x30) then sel_fluffie = '1'
if (address >= 30) and (address < 0xe0) then sel_blabla = '1'

Hoe zou je dat in gates tekenen?
... en dan is een memory decoder nog vrij simpel door z'n structuur (selectie kun je op de hoogste bits doen). Maar het wordt al heel anders als je iets van een state machine moet maken (bv).

[Bericht gewijzigd door flipflop op zondag 2 juli 2017 09:43:21 (18%)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Kijk, het is ook een beetje van hoe JIJ tegen jou probleem aankijkt.

Als jij een adres decoder voor een 6502 ziet als een '138 op de hoogste adreslijnen en dan een and met de read-write, dan teken je een schema met een '138 en een 7400 serie and poort.

Maar als je denkt: rom wordt geselecteerd (*) als de adresbus 111x xxxx xxxx xxx is EN read-write is hoog, dan schrijf je het zo in een formule op in verilog (of VHDL).

(*) Op de C64 die ik ken zat daar een 8k ROM. De atom heeft 2x4, en moet dus een adreslijntje extra decoderen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik zou zeker voor Verilog gaan. Ik heb ook jaren met de PAL en GALs gewerkt en met Abel. Jaren daarna gewerkt met schema entry op de Altera CPLD met de MAX7000 reeks en daarna met de FPGA's. Toen ik op rust ging heb ik besloten toch Verilog te gebruiken. Dat verliep enorm vlot en gaat achteraf gezien vele malen sneller dan schema entry. De Quartus compiler is eigenlijk veel slimmer dan je soms zelf denk waardoor hij veel beter gebruik maakt van je chip.
In basis zijn je vergelijkingen van vroeger bijna helemaal gelijk.

Nu ben ik bezig met een jaar project met de DE0-nano board. Daar heb je 22.000 LE blokken beschikbaar en een LE blokje is nog veel krachtiger dan in de vroegere EPM3064 reeks. Ik heb 16 DC motoren te sturen en 32 servo's, iedere servo heeft 3 positie's en die zijn allemaal instelbaar en die positie's worden in de EEPROM bewaard van het DE0-nano boardje. Ik gebruik ook de NeoPixel leds omdat die via 1 stuurdraad heel veel kleur leds aanstuurt. Ook vele encoders heb ik nodig zowel voor de controller bediening als voor de motor regelingen. Alles is in verilog geschreven, bij die FPGA's kun je de functie van bijna iedere pin uitwisselen waardoor je layout hardware heel eenvoudig wordt. Je moet je niet afvragen, heb ik een PWM of serieele output op die pin, nee ze kunnen het allemaal hebben. Zo ook mijn keyboard, een 5x8 matrix van 40 toetsen. Een kleine routine in de FPGA scant die. Display is de LCD 4x20 char. Analoog heb ik 8 channels 12 bit in gebruik. Afstandsbediening met TSOP38 zit er ook op, dus ook een kleine routine die dit zelfstandig scant.

Mijn toepassing is een super grote kogelbaan met heel veel Fischertechnik bouwstenen (meer dan 5000) en meer dan 20 m loopweg voor de stalen kogels 12.7mm. En dit alles onder het "motto" het is voor de kleinkinderen!

Dus ja Verilog is een goede startkeuze!

bprosman

Golden Member

Als jij een adres decoder voor een 6502 ziet als een '138 op de hoogste adreslijnen en dan een and met de read-write, dan teken je een schema met een '138 en een 7400 serie and poort.

Zo kijk ik er inderdaad tegen aan :-)
Zal me eens gaan verdiepen in Verilog, dank voor de suggesties.

De jongere generatie loopt veel te vaak zijn PIC achterna.

VHDL in de vlucht maar vast afgeserveerd?

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
bprosman

Golden Member

Nog niet en heb beiden eens bekeken maar vind Verilog er (voor mij) toch wat logischer uitzien.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Kijk, als je als eerste een ram-select en ROM-select output maakt, dan is dat simpel genoeg om het als oefening en "om eens te kijken" beide aanpakken te proberen.

Wel is het met dit soort dingen soms zo dat de moeite van de ene strategie zeg 1 + 2x is, waarbij x dus de grootte van je probleem. En bij de andere strategie is de moeite 5 + x, dan kruist dat mekaar bij x=4. Bij de eerste en ook tweede, derde "x", heb je het gevoel dat de eerste methode goed is, terwijl als je bij x=10 uiteindelijk wil uitkomen de tweede methode significant gunstiger uitpakt. Investeer je voor x=1 de 1+5 moeite om beide methoden te proberen, dan zie je direct dat de extra moeite voor methode 2 al gunstiger is dan die bij methode 1.

P.S. Ik hint naar methode 1 = circuit tekenen en methode 2 = verilog.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Acadeem :p

@TS, Verilog is ook prima hoor. Maar zoals ik al zei, het maakt geen snars uit. Beide even makkelijk/moeilijk1

1) doorhalen wat niet van toepassing is.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
bprosman

Golden Member

Vandaag in de Italiaanse zon maar eens eigenwijs geweest en met Quartus gespeeld. Aangezien ik in "poortjes" en TTL denk.

Bronschema :
http://searle.hostei.com/grant/cpm/CPMSchematic1.2.gif

Omgezet in een EMP3064 :

Als ik thuis kom eens proberen of het inderdaad ook zo werkt.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Ok, en nou dezelfde oefening in Verilog :-)

Zoiets kun je in een kwartiertje in HDL opschrijven. Minder nog als je weet wat je wilt maken. Als je het moet omzetten moet je eerst nog snappen wat het doet, dat kost extra tijd. Het coderen kost nauwelijks tijd.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein