欢迎来到天天文库
浏览记录
ID:41889676
大小:352.53 KB
页数:6页
时间:2019-09-04
《VHDL语言设计信号发生器实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验四用VHDL设计多功能信号发生器一、设计任务基于《VHDL语言》,通过给定的仪器(EDA6000试验箱)设计一个多功能信号发牛器,要求:(1)能产生周期性止弦波、方波、三角波、锯齿波以及用户自己编辑的特定波形(选作);(2)输出信号的频率范围为100Hz~200KHz,且输出频率可以调节;(3)具有显示输出波形、频率的功能。(选作)二、系统顶层框图在原理框图中,正(余)弦查找表由ROM构成,内部存有一个完整周期正(余)弦波的数字幅度信息,每个查找表的地址对应止(余)弦波幅度信号,同时输出到数模转换器(DAC)输入端,DAC
2、输岀的模拟信号经过低通滤波器(LPF),可以得到一个频谱纯净的正(余)弦波。二、设计步骤用VHDL语言结合原理图设计实现一个函数信号发生器,输出正眩波、方波和三角波三种波形。将频率控制、分频、三角波、正弦波、方波发生邓各个模块分别用VHDL语言编程为一个子程序,并把每一个模块转换成图形文件,然后在原理图编辑框调用这些图形模块,连接电路如上图系统顶层框图所示。通过按键1到按键8控制频率调节f(7...0),用按键6、按键7、按键8控制dlt、sin、sqr波形选通,最后把八位输出接DAC0832通过D/A转换,从示波器上就能看到
3、波形输出。按下不同的按键输出不同的波形及频率。三、系统设计(1)数控分频器模块在时钟的作用下,通过预置分频数DIN,来改变输出频率。假如分频系数为N,波形存储模块存储一个周期的波形,实验里按照一个周期波形采样64个点存储在波形存储模块里。则输出频率f4、的DA0832,输入有8个数据端,范围是0到255;而且设置64个时钟周期为一个三角波周期,所有每次加、减为8.锯齿波的存储数据与三角波类似。方波可以通过交替输出全0和全1,并给以32个周期的延时来实现。正弦波:要通过波形变换实现把sina变换成(cos0+1)*127.5的形式进行釆样,然后变换成8位二进制码,存储在波形存储器里。(3)数据选择器模块在波形开关的控制下,选择相应的波形输岀。对以用3个按键来控制波形选择(4).LED显示模块(选作)LED显示模块主要是完成频率控制字的显示,由于本次实验采用八位的由键盘输入的频率5、控制字,累计寻址,读取8位地址长度256点的一个周期波形的数字幅度信息,所以频率控制字控制着频率的大小,而恰好此时的频率控制字就是系统输出波形的频率,所以,LED显示的也是波形的频率。此模块主要的功能是将外部键盘的8位二进制数转换成三位BCD码。四、实验内容设计程序libraryieee;useieee・std_logic_l164・al1;useieee・stdlogicunsigned・dll;entityVhdl1isport(elk,sei:instd_logic;pout:outintegerrange255down6、to0);end;architecturedaceofVhdl1issignalq:integerrange63downto0;signalql:integerrange2downto0;signald:integerrange255downto0;beginprocess(elk)beginifelk'eventandclk=,Tthenifq<63thenq<=q+l;elseq〈=0;endif;endif;endprocess;process(sei)beginifseTeventandsei二Tthenifql<3t7、henql<=ql+l;elseql<=0;endif;endif;endprocess;process(q,ql)begincaseqliswhen0=>正弦波caseqiswhen00>d«255;when01=>d<=254;when02>d<=252;when03=>d<=249;when04>d<=245;when05=>d<=239;when06>d<=233;when07=>d<=225;when08>d<=217;when09=>d<=207;when10>d<=197;whenll=>d<=186;when18、2>d<=174;when13=>d<=162;when14>d<=150;when15=>d<=137;when16>d<=124;when17二〉cK=112;when18>d<=99:when19=>d<=87;when20=>d<=75;when21=>d<=64;w
4、的DA0832,输入有8个数据端,范围是0到255;而且设置64个时钟周期为一个三角波周期,所有每次加、减为8.锯齿波的存储数据与三角波类似。方波可以通过交替输出全0和全1,并给以32个周期的延时来实现。正弦波:要通过波形变换实现把sina变换成(cos0+1)*127.5的形式进行釆样,然后变换成8位二进制码,存储在波形存储器里。(3)数据选择器模块在波形开关的控制下,选择相应的波形输岀。对以用3个按键来控制波形选择(4).LED显示模块(选作)LED显示模块主要是完成频率控制字的显示,由于本次实验采用八位的由键盘输入的频率
5、控制字,累计寻址,读取8位地址长度256点的一个周期波形的数字幅度信息,所以频率控制字控制着频率的大小,而恰好此时的频率控制字就是系统输出波形的频率,所以,LED显示的也是波形的频率。此模块主要的功能是将外部键盘的8位二进制数转换成三位BCD码。四、实验内容设计程序libraryieee;useieee・std_logic_l164・al1;useieee・stdlogicunsigned・dll;entityVhdl1isport(elk,sei:instd_logic;pout:outintegerrange255down
6、to0);end;architecturedaceofVhdl1issignalq:integerrange63downto0;signalql:integerrange2downto0;signald:integerrange255downto0;beginprocess(elk)beginifelk'eventandclk=,Tthenifq<63thenq<=q+l;elseq〈=0;endif;endif;endprocess;process(sei)beginifseTeventandsei二Tthenifql<3t
7、henql<=ql+l;elseql<=0;endif;endif;endprocess;process(q,ql)begincaseqliswhen0=>正弦波caseqiswhen00>d«255;when01=>d<=254;when02>d<=252;when03=>d<=249;when04>d<=245;when05=>d<=239;when06>d<=233;when07=>d<=225;when08>d<=217;when09=>d<=207;when10>d<=197;whenll=>d<=186;when1
8、2>d<=174;when13=>d<=162;when14>d<=150;when15=>d<=137;when16>d<=124;when17二〉cK=112;when18>d<=99:when19=>d<=87;when20=>d<=75;when21=>d<=64;w
此文档下载收益归作者所有