Forum: FPGA, VHDL & Co. FPGA basierendes System


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Hallo,

ich glaub das ist der Richtige Ort um mein Hobby-Projekt (FPGA 
basierendes Gaming-System) vorzustellen.

Als Hardware benutz ich ein Altera-DE2-115 FPGA Developmentboard.

Das gesamte Systemdesign bis auf wenige Ausnahmen (Standards FIFOs z.B.) 
habe ich selbst in VHDL geschrieben (also keine IP-Cores für CPU, Bus, 
S/SDRAMKontroller etc. verwendet).

Der CPU habe ich mir selber erdacht, ist ein kleiner 16Bit RISC - Core 
(Momentan 106MHz Takt (Video-Clock), eine Instruction pro Cycle).
Doku unter 
https://www.dropbox.com/sh/2n1o8dfium4bdgi/Zf8PzjFsuw/goldmomo_endlos_daily_build/docs/ucore1_instructions.xlsx

Videoausgabe geht über VGA die maximale Auflösung beträgt 1440x900 bei 
32Bit (106MHz Takt).
Als Speicher werden SDRAM/SRAM mit je 128MByte/2MByte und ein 8MByte 
großer FLASH-Speicher verwendet.
Zum Daten lesen/transfer, benutz ich die SD-Schnittstelle (Datenrate 
frei programmierbar), läuft bei meinen Demo auf 25MBit *4.
Der Rest wie 7Seg, LEDs, Switches, PS/2, LCD, EEProm, I2C , Audio (extra 
Datenbus <-> SRAM/SDRAM) ... kann auch über die CPU angesprochen werden.

Doku unter 
https://www.dropbox.com/sh/2n1o8dfium4bdgi/-9QMPc2lJf/goldmomo_endlos_daily_build/docs/ucore1_ctrl_port.xlsx

Die letzten drei Wochen habe ich an einem kleinen Spiel gearbeitet (die 
Sprites/Tiles habe ich ausm Internet ....):

Sheriff 2213
http://www.youtube.com/watch?v=WcUinTuIObA

Anderes Zeug auf meinen System.

Space Pilot of Death
http://www.youtube.com/watch?v=ctVRjXSUPnw

MOD Player (Protracker 2.1 compatible) (kennen bestimmt noch einige von 
Amiga Zeiten)
http://www.youtube.com/watch?v=W0ChHagGEAQ

Mein Emulator (Habe ich in C# geschrieben um meine Assemblerprogramme zu 
debuggen)
http://www.youtube.com/watch?v=MKoS0bCZ_38

CPU accelerated Rotozommer (spezieller load/request Befehlssatz)
http://www.youtube.com/watch?v=ke_z5vKetXk

Assembler Source/Emulator ... (kein VHDL Code dabei)
https://www.dropbox.com/sh/2n1o8dfium4bdgi/TK_Da_o4rx/goldmomo_endlos_daily_build

Ist vielleicht mal für den einen oder anderen hier interessant.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Das Ding gefällt mir! Der MOD-Player klingt cool!

Kriegst Du den Videotakt auf 108MHz hoch? Dann könntest Du ein 
Standardformat verwenden, das ich für meine Sachen oft nutze:

1280x1024 @ 60Hz bei 108 MHz

Das passt besser zu den nativen Auflösungen vieler Monitore. Die Timings 
und ein Beispiel sind hier gepostet: Projekt VGA Core in VHDL

: Bearbeitet durch User
von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Den Takt bekomme ich bis ca. 150MHz hoch.
Hatte mich für 1440x900 entschieden, weil ich einen '16 zu 10' Monitor 
habe.
Die Spiele sind momentan auf 1/4 H/V Auflösung (360x225) getrimmt.

Vielleicht bau ich mal das Videosystem um und trenne es auch vom 
CPU-Clock ab. Leider ist bei höheren Auflösung (1600++) der Takt zu 
hoch, das schafft mein Design nicht.

von Falk B. (falk)


Lesenswert?

@ arten W. (goldmomo)

>Der CPU habe ich mir selber erdacht, ist ein kleiner 16Bit RISC - Core
>(Momentan 106MHz Takt (Video-Clock), eine Instruction pro Cycle).
>Doku unter
>https://www.dropbox.com/sh/2n1o8dfium4bdgi/Zf8PzjF...

Hmmm.

>Videoausgabe geht über VGA die maximale Auflösung beträgt 1440x900 bei
>32Bit (106MHz Takt).

Naja, das ist ja nur Datenschaufeln.

