es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No puedo encontrar el error de sintaxis en mi iverilog {design.sv:1: error de sintaxis. Me rindo.}

biblioteca ieee;

uso ieee.std_logic_1164.all;

uso ieee.numeric_std.all;

entidad sqwaveGen es

puerto (

clk : in std_logic;

clk_out : out std_logic;

fall : in unsigned(7 downto 0);

reset : in std_logic;

rise : in unsigned(7 downto 0)

);

fin entidad;

arquitectura from_verilog de sqwaveGen es

señal count : unsigned(7 downto 0); — Declarado en design.sv:7

señal count_off : unsigned(7 downto 0); — Declarado en design.sv:7

señal count_on : unsigned(7 downto 0); — Declarado en design.sv:7

señal pos_or_neg : std_logic; — Declarado en design.sv:8

begin

clk_out <= pos_or_neg;

proceso (clk, reset) es

begin

si (no reset) = ‘1’ entonces

count <= X”00″;

count <= X”00″;

pos_or_neg <= ‘1’;

elsif rising_edge(clk) entonces

si (unsigned'(“0000000000000000000000000000000″) and pos_or_neg) = X”00000001” entonces

si Resize(count, 32) = (Resize(count_on, 32) - X"00000001") entonces

  count <= X"00";

  pos_or_neg <= '0';

else

  count <= count + X"01";

fin si;

else

si (unsigned'("0000000000000000000000000000000") and pos_or_neg) = X"00000000" entonces

  si Resize(count, 32) = (Resize(count_off, 32) - X"00000001") entonces

    count <= X"00";

    pos_or_neg <= '1';

  else

    count <= count + X"01";

  fin si;

fin si;

fin si;

fin si;

end proceso;

proceso (fall, rise) es

begin

count_on <= rise;

count_off <= fall;

end proceso;

end architecture;

Tags:  

Answer

  1. Avatar for davy.ai

    Explicación del código VHDL para el generador de ondas cuadradas

    El código VHDL proporcionado define una entidad llamada “sqwaveGen” que tiene cinco puertos de entrada/salida para la entrada de reloj, salida de reloj, conteo de flanco descendente, señal de reinicio y conteo de flanco ascendente.

    La arquitectura de la entidad se define como “from_verilog”, que contiene varias señales, incluyendo tres señales para contadores, una señal para determinar la polaridad de la señal de salida y una señal de salida de reloj.

    El comportamiento de la entidad se define a través de dos procesos. El primer proceso es sensible a las señales de reloj y reinicio, y es responsable de alternar la señal de salida en función de los conteos de flanco ascendente/descendente y el estado actual de la señal de polaridad. El segundo proceso es sensible a las entradas de conteo de flanco ascendente/descendente y establece los valores de conteo encendido/apagado en consecuencia.

    En general, el código VHDL genera una señal de onda cuadrada con conteos de flanco ascendente/descendente ajustables basados en los valores de entrada para rise y fall.

Comments are closed.