DDS波形发生器VHDL源码.docx

上传人:b****2 文档编号:659310 上传时间:2023-04-29 格式:DOCX 页数:9 大小:16.29KB
下载 相关 举报
DDS波形发生器VHDL源码.docx_第1页
第1页 / 共9页
DDS波形发生器VHDL源码.docx_第2页
第2页 / 共9页
DDS波形发生器VHDL源码.docx_第3页
第3页 / 共9页
DDS波形发生器VHDL源码.docx_第4页
第4页 / 共9页
DDS波形发生器VHDL源码.docx_第5页
第5页 / 共9页
DDS波形发生器VHDL源码.docx_第6页
第6页 / 共9页
DDS波形发生器VHDL源码.docx_第7页
第7页 / 共9页
DDS波形发生器VHDL源码.docx_第8页
第8页 / 共9页
DDS波形发生器VHDL源码.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DDS波形发生器VHDL源码.docx

《DDS波形发生器VHDL源码.docx》由会员分享,可在线阅读,更多相关《DDS波形发生器VHDL源码.docx(9页珍藏版)》请在冰点文库上搜索。

DDS波形发生器VHDL源码.docx

DDS波形发生器VHDL源码

--DDS波形发生器(Synplifypro编译通过)

--输出频率Fout=Fclk*2^M/2^N

--分辨率Fclk/2^N

--最大输出频率Fout=Fclk*50%(理论值,抽样定理)

--版本1.0   2004/9/29  byJJJ

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityDDSis

 generic(ACCWidth:

Integer:

=16);     --相位累加器的长度2^N(2^ACCWidth)

 port(  

 CLK:

 instd_logic;         --系统时钟FClk

 STEP:

instd_logic_vector(ACCWidth-1downto0);  --步进,即相位累加器的累加增量,控制输出频率2^M频率控制字

 CHOICE:

 instd_logic_vector(1downto0);   --波形选择信号 "00":

正弦; "01":

三角波; "10":

方波; "11":

不输出(恒为低电平)

-- DAOUT:

outstd_logic_vector(7downto0);   --8位DA输出模拟信号,直通方式,如需时钟控制则要修改

 DAOUTX:

outstd_logic_vector(7downto0);

 DAOUTY:

outstd_logic_vector(7downto0)

 );

end;

architectureDDSofDDSis

signalACC:

std_logic_vector(ACCWidth-1downto0):

=(others=>'0');

signalDAOUT:

std_logic_vector(7downto0);