>Die letzten drei Wochen habe ich an einem kleinen Spiel gearbeitet (die
>Sprites/Tiles habe ich ausm Internet ....):

>Sheriff 2213
>Youtube-Video "Sheriff 2213 Level1-5"

Sieht mir komplett nach Chaos Engine von den Bitmap Brother aus.

Komplett auf dem eigenen System mit eigenem Prozessor in drei Wochen 
programmiert? Selbst wenn man die Grafik + Sound komplett kopiert hat, 
auch den Rest der Software basteln man kaum so fix zusammen. Glaub ich 
irgendwie nicht. ;-)

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Die Sprites und Tiles sind Rips aus Chaos Engine, die MODs sind aus 
einem Mod-Archiv. (Chaos Engine ist natürlich um einiges besser :-) )
Die Level habe ich mir selber mit Tiled gebaut.

Ich habe für "das Spiel" programmieren drei Wochen gebraucht, den 
MOD-Player und Map-Drawer hatte ich davor schon fertig auch. Der Rest 
war nicht 'so viel' Arbeit.

An den System arbeite ich schon länger (habe mich vor ca. 4 Jahren 
erstmals mit VHDL befasst).

Ist schon klar, dass mein Core nicht besser ist als irgend ein 
kommerzielles Produkt, habs aber selber hinbekommen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@ Marten W. (goldmomo)

>Die Sprites und Tiles sind Rips aus Chaos Engine, die MODs sind aus
>einem Mod-Archiv. (Chaos Engine ist natürlich um einiges besser :-) )
>Die Level habe ich mir selber mit Tiled gebaut.

>Ich habe für "das Spiel" programmieren drei Wochen gebraucht, den
>MOD-Player und Map-Drawer hatte ich davor schon fertig auch. Der Rest
>war nicht 'so viel' Arbeit.

>An den System arbeite ich schon länger (habe mich vor ca. 4 Jahren
>erstmals mit VHDL befasst).

OK, das erklärt das schon eher. Kam aner in deinem 1. Posting etwas 
anders rüber.

>Ist schon klar, dass mein Core nicht besser ist als irgend ein
>kommerzielles Produkt, habs aber selber hinbekommen.

RESPEKT!

von alpha (Gast)


Lesenswert?

Das sieht auf jeden Fall sehr gut aus! Kompliment!

Was ich mich frage: Hast du den Compiler auch selber geschrieben? Oder 
hast du für die CPU einen speziellen Instruktionssatz verwendet? Ich 
kann da leider keinen Hinweis drauf finden...

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Der Befehlssatz der CPU ist mit keiner anderen existierenden CPU 
kompatibel  (die Opcodes bzw. den Decoder habe ich mir selber erdacht).

Habe mir keinen Compiler geschrieben nur einen einfachen Assembler, der 
Aufwand für einen vernünftigen (optimierenden und natürlich 
funktionierenden) Compiler wäre zu hoch gewesen. Assembler reicht da 
IMHO völlig aus, da die CPU 8 GP-Register hat und der Befehlssatz  recht 
breit gefächert ist kann man schnell und einfach etwas in Assembler 
programmieren.

von alpha (Gast)


Lesenswert?

Marten W. schrieb:
> Assembler reicht da IMHO völlig aus

Krass, ich kann mir gar nicht vorstellen wie man das Sheriff Spiel in 
Assembler programmieren kann, obwohl ich in deinen Quelltext mal 
überflogen habe. Ich hätte da schon mit C++ Probleme. Allerdings habe 
ich auch keine Erfahrung in der Spieleprogrammierung.

Machst du eigentlich VHDL auch beruflich? Sowas macht man doch nicht mal 
eben so nach Feierabend, oder?

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

alpha schrieb:
> Marten W. schrieb:
>> Assembler reicht da IMHO völlig aus
>
> Krass, ich kann mir gar nicht vorstellen wie man das Sheriff Spiel in
> Assembler programmieren kann, obwohl ich in deinen Quelltext mal
> überflogen habe. Ich hätte da schon mit C++ Probleme. Allerdings habe
> ich auch keine Erfahrung in der Spieleprogrammierung.

Assembler zu programmieren ist Übungssache (wie auch bei andere 
Sprachen), wenn man sich an einige Regeln beim Programmieren hält, ist 
er auch gut lesbar/wartbar. Habe mir zum Beispiel für meinen MOD-Player 
die 68000 Version von Protracker angesehen, der Assembler-Code war sehr 
gut zu lesen (obwohl bestimmt 20Jahre alt).


