基于FPGA的函数发生器Word文档下载推荐.docx

上传人:b****4 文档编号:7738736 上传时间:2023-05-09 格式:DOCX 页数:17 大小:211.54KB
下载 相关 举报
基于FPGA的函数发生器Word文档下载推荐.docx_第1页
第1页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第2页
第2页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第3页
第3页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第4页
第4页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第5页
第5页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第6页
第6页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第7页
第7页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第8页
第8页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第9页
第9页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第10页
第10页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第11页
第11页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第12页
第12页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第13页
第13页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第14页
第14页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第15页
第15页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第16页
第16页 / 共17页
基于FPGA的函数发生器Word文档下载推荐.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于FPGA的函数发生器Word文档下载推荐.docx

《基于FPGA的函数发生器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于FPGA的函数发生器Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。

基于FPGA的函数发生器Word文档下载推荐.docx

BEGIN

 IFRESET='

0'

THEN

TMP:

="00000000"

;

   ELSIFCLK'

EVENT ANDCLK='

1'

THEN

  IFTMP="

11111111"

 THEN

   TMP:

="

00000000"

 ELSE

 TMP:

=TMP+1;

   END IF;

 ENDIF;

  Q<

=TMP;

ENDPROCESS;

ENDZENG_ARC;

2.递减斜波模块的设计:

递减斜波模块JIAN见图1.3。

它是递减斜波产生模块。

图1.3模块JIAN

递减斜波模块ZENG的VHDL程序设计:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYJIANIS

PORT(CLK,RESET:

IN STD_LOGIC;

   Q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDJIAN;

ARCHITECTUREJIAN_ARCOFJIANIS

BEGIN

PROCESS(CLK,RESET)

VARIABLE TMP:

STD_LOGIC_VECTOR(7 DOWNTO0);

 BEGIN

  IFRESET='

THEN

 TMP:

11111111"

 ELSIF CLK'

EVENTANDCLK='

   IFTMP="00000000"

THEN

  TMP:

="

11111111"

 ELSETMP:

=TMP-1;

ENDIF;

Q<=TMP;

 ENDPROCESS;

END JIAN_ARC;

3.三角波模块的设计:

三角波模块DELTA见图1.4。

它是三角波产生的模块。

图1.4模块DELTA

三角波模块DELTA的VHDL程序设计:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYDELTAIS

PORT(CLK,RESET:

INSTD_LOGIC;

 Q:

OUT STD_LOGIC_VECTOR(7 DOWNTO0));

ENDDELTA;

ARCHITECTUREDELTA_ARCOF DELTAIS

BEGIN

 PROCESS(CLK,RESET)

  VARIABLETMP:

STD_LOGIC_VECTOR(7DOWNTO0);

VARIABLEA:

STD_LOGIC;

 BEGIN

 IFRESET='

 TMP:

="00000000"

ELSIF CLK'

EVENT ANDCLK='

 THEN

IFA='0' THEN

 IFTMP="

11111110"

TMP:

11111111"

A:

='

1'

    ELSETMP:

=TMP+1;

ENDIF;

ELSE

 IFTMP="

00000001"

 THEN

  TMP:

00000000"

A:

='0'

 ELSETMP:

=TMP-1;

  END IF;

ENDIF;

 ENDIF;

Q<

=TMP;

 END PROCESS;

ENDDELTA_ARC;

4.阶梯波模块的设计:

阶梯波模块LADDER见图1.5。

它是阶梯波产生的模块,改变递增的常数,可改变阶梯的多少。

图1.5模块LADDER

阶梯波模块LADDER的VHDL程序设计:

LIBRARY IEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYLADDER IS

PORT(CLK,RESET:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

END LADDER;

ARCHITECTURELADDER_ARCOFLADDER IS

 BEGIN

 PROCESS(CLK,RESET)

VARIABLETMP:

STD_LOGIC_VECTOR(7DOWNTO0);

 VARIABLE A:

STD_LOGIC;

 BEGIN

 IFRESET='

0' THEN

00000000"

 ELSIFCLK'EVENTANDCLK='

THEN

 IFA='

0'THEN

  IF TMP="11111111"THEN

="00000000"

  ELSE

=TMP+16;

      END IF;

 A:

0'

 ENDIF;

  Q<

=TMP;

 ENDPROCESS;

ENDLADDER_ARC;

5.正弦波模块的设计:

正弦波模块SIN见图1.6。

它是正弦波产生的模块。

图1.6 模块SIN

正弦波模块SIN的VHDL程序设计:

LIBRARY IEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSINIS

PORT(CLK,CLR:

INSTD_LOGIC;

 D:

OUTINTEGERRANGE0TO255);

ENDSIN;

ARCHITECTURE SIN_ARCOFSINIS

 BEGIN

 PROCESS(CLK,CLR)

VARIABLE TMP:

INTEGERRANGE0TO63;

IFCLR='

THEN

D<=0;

ELSIFCLK'EVENTANDCLK='

  IF TMP=63THEN

 TMP:

=0;

 ELSE TMP:

=TMP+1;

 ENDIF;

CASE TMPIS

WHEN00=>

D<

=255;

WHEN01=>

D<=254;

WHEN02=>

D<=252;

WHEN03=>

=249;

WHEN04=>D<=245;

WHEN05=>D<=239;

 WHEN 06=>

D<

=233;

WHEN 07=>D<

=225;

WHEN08=>

=217;

WHEN09=>

=207;

WHEN10=>

=197;

WHEN11=>

=186;

WHEN12=>D<

=174;

WHEN13=>

=162;

WHEN14=>

=150;

 WHEN15=>

=137;

WHEN16=>

=124;

WHEN 17=>

D<=112;

 WHEN 18=>

=99;

WHEN19=>

=87;

WHEN20=>

=75;

 WHEN 21=>

=64;

WHEN22=>

=53;

WHEN 23=>

=43;

 WHEN24=>D<

=34;

WHEN25=>D<

=26;

WHEN26=>D<

=19;

  WHEN 27=>

=13;

WHEN28=>

=8;

WHEN 29=>

=4;

 WHEN30=>

D<=1;

WHEN31=>

=0;

WHEN32=>D<

=0;

 WHEN33=>

=1;

WHEN 34=>

WHEN35=>

WHEN 36=>

=13;

 WHEN37=>

D<=19;

WHEN38=>

D<=26;

WHEN 39=>D<=34;

 WHEN 40=>

=43;

WHEN41=>

=53;

 WHEN42=>D<=64;

WHEN43=>

D<=75;

WHEN44=>

=87;

 WHEN 45=>

=99;

WHEN46=>

=112;

WHEN47=>

D<=124;

 WHEN 48=>

=137;

WHEN 49=>D<

=150;

WHEN50=>

=162;

 WHEN51=>D<

=174;

WHEN 52=>

WHEN53=>

=197;

 WHEN54=>

=207;

WHEN55=>

=217;

WHEN56=>D<

=225;

WHEN57=>

D<=233;

WHEN58=>

=239;

WHEN59=>D<

=245;

WHEN60=>

D<=249;

WHEN61=>D<

=252;

WHEN62=>

D<=254;

 WHEN63=>D<

=255;

WHEN OTHERS=>

NULL;

 ENDCASE;

ENDIF;

ENDPROCESS;

END SIN_ARC;

6.方波模块的设计:

方波模块SQUARE见图1.7。

它是方波产生的模块。

图1.7 模块SQUARE

方波模块SQUARE的VHDL程序设计:

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSQUAREIS

PORT(CLK,CLR:

IN STD_LOGIC;

   Q:

OUT INTEGERRANGE0TO255);

ENDSQUARE;

ARCHITECTURESQUARE_ARC OFSQUARE IS

SIGNALA:

BIT;

  PROCESS(CLK,CLR)

VARIABLECNT:

INTEGERRANGE0TO63;

 BEGIN

IFCLR='

A<='

 ELSIFCLK'

EVENTAND CLK='1'THEN

 IFCNT<

63 THEN

CNT:

=CNT+1;

 ELSECNT:

A<=NOT A;

END PROCESS;

PROCESS(CLK,A)

BEGIN

IF CLK'

EVENTANDCLK='1'THEN

 IFA='1'

 Q<

=255;

 ELSE  Q<

=0;

ENDIF;

ENDPROCESS;

 ENDSQUARE_ARC;

7.选择模块的设计:

选择模块CH61A见图1.8。

它是输出波形选择模块,根据外部的开关状态选择输出波形。

图1.8 模块CH61A

选择模块CH61A的VHDL程序设计:

LIBRARYIEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CH61AIS

PORT(SEL:

IN STD_LOGIC_VECTOR(2DOWNTO0);

  D0,D1,D2,D3,D4,D5:

INSTD_LOGIC_VECTOR(7 DOWNTO 0);

     Q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDCH61A;

ARCHITECTURECH61A_ARCOF CH61AIS

 BEGIN

PROCESS(SEL)

BEGIN

 CASESELIS

 WHEN"

000"

=>

Q<

=D0;

WHEN"

001"

=>

Q<=D1;

WHEN"

010"

=>Q<

=D2;

 WHEN"011"

Q<=D3;

WHEN"

100"

Q<=D4;

 WHEN"

101"

=D5;

  WHENOTHERS=>

NULL;

 ENDCASE;

END PROCESS;

ENDCH61A_ARC;

四、设计工具

计算机一台,QuartusⅡ软件

五、设计结果

1.若输入时钟信号CLK为100MHz,复位信号RESET='

当选择信号SEL="000"

时,输出Q应为递增斜波,如图1.9所示:

图1.9递增斜波

注:

仿真为时序仿真,所以输出波形存在瑕疵。

2.若输入时钟信号CLK为100MHz,复位信号RESET='

当选择信号SEL="

时,输出Q应为递减斜波,如图1.10所示:

图1.10 递减斜波

仿真为时序仿真,所以输出波形存在瑕疵。

3.若输入时钟信号CLK为100MHz,复位信号RESET='1'

当选择信号SEL="

010"时,输出Q应为三角波,如图1.11(a)、1.11(b)所示:

图1.11(a) 三角波最高点处

图1.11(b) 三角波最低点处

 注:

4.若输入时钟信号CLK为100MHz,复位信号RESET='

当选择信号SEL="

011"

时,输出Q应为递增常数为20(十进制)的阶梯波,如图1.12所示:

图1.12递增常数为20(十进制)的阶梯波

5.若输入时钟信号CLK为100MHz,复位信号RESET='1'

100"时,输出Q应为正弦波,如图1.13所示:

图1.13正弦波

6.若输入时钟信号CLK为100MHz,复位信号RESET='

当选择信号SEL="101"

时,输出Q应为方波,如图1.14所示:

图1.14方波

注:

六、结论

 经过程序仿真后,因为仿真为时序仿真,输出波形存在瑕疵;

观察得到的输出波形,得出该智能函数发生器可行。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 经济学

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

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