- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FPGA信号发生器实验呢
FPGA综合实验部分
一、实验名称:
基于GW48开发系统的多功能函数信号发生器设计与实现。
二、实验目的:
1﹑熟练掌握QuartusII软件的使用;
2﹑学会用VHDL语言对信号发生器进行设计;
3﹑熟悉GW48试验箱的硬件结构。
三、实验设备:
GW48试验箱,示波器。
四、实验要求:
(一)功能要求:
采用GW48开发系统实现多功能函数信号发生器,要求输出方波、三角波(斜升和斜降)、阶梯波、正弦波等波形,编程语言采用VHDL,开发环境采用QuartusII。
(二)设计要求:
1、硬件设计:要以现有GW48开发系统为基础,主要实现多种波形的编程,同时设计输出信号的滤波器电路,最终在示波器上可观测到多种波形。
2、软件设计:
(1)在QuartusII开发环境下实现方波、三角波(斜升和斜降)、阶梯波、等波形的VHDL编程,并对结果进行仿真;
(2)在QuartusII开发环境下实现正弦波的VHDL编程,并对结果进行仿真,推荐采用LPM兆功能块实现;
五、实验内容:
1、明确实验要求。
2、进一步熟悉GW48实验箱的硬件结构,并以此为基础设计满足本实验要求的滤波器原理图。
3、以GW48实验箱为基础,结合示波器进行硬件验证。
4、记录并分析相关实验数据和结果。
六、实验过程:
1﹑使用VHDL语言设计信号发生器;
2﹑利用QuartusII软件绘制电路图;
3﹑对程序进行编译检错;
4﹑进行软件仿真并记录实验结果;
5﹑进行硬件仿真并记录实验结果。
七、实验结果:
1.示波器图形:
锯齿波(斜降)和三角波:
锯齿波(斜升)和上升波:
正弦波和方波:
梯形波和阶梯波:
2.软件仿真图形:
锯齿波(斜降)
三角波:
锯齿波(斜升):
上升波:
正弦波:
方波:
梯形波:
梯形波:
八、实验结果分析:
由上述实验结果可看出,硬件仿真与软件仿真的图形有微小的差别,这是由于综合因素干扰所致,整体图形是正确的,因此,此次试验基本完成,达到预期结果。
九、实验原理图和程序流程码:
原理图:
程序流程码:
--锯齿波(斜降)
LIBRARY IEEE;
USE IEEE. STD_LOGIC_1164.ALL;
USE IEEE. STD_LOGIC_UNSIGNED.ALL;
ENTITY zlj_DCRS IS
PORT (clk,reset: IN STD_LOGIC;
q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END zlj_DCRS;
ARCHITECTURE behave OF zlj_DCRS IS
BEGIN
PROCESS (clk,reset)
VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);
BEGIN
IF reset=0THEN
tmp:
ELSIF clkEVENT AND clk=1THEN
IF tmpHEN
Tmp:
ELSE
tmp:=tmp-1;
END IF;
END IF;
q=tmp;
END PROCESS;
END behave;
-- 三角波
LIBRARY IEEE;
USE IEEE. STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY zlj_DELTA IS
PORT (clk,reset: IN STD_LOGIC;
q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END zlj_DELTA;
ARCHITECTURE behave OF zlj_DELTA IS
BEGIN
PROCESS (clk,reset)
VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);
VARIABLE a: STD_LOGIC;
BEGIN
IF reset=0THEN
tmp:
ELSIF clkEVENT AND clk=1THEN
IF a=0THEN
IF tmpHEN
tmp:
a:=1;
ELSE
tmp:=tmp+1;
文档评论(0)