>
> Machst du eigentlich VHDL auch beruflich? Sowas macht man doch nicht mal
> eben so nach Feierabend, oder?

VHDL mach ich nicht beruflich, ich will es auch ehrlich gesagt auch 
nicht (ich glaub das ist nicht lustig :-P ).
Mich hat schon vor etlichen Jahren Assembler auf meinen Amiga 500 
gereizt (direkt auf die HW zugreifen (Copper,Paula etc)).  Ist halt 
nicht jedermanns Sache, aber ich finds toll, ich war leider nie mit der 
Hardware zufrieden, bis ich dann FPGAs (und natürlich die tollen 
Altera/Terasic Dev-Boards) entdeckt habe.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Marten W. schrieb:
> Vielleicht bau ich mal das Videosystem um und trenne es auch vom
> CPU-Clock ab. Leider ist bei höheren Auflösung (1600++) der Takt zu
> hoch, das schafft mein Design nicht.

Wie ist denn die Ankopplung an das VGA realisiert? Bei einem 
FlipSpeicher der alternierend beschrieben wird, ist das ja das 
Bequemste. 1600 x 1200 wären am Einfachsten mit 162.0 MHz realisierbar. 
Auf der C4 Plattform (ich habe die auch) habe ich das schon gemacht.

Andererseits: Wenn Du die Spiele in Subresolution realisierst, brächte 
die erhöhte Auflösung auch nicht viel, es sei denn Du addierst einen 
Videofilter, der die Kanten glättet.

Was mich noch mehr interessiert: Sind die 32 Bit Farbe Echtfarben oder 
Palette?

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Die Videocontroller holt pro Zeile (oder alle 2,3,4,… ist einstellbar) 
die Daten (Anzahl/Quelle einstellbar) vom Bus (hat nur Zugriff auf 
SRAM/SDRAM, es werden immer 32Bit geholt).

Die Daten werden in einen kleinen Zwischenspeicher (Zeilenpuffer) 
geschrieben und dann durch einen einfachen Filter
(32 Bit Word zu
  X8R8G8B8          (1Pixel 24Bit)
  R5G6B5R5G6B5      (2Pixel 16Bit)
  X1R5G5B5X1R5G5B5  (2Pixel 15Bit)
  X4R4G4B4X4R4G4B4  (2Pixel 12Bit)
) rausgeschrieben (auf ADV7123 8Bit R 8Bit G 8Bit B).

Der Zwischenspeicher (Zeilenpuffer) erspart dann unnötige Fetches  bei 
Subauflösungen.

In einem früheren Design, hatte ich auch ein indiziertes System drin (4 
& 8Bit Colortable (aber keine Bitplanes wie beim Amiga) mit zusätzlichen 
Hardware-Sprites.

Das jetzige Design ist also nur ein einfache konfigurierbarer 
Framebuffer, die Grafik macht nur die CPU (finde ich flexibler als 
statisches Zeug in HW).

Bei Sheriff verwende ich X444 als Farbformat (also 4096 Farben), weil 
ich dann die oberen 4Bit pro Pixel für extra Daten verwenden kann 
(Transparents, Kollisionscodes).

Dein VGA Core Projekt in VHDL habe ich mir schon angeschaut, hätte ich 
vor 4 Jahre schon gebraucht :-)

Das Video Setup ist also recht primitiv und wird nur am Anfang 
initialisiert (hier bei Sheriff):

1
;******************************
2
;*
3
;* setupVideo
4
;*
5
6
setupVideo
7
8
  
9
  movei  r0,videoDefault    ;source
10
  movei  r1,UcTimer2Ctrl    ;dest-1
11
  moveih  r0,>videoDefault
12
  moveih  r1,>UcTimer2Ctrl      
13
  movei  r2,26      ;27-1
14
  
15
setupVideoLoop
16
17
  rqldi  r0,0
18
  addi  r0,1
19
  addi  r1,1
20
  ld  r3
21
  subi  r2,1
22
  brts  setupVideoLoop
23
  st  r1,r3  ;delay slot
24
  nop    ;delay slot
25
  nop    ;delay slot
26
  nop    ;delay slot
27
    
28
  jmpi  r7,0
29
  nop    ;delay slot
30
  nop    ;delay slot
31
  nop    ;delay slot
32
  nop    ;delay slot  
33
  
34
;*********************************************************************
35
;* data
36
;*********************************************************************
37
  
38
videoDefault    ;AD NAME              
39
  
