基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx

上传人:wj 文档编号:13049993 上传时间:2022-10-03 格式:DOCX 页数:18 大小:144.86KB
下载 相关 举报
基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx_第1页
第1页 / 共18页
基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx_第2页
第2页 / 共18页
基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx_第3页
第3页 / 共18页
基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx_第4页
第4页 / 共18页
基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx

《基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

基于VHDL语言信号发生器的设计.EDA课程设计Word文档下载推荐.docx

图3.1 信号发生器结构框图

通过查找资料把各类信号模块的程序输入到QuartusⅡ中进行运行仿真,每一步都要慎重小心,错误难免的,还需要通过课本和资料一一更正。

最后,在前面模块做好的基础上再考虑如何输出波形的问题,通过对四种波形采样就可以得到。

4、硬件电路的设计与软件设计

根据题目分析与整体构思可知,要完成设计任务必须设计出以下模块:

4.1正弦波发生器的实现

该模块产生以64个时钟为一个周期的正弦波。

其VHDL语言源程序代码如下所示:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

--打开库文件USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY sinqiIS

PORT( clk:

INSTD_LOGIC;

--声明clk是标准逻辑位类型的输入端口 clr:

INSTD_LOGIC;

--声明clr是标准逻辑位类型的输入端口

d:

OUTintegerrange0to255);

--声明d是标准逻辑向量类型的

--输出端口

END sinqi;

ARCHITECTUREsinbOFsinqiISBEGIN

PROCESS(clr,clk)

variabletemp:

integerrange0to63;

BEGIN

IFclr='

0'

THENd<

=0;

--clr为低电平d为0ELSIFclk'

EVENTANDclk='

1'

THEN --clk为上升沿

IFtemp=63THENtemp:

ELSE

temp:

=temp+1;

ENDIF;

CASE temp IS

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;

--当temp值不是选择值,Q作未知

--处理

END CASE;

END IF;

END PROCESS;

ENDsinb;

4.2方波信号发生器的实现

该模块产生方波,是通过交替送出全0和全1实现,每16个时钟翻转一次。

LIBRARYIEEE;

--打开库文件USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYfangboqiIS

PORT(clk:

--声明clk是标准逻辑位类型的输入端口

clr:

--声明clr是标准逻辑位类型的输入端口

q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

--声明q是标准逻辑

--向量类型的输出端口

ENDfangboqi;

ARCHITECTUREfangbo1OFfangboqiIS --结构体说明SIGNALa:

STD_LOGIC;

BEGIN

PROCESS(clk,clr)

VARIABLE tmp:

std_logic_vector(3downto0);

--变量定义BEGIN

THEN a<

='

;

ELSIFclk'

eventANDclk='

THEN --clk为上升沿

IF tmp="

1111"

THENtmp:

="

0000"

tmp:

=tmp+1;

IFtmp<

"

1000"

THENa<

ELSE

a<

ENDPROCESS;

PROCESS(clk,a)BEGIN

IFclk'

THEN --clk为上升沿

IFa='

THEN

q<

11111111"

--q赋值

00000000"

--结束进程

END fangbo1;

--结束结构体

4.3三角波信号发生器的实现

该模块产生的三角波形以64个时钟为一个周期,输出q每次加减8

--打开库文件USEIEEE.STD_LOGIC_1164.ALL;

ENTITYsjboIS

PORT(clk:

clr:

ENDsjbo;

ARCHITECTUREsjqiOFsjboIS --结构体说明BEGIN

VARIABLEtmp:

STD_LOGIC_VECTOR(7DOWNTO0);

--变量说明VARIABLEa:

STD_LOGIC;

eventANDclk='

IFtmp="

11111000"

a:

=tmp+8;

00000111"

=tmp-8;

=tmp;

ENDPROCESS;

ENDsjqi;

4.4阶梯波信号发生器的实现

该模块产生的是阶梯波形。

ENTITYjietiboqiIS

--声明clk是标准逻辑位类型的输入端口clr:

--声明clr是标准逻辑位类型的输入端口Q:

BUFFERSTD_LOGIC_VECTOR(7DOWNTO0));

ENDjietiboqi;

ARCHITECTUREjietiboOFjietiboqiIS --结构体说明BEGIN

--变量定义BEGIN

--变量赋值

ELSEIFclk'

THE

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

当前位置:首页 > 求职职场 > 简历

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

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