⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 程序代码.txt

📁 利用分频可以产生一系列脉冲
💻 TXT
字号:
--可以数控占空比的(带异步复位)(1M)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY PULSE IS
  PORT(CLK:IN STD_LOGIC;                  --1M时钟输入
       rst:in std_logic;                  --异步复位
       D  :IN STD_LOGIC_VECTOR(11 DOWNTO 0);--分频拨码开关
       z  :in std_logic_vector(11 downto 0);--分占空比拨码开关
       FOUT1:OUT STD_LOGIC;
       FOUT2:OUT STD_LOGIC;
       FOUT3:OUT STD_LOGIC;
       FOUT4:OUT STD_LOGIC);
END;

ARCHITECTURE ONE OF PULSE IS
    SIGNAL COUT :STD_LOGIC_VECTOR(11 DOWNTO 0);
    signal clk2 :std_logic;


BEGIN

  process(clk)
   variable Q :std_logic_vector(7 downto 0);
   begin
    if rst='1' then
       Q:="00000000";
     elsif clk'event and clk='0' then
       if Q="11111010" then
          Q:="00000000";
          
          clk2<='1';
       else Q:=Q+1;

            clk2<='0';
       end if;
   end if;
  end process;
   


    PROCESS(CLK2,rst)  --数控分频
  BEGIN
    if rst='1' then cout<=D;
      elsIF CLK2'EVENT AND CLK2 ='1' THEN
       IF COUT=D THEN
          COUT<="000000000000";
       ELSE
          COUT<=COUT+1;
       END IF;
    END IF;
  END PROCESS;
 process(clk2)
 begin
     if clk2'event and clk2='1' then
        if cout<z then
         fout1<='1';
         fout2<='1';
         fout3<='1';
         fout4<='1';
        else 
         fout1<='0';
         fout2<='0';
         fout3<='0';
         fout4<='0';

        end if;
     end if;
end process;


 END;





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -