Diseño de divisor de frecuencia basado en vhdl

1. Requisitos de diseño

  1. Divida el reloj del sistema de 50 MHz en la placa EDA en una señal de reloj de 1 Hz
  2. Ciclo de trabajo del 50%
  3. Utilice la lámpara de agua para iluminar el programa y observe el efecto en la placa EDA

Implementación de dos códigos

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

entity clkdiv is
    generic(n:integer:=50000000);
    port(clk_50MHZ:in std_logic;
         clk_1HZ:out std_logic);
end clkdiv;

architecture behavior of clkdiv is
 signal count:integer range n-1 downto 0:=n-1;
begin
  process(clk_50MHZ)
  begin
    if(clk_50MHZ'event and clk_50MHZ='1'and clk_50MHZ'last_value='0') then
      count<=count-1;
       if count>=n/2 then
          clk_1HZ<='0';
       else
          clk_1HZ<='1';
       end if;
       if count<=0 then
          count<=n-1;
       end if;
     end if;
   end process;
end behavior;


Tres circuitos completos
Inserte la descripción de la imagen aquí
cuatro resultados experimentales

Estado 1
Inserte la descripción de la imagen aquí
Estado 2
Inserte la descripción de la imagen aquí
Estado 3
Inserte la descripción de la imagen aquí
Estado 4
Inserte la descripción de la imagen aquí
Estado 5
Inserte la descripción de la imagen aquí
Estado 6
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_43789635/article/details/112978596
Recomendado
Clasificación