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

📄 xb.vhd

📁 波形发生器之疏密波的产生
💻 VHD
字号:
--选择要输出的波形
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY xb IS
PORT(
    --q0,q1,q2,q3:in STD_LOGIC_VECTOR(9 DOWNTO 0);
    --cen:in std_logic_vector(2 downto 0);--cen为波形选择控制信号
    --wave:in std_logic_vector(2 downto 0);--wave为波形幅度控制信号
     en: in std_logic;--en为使能
     m,n,k:in std_logic;
     q0,q1,q2,q3:in integer range 0 to 1023;
     outp:out STD_LOGIC_VECTOR(9 DOWNTO 0));--某个幅度的一种波形
END xb;

ARCHITECTURE rtl OF xb IS
 signal outp1: STD_LOGIC_VECTOR(9 DOWNTO 0);
 signal outp3,outp2: integer range 0 to 1023;
 signal cen:std_logic_vector(2 downto 0);
 signal wave:std_logic_vector(1 downto 0);

begin
 cen<=m&n&k;
 --wave<=w1&w2;

 process(en)
 begin
    if(en='0') then
       outp<="0000000000";
    else
       outp<=outp1;
    end if;
 end process;

  process(cen)
   begin
     case cen is 
      when"001"=>outp3<=q0;--选择正弦波
      when"010"=>outp3<=q1;--选择方波
      when"011"=>outp3<=q2;--选择三角波
      when"100"=>outp3<=q3;--选择指数波
      when others=>
    end case;
      --outp3<=conv_integer(outp4);--转化成整数输出
   outp1<=conv_std_logic_vector(outp3,10);
  end process;

  --process(wave)
    --begin
    --case wave is
     --when"001"=>outp2<=(outp3)/2;
     --when"010"=>outp2<=(outp3);
     --when"011"=>outp2<=(outp3)/4;
     --when"100"=>outp2<=(outp3)/8;
     --when others=>
    --end case;
     --outp1<=conv_std_logic_vector(outp2,10);
  --end process;
end rtl;

⌨️ 快捷键说明

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