Forum: FPGA, VHDL & Co. Fpga für Bildverarbeitungsprojekt


von Justin (Gast)


Lesenswert?

Hallo ,

ich habe mir vor kurzem einen Spartan3 
[[https://www.waveshare.com/wiki/Open3S500E]] gekauft um etwas in HDL zu 
lernen .
Nun ist es so dass ich gerne mal ein simples Bildverarbeitungssystem mit 
Ausgabe über VGA entwickeln möchte.
Dazu habe ich mir das OV7670 Kameramodul zugelegt .
Nun ist es aber so , dass die Synthese in ISE14.7 ziemlich lange dauert.
Ich nehme mal an dass meine Block Ram Implementierung zu groß ist für 
diesen FPGA (welche nur einen Ram von 360 kb hat) .
Ich versuche halt Adressbreite 15 bit und Datenbreite 8 bit.
Ich habe mir einen SDRAM [[https://www.waveshare.com/SDRAM-Board-B.htm]] 
welchen man an meinen FPGA anstecken gekauft.
Könnte dieser mein Problem lösen?

Ansonsten gäbe es ja noch die Möglichkeit sich einen neuen FPGA zu 
kaufen, am besten einen welcher für den Zweck der 
Bildverarbeitung/Signalverarbeitung geeignet ist. Kennt jemand einen 
preislich nicht so teuren(<=150€)?


Beste Grüße

von Carl (Gast)


Lesenswert?

Das hier ist günstig und Speicher für's Bild:
Beitrag "XC6SLX16 Spartan 6 Entwicklungsboard"

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Justin schrieb:
> Nun ist es aber so , dass die Synthese in ISE14.7 ziemlich lange dauert.
> Ich nehme mal an dass meine Block Ram Implementierung zu groß ist für
> diesen FPGA (welche nur einen Ram von 360 kb hat) .

Was heisst lang und wieviele Ressourcen (relativ und absolut) werden 
letztendlich verbraucht?

von Justin (Gast)


Lesenswert?

Hallo,

er war nach 45 Minuten Synthese noch nicht fertig.
Also es schien so als ob er gar nicht mehr aufhört, habe deswegen 
abgebrochen.

Wegen den Resourcen:





INFO:Xst:1767 - HDL ADVISOR - Resource sharing has identified that some 
arithmetic operations in this design can share the same physical 
resources for reduced device utilization. For improved clock frequency 
you may try to disable resource sharing.

======================================================================== 
=
HDL Synthesis Report

Macro Statistics
# RAMs                                                 : 1
 32768x8-bit dual-port RAM                             : 1
# ROMs                                                 : 2
 4x1-bit ROM                                           : 1
 64x16-bit ROM                                         : 1
# Adders/Subtractors                                   : 1
 17-bit addsub                                         : 1
# Counters                                             : 8
 10-bit up counter                                     : 1
 11-bit up counter                                     : 1
 15-bit up counter                                     : 1
 17-bit up counter                                     : 1
 2-bit up counter                                      : 1
 24-bit up counter                                     : 1
 8-bit up counter                                      : 2
# Registers                                            : 20
 1-bit register                                        : 10
 16-bit register                                       : 1
 2-bit register                                        : 1
 3-bit register                                        : 4
 32-bit register                                       : 2
 8-bit register                                        : 2
# Comparators                                          : 9
 10-bit comparator greatequal                          : 2
 10-bit comparator less                                : 1
 11-bit comparator greatequal                          : 2
 11-bit comparator greater                             : 1
 11-bit comparator less                                : 2
 11-bit comparator lessequal                           : 1
# Tristates                                            : 1
 1-bit tristate buffer                                 : 1

======================================================================== 
=

======================================================================== 
=
*                       Advanced HDL Synthesis 
*
======================================================================== 
=

WARNING:Xst:1293 - FF/Latch <data_sr_0> has a constant value of 1 in 
block <Inst_i2c_sender>. This FF/Latch will be trimmed during the 
optimization process.

Synthesizing (advanced) Unit <frame_buffer>.
INFO:Xst:3218 - HDL ADVISOR - The RAM <Mram_ram> will be implemented on 
LUTs either because you have described an asynchronous read or because 
of currently unsupported block RAM features. If you have described an 
asynchronous read, making it synchronous would allow you to take 
advantage of available block RAM resources, for optimized device usage 
and improved timings. Please refer to your documentation for coding 
guidelines.
    -----------------------------------------------------------------------
    | ram_type           | Distributed                         | 
|
    -----------------------------------------------------------------------
    | Port A 
|
    |     aspect ratio   | 32768-word x 8-bit                  | 
|
    |     clkA           | connected to signal <clka>          | rise 
|
    |     weA            | connected to signal <wea>           | high 
|
    |     addrA          | connected to signal <addra>         | 
|
    |     diA            | connected to signal <dina>          | 
|
    -----------------------------------------------------------------------
    | Port B 
|
    |     aspect ratio   | 32768-word x 8-bit                  | 
|
    |     addrB          | connected to signal <addrb>         | 
|
    |     doB            | connected to signal <doutb>         | 
|
    -----------------------------------------------------------------------
Unit <frame_buffer> synthesized (advanced).

Synthesizing (advanced) Unit <ov7670_registers>.
INFO:Xst:3044 - The ROM <Mrom_sreg_mux0002> will be implemented as a 
read-only BLOCK RAM, absorbing the register: <sreg_mux0002>.
INFO:Xst:3225 - The RAM <Mrom_sreg_mux0002> will be implemented as BLOCK 
RAM
    -----------------------------------------------------------------------
    | ram_type           | Block                               | 
|
    -----------------------------------------------------------------------
    | Port A 
|
    |     aspect ratio   | 64-word x 16-bit                    | 
|
    |     mode           | write-first                         | 
|
    |     clkA           | connected to signal <clk>           | rise 
|
    |     weA            | connected to internal node          | high 
|
    |     addrA          | connected to signal <address>       | 
|
    |     diA            | connected to internal node          | 
|
    |     doA            | connected to signal <sreg>          | 
|
    |     dorstA         | connected to signal <sreg_and0000>  | low 
|
    | reset value        | 1111111111111111 
|
    -----------------------------------------------------------------------
    | optimization       | speed                               | 
|
    -----------------------------------------------------------------------
Unit <ov7670_registers> synthesized (advanced).

======================================================================== 
=
Advanced HDL Synthesis Report

Macro Statistics
# RAMs                                                 : 2
 32768x8-bit dual-port distributed RAM                 : 1
 64x16-bit single-port block RAM                       : 1
# ROMs                                                 : 1
 4x1-bit ROM                                           : 1
# Adders/Subtractors                                   : 1
 17-bit addsub                                         : 1
# Counters                                             : 8
 10-bit up counter                                     : 1
 11-bit up counter                                     : 1
 15-bit up counter                                     : 1
 17-bit up counter                                     : 1
 2-bit up counter                                      : 1
 24-bit up counter                                     : 1
 8-bit up counter                                      : 2
# Registers                                            : 104
 Flip-Flops                                            : 104
# Comparators                                          : 9
 10-bit comparator greatequal                          : 2
 10-bit comparator less                                : 1
 11-bit comparator greatequal                          : 2
 11-bit comparator greater                             : 1
 11-bit comparator less                                : 2
 11-bit comparator lessequal                           : 1

======================================================================== 
=

======================================================================== 
=
*                         Low Level Synthesis 
*
======================================================================== 
=
WARNING:Xst:1293 - FF/Latch <data_sr_0> has a constant value of 1 in 
block <I2CSender>. This FF/Latch will be trimmed during the optimization 
process.
Process interrupted by the user

Process "Synthesize - XST" did not complete

von Justin (Gast)


Lesenswert?

Ich denke mal, dass das hier das Problem ist:

Synthesizing (advanced) Unit <frame_buffer>.
INFO:Xst:3218 - HDL ADVISOR - The RAM <Mram_ram> will be implemented on
LUTs either because you have described an asynchronous read or because
of currently unsupported block RAM features. If you have described an
asynchronous read, making it synchronous would allow you to take
advantage of available block RAM resources, for optimized device usage
and improved timings. Please refer to your documentation for coding
guidelines.

von Fitzebutze (Gast)


Lesenswert?

Hi Justin,

du hast den "Klassiker" korrekt diagnostiziert :-)
Du musst also deine Block-RAM-Entity so instanzieren, damit die Synthese 
das richtige draus macht und nicht in der LUT-Mapping-Dauerschleife 
hängenbleibt. Gibt eine Menge Beispiele hier im Forum.

von Justin (Gast)


Lesenswert?

Vielen Danke!.

Die Synthese hat nun auch funktioniert.

Beste Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.