40
  word  $0001  ;10 VIDEO_ON              
41
  word  $0097  ;11 HSYNC (D = 11 .. 0)            
42
  word  $017f  ;12 HSTART (D = 11 .. 0)          
43
  word  $017d  ;13 HMEMSTART (D = 11 .. 0)          
44
  word  $071f  ;14 HSTOP (D = 11 .. 0)            
45
  word  $076f  ;15 HTOTAL (D = 11 .. 0)          
46
  word  $0002  ;16 VSYNC (D = 10 .. 0)            
47
  word  $001e  ;17 VSTART (D = 10 .. 0)          
48
  word  $03a2  ;18 VSTOP  (D = 10 .. 0)          
49
  word  $03a3  ;19 VTOTAL  (D = 10 .. 0)          
50
  word  $0000  ;1a LC ADDER LOW            
51
  word  $0040  ;1b LC ADDER HIGH            
52
  word  $0000  ;1c LC ADDER LATCH            
53
  word  $0000  ;1d LC START (10 .. 0) Pixeloffset        
54
  word  $0000  ;1e                
55
  word  $0000  ;1f                
56
  word  $0008  ;20 HLOADSTART               
57
  word  $00bc  ;21 HLOADSTOP              
58
  word  $001e  ;22 VLOADSTART               
59
  word  $03a2  ;23 VLOADSTOP               
60
  word  $0004  ;24 VLOADNEXT              
61
  word  $0010  ;25 MEM_STARTADR_store low          
62
  word  $d000  ;26 MEM_STARTADR_store high          
63
  word  $0020  ;27 MEMLowINEOFFSET_store low          
64
  word  $0000  ;28 MEMLowINEOFFSET_store high          
65
  word  $0003  ;29 MEM_MODE_store         
66
  word  $0000  ;2a LATCH MEM_STARTADR/LINEOFFSET/MODE

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Marten W. schrieb:
> Dein VGA Core Projekt in VHDL habe ich mir schon angeschaut, hätte ich
> vor 4 Jahre schon gebraucht :-)
Hättest halt mal was gesagt. :-) Das erste Beispielprojekt gabe es auf 
dem S3E board schon 2006, weil mir da die Idee kam, das Farbpattern zu 
verwenden und mit jedem Horizontalpixel 2 Farben auszugeben. (S3E hat ja 
nur 1 Bit pro Farbe). Die Auflösung war 800x600, also doppeltes 
Amiga-Format. Ich habe das irgendwann später auch mal bei den 
CodeSchnippseln hier gepostet.

>32 Bit
D.h. Du transportierst das mit Deiner CPU primärzeilenweise in einen 
Puffer (BRAM, nehme ich an) und liest es per VGA-Core mehrfach aus. Das 
hätte ich jetzt schon per HW gemacht.

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Jürgen Schuhmacher schrieb:
> Marten W. schrieb:
>> Dein VGA Core Projekt in VHDL habe ich mir schon angeschaut, hätte ich
>> vor 4 Jahre schon gebraucht :-)
> Hättest halt mal was gesagt. :-) Das erste Beispielprojekt gabe es auf
> dem S3E board schon 2006, weil mir da die Idee kam, das Farbpattern zu
> verwenden und mit jedem Horizontalpixel 2 Farben auszugeben. (S3E hat ja
> nur 1 Bit pro Farbe). Die Auflösung war 800x600, also doppeltes
> Amiga-Format. Ich habe das irgendwann später auch mal bei den
> CodeSchnippseln hier gepostet.
>

Habs einfach damals nicht gefunden, bzw. falsch gesucht. Trotzdem tolle 
Arbeit von dir. (2006 wusste ich nicht mal was ein FPGA ist :-) )

>>32 Bit
> D.h. Du transportierst das mit Deiner CPU primärzeilenweise in einen
> Puffer (BRAM, nehme ich an) und liest es per VGA-Core mehrfach aus. Das
> hätte ich jetzt schon per HW gemacht.

Nein, die CPU kann direkt auf den SRAM (ab $f000000) oder den DRAM (ab 
$D000000) zugreifen. Reservier mir da also einen Bereich (z.b. 360x225 
Worte) und schreib da meine Bilddaten rein (ganzes Frame).

