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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于QUARTUSII的FPGA波形发生器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于QUARTUSII的FPGA波形发生器.docx

1、基于QUARTUSII的FPGA波形发生器正弦波、不同占空比矩形波信号发生器设计一、设计目的1、掌握正弦波、不同占空比矩形波信号发生的设计方法。2、掌握QUARTUSII 软件VHDL语言输入设计的全过程。3、掌握数据存储及传递的过程。二、设计要求本实验要求基于EDA/SOPC实验平台上的FPGA及DAC,产生一定频率的正弦波、不同占空比矩形波信号,能通过键盘控制输出信号,并测量输出信号的频率和输出电压,计算输出频率与原设计频率的误差。三、方案设计信号发生器组成方框图为:图1 组成方框图设计的方案: 1、制作正弦波.mif文件A、采用excel下拉自动累加、逻辑运算功能生成512位的正弦波数据

2、。将得到的excel文件另存为“Unicode文本(*.txt)”文件。B、打开quartus2,新建一个TXT文件(file-new-other file-txt文件),将MIF文件的格式说明拷贝过来,再得到的TXT文本文件中的数据全部复制到begin与end中间,另存为“.mif”。下面是mif文件的格式:WIDTH=8;DEPTH=512;ADDRESS_RADIX=UNS;DATA_RADIX=UNS;CONTENT BEGIN . . . End; 2、将电路分为4大模块,第一个模块是分频电路;第二、三个模块是正弦波和方波产生电路;第四个模块是选择输出模块。3、输出波形理论值: A、

3、每个时钟信号上升沿,分频电路自动累加一。当分频输入为“11111”时吗,输出频率最大,为外部时钟频率的1/2。 图 2 分频电路仿真图B、储存一个周期的信号的储存器是512位,每来一个时钟信号从一个储存单位取一个数据。所以输出的最大的频率为fin(输入频率)/512*2;同理可知输出的最小频率为fin(输入频率)/512*32*2。本实验时钟信号输入采用1.5mhz时钟信号,理论频率值为:最大频率1464.84hz最小频率45.78hz 表1 输出频率理论值四、设计原理和电路图(1)分频电路该电路的根本任务是对输入的时钟信号进行分频。实现这一功能可用累加器、锁存器和比较器等。在时钟信号上升沿时

4、立即对锁存器的数据(cnt5)进行累加。同时还必须注意,检查cnt5是否为“11111”。当cnt5为“11111”时,对输出频率进行取反。同时对cnt5进行更新。分频电路Vhdl设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin is port( clk: in std_logic; f1: in std_logic_vector(4 downto 0); newclk:out std_logic );end fenpin;architecture one of fe

5、npin is signal abc: std_logic; begin process(clk,f1) -对时钟进行分频,控制信号频率。 variable cnt5:std_logic_vector(4 downto 0); begin if (clkevent and clk=1) then if cnt5=11111 then cnt5:=f1; abc=(not abc); else cnt5:=cnt5+1; end if; end if; newclk=abc; end process;end;图2 分频电路F1五个输入为分频控制键。Clk为外电路输入时钟信号,newclk为输出时

6、钟信号。(2)方波和正弦波lpm_rom元件该电路的根本任务是读取波形8位数字量。可由累加器、锁存器和储存器组成。累加器对9位地址进行累加,使电路能够逐级读取储存器单位数据。当地址累加到511时,将其制0。A、定制lpm_rom文件 新建一个block文件,搜索lpm_rom文件,然后根据设计向导完成lpm_rom元件定制。B、正弦波8为数字量取址vhdl设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sin1 is port( clk:in std_logic; sin:out

7、 std_logic_vector(7 downto 0) );end;architecture one of sin1 is component lpm_rom0 port(address:in std_logic_vector(8 downto 0); clock:in std_logic; q:out std_logic_vector(7 downto 0) ); end component; signal q1:std_logic_vector(8 downto 0); begin process(clk) -逐步选取rom地址。 begin if (clkevent and clk=

8、1) then q1q1,q=sin,clock=clk);end;图 4正弦波lpm_rom元件 Clk为时钟信号输入(接分频器的输出端口newclk),sin为正弦波信号8为数字量输出。 图5 方波lpm_rom元件 Clk为时钟信号输入(接分频器的输出端口newclk),sq为方波信号8为数字量输出 (3)该电路是简单的数据选择电路,由数据选择器构成。当输入x为高电平时,选择正弦波输出;x为低电平时,选择方波输出。 选择电路vhdl设计: library ieee;use ieee.std_logic_1164.all;entity choice is port( x: in std_l

9、ogic; a: in std_logic_vector(7 downto 0); b: in std_logic_vector(7 downto 0); y: out std_logic_vector(7 downto 0) );end choice;architecture one of choice is begin process(x,a,b) begin if x=1 then y=a; else yclk1,sq=b1);u2:sin1 port map(clk=clk1,sin=a1);u3:fenpin port map(clk=clk,f1=f,newclk=clk1);u4

10、:choice port map(x=c,a=a1,b=b1,y=xh);end; 五、仿真、实验结果与现象(1)完成设计,进行编译,修改错误的地方。对设计进行仿真。 图7 仿真图Clk为时钟信号输入端口,c为方波、正弦波信号输出选择输入端口,f为分频控制输入端口,xh为信号输出端口。当输入端口c为高电平时,端口xh输出为正弦波信号;当c为低电平时,端口xh输出为方波信号。F为5位的信号输入端口,是对输入信号clk进行不同倍数的分频。从而控制正弦波与方波的频率。Xh输出端口将读取的正弦波与方波的8为数字量输出。(2)进行管脚配置 表2 管脚分配表再次进行编译,使管脚生效。选择模式5,进行下载。

11、选择1.5mhz时钟信号,使用示波器观察输出波形,记录实验数据。波形正弦波方波最大频率1.46khz1.47khz最小频率45.66hz45.66hz峰峰值8.64v8.72v 表3 实验数据记录实验现象 图8 正弦波 图9 方波六、设计总结与心得在本次实验设计首次采用了lpm_rom模块,对于lpm_rom模块使用的“.mif”文件,在制作该文件有很多方法,使用c程序的循环运算、使用matlab软件、使用excel表格等等,很多工具都可以制作出。在未来的设计中,我相信将会更多的运用到我们在大学所学的知识,而这些知识总是被急功近利的我们认为是没用。实验只是在gw48实验箱进行下载,测试。如果是制作成品,对我们来说将是更大的挑战。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1