智能函数发生器EDA设计Word下载.docx
- 文档编号:13665774
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:21
- 大小:131.85KB
智能函数发生器EDA设计Word下载.docx
《智能函数发生器EDA设计Word下载.docx》由会员分享,可在线阅读,更多相关《智能函数发生器EDA设计Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
见
评审成绩
指导教师签名
职称
评审时间
年月日
课程设计(实习)作品验收表
题目
参与人员
班级
设计任务与要求:
作品完成情况:
验收情况:
验收教师签名:
___________
年月日
摘要自己写
关键字自己写
1设计任务及要求
1.1设计任务
1.2设计要求
2总体设计方案(自己看书上面有)
该设计主要分为8个模块,前6个模块是波形的VHDL描述模块;
第七个模块的波形选择模块,也是用VHDL语言进行描述,用于选择何种波形进行最后的输出;
最后一个模块是顶层原理图模块,是将前7个模块连接在一起构成完整的只能函数发生器。
具体的总体设计方框图如下:
图1总体设计方框图
3各模块详细设计及实现
3.1下降斜坡信号产生
3.1.1详细设计
见书
3.1.2设计实现
具体VHDL语言描述如下:
entitydeslopeis--实体
port(clk,reset:
instd_logic;
--输入端口定义,为标准逻辑位
q:
outstd_logic_vector(7downto0)--输出端口定义,为8位标准逻辑矢量
);
enddeslope;
architecturebehaveofdeslopeis--结构体
begin
process(reset,clk)--进程
variablecnt:
std_logic_vector(7downto0):
="
11111111"
;
--定义变量CNT
ifreset='
0'
thencnt:
=(others=>
'
1'
);
--当RESET为0时,输出Q为1
elsifclk'
eventandclk='
then--当时钟上升沿到来时,判断变量CNT
ifcnt="
00000000"
then是否为0,即降到最地点
cnt:
--若CNT为0,则置为全1
elsecnt:
=cnt-1;
--否则,CNT减1
endif;
endif;
q<
=cnt;
--将CNT赋值给输出信号Q
endprocess;
--结束进程
endbehave;
--结构体结束
3.2上升斜坡信号产生
3.2.1详细设计
3.2.1设计实现
entityinslopeis--实体
--端口定义
outstd_logic_vector(7downto0)
endinslope;
--实体结束
architecturebehaveofinslopeis--结构体
process(clk,reset)--进程,CLK及RESET为敏感信号
std_logic_vector(7downto0);
--当RESET为0时,重置为,输出置为0
then--当时钟上升沿到来时,判断CNT是否为
then最大值
--若CNT为最大值,置为全0
=cnt+1;
--否则,CNT加1
--将变量CNT赋值给输出Q
--进程结束
3.3正弦信号产生
3.3.1详细设计
3.3.2设计实现
entitysinwaveis--实体
port(clk,reset:
outintegerrange0to255);
--输出为正整数
endsinwave;
architecturebehaveofsinwaveis--结构体
process(clk,reset)--进程
integerrange0to63;
--定义变量CNT为常数
thenq<
=0;
--若复位信号为0,则输出置为0
then--当时钟信号上升沿到来时
ifcnt=63then--若CNT为63时则置为0
else--否则,CNT加1,相当于CNT为
一个64进制的计数器
casecntis--查表输出,根据不同CNT值确定输出Q的值
when00=>
=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=>
endcase;
3.4阶梯信号产生
3.4.1详细设计
3.4.2设计实现
具体的VHDL描述语言如下:
entitystairis--实体
outstd_logic_vector(7downto0));
endstair;
architecturebehaveofstairis--结构体
begin
std_logic_vector(7downto0);
--变量定义,计数CNT
variabletemp:
std_logic;
--变量定义,标志TEMP
thencnt:
--当RESET为0时,CNT置0
then--当时钟上升沿来到时
iftemp='
then--标志TEMP为0时,进行CNT赋值
then--CNT到最大值时,置0
temp:
='
=cnt+16;
--否则,CNT加16(阶梯常数)
--CNT值改变后,标志TEMP置1
elsetemp:
--标志TEMP为其他值时,进行TEMP置0
--结束结构体
3.5方波信号产生
3.5.1详细设计
见书。
3.5.2设计实现
entitysquareis--实体
port(clk,reset:
endsquare;
architecturebehaveofsquareis--结构体
signaltemp:
--定义标志变量TEMP
process(clk,reset)--进程,敏感信号为CLK,RESET
integer;
--定义变量CNT,用于计数
thentemp<
--RESET有效时,标志TEMP置为0
ifcnt<
63then--CNT为64进制计数量,到63时置0
--否则CNT加1
else
temp<
=nottemp;
--64个时钟周期后,TEMP取反
endpr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 函数 发生器 EDA 设计