Dem Videocore sage ich einfach nur an der Adresse (z.B.: ab $D000000) 
hole die die Bilddaten, also das ganze Frame. Er puffert es dann 
Zeilenweise noch in einen FPGA-Blockram (Zeilenpuffer) um mehrfaches 
laden von Zeilen bei kleinen Auflösungen zu vermeiden (Native läuft er 
immer auf 1440x900, lädt aber z.B. nur jede vierte Zeile in den Zeilen 
Puffer und lädt auch nur z.B. alle vier Pixel aus dem Puffer. So habe 
ich dann 360x225).

Ich fahre also immer volle Auflösung und kann über Register „scalieren“ 
(LC_ADDER (pixelweise), VLOADNEXT (ab wann nächste Zeile neu laden)).
Bei Sheriff habe ich z.B. Doublebuffering“ benutzt.
1
;    base  d0000000  offset    comment
2
;    bytes  words  
3
;        
4
;frame buffer 0  176400  88200  d0000000    (16+360+16)*225
5
;frame buffer 1  176400  88200  d0015888    (16+360+16)*225

Warte dann immer auf einen 'VBlank' (kann den aktuellen VCount aus dem 
Videocore lesen, bzw. einen bestimmten VCount-Hit Register einstellen 
und prüfen).
Switch dann die Frames, und zeichne mit der CPU in den zweiten 
Framebuffer rum und der andere wird vom Videocore angezeigt.
Also recht primitiv, wie beim PC :-)

: Bearbeitet durch User
von Zwischenfrager (Gast)


Lesenswert?

Hallo Marten, ich konnte einen kurzen Blick auf Deine links werfen. Die 
Frage, die sich mir stellt: Können / Sollen das auch weitere user 
verwenden?

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Wenn es denn jemand benutzen will kann ich gern alle Sourcen freigeben 
(bis auf die VHDL Sourcen ist alles freigegeben), bzw. auch ein Tutorial 
schreiben (ein Framework für die wichtigsten Sachen ist schon da 
(Keyboard-processing, SDCard io, Audio (Sample & MOD Player),…)).
Mit den Emulator kann man eigentlich auch ohne Hardware alles 
Testen/Debuggen.

Bei der Hardware wird’s schon kritischer, leider wird es nicht so viele 
DE2-115 Besitzer geben (der Preis von $595 ist auch kein Schnäppchen).
Naja, das ganze System braucht momentan ~9000 LE (und einige Blockrams), 
man könnte es also auch auf einen kleineres Devboards portieren (DE0-1 
usw.).

Aber Assembler ist auch nicht jedermanns Sache, und auf Registerebene 
ohne OS zu programmieren  ist schon ein bisschen Hardcore/Oldschool , 
aber auch eine Herausforderung ( wer sucht so was :-) ).

Für den professionelle Einsatz ist mein Core schon wegen der nicht 
vorhandenen Tools (C(++) Compiler/Debugger, …) eher uninteressant, da 
gibt es genug Softcores oder je nach FPGA auch direkt Cores in den 
FPGAs.

Eigentlich ist meine momentane CPU auch nur als minimal-Core gedacht 
(deswegen 16Bit und nur eine Instruktion pro Cycle).  Denke schon lange 
über eine zusätzliches Design nach (hoher Parallelisierungsgrad 
('dynamisches' VLIW), kleine IO Latenz, Hardware Threadpools , …) (Naja 
ist mein Hobbyforschungsprojekt).

Ich würde auch an anderen Projekten mitarbeiten, dass meiste was ich bis 
jetzt gesehen/gefunden habe ist wirklich teilweise grandios (z.B. 
Minimig ist Klasse), aber meistens auch nur ein Nachbau von System XY 
und nicht wirklich mal was neues.

: Bearbeitet durch User
von Zwischenfrager (Gast)


Lesenswert?

Das DE-115 II ist bei vielen Unis und Studies anzutreffen. Das kostet 
als academic nur 300 Euro.

von FPGA-Vollprofi (Gast)


Lesenswert?

Marten, was braucht man denn nun, um Dein System zu nutzen? Ist das 
überhaupt zur Publikation gedacht? Wieviel möchtest Du davon rausgeben?

von Marten W. (goldmomo) Benutzerseite


Angehängte Dateien:

Lesenswert?

Also,

Hardware braucht man:
 - Altera (Terasic) DE2-115
 - PS/2 Tastatur (kein USB to PS/2 ‚Umwandler‘ benutzen, weil das nicht 
funktioniert)
 -Eine SD-Karte (SDHC gehen auch, XC hab ich nie probiert) (Achtung: 
Daten werden überschrieben!)
 -Kopfhörer/Boxen wenn man was höhren will

