ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:297.53KB ,
资源ID:15557401      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15557401.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信号发生器的设计任务书福建工程学院.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

信号发生器的设计任务书福建工程学院.docx

1、信号发生器的设计任务书福建工程学院福建工程学院课程设计实验报告专 业 信息科学与工程学院 班 级 11级 座 号 姓 名 日 期 2013.01.02 一、 实验目的1.掌握内部LPM-ROM模块的调用方法。2.熟悉信号发生器的设计方法。3.了解高速DA芯片TLC5602的工作原理。二、 实验内容1. 通过对AD转换芯片TLC5602的控制,输出预定的正弦波、三角波和方波和锯齿波信号。2. 通过拨动开关进行各种输出信号间的切换。3. 通过按键对输出波形的频率进行控制(分为频加和频减按键)。4. 能输出之前产生的各种波形间的叠加信号(16种叠加波形)。5. 使用数码管来显示当前输出信号的频率,通

2、过LED灯来实现当前信号的指示。6. 对输出信号的参数能进行调节,此实验主要是对方波的占空比进行了调节。三、 实验原理本实验要求使用开发平台上现有的并行D/A转换器TLC5602来产生四种频率可调的波形:正弦波、方波、三角波、锯齿波。锯齿波、三角波产生的原理比较简单,锯齿波我们可以采用0-255的循环加法计数器来实现,三角波采用0-255-0的循环加减法计数器来实现。方波产生的原理是让计数器在0和255时各保持输出半个周期。正弦波的产生比较复杂,一般采用查表法来实现,正弦表值可以用MATLAB,C等程序语言生成。在一个周期取样点越多则输出的波形失真度越小,但是点越多存储正弦波表值所需要的空间就

3、越大,编写就越复杂。正弦波波形数据ROM可以由多种方式实现,如逻辑方式在FPGA中实现,或利用LPM-ROM来实现。相比之下,LPM-ROM实现起来更快,更方便。在这个实验中我们可将这四种波形的数据均放入LPM-ROM内,我们只需要对每种波形的起始地址进行控制即可实现对四种波形的控制输出。系统基准始终选择24MHZ,通过分频器分频,将分频后的时钟信号送给各个波形产生模块的时钟输入口。分频器的分频比由按键S1和S2控制,S1和S2未按下为初始分频,分频比为1:(256*2*2*2*2*2*2*2*2)=1:65536(即“inclk”最低频率为366HZ),S1每按下一次分频改变一次,为频率上调

4、;S2每按下一次分频改变一次,为频率下调。由于基准时钟确定,所以各分频时钟是确定的,所以可以用S1和S2同时控制译码显示电路,译码显示接到八位数码管显示当前频率(实现写好在译码ROM中)。四个波形产生器也可看成一个ROM,一个周期256个采样点存在ROM里,其触发信号为“inclk”时钟信号。四种波形信号全部送到选择叠加电路,波形选择叠加受控于sw1-4,四个拨码开关状态分别代表四个信号输入状态,如用“1”代表开“0”代表关,sw4&sw3&sw2&sw1=“1000”输出正弦波,sw4&sw3&sw2&sw1=“1100”输出正弦波与方波叠加后的信号,以此类推。当前信号的类型通过LED灯显示

5、。选择叠加后的信号经过8位DA转换器,接到示波器上,可以直观地观察到输出信号的波形与频率等信息。四、 实验步骤1. 电路系统框图信号发生器逻辑电路系统框图2. 电路模块概述本电路分为9个小模块:分频模块、正弦波产生模块、方波产生模块、三角波产生模块、锯齿波产生模块、波形叠加模块、DA转换模块(实验板现成的)、LED灯指示模块与译码显示模块。本设计的思想主要是将程序模块化,各个模块分开来设计,先设计各个模块的程序,然后采用例化语句将各个模块综合在一个SignalGenerator.vhd文件中,最终实现程序功能。分频模块: 对基准频率进行分频操作,8分频正弦波产生模块:产生正弦波方波产生模块:

6、产生方波三角波产生模块:产生三角波锯齿波产生模块:产生锯齿波波形叠加模块: 可产生16种组合波形DA转换模块: DA转换LED灯指示模块: 指示当前波形的类型译码显示模块: 显示当前频率的大小3. 各模块之间的联系五、 仿真波形六、 硬件测试 波形类型LED指示灯 方波波形显示 叠加后波形显示 数码管显示频率七、 总结通过这次课程设计,初步掌握了利用VHDL 语言设计系统的方法。本次课程设计主要是利用VHDL语言进行多功能信号发生器的设计。课程设计期间,对课本上学习到的理论知识得到了一个很好的应用。设计之初,感觉到比较迷茫,无从下手。但是通过网上查阅相关资料,觉得其实并没有想象中的那么难。在多

7、方面查阅资料之后,最终确立了设计方案。设计完之后的电路,除了有基本功能外,添加了数码管显示频率、LED指示灯、频加频减控制按键、拨码开关控制波形叠加等功能。设计期间,存在了很多疑惑,通过网上查阅资料和询问同学都得到了很好的解决。总之,通过这次课程设计对硬件电路设计(VHDL)有了一个较深刻的认识。八、 附录VHDL代码SignalGenerator.vhd-FileName : SignalGenerator.vhd-Function : 采用例化语句综合各模块-Created By : HZT-Created Data : 2013.12.25-Modify Data : -LIBRARY

