- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
周期可调多波形发生器
EDA技术实用教程实验报告
实验名称:周期可调的多波形发生器
系 别:X X X
专 业:电子信息工程
姓 名:X X X
学 号:XXXXXXX
2010.12.2
周期可调的多波形发生器
1、实验目的
熟悉MAX+plusⅡ的VHDL文本设计流程的全过程,学会用可编程逻辑器件设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波等波形。
2、实验要求
(1)具有产生正弦波、方波、三角波3种周期性波形的功能。
(2)用开关输入编辑生成上述3中波形的线性组合波形。
(3)输出波形的频率范围100—1KHz,频率可调。
3、分析:
产生正弦波,是通过预先计算出正弦波表,然后查表输出实现的(此处一个周期正弦波取64点)。
产生方波,是通过交替送出全0和全1,给以适当的延时实现的。
产生三角波,是通过由全0不断加同一个数,到全1之后再不断减同一个数来实现的。
4、所用器件:EP1K30QC208-3和EPC2LC20以及D/A转换芯片。
5、流程图
6、各模块功能
模块CHUZHI提供初值,供下一个模块FANA分频时用,通过不同的初值,是由输入a决定的。
library ieee;
use ieee.std_logic_1164.all;
entity chuzhi is
port(a:in std_logic_vector(3 downto 0);
q:out integer range 0 to 312);
end chuzhi;
architecture chu_arc of chuzhi is
begin
process(a)
begin
case a is
when 0001 =q=313;
when 0010 =q=156;
when 0011 =q=104;
when 0100 =q=78;
when 0101 =q=63;
when 0110 =q=52;
when 0111 =q=45;
when 1000 =q=39;
when 1001 =q=35;
when 1010 =q=31;
when others =null;
end case;
end process;
end chu_arc;
模块FANA的功能是将前一模块CHUZHI送来的初值对时钟进行分频,得到不同的工作频率,从而调节波形频率。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fana is
port(a:in integer range 0 to 312;
clk:in std_logic;
q:out std_logic);
end fana;
architecture fan_arc of fana is
begin
process(clk)
variable b,d:std_logic;
variable c:integer range 0 to 312;
begin
if clkevent and clk=1then
if b=0then
c:=a-1;
b:=1;
else
if c=1 then
b:=0;
d:=not d;
else
c:=c-1;
end if;
end if;
end if;
q=d;
end process;
end fan_arc;
模块SQUARE的功能是产生方波。
library ieee;
use ieee.std_logic_1164.all;
entity square is
port(clk,clr:in std_logic;
q:out integer range 0 to 255);
end square;
architecture sq_arc of square is
signal a:bit;
begin
process(clk,clr)
variable cnt:integer;
begin
if clr=0then
a=0;
elsif clkevent and clk=1then
if cnt31 then
cnt:=cnt+1;
else
cnt:=0;
a=not a;
end if;
end if;
end process;
process(clk,a)
begin
if clkevent and clk=1then
if a=1then
q=255;
else
q=0;
end if;
end if;
end process;
end sq_arc;
方波的功能仿真:
模块DELTA的功能是产生三角波。
library ieee;
us
文档评论(0)