Forum: FPGA, VHDL & Co. Software in .pof bekommen


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 Max K. (mku)


Bewertung
0 lesenswert
nicht lesenswert
hi

ich habe ein Programm in C in eclipse.
nun möchte ich, dass das Programm auch nach raus ziehen der 
Stromversorgung noch auf dem FPGA bleibt.

ich habe auf dem BeMicro keinen extra Speicher und dort ist ein Max10 
verbaut.
Folgende Anleitung habe ich schon gefunden:

https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/an/an736.pdf
http://www.alterawiki.com/wiki/Booting_Nios_from_Serial_Flash_with_the_new_Altera_Serial_Flash_Controller#Using_the_Example_Project

Dort wird es aber nur mit .jic erklärt. Sobald ich eine .pof erstellen 
möchte kann ich die .hex welche angegeben wird, nicht mit hinzufügen.

Wie kann ich das lösen?

Danke :)

von nios (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Es muss ja Exception und Interrupt Vektor in ein Bram zeigen. Und 
normalerweise kann man dann im Speicherblock ein Hex-File angeben.
Poste doch mal screenshot von deinem QSYS Projekt.
Vielleicht hast du falsch übernommen von den Vorlagen für externen rom?

von Michael F. (mifi)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Max,

funktioniert es mit der JIC Datei?

Gruß,
Michael

von Weltbester FPGA-Pongo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Soweit Ich weiss, muss ein Flash angebunden und bekannt gemacht sein, 
damit Du es zuweisen kannst.

von Max K. (mku)


Bewertung
0 lesenswert
nicht lesenswert
ich habe doch keinen externen seriellen speicher, wie die ganzen EPCS
ich habe nur die variante mit der .pof
also ist es da nicht so möglich?
bei dem "convert programming files" kann ich keine hex angeben, wenn ich 
eine .pof erstellen möchte, sobald ich als speicher mode: "internal 
configuration"

: Bearbeitet durch User
von Delta (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich benutze das onChipFlash, damit funktioniert es einwandfrei. Siehe:
https://www.altera.com/documentation/kly1419303836473.html

von nios (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das hex file kann im Qsys angegeben werden. Nicht in eclipse.
Standardmäßig ist ein hex file vorgesehen, dahin müsstest du das hex aus 
eclipse aber immer manuell kopieren. Also finde ich es besser direkt das 
hex file, dass beim build rauskommt in Qsys einzutragen.

von ElKo (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also irgendwie blicke ich bei deinem Problem noch nicht recht durch. 
Zunächst: Welches BeMirco hast du genau? Kannst du ein Datenblatt 
verlinken? Bei Arrow kommt nur "Page does not exist." Und: Ist auf 
deinem Board ein EPCS Chip drauf? Möchtest du deine Config in den EPCS 
oder in den Flash vom MAX10 bekommen? Wie lädst du bisher das Hex in den 
FPGA?

Ich kenne es so, dass man bei der Instanzierung des Speichers ein 
HEX-File (oder ein MIF-File) angibt, welches die Synthese dann mit 
einbaut. Im Beispiel unten ist über den MegaWizard ein ROM erstellt und 
ein MIF File eingebunden. MIF ist wie ein HEX-File, nur anders 
angeordnet. Einstellungen im Bild. Bei QSYS sieht das ähnlich aus, siehe 
Screenshot.
Ist die Init-Datei bei dir angegeben?
1
// synopsys translate_on
2
module progMem (
3
  address,
4
  clock,
5
  q);
6
7
  input  [11:0]  address;
8
  input    clock;
9
  output  [7:0]  q;
10
`ifndef ALTERA_RESERVED_QIS
11
// synopsys translate_off
12
`endif
13
  tri1    clock;
14
`ifndef ALTERA_RESERVED_QIS
15
// synopsys translate_on
16
`endif
17
18
  wire [7:0] sub_wire0;
19
  wire [7:0] q = sub_wire0[7:0];
20
21
  altsyncram  altsyncram_component (
22
        .address_a (address),
23
        .clock0 (clock),
24
        .q_a (sub_wire0),
25
        .aclr0 (1'b0),
26
        .aclr1 (1'b0),
27
        .address_b (1'b1),
28
        .addressstall_a (1'b0),
29
        .addressstall_b (1'b0),
30
        .byteena_a (1'b1),
31
        .byteena_b (1'b1),
32
        .clock1 (1'b1),
33
        .clocken0 (1'b1),
34
        .clocken1 (1'b1),
35
        .clocken2 (1'b1),
36
        .clocken3 (1'b1),
37
        .data_a ({8{1'b1}}),
38
        .data_b (1'b1),
39
        .eccstatus (),
40
        .q_b (),
41
        .rden_a (1'b1),
42
        .rden_b (1'b1),
43
        .wren_a (1'b0),
44
        .wren_b (1'b0));
45
  defparam
46
    altsyncram_component.address_aclr_a = "NONE",
47
    altsyncram_component.clock_enable_input_a = "BYPASS",
48
    altsyncram_component.clock_enable_output_a = "BYPASS",
49
    altsyncram_component.init_file = "empty.mif", // <- das Hex File
50
    altsyncram_component.intended_device_family = "Cyclone IV E",
51
    altsyncram_component.lpm_hint = "ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=PROM",
52
    altsyncram_component.lpm_type = "altsyncram",
53
    altsyncram_component.numwords_a = 4096,
54
    altsyncram_component.operation_mode = "ROM",
55
    altsyncram_component.outdata_aclr_a = "NONE",
56
    altsyncram_component.outdata_reg_a = "UNREGISTERED",
57
    altsyncram_component.widthad_a = 12,
58
    altsyncram_component.width_a = 8,
59
    altsyncram_component.width_byteena_a = 1;
60
endmodule

Gehört zwar nicht direkt zur Frage, aber passt hier ganz gut als nettes 
Wissen: Man kann den Speicher bequem über den Blaster von von der 
Konsole aus beschreiben, ohne neue Synthese oder das Design neu laden zu 
müssen:
1
quartus_stp.exe --tcl_eval begin_memory_edit -hardware_name "USB-Blaster \[USB-0\]" -device_name "@1: EP3C25/EP4CE22 (0x020F30DD)" ; update_content_to_memory_from_file -instance_index 0 -mem_file_path C:\Pfad\zum\Hex\file.hex -mem_file_type hex ; end_memory_edit;

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.