📄 xb.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 + -