基于FPGA的函数发生器文档格式.docx

上传人:b****5 文档编号:19374704 上传时间:2023-01-05 格式:DOCX 页数:14 大小:206.87KB
下载 相关 举报
基于FPGA的函数发生器文档格式.docx_第1页
第1页 / 共14页
基于FPGA的函数发生器文档格式.docx_第2页
第2页 / 共14页
基于FPGA的函数发生器文档格式.docx_第3页
第3页 / 共14页
基于FPGA的函数发生器文档格式.docx_第4页
第4页 / 共14页
基于FPGA的函数发生器文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于FPGA的函数发生器文档格式.docx

《基于FPGA的函数发生器文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA的函数发生器文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

基于FPGA的函数发生器文档格式.docx

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYZENGIS

PORT(CLK,RESET:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDZENG;

ARCHITECTUREZENG_ARCOFZENGIS

BEGIN

PROCESS(CLK,RESET)

VARIABLETMP:

STD_LOGIC_VECTOR(7DOWNTO0);

IFRESET='

0'

THEN

TMP:

="

00000000"

;

ELSIFCLK'

EVENTANDCLK='

1'

IFTMP="

11111111"

ELSE

=TMP+1;

ENDIF;

Q<

=TMP;

ENDPROCESS;

ENDZENG_ARC;

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

递减斜波模块JIAN见图1.3。

它是递减斜波产生模块。

图1.3模块JIAN

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

ENTITYJIANIS

ENDJIAN;

ARCHITECTUREJIAN_ARCOFJIANIS

ELSETMP:

=TMP-1;

ENDJIAN_ARC;

3.三角波模块的设计:

三角波模块DELTA见图1.4。

它是三角波产生的模块。

图1.4模块DELTA

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

ENTITYDELTAIS

ENDDELTA;

ARCHITECTUREDELTA_ARCOFDELTAIS

VARIABLEA:

STD_LOGIC;

IFA='

11111110"

A:

='

ELSE

00000001"

ENDDELTA_ARC;

4.阶梯波模块的设计:

阶梯波模块LADDER见图1.5。

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

图1.5模块LADDER

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

ENTITYLADDERIS

ENDLADDER;

ARCHITECTURELADDER_ARCOFLADDERIS

=TMP+16;

A:

ENDLADDER_ARC;

5.正弦波模块的设计:

正弦波模块SIN见图1.6。

它是正弦波产生的模块。

图1.6模块SIN

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

ENTITYSINIS

PORT(CLK,CLR:

D:

OUTINTEGERRANGE0TO255);

ENDSIN;

ARCHITECTURESIN_ARCOFSINIS

PROCESS(CLK,CLR)

INTEGERRANGE0TO63;

IFCLR='

D<

=0;

IFTMP=63THEN

CASETMPIS

WHEN00=>

D<

=255;

WHEN01=>

=254;

WHEN02=>

=252;

WHEN03=>

=249;

WHEN04=>

=245;

WHEN05=>

=239;

WHEN06=>

=233;

WHEN07=>

=225;

WHEN08=>

=217;

WHEN09=>

=207;

WHEN10=>

=197;

WHEN11=>

=186;

WHEN12=>

=174;

WHEN13=>

=162;

WHEN14=>

=150;

WHEN15=>

=137;

WHEN16=>

=124;

WHEN17=>

=112;

WHEN18=>

=99;

WHEN19=>

=87;

WHEN20=>

=75;

WHEN21=>

=64;

WHEN22=>

=53;

WHEN23=>

=43;

WHEN24=>

=34;

WHEN25=>

=26;

WHEN26=>

=19;

WHEN27=>

=13;

WHEN28=>

=8;

WHEN29=>

=4;

WHEN30=>

=1;

WHEN31=>

WHEN32=>

WHEN33=>

WHEN34=>

WHEN35=>

WHEN36=>

WHEN37=>

WHEN38=>

WHEN39=>

WHEN40=>

WHEN41=>

WHEN42=>

WHEN43=>

WHEN44=>

WHEN45=>

WHEN46=>

WHEN47=>

WHEN48=>

WHEN49=>

WHEN50=>

WHEN51=>

WHEN52=>

WHEN53=>

WHEN54=>

WHEN55=>

WHEN56=>

WHEN57=>

WHEN58=>

WHEN59=>

WHEN60=>

WHEN61=>

WHEN62=>

WHEN63=>

WHENOTHERS=>

NULL;

ENDCASE;

ENDSIN_ARC;

6.方波模块的设计:

方波模块SQUARE见图1.7。

它是方波产生的模块。

图1.7模块SQUARE

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

ENTITYSQUAREIS

ENDSQUARE;

ARCHITECTURESQUARE_ARCOFSQUAREIS

SIGNALA:

BIT;

VARIABLECNT:

A<

IFCNT<

63THEN

CNT:

=CNT+1;

ELSECNT:

A<

=NOTA;

PROCESS(CLK,A)

IFCLK'

ELSEQ<

ENDSQUARE_ARC;

7.选择模块的设计:

选择模块CH61A见图1.8。

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

图1.8模块CH61A

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

ENTITYCH61AIS

PORT(SEL:

INSTD_LOGIC_VECTOR(2DOWNTO0);

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

INSTD_LOGIC_VECTOR(7DOWNTO0);

ENDCH61A;

ARCHITECTURECH61A_ARCOFCH61AIS

PROCESS(SEL)

CASESELIS

WHEN"

000"

=>

Q<

=D0;

001"

=D1;

010"

=D2;

011"

=D3;

100"

=D4;

101"

=D5;

WHENOTHERS=>

ENDCH61A_ARC;

四、设计工具

计算机一台,QuartusⅡ软件

五、设计结果

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

当选择信号SEL="

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

图1.9递增斜波

注:

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

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

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

图1.10递减斜波

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

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

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

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

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

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

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

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

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

图1.13正弦波

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

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

图1.14方波

六、结论

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

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

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

当前位置:首页 > 总结汇报 > 其它

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

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