Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

registre



  1. #1
    electron78

    registre


    ------

    bonjour,
    je voudrais réaliser en vhdl un registre 32 bits de type SISO, L'entrée d sur
    1 bit est synchrone par rapport aux fronts montatnt de l'horloge clk. Sa
    sortie q est synchrone et a une taille de 1 bit. q prend la valeur de d à
    l'instant t-32. Son équation de sortie serait q(t)=d(t-32)

    j'ai écrit l'entity et pour l'architecture, je voudrais utliser des bascules
    D, dans ce cas là, je dois donc utiliser 32 bascules D et utliser une boucle
    for generate.

    J'ai déjà écrit l'entity et l'architecture pour la bascule D, mais je bloque
    pour l'architecture du registre, est-ce que quelqu'un saurait l'écrire, svp ?

    merci.

    -----

  2. #2
    jiherve

    Re : registre

    Bonjour
    Dis donc tu bloques souvent toi!
    m'enfin
    avec des entrée Clk,reset,input et une sortie output
    registre décalant à gauche en convention little endian (bit 31 MSB)!

    signal reg := std_logic_vector(31 downto 0);
    architecture rtl of register is
    Begin
    ff : process(clk,reset)
    begin

    if reset = '1' then
    reg <=(others => '0');
    elsif rising_edge (clk) then
    reg(31 downto 0) <=( reg(30 downto 0) & input);
    end if;
    end process ff;
    output <= reg(31);
    end architecture rtl;
    là tu n'as pas besoin d'un "generate"
    Reste dans un seul fil car si on doit ensuite passer en revue, fifo,compteur additionneur etc etc cela va saturer ce forum
    JR
    Dernière modification par jiherve ; 24/12/2007 à 16h38.

  3. #3
    electron78

    Re : registre

    merci, mais je veux utiliser les bascules D dans le registre 32 bits en utilisant for generate, comment pourrait-on faire ?

  4. #4
    jiherve

    Re : registre

    again
    Fondamentalement dans mon exemple ce sont des bascules D!
    Ceci dit, si je te suis bien, tu désires utiliser un 'component' de type bascule D?
    isn'it?
    JR

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

    Re : registre

    en fait, je veux utiliser la boucle for generate dans le registre, comment faire ?

  7. #6
    electron78

    Re : registre

    oui, je veux utiliser un component de type bascule D, pour pouvoir utiliser la boucle for generate, mais je ne sais pas écrire l'architecture.

  8. #7
    jiherve

    Re : registre

    good evening
    wait till tomorow, tonight that is xmas!
    JR

  9. #8
    jiherve

    Re : registre

    bonjour et joyeux Noël!

    en supposant que tu disposes d'une déclaration de "component" du style:
    component DFF
    port
    (reset : in std_logic;
    clk : in std_logic;
    d : in std_logic;
    q: out std_logic);
    end component;
    et avec les même I/O que dans l'exemple précédent
    alors tu peux écrire

    architecture rtl of register is
    signal regout : std_logic_vector(31 downto 0);
    signal regin :std_logic_vector(31 downto 0);
    Begin
    regin <=(regout (30 downto 0) & input);
    ff_array : for i in 0 to 31 generate
    ff_unit : DFF
    port map
    (reset => reset,
    clk => clk,
    d => regin(i),
    q => regout(i));
    end generate ff_array;

    output <= regout(31);
    end architecture rtl;

    il y avait une coquille dans mon exemple précédent lire :
    architecture rtl of register is

    signal reg :std_logic_vector(31 downto 0);
    Begin
    .....
    JR

  10. #9
    Jack
    Modérateur

    Re : registre

    JR, n'hésite pas à utiliser les balises "code", ça permet de garder l'indentation.

    A+

  11. #10
    jiherve

    Re : registre

    Bonjour
    Merci Jack il va falloir que j'expérimente :
    Code:
    architecture rtl of register is
      signal regout : std_logic_vector(31 downto 0);
      signal regin :std_logic_vector(31 downto 0);
      Begin
        regin <=(regout (30 downto 0) & input);
        ff_array : for i in 0 to 31 generate
          ff_unit : DFF
            port map
            (reset => reset,
             clk => clk,
             d => regin(i),
             q => regout(i));
        end generate ff_array;
        output <= regout(31);
     end architecture rtl;
    ça c'est effectivement mieux.
    JR

  12. #11
    electron78

    Re : registre

    pour la boucle for generate, est-ce que la boucle devrait aller de 0 à 31 et
    output <= regout(0);

    je veux cette fois-ci, faire un registre 16bits de type SIPO(ayant comme
    entrée D, Clk et Q), à partir des bascules D (ayant comme entrée D, Clk et
    Q). La sortie Q est synchrone et a une taille de 16 bits. Cette sortie Q
    prend la valeur interne AFF dont la valeur correspond aux différentes valeurs
    de D aux instants t-16, t-15, ..., t-1, t. Les équations de Q sont Q15(t)=D(t-15), Q14=D(t-14), Q0(t)=D(t).

    Comment écrire l'architecture de ce registre en utilisant une boucle for generate, svp ?

    merci.

  13. #12
    electron78

    Re : registre

    personne ?

  14. #13
    brodise

    Re : registre

    tien tien cela ressemble bcp à un DM d'electronique hein electron78

Discussions similaires

  1. Problème registre
    Par Fistos dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 04/09/2006, 10h23
  2. Base de registre
    Par lordgodgiven dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 16/02/2006, 21h51
  3. Base de registre
    Par JPL dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 04/09/2005, 00h17
  4. Registre Intcon
    Par franck1 dans le forum Électronique
    Réponses: 7
    Dernier message: 09/07/2005, 13h55
  5. base de registre
    Par sylvainj2 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 28/01/2005, 15h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.