unter https://www.dropbox.com/sh/2n1o8dfium4bdgi/Qi7DH2-V8l/sheriff/
liegt ucore_test.sof für den FPGA  (Altera-Programmer).

flash.raw kann man mittels DE2-115 ControlPanel in den FLASH schreiben, 
ist aber nicht unbedingt notwendig (dann sieht man kein Bootbild mit 
Text, sondern irgendwelchen Müll, der Bootloader funktioniert aber 
trotzdem (SD-Karte einlegen)).

Sheriff_SDCard.raw sind die Rohdaten welche auf eine SDKarte geschrieben 
werden müssen, dazu das Tool RawEdit.exe unter

https://www.dropbox.com/sh/2n1o8dfium4bdgi/agaeGlHJoD/goldmomo_endlos_daily_build/cross_development/binaries/

benutzen.

HIER ABER VORSICHT! Es wird direkt auf die SD-Karte geschrieben, alle 
Daten die davor drauf waren sind 'weg'. Um sie wieder mit Windows zu 
benutzen, muss man sie neu formatieren.

GANZ WICHTIG ist es bei RawEdit unter der Combobox ‚device‘, das 
richtige Laufwerk für die SD-Karte auszuwählen, ansonsten bügelt ihr die 
Rohdaten auf das falsche Laufwerk :-)

Es werden aber nur ‚removable‘ Devices angezeigt, also keine internen 
HDs,also nur Mut (ich übernehme keine Garantie für irgendwelche 
gelöschten USB-Sticks etc.!)

Bei RawEdit dann Sheriff_SDCard.raw mit „Load file(s) into buffer“ 
laden und dann “Write from buffer“ drücken (siehe Anhang).

Wie schon gesagt, die Sourcen für die 
Tools/Assembler/Emulator/Testprogramme/... liegen unter 
https://www.dropbox.com/sh/2n1o8dfium4bdgi/TK_Da_o4rx/goldmomo_endlos_daily_build

Die VHDL Sourcen schicke ich jeden der sie mag per Email, ich werde sie 
hier nicht in Forum posten, sonst werde ich hier von den VHDL-Profis in 
der Luft zerrissen.

von blups (Gast)


Lesenswert?

Cooles Projekt mit tollen Demos!

von Marcus W. (marcusaw)


Lesenswert?

Ich dag nur, Daumen hoch! Respekt vor dieser LEistung - ich hab mir vor 
20 Jahren mal versucht, ASM für Grafikdemos beizubringen (damals war das 
sehr cool) - ich hab verzweifelt aufgegeben. Damals gabs allerdings auch 
noch kein Internet in der jetzigen Form - Mit P0rnografie hätte ich es 
wahrscheinlich durchziehen können :) :)

EDIT: lustig, der Spamfilter mag das Wort mit "P" nicht...

: Bearbeitet durch User
von FPGA-Vollprofi (Gast)


Lesenswert?

Marten W. schrieb:
> Die VHDL Sourcen schicke ich jeden der sie mag per Email, ich werde sie
> hier nicht in Forum posten, sonst werde ich hier von den VHDL-Profis in
> der Luft zerrissen.
Nun das glaube ich weniger. Selbst wenn das VHDL nicht formschön oder 
sehr gut lesbar sein sollte, es reicht ja dass es geht. Da es ein 
Hobbyprojekt ist, müssen keine Standards eingehalten werden und die 
Komplexität des Projektes sichert Dir Respekt auch bei schlimmsten VHDL 
:-)

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

Na dann,

unter 
https://www.dropbox.com/sh/2n1o8dfium4bdgi/TK_Da_o4rx/goldmomo_endlos_daily_build
gibts jetzt ein fpga VZ.

Als Toplevel-Design-Entity system/ucore_test.vhd benutzen.

Unter system/ucore_test_with_hcores.vhd geht auch als 'TLDE' braucht 
aber lang zum compilieren, da ich hier testweise fünf von meinen 32Bit 
Prototype-Cores drin habe. Also alles was hcore* ist am besten 
ignorieren, da bin ich am rumbasteln (die nächten Wochen/Monate/...).

von FPGA-Vollprofi (Gast)


Lesenswert?

Ohjeh, mach das schnell wieder weg! Das sieht ja schrecklich aus ;-)

Du scheinst ein Freund des Einrückens zu sein? Bekommst Du Prozente von 
MS für die Tab-Nutzung?

von Stauffenbiehl (Gast)


Lesenswert?

Cooles Projekt!!!!

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]
  • [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.