Software in .pof bekommen

#5122131
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 :)
Gast #5129593
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;
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren