Escribiendo un módulo VHDL

3

Estoy intentando acceder a esta sección de un curso: enlace

Estoy intentando escribir el módulo de contador de 30 bits (Proyecto 9.1 en la página). Tengo el contador escrito en un archivo .vhd normal de las secciones anteriores de ese curso. Aquí está el código:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Clock_Signals is
    Port (  switches : in STD_LOGIC_VECTOR(7 downto 0);
                buttons     : in STD_LOGIC_VECTOR(3 downto 0);
                LEDs     : out STD_LOGIC_VECTOR(7 downto 0);
                clk      : in STD_LOGIC
         );
end Clock_Signals;

architecture Behavioral of Clock_Signals is
    signal counter : STD_LOGIC_VECTOR(29 downto 0) := (others => '0');
    signal incHighNext : STD_LOGIC := '0';

    signal buttonsPrev : STD_LOGIC_VECTOR(3 downto 0) := (others => '0');
begin
    LEDs <= counter(29 downto 22);

    count: process(clk)
    begin
        if rising_edge(clk) then
            -- Allows for a step through
            --if (buttons(0) = '1') and (buttonsPrev(0) = '0') then
                --counter <= counter+1;
            --end if;

            counter(29 downto 15) <= counter(29 downto 15)+incHighNext;

            if counter(14 downto 0) = "111111111111110" then
                incHighNext <= '1';
            else
                incHighNext <= '0';
            end if;

            counter(14 downto 0) <= counter(14 downto 0)+1;

            -- Update state
            buttonsPrev <= buttons;
        end if;
    end process;

end Behavioral;

Pero cuando hago un módulo, no puedo entender cómo traducirlo. Aquí está mi módulo actual:

module mymodule(
    input [3:0] clk,
     input [3:0] enable,
    output [3:0] count
    );

endmodule
    
pregunta MLM

1 respuesta

6

Estoy bastante seguro de que accidentalmente hiciste clic en "Verilog Module" en lugar de "VHDL Module":

El código generado debe tener este aspecto:

   COMPONENT mymodule
   PORT(
      clk    : IN std_logic_vector(3 downto 0);
      enable : IN std_logic_vector(3 downto 0);   
      output : OUT std_logic_vector(3 downto 0)
   );
   END COMPONENT;

Elimine el módulo Verilog accidental e intente de nuevo prestando mucha atención al tipo de fuente que elija.

    
respondido por el embedded.kyle

Lea otras preguntas en las etiquetas