8、IEEE; -顶层设计USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SignalGenerator IS PORT( CLK : IN STD_LOGIC; -时钟基准输入 P : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -频率输出 LED : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -LED灯显示开关状态 CLKOUT: OUT STD_LOGIC; -时钟脉冲输出 DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -

9、频率数据输出 WSEL : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -位选择 K1 : IN STD_LOGIC; -正弦波信号输出按键 K2 : IN STD_LOGIC; -方波信号输出按键 K3 : IN STD_LOGIC; -三角波信号输出按键 K4 : IN STD_LOGIC; -锯齿波信号输出按键 S1 : IN STD_LOGIC; -频加按键 S2 : IN STD_LOGIC -频减按键 );END ENTITY SignalGenerator;ARCHITECTURE behav OF SignalGenerator IS -正弦波声明- C

10、OMPONENT Sin PORT( ADDRESS : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -8位地址信号 INCLOCK : IN STD_LOGIC; -地址锁存时钟 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; -方波声明- COMPONENT Square PORT( ADDRESS : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -8位地址信号 INCLOCK : IN STD_LOGIC; -地址锁存时钟 Q : OUT STD_LOGIC_VECTOR(7 DOW

11、NTO 0) ); END COMPONENT; -三角波声明- COMPONENT Triangle PORT( ADDRESS : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -8位地址信号 INCLOCK : IN STD_LOGIC; -地址锁存时钟 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; -锯齿波声明- COMPONENT Sawtooth PORT( ADDRESS : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -8位地址信号 INCLOCK : IN STD_LOG

12、IC; -地址锁存时钟 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; -显示声明- COMPONENT Display IS PORT( DCLK : IN STD_LOGIC; -分频时钟 DISOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -显示输出 SELD : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -位选 SELQ : IN STD_LOGIC_VECTOR(2 DOWNTO 0) -频选 ); END COMPONENT; -信号定义- SIGNAL Q1

13、: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL P1 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL P2 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL P3 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL P4 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL S_P : STD_LOGIC_VECTOR(2 DOWNTO 0); -按键控制下分频信号 SIGNAL QOUT : STD_LOGIC_VECTOR(7 DOWNTO 0); SI

14、GNAL QIN : STD_LOGIC; SIGNAL COUNT : INTEGER RANGE 0 TO 1000000; SIGNAL C_CLK : STD_LOGIC; -按键控制下时钟信号 SIGNAL WAV_OVE : STD_LOGIC_VECTOR(3 DOWNTO 0); -波形叠加信号 BEGIN -分频- PROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN IF(QOUT = 11111111) THEN QOUT = 00000000; ELSE QOUT = QOUT + 1; END IF; END IF; END

15、PROCESS; CLKOUT = CLK; -S1、S2按键消抖- PROCESS(CLK, S1, S2) BEGIN IF CLKEVENT AND CLK = 1 THEN IF (S1 = 0 OR S2 = 0) THEN IF COUNT = 1000000 THEN COUNT = COUNT; ELSE COUNT = COUNT + 1 ; END IF; IF COUNT = 999999 THEN C_CLK = 0; ELSE C_CLK = 1; END IF; ELSE COUNT = 0 ; END IF; END IF; END PROCESS; -按键控制频

16、加频减- PROCESS(C_CLK, S1, S2) BEGIN IF (C_CLKEVENT AND C_CLK = 1) THEN IF S1 = 1 THEN -当按下S1时频率加 S_P = S_P + 1; IF S_P = 111 THEN S_P = 000; -当频率为111时,恢复为000 END IF; END IF; IF S2 = 1 THEN -当按下S2时频率减 S_P = S_P - 1; IF S_P = 000 THEN S_P QIN QIN QIN QIN QIN QIN QIN QIN NULL; END CASE; END PROCESS; -分频后

17、频率- PROCESS(QIN) BEGIN IF QINEVENT AND QIN = 1 THEN Q1 Q1, Q = P1, INCLOCK = CLK); -正弦波例化 U2:Square PORT MAP(ADDRESS = Q1, Q = P2, INCLOCK = CLK); -方波例化 U3:Triangle PORT MAP(ADDRESS = Q1, Q = P3, INCLOCK = CLK); -三角波波例化 U4:Sawtooth PORT MAP(ADDRESS = Q1, Q = P4, INCLOCK = CLK); -锯齿波例化 U5:Display POR

18、T MAP(DCLK = CLK, DISOUT = DOUT, SELD = WSEL, SELQ = S_P); -显示例化 WAV_OVE P = ZZZZZZZZ; LED P = P1; LED P = P2; LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P1) SRL 1)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P2) SRL 1); LED P = P3; LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P1) SRL 1)+(TO_STDLOGICVECTOR(TO_BITVECTOR

19、(P3) SRL 1); LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P2) SRL 1)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P3) SRL 1); LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P1) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P2) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P3) SRL 2); LED P = P4; LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P1

20、) SRL 1)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P4) SRL 1); LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P2) SRL 1)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P4) SRL 1); LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P1) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P2) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P4) SRL 2); LED P = (TO_ST

21、DLOGICVECTOR(TO_BITVECTOR(P3) SRL 1)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P4) SRL 1); LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P1) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P3) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P4) SRL 2); LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P2) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTO

22、R(P3) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P4) SRL 2); LED P = (TO_STDLOGICVECTOR(TO_BITVECTOR(P1) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P2) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P3) SRL 2)+(TO_STDLOGICVECTOR(TO_BITVECTOR(P4) SRL 2); LED NULL; END CASE; END PROCESS;END behav;Display.vhd-数码管显示对照表-

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

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