Mise à jour du fichier mif sous Quartus II
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Mise à jour du fichier mif sous Quartus II



  1. #1
    invite7f5d7e23

    Mise à jour du fichier mif sous Quartus II


    ------

    Hola

    Je suis actuellement en train de réaliser un projet dans lequel j'utilise une RAM.
    Pour réliser celle-ci, j'utilise la RAM présente dans l'outil MegaWizard (%RAM: 1-PORT%).
    Mon problème vient du fait que je n'arrive pas à mettre á jour le fichier .mif lorsque je veux écrire dans la RAM. Il me semble qu'il n'est pas possible de modifier un fichier mif.
    Comment dois-je m'y prendre ?

    Merci

    -----

  2. #2
    jiherve

    Re : Mise à jour du fichier mif sous Quartus II

    Bonsoir,
    dans Quartus choisir "file open" modifier la valeur par défaut du browser pour pointer sur .mif,.hex , choisir le fichier ad hoc , l'éditeur s'ouvre alors avec le contenu actuel, le modifier comme désiré et le sauvegarder.
    un .mif ou hex n'est modifiable qu'avant compilation on ne peut pas le modifier au runtime; en clair écrire dans la RAM ne modifiera jamais ce type de fichier qui est la valeur par défaut à la configuration du FPGA.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    invite7f5d7e23

    Re : Mise à jour du fichier mif sous Quartus II

    Dans ce cas, comment je peux voir les valeurs contenues dans la RAM après une écriture dans la mémoire (après simulation) ?

    Merci pour l'aide

  4. #4
    jiherve

    Re : Mise à jour du fichier mif sous Quartus II

    RE
    deux possibilités mais il faut modelsim AE ou autre version:
    tu inclues une écriture dans un fichier à chaque fois que tu écris dans la mémoire (il faut textio), ce code n'est évidement pas synthétisable, il suffira ensuite de l'éditer avec un éditeur lambda.
    autre solution inclure les "signaux ,variable" de la mémoire dans le waveform auquel cas ils sont directement visualisables pendant la simulation.
    La première solution est plus lourde à mettre en oeuvre mais est générale.
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    invite7f5d7e23

    Re : Mise à jour du fichier mif sous Quartus II

    De plus, quand je simule le fonctionnement de la RAM, j'observe des choses que j'ai du mal à expliquer.
    Quand l'entrée Write/Enable est à '1', la RAM se contente de recopier le bus de données en entrée sur le bus de donnée en sortie (au lieu de recopier les donnés d'entrée à l'adresse indiquée) alors quand Write/Enable est à '0', le bus de sorties a un état indéterminé (au lieu de lire les donnés contenues à l'adresse indiquée en entrée).
    En gros, l'adresse envoyée en entrée n'est jamais utilisée.

  7. #6
    jiherve

    Re : Mise à jour du fichier mif sous Quartus II

    Re
    tant que le write enable est à '1' tu écris dans la ram à chaque coup d'horloge (j'espère que tu a choisi une RAM synchrone) ensuite c'est le megawizard qui te permet de choisir le mode de fonctionnement de la mémoire en mode lecture.
    Quel type de mémoire as tu instancié ?
    fait donc peter le VHDL généré!
    JR
    l'électronique c'est pas du vaudou!

  8. #7
    invite7f5d7e23

    Re : Mise à jour du fichier mif sous Quartus II

    J'ai bien pris une RAM synchrone.
    Par contre pour la lecture, bonne question (je vais regarder ça).

    Voici le code généré :

    LIBRARY ieee;
    USE ieee.std_logic_1164.all;

    LIBRARY altera_mf;
    USE altera_mf.all;

    ENTITY test_ram IS
    PORT
    (
    address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);
    clock : IN STD_LOGIC ;
    data : IN STD_LOGIC_VECTOR (31 DOWNTO 0);
    wren : IN STD_LOGIC ;
    q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0)
    );
    END test_ram;


    ARCHITECTURE SYN OF test_ram IS

    SIGNAL sub_wire0 : STD_LOGIC_VECTOR (31 DOWNTO 0);



    COMPONENT altsyncram
    GENERIC (
    clock_enable_input_a : STRING;
    clock_enable_output_a : STRING;
    init_file : STRING;
    intended_device_family : STRING;
    lpm_hint : STRING;
    lpm_type : STRING;
    numwords_a : NATURAL;
    operation_mode : STRING;
    outdata_aclr_a : STRING;
    outdata_reg_a : STRING;
    power_up_uninitialized : STRING;
    widthad_a : NATURAL;
    width_a : NATURAL;
    width_byteena_a : NATURAL
    );
    PORT (
    wren_a : IN STD_LOGIC ;
    clock0 : IN STD_LOGIC ;
    address_a : IN STD_LOGIC_VECTOR (7 DOWNTO 0);
    q_a : OUT STD_LOGIC_VECTOR (31 DOWNTO 0);
    data_a : IN STD_LOGIC_VECTOR (31 DOWNTO 0)
    );
    END COMPONENT;

    BEGIN
    q <= sub_wire0(31 DOWNTO 0);

    altsyncram_component : altsyncram
    GENERIC MAP (
    clock_enable_input_a => "BYPASS",
    clock_enable_output_a => "BYPASS",
    init_file => "test_ram.mif",
    intended_device_family => "Cyclone II",
    lpm_hint => "ENABLE_RUNTIME_MOD=NO",
    lpm_type => "altsyncram",
    numwords_a => 256,
    operation_mode => "SINGLE_PORT",
    outdata_aclr_a => "NONE",
    outdata_reg_a => "CLOCK0",
    power_up_uninitialized => "FALSE",
    widthad_a => 8,
    width_a => 32,
    width_byteena_a => 1
    )
    PORT MAP (
    wren_a => wren,
    clock0 => clock,
    address_a => address,
    data_a => data,
    q_a => sub_wire0
    );



    END SYN;

  9. #8
    jiherve

    Re : Mise à jour du fichier mif sous Quartus II

    Re
    normalement c'est bon mais respecte tu le timing d'écriture ?
    données, adresses stables au moment du front montant d'horloge, et n'oublie pas qu'en lecture il y a du pipeline , la donnée apparait après 2 coups d'horloge.
    JR
    l'électronique c'est pas du vaudou!

  10. #9
    invite7f5d7e23

    Re : Mise à jour du fichier mif sous Quartus II

    La RAM a l'air de fonctionner à peu près bien mais il y a juste encore un léger souci.
    Quand je fais une écriture dans une adresse suivi d'une lecture á cette même adresse, j'obtients bien la valeur écrite dans la RAM. Par contre, lorsque je fais une lecture directement à une adresse, la RAM me renvoie des états inderminés alors que j'aimerais qu'elle me renvoie les valeurs contenues á cette adresse dans le fichier mif.

  11. #10
    jiherve

    Re : Mise à jour du fichier mif sous Quartus II

    Re
    ton fichier est il visible par modelsim ?
    cela n'a jamais bien fonctionné si le chemin n'est pas bien explicité, par defaut le .mif ou.hex doit être dans la directory du projet.
    En cas de problème il y a un warning à la compilation.

    JR
    l'électronique c'est pas du vaudou!

  12. #11
    invite7f5d7e23

    Re : Mise à jour du fichier mif sous Quartus II

    C'est bon, la RAM marche correctement (il y avait un petit problème de chemin).
    Par contre, impossible de voir les chronogrammes sous Simulation Wavweforms des signaux, seulement ceux des entrés/sorties.

Discussions similaires

  1. Kicad + mise à jour fichier Pcbnew
    Par lapenduledargent dans le forum Électronique
    Réponses: 3
    Dernier message: 05/02/2009, 21h42
  2. Mise à jour de Firefox sous Ubuntu
    Par invite428e20bb dans le forum Logiciel - Software - Open Source
    Réponses: 23
    Dernier message: 12/11/2008, 07h30
  3. mise a jour interface sous java avec liaison a mysql
    Par invite1bc1ddb5 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 21/02/2008, 18h26
  4. Réponses: 2
    Dernier message: 07/01/2008, 18h43
  5. Mise à jour avast fichier corrompu
    Par vercasand dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 13/07/2006, 22h46
Découvrez nos comparatifs produits sur l'informatique et les technologies.