版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-DDS波形发生器 (Synplify pro 编译通过-输出频率 Fout = Fclk*2M/2N-分辨率 Fclk/2N-最大输出频率 Fout = Fclk*50%(理论值,抽样定理-版本1.0 2004/9/29 by JJJ entity DDS is generic(ACCWidth : Integer := 16; -相位累加器的长度2N (2ACCWidth port ( CLK: in st
2、d_logic; -系统时钟 FClk STEP: in std_logic_vector(ACCWidth-1 downto 0; -步进,即相位累加器的累加增量,控制输出频率 2M 频率控制字 CHOICE: in std_logic_vector(1 downto 0; -波形选择信号 "00":正弦; "01":三角波;
3、 "10":方波; "11":不输出(恒为低电平- DAOUT : out std_logic_vector(7 downto 0; -8位DA输出模拟信号,直通方式,如需时钟控制则要修改 DAOUTX: out std_logic_vector(7 downto 0; DAOUTY: out std_logic_vector(7 downto 0 end;architecture DDS of DDS issignal ACC:std_logic_vector(ACC
4、Width-1 downto 0:=(others =>'0'signal DAOUT:std_logic_vector(7 downto 0;begin process(CLK,STEP begin if(CLK'event and CLK='1' then ACC<=ACC+STEP; end if; end process; process(CHOICE,ACC begin &
5、#160;case CHOICE is when "00"=> -正弦 case ACC(ACCWidth-1 downto ACCWidth-8 is when "00000000" => DAOUT <=
6、"10000000" when "00000001" => DAOUT <= "10000011"
7、; when "00000010" => DAOUT <= "10000110" when "00000011" => DAOUT <= "10001001" &
8、#160; when "00000100" => DAOUT <= "10001101" when "00000101" => DAOUT <= "
9、;10010000" when "00000110" => DAOUT <= "10010011"
10、0; when "00000111" => DAOUT <= "10010110" when "00001000" => DAOUT <= "10011001"
11、 when "00001001" => DAOUT <= "10011100" when "00001010" => DAOUT <= "1001
12、1111" when "00001011" => DAOUT <= "10100010"
13、60; when "00001100" => DAOUT <= "10100101" when "00001101" => DAOUT <= "10101000"
14、; when "00001110" => DAOUT <= "10101011" when "00001111" => DAOUT <= "10101110&
15、quot; when "00010000" => DAOUT <= "10110001" w
16、hen "00010001" => DAOUT <= "10110100" when "00010010" => DAOUT <= "10110111"
17、0; when "00010011" => DAOUT <= "10111010" when "00010100" => DAOUT <= "10111100"
18、 when "00010101" => DAOUT <= "10111111" when &
19、quot;00010110" => DAOUT <= "11000010" when "00010111" => DAOUT <= "11000100"
20、60; when "00011000" => DAOUT <= "11000111" when "00011001" => DAOUT <= "11001010"
21、; when "00011010" => DAOUT <= "11001100" when "
22、00011011" => DAOUT <= "11001111" when "00011100" => DAOUT <= "11010001"
23、160; when "00011101" => DAOUT <= "11010100" when "00011110" => DAOUT <= "11010110"
24、0; when "00011111" => DAOUT <= "11011000" when "00100
25、000" => DAOUT <= "11011011" when "00100001" => DAOUT <= "11011101" &
26、#160; when "00100010" => DAOUT <= "11011111" when "00100011" => DAOUT <= "11100001"
27、60; when "00100100" => DAOUT <= "11100011" when "00100101&q
28、uot; => DAOUT <= "11100101" when "00100110" => DAOUT <= "11100111"
29、 when "00100111" => DAOUT <= "11101001" when "00101000" => DAOUT <= "11101010"
30、160; when "00101001" => DAOUT <= "11101100" when "00101010"
31、=> DAOUT <= "11101110" when "00101011" => DAOUT <= "11101111"
32、; when "00101100" => DAOUT <= "11110001" when "00101101" => DAOUT <= "11110010" &
33、#160; when "00101110" => DAOUT <= "11110100" when "00101111" =>
34、 DAOUT <= "11110101" when "00110000" => DAOUT <= "11110110"
35、0; when "00110001" => DAOUT <= "11110111" when "00110010" => DAOUT <= "11111001"
36、 when "00110011" => DAOUT <= "11111010" when "00110100" => DAOU
37、T <= "11111010" when "00110101" => DAOUT <= "11111011"
38、60; when "00110110" => DAOUT <= "11111100" when "00110111" => DAOUT <= "11111101"
39、; when "00111000" => DAOUT <= "11111110" when "00111001" => DAOUT <
40、;= "11111110" when "00111010" => DAOUT <= "11111111"
41、160; when "00111011" => DAOUT <= "11111111" when "00111100" => DAOUT <= "11111111"
42、0; when "00111101" => DAOUT <= "11111111" when "00111110" => DAOUT <= &q
43、uot;11111111" when "00111111" => DAOUT <= "11111111" &
44、#160; when "01000000" => DAOUT <= "11111111" when "01000001" => DAOUT <= "11111111"
45、60; when "01000010" => DAOUT <= "11111111" when "01000011" => DAOUT <= "1
46、1111111" when "01000100" => DAOUT <= "11111111"
47、 when "01000101" => DAOUT <= "11111111" when "01000110" => DAOUT <= "11111111"
48、160; when "01000111" => DAOUT <= "11111110" when "01001000" => DAOUT <= "111111
49、10" when "01001001" => DAOUT <= "11111101"
50、; when "01001010" => DAOUT <= "11111100" when "01001011" => DAOUT <= "11111011" &
51、#160; when "01001100" => DAOUT <= "11111010" when "01001101" => DAOUT <= "11111010&qu
52、ot; when "01001110" => DAOUT <= "11111001" whe
53、n "01001111" => DAOUT <= "11110111" when "01010000" => DAOUT <= "11110110"
54、 when "01010001" => DAOUT <= "11110101" when "01010010" => DAOUT <= "11110100"
55、160; when "01010011" => DAOUT <= "11110010" when &qu
56、ot;01010100" => DAOUT <= "11110001" when "01010101" => DAOUT <= "11101111"
57、; when "01010110" => DAOUT <= "11101110" when "01010111" => DAOUT <= "11101100" &
58、#160; when "01011000" => DAOUT <= "11101010" when "01
59、011001" => DAOUT <= "11101001" when "01011010" => DAOUT <= "11100111"
60、0; when "01011011" => DAOUT <= "11100101" when "01011100" => DAOUT <= "11100011"
61、 when "01011101" => DAOUT <= "11100001" when "0101111
62、0" => DAOUT <= "11011111" when "01011111" => DAOUT <= "11011101"
63、60; when "01100000" => DAOUT <= "11011011" when "01100001" => DAOUT <= "11011000"
64、; when "01100010" => DAOUT <= "11010110" when "01100011&quo
65、t; => DAOUT <= "11010100" when "01100100" => DAOUT <= "11010001"
66、160; when "01100101" => DAOUT <= "11001111" when "01100110" => DAOUT <= "11001100"
67、0; when "01100111" => DAOUT <= "11001010" when "01101000" =&
68、gt; DAOUT <= "11000111" when "01101001" => DAOUT <= "11000100" &
69、#160; when "01101010" => DAOUT <= "11000010" when "01101011" => DAOUT <= "10111111"
70、60; when "01101100" => DAOUT <= "10111100" when "01101101" => D
71、AOUT <= "10111010" when "01101110" => DAOUT <= "10110111"
72、 when "01101111" => DAOUT <= "10110100" when "01110000" => DAOUT <= "10110001"
73、160; when "01110001" => DAOUT <= "10101110" when "01110010" => DAOUT
74、<= "10101011" when "01110011" => DAOUT <= "10101000"
75、; when "01110100" => DAOUT <= "10100101" when "01110101" => DAOUT <= "10100010" &
76、#160; when "01110110" => DAOUT <= "10011111" when "01110111" => DAOUT <=
77、 "10011100" when "01111000" => DAOUT <= "10011001"
78、0; when "01111001" => DAOUT <= "10010110" when "01111010" => DAOUT <= "10010011"
79、 when "01111011" => DAOUT <= "10010000" when "01111100" => DAOUT <= &quo
80、t;10001101" when "01111101" => DAOUT <= "10001001"
81、60; when "01111110" => DAOUT <= "10000110" when "01111111" => DAOUT <= "10000011"
82、; when "10000000" => DAOUT <= "10000000" when "10000001" => DAOUT <= "011
83、11101" when "10000010" => DAOUT <= "01111010"
84、160; when "10000011" => DAOUT <= "01110111" when "10000100" => DAOUT <= "01110011"
85、0; when "10000101" => DAOUT <= "01110000" when "10000110" => DAOUT <= "01101101
86、" when "10000111" => DAOUT <= "01101010"
87、when "10001000" => DAOUT <= "01100111" when "10001001" => DAOUT <= "01100100"
88、60; when "10001010" => DAOUT <= "01100001" when "10001011" => DAOUT <= "01011110"
89、; when "10001100" => DAOUT <= "01011011" when
90、"10001101" => DAOUT <= "01011000" when "10001110" => DAOUT <= "01010101"
91、160; when "10001111" => DAOUT <= "01010010" when "10010000" => DAOUT <= "01001111"
92、0; when "10010001" => DAOUT <= "01001100" when "
93、;10010010" => DAOUT <= "01001001" when "10010011" => DAOUT <= "01000110" &
94、#160; when "10010100" => DAOUT <= "01000100" when "10010101" => DAOUT <= "01000001"
95、60; when "10010110" => DAOUT <= "00111110" when "1001
96、0111" => DAOUT <= "00111100" when "10011000" => DAOUT <= "00111001"
97、 when "10011001" => DAOUT <= "00110110" when "10011010" => DAOUT <= "00110100"
98、160; when "10011011" => DAOUT <= "00110001" when "10011100&
99、quot; => DAOUT <= "00101111" when "10011101" => DAOUT <= "00101100"
100、; when "10011110" => DAOUT <= "00101010" when "10011111" => DAOUT <= "00101000" &
101、#160; when "10100000" => DAOUT <= "00100101" when "10100001"
102、 => DAOUT <= "00100011" when "10100010" => DAOUT <= "00100001"
103、0; when "10100011" => DAOUT <= "00011111" when "10100100" => DAOUT <= "00011101"
104、 when "10100101" => DAOUT <= "00011011" when "10100110" =>
105、; DAOUT <= "00011001" when "10100111" => DAOUT <= "00010111"
106、60; when "10101000" => DAOUT <= "00010110" when "10101001" => DAOUT <= "00010100"
107、; when "10101010" => DAOUT <= "00010010" when "10101011" => DAO
108、UT <= "00010001" when "10101100" => DAOUT <= "00001111"
109、160; when "10101101" => DAOUT <= "00001110" when "10101110" => DAOUT <= "00001100"
110、0; when "10101111" => DAOUT <= "00001011" when "10110000" => DAOUT &l
111、t;= "00001010" when "10110001" => DAOUT <= "00001001" &
112、#160; when "10110010" => DAOUT <= "00000111" when "10110011" => DAOUT <= "00000110"
113、60; when "10110100" => DAOUT <= "00000110" when "10110101" => DAOUT <= &
114、quot;00000101" when "10110110" => DAOUT <= "00000100"
115、 when "10110111" => DAOUT <= "00000011" when "10111000" => DAOUT <= "00000010"
116、160; when "10111001" => DAOUT <= "00000010" when "10111010" => DAOUT <= "
117、00000001" when "10111011" => DAOUT <= "00000001"
118、; when "10111100" => DAOUT <= "00000001" when "10111101" => DAOUT <= "00000000" &
119、#160; when "10111110" => DAOUT <= "00000000" when "10111111" => DAOUT <= "00000
120、000" when "11000000" => DAOUT <= "00000000"
121、0; when "11000001" => DAOUT <= "00000000" when "11000010" => DAOUT <= "00000000"
122、 when "11000011" => DAOUT <= "00000000" when "11000100" => DAOUT <= "00000001&q
123、uot; when "11000101" => DAOUT <= "00000001" wh
124、en "11000110" => DAOUT <= "00000001" when "11000111" => DAOUT <= "00000010"
125、; when "11001000" => DAOUT <= "00000010" when "11001001" => DAOUT <= "00000011"&
126、#160; when "11001010" => DAOUT <= "00000100" when &q
127、uot;11001011" => DAOUT <= "00000101" when "11001100" => DAOUT <= "00000110"
128、0; when "11001101" => DAOUT <= "00000110" when "11001110" => DAOUT <= "00000111"
129、 when "11001111" => DAOUT <= "00001001" when "1
130、1010000" => DAOUT <= "00001010" when "11010001" => DAOUT <= "00001011"
131、60; when "11010010" => DAOUT <= "00001100" when "11010011" => DAOUT <= "00001110"
132、; when "11010100" => DAOUT <= "00001111" when "110101
133、01" => DAOUT <= "00010001" when "11010110" => DAOUT <= "00010010"
134、160; when "11010111" => DAOUT <= "00010100" when "11011000" => DAOUT <= "00010110"
135、0; when "11011001" => DAOUT <= "00010111" when "11011010&qu
136、ot; => DAOUT <= "00011001" when "11011011" => DAOUT <= "00011011" &
137、#160; when "11011100" => DAOUT <= "00011101" when "11011101" => DAOUT <= "00011111"
138、60; when "11011110" => DAOUT <= "00100001" when "11011111" =
139、> DAOUT <= "00100011" when "11100000" => DAOUT <= "00100101"
140、 when "11100001" => DAOUT <= "00101000" when "11100010" => DAOUT <= "00101010"
141、160; when "11100011" => DAOUT <= "00101100" when "11100100" =>
142、DAOUT <= "00101111" when "11100101" => DAOUT <= "00110001"
143、; when "11100110" => DAOUT <= "00110100" when "11100111" => DAOUT <= "00110110" &
144、#160; when "11101000" => DAOUT <= "00111001" when "11101001" => DAOUT
145、 <= "00111100" when "11101010" => DAOUT <= "00111110" when "11101011" => DAOUT <= "0100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东省普宁市高二生物下册期末考试模拟试卷带答案(综合卷)
- 2025年福建省晋江市高二历史上册期末考试模拟卷及参考答案【综合题】
- 2026年江苏省新沂市高二历史下册期末考试测试卷【网校专用】附答案
- 2026年山东省荣成市高二生物下册期末考试模拟试卷(突破训练)附答案
- 2026年浙江省余姚市高二历史上册期末考试模拟卷及参考答案(综合题)
- 2026年贵州省赤水市高二生物下册期末考试模拟考试卷附完整答案(典优)
- 《天狮产品简介》课件
- 2026年河南省邓州市高二生物上册期末考试真题及答案【典优】
- 《学习的迁移 》课件
- 《化学基础知识 》课件
- GB 24284-2026大型焰火燃放安全技术规程
- 自考00277行政管理学重点复习资料
- (零模)苏州市2027届高三年级9月阳光调研试卷 生物试卷(含答案)
- 血常规解读:从化验单到临床线索
- 2026年江苏省泰州市抗震办公室(审图中心)招聘1人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年世界职业院校技能大赛“智能网联汽车技术组”参考试题及答案
- 2025年江苏泰州市中考语文试卷真题及答案详解(精校打印)
- (2026年)护理部垂直管理及精细化管理课件
- RB/T 104-2024能源管理体系交通运输企业认证要求
- (2026年)血浆置换及血浆分离吸附护理要点课件
- 美国金融硕士申请书范文
评论
0/150
提交评论