begin

 process(CLK,STEP)

 begin  

  if(CLK'eventandCLK='1')then

   ACC<=ACC+STEP;

  endif;

 endprocess;

 process(CHOICE,ACC)

 begin

  caseCHOICEis

   when"00"=>  --正弦

    caseACC(ACCWidth-1downtoACCWidth-8)is

                   when"00000000"=>DAOUT<="10000000";

                   when"00000001"=>DAOUT<="10000011";

                   when"00000010"=>DAOUT<="10000110";

                   when"00000011"=>DAOUT<="10001001";

                   when"00000100"=>DAOUT<="10001101";

                   when"00000101"=>DAOUT<="10010000";

                   when"00000110"=>DAOUT<="10010011";

                   when"00000111"=>DAOUT<="10010110";

                   when"00001000"=>DAOUT<="10011001";

                   when"00001001"=>DAOUT<="10011100";

                   when"00001010"=>DAOUT<="10011111";

                   when"00001011"=>DAOUT<="10100010";

                   when"00001100"=>DAOUT<="10100101";

                   when"00001101"=>DAOUT<="10101000";

                   when"00001110"=>DAOUT<="10101011";

                   when"00001111"=>DAOUT<="10101110";

                   when"00010000"=>DAOUT<="10110001";

                   when"00010001"=>DAOUT<="10110100";

                   when"00010010"=>DAOUT<="10110111";

                   when"00010011"=>DAOUT<="10111010";

                   when"00010100"=>DAOUT<="10111100";

                   when"00010101"=>DAOUT<="10111111";

                   when"00010110"=>DAOUT<="11000010";

                   when"00010111"=>DAOUT<="11000100";

                   when"00011000"=>DAOUT<="11000111";

                   when"00011001"=>DAOUT<="11001010";

                   when"00011010"=>DAOUT<="11001100";

                   when"00011011"=>DAOUT<="11001111";

                   when"00011100"=>DAOUT<="11010001";

                   when"00011101"=>DAOUT<="11010100";

                   when"00011110"=>DAOUT<="11010110";

                   when"00011111"=>DAOUT<="11011000";

                   when"00100000"=>DAOUT<="11011011";

                   when"00100001"=>DAOUT<="11011101";

                   when"00100010"=>DAOUT<="11011111";

                   when"00100011"=>DAOUT<="11100001";

                   when"00100100"=>DAOUT<="11100011";

                   when"00100101"=>DAOUT<="11100101";

                   when"00100110"=>DAOUT<="11100111";

                   when"00100111"=>DAOUT<="11101001";

                   when"00101000"=>DAOUT<="11101010";

                   when"00101001"=>DAOUT<="11101100";

                   when"00101010"=>DAOUT<="11101110";

                   when"00101011"=>DAOUT<="11101111";

                   when"00101100"=>DAOUT<="11110001";

                   when"00101101"=>DAOUT<="11110010";

                   when"00101110"=>DAOUT<="11110100";

                   when"00101111"=>DAOUT<="11110101";

                   when"00110000"=>DAOUT<="11110110";

                   when"00110001"=>DAOUT<="11110111";

                   when"00110010"=>DAOUT<="11111001";

                   when"00110011"=>DAOUT<="11111010";

                   when"00110100"=>DAOUT<="11111010";

                   when"00110101"=>DAOUT<="11111011";

                   when"00110110"=>DAOUT<="11111100";

                   when"00110111"=>DAOUT<="11111101";

                   when"00111000"=>DAOUT<="11111110";

                   when"00111001"=>DAOUT<="11111110";

                   when"00111010"=>DAOUT<="11111111";

                   when"00111011"=>DAOUT<="11111111";

                   when"00111100"=>DAOUT<="11111111";

                   when"00111101"=>DAOUT<="11111111";

                   when"00111110"=>DAOUT<="11111111";

                   when"00111111"=>DAOUT<="11111111";

                   when"01000000"=>DAOUT<="11111111";

                   when"01000001"=>DAOUT<="11111111";

                   when"01000010"=>DAOUT<="11111111";

                   when"01000011"=>DAOUT<="11111111";

                   when"01000100"=>DAOUT<="11111111";

                   when"01000101"=>DAOUT<="11111111";

                   when"01000110"=>DAOUT<="11111111";

                   when"01000111"=>DAOUT<="11111110";

                   when"01001000"=>DAOUT<="11111110";

                   when"01001001"=>DAOUT<="11111101";

                   when"01001010"=>DAOUT<="11111100";

                   when"01001011"=>DAOUT<="11111011";

                   when"01001100"=>DAOUT<="11111010";

                   when"01001101"=>DAOUT<="11111010";

                   when"01001110"=>DAOUT<="11111001";

                   when"01001111"=>DAOUT<="11110111";

                   when"01010000"=>DAOUT<="11110110";

                   when"01010001"=>DAOUT<="11110101";

                   when"01010010"=>DAOUT<="11110100";

                   when"01010011"=>DAOUT<="11110010";

                   when"01010100"=>DAOUT<="11110001";

                   when"01010101"=>DAOUT<="11101111";

                   when"01010110"=>DAOUT<="11101110";

                   when"01010111"=>DAOUT<="11101100";

                   when"01011000"=>DAOUT<="11101010";

                   when"01011001"=>DAOUT<="11101001";

                   when"01011010"=>DAOUT<="11100111";

                   when"01011011"=>DAOUT<="11100101";

                   when"01011100"=>DAOUT<="11100011";

                   when"01011101"=>DAOUT<="11100001";

                   when"01011110"=>DAOUT<="11011111";

                   when"01011111"=>DAOUT<="11011101";

                   when"01100000"=>DAOUT<="11011011";

                   when"01100001"=>DAOUT<="11011000";

                   when"01100010"=>DAOUT<="11010110";

                   when"01100011"=>DAOUT<="11010100";

                   when"01100100"=>DAOUT<="11010001";

                   when"01100101"=>DAOUT<="11001111";

                   when"01100110"=>DAOUT<="11001100";

                   when"01100111"=>DAOUT<="11001010";

                   when"01101000"=>DAOUT<="11000111";

                   when"01101001"=>DAOUT<="11000100";

                   when"01101010"=>DAOUT<="11000010";

                   when"01101011"=>DAOUT<="10111111";

                   when"01101100"=>DAOUT<="10111100";

                   when"01101101"=>DAOUT<="10111010";

                   when"01101110"=>DAOUT<="10110111";

                   when"01101111"=>DAOUT<="10110100";

                   when"01110000"=>DAOUT<="10110001";

                   when"01110001"=>DAOUT<="10101110";

                   when"01110010"=>DAOUT<="10101011";

                   when"01110011"=>DAOUT<="10101000";

                   when"01110100"=>DAOUT<="10100101";

                   when"01110101"=>DAOUT<="10100010";

                   when"01110110"=>DAOUT<="10011111";

                   when"01110111"=>DAOUT<="10011100";

                   when"01111000"=>DAOUT<="10011001";

                   when"01111001"=>DAOUT<="10010110";

                   when"01111010"=>DAOUT<="10010011";

                   when"01111011"=>DAOUT<="10010000";

                   when"01111100"=>DAOUT<="10001101";

                   when"01111101"=>DAOUT<="10001001";

                   when"01111110"=>DAOUT<="10000110";

                   when"01111111"=>DAOUT<="10000011";

                   when"10000000"=>DAOUT<="10000000";

                   when"10000001"=>DAOUT<="01111101";

                   when"10000010"=>DAOUT<="01111010";

                   when"10000011"=>DAOUT<="01110111";

                   when"10000100"=>DAOUT<="01110011";

                   when"10000101"=>DAOUT<="01110000";

                   when"10000110"=>DAOUT<="01101101";

                   when"10000111"=>DAOUT<="01101010";

                   when"10001000"=>DAOUT<="01100111";

                   when"10001001"=>DAOUT<="01100100";

                   when"10001010"=>DAOUT<="01100001";

                   when"10001011"=>DAOUT<="01011110";

                   when"10001100"=>DAOUT<="01011011";

                   when"10001101"=>DAOUT<="01011000";

                   when"10001110"=>DAOUT<="01010101";

                   when"10001111"=>DAOUT<="01010010";

                   when"10010000"=>DAOUT<="01001111";

                   when"10010001"=>DAOU

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2