Forum: FPGA, VHDL & Co. Implement a FPGA design using a 325 MHz clock


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 Jeeen L. (jeeen_l)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
I'm currently trying to implement a FPGA design using a 325 MHz clock, 
which writes to the SDRAM Controller of a Cyclone V 
5CSEBA6U23I7(http://www.kynix.com/Parts/36331/5CSEBA6U23I7N.html) (Speed 
Grade 7).
When running my IP Core with 2 MHz everything works fine, but when I 
change the PLL clock to either 200 MHz or 325 MHz the data I can observe 
with SignalTap becomes completly random.
I've attached an image, in which I want to point out the 4th signal 
(bRun), which should be constant at 1, but in the observation toggles to 
0 and back to 1. Some other signals also experience completly random 
behaviour, like some internal busses, which carry non-zero data, when 
they should be zero.
I don't think this is an EMC problem, because I'm using a development 
board (DE10-Nano from terasic) and all signals are FPGA-internal, which 
should be able to handle these clockspeeds.

(See attachment ywkni.png)

The IP-Core is written in Verilog and I made sure to synchronize read 
and write operations on different edges of the respective clock to make 
sure, that the signals are stable and not transitioning when being read.
Following you can find the code for my RAM-write state machine, but as 
stated it works perfectly fine at 2 MHz.
If you guys have any idea about the reason for this behaviour I'd be 
very thankful.
1
                    imgSize <= imgSize;
2
                    nCntCurPos <= 4'b0;
3
                    nOutWord <= 256'b0;
4
5
                    fifo_read <= 0;
6
7
                    avm_m0_address <= 27'b0;
8
                    avm_m0_writedata <= 256'b0;
9
                    avm_m0_write <= 0;
10
                    avm_m0_byteenable <= 32'b0;
11
12
                    irqFromFPGAMaster <= state[2];
13
                    if(state[2]==0)     state <= 3'b000;
14
                    else                    state <= state;
15
                end
16
            endcase
17
        end
18
        else//Running, but IRQ hasn't been handled yet, preserve some data
19
        begin
20
            imgSize <= imgSize;
21
            irqFromFPGAMaster <= irqFromFPGAMaster;
22
            //irqFromFPGAMaster <= 0;
23
            //imgSize <= 32'd0;
24
25
            nCntCurPos <= 4'b0;
26
            nOutWord <= 256'b0;
27
            state <= 3'b0;
28
            fifo_read <= 0;
29
            avm_m0_address <= 27'b0;
30
            avm_m0_writedata <= 256'b0;
31
            avm_m0_write <= 0;
32
            avm_m0_byteenable <= 32'b0;
33
        end
34
    end
35
end

Also just fyi: The bRun Signal is being assigned by an Avalon MM-Slave 
connected to the ARm-Processor of the Cyclone V. During the observed 
period there hasn't been any communication with the processor so bRun 
shouldn't change. This also wouldn't explain the NRZ bus, which should 
be RZ, as seen in the Verilog code.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jeeen L. schrieb:
> When running my IP Core with 2 MHz everything works fine, but when I
> change the PLL clock to either 200 MHz or 325 MHz the data I can observe
> with SignalTap becomes completly random.
Did you tell the toolchain about the desired target frequency?
Spoken technically: do you use proper timing constraints?

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
The schematic list IS43TR16256A-15HBL as memory chip.
Datasheet: http://www.issi.com/WW/pdf/43-46TR16256A-85120AL.pdf

Which chip is really on board?
The IS43tr16256A-15HBL is specified for 1333MT/s. This mean a 
theoretical IO clk with 666 MHz. The real maximum memory clock is 166 
MHz.

https://en.wikipedia.org/wiki/DDR3_SDRAM#JEDEC_standard_modules

Can you explain why you use 325 MHz?

Duke

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.