基于verilog hdl的电风扇设计.docx
- 文档编号:11456137
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:24
- 大小:40.49KB
基于verilog hdl的电风扇设计.docx
《基于verilog hdl的电风扇设计.docx》由会员分享,可在线阅读,更多相关《基于verilog hdl的电风扇设计.docx(24页珍藏版)》请在冰豆网上搜索。
基于veriloghdl的电风扇设计
FPGA课程设计报告
项目名称电风扇的自动定时开关控制
专业班级
学生姓名
指导教师
2013年6月4日
摘要
如今的电风扇已一改人们印象中的传统形象,在外观和功能上都更追求个性化,而电脑控制、自然风、睡眠风、负离子功能等这些本属于空调器的功能,也被众多的电风扇厂家采用,并增加了照明、驱蚊等更多的实用功能。
这些外观不拘一格并且功能多样的产品,预示了整个电风扇行业的发展趋势。
在追求个性时尚以及精致化的时代,消费者似乎对娇小可爱的家电产品情有独钟,于是扮相可爱、颜色亮丽、体积娇小的转页扇,各种便携式电风扇应运而生。
这些电风扇的外壳和扇页都以塑料为原料,整体上极其轻巧,加上娇小的体积和靓丽的色彩和外观,一经推出便十分走俏。
电风扇增设了各种新功能,既彰显了个性,也在无形中提高了档次。
如开发较早且比较实用的遥控功能,使操作摆脱了一定的空间限制,再加上液晶屏幕的动态显示,操作起来一目了然。
随着消费者对健康的日益关注,厂家围绕着提高空气质量做起了文章,于是便增添了负离子、氧吧、紫外线杀菌等功能。
此外,驱蚊风扇可通过电加热使驱蚊物质挥发,并借助风力快速把驱蚊物质送到房间各个地方;带有“飘香”功能的小风扇在扇片中间的旋转轴内含有香片,随着扇片的转动,悠悠花香也随之飘出,并且香片可随意更换;带有照明功能的吊扇集照明与风扇功能于一体,他们都是凭借了某一项独特的功能而吸引了消费者的目光。
关键词:
电脑控制;自然风;睡眠风;负离子功能
Abstract
Thefannernowadayshaschangedpeople'simpressionofthetraditionalimage,inappearanceandfunctionaremorethepursuitofindividuality,andcomputercontrol,thenaturalwind,sleepwind,negativeionfunctionthesebelongtotheairconditioningfunction,alsoistheelectricfanmanymanufacturers,andtoincreasethelighting,insectrepellentandmoretheutilityfunction.Theappearanceofthesenottosticktoonepatternandfunctionaldiversityofproducts,indicatesthedevelopmenttrendofthewholeelectricfanindustry.
Inthepursuitoffashionandtheeraofsophisticated,consumersseemtohaveaspeciallikingforthelovelyhomeapplianceproducts,solooklovely,brightcolor,SIZEPETITEfan,emergeasthetimesrequirevariousportableelectricfan.Theelectricfancasingandfanpagesareplasticasrawmaterial,thewholeisextremelylight,colorandappearanceofsmallvolumeandbeautifulplus,willbelaunchedbytheverypopular.
Electricfanaddednewfeatures,bothherindividuality,alsoimprovethegradeinvirtually.Iftheremotecontrolfunctiondevelopedearlierandmorepractical,theoperationoutofcertainspatialconstraints,dynamiccoupledwithLCDscreendisplay,operateupstickoutamile.Withconsumersincreasinglyconcernedaboutthehealthofthemanufacturerstoimproveairquality,aroundthestartofthearticle,thenaddtothenegativeion,oxygen,ultravioletsterilizationfunction.
Inaddition,mosquitorepellentfanbyelectricheatingmosquitorepellentsubstancesvolatile,andwiththewindtaketherepellentsubstancestotheroom;asmallfanwith"fragrance"functionintheaxisofrotationoffanmiddlecontainsjasminescentedgreentea,withrotatingfanblades,longfloweralsofloatedout,andjasminescentedgreenteacanbereplacedfreely;fanwithlightingfunctionsetlightingandfanfunctions,theyarerelyingonauniquefunctionandattracttheattentionofconsumers.
Keywords:
Computercontrol;Naturalwind;Sleepwind;Negativeionfunction
摘要I
AbstractII
第1章FPGA课程设计报告提纲1
1.1任务1
1.2目的1
1.3使用环境(软件/硬件环境,设备等)1
第2章技术规范2
2.1功能定义2
2.2系统结构框图2
2.3应用范围3
2.4引脚描述3
第3章设计方案5
3.1概述5
3.2顶层模块划分5
第4章功能验证方案11
4.1分频模块11
课程设计的心得体会32
第1章FPGA课程设计报告提纲
1.1任务
运用FPGA用FPGA开发板的按键作为输入控制键,用数码管显示当前电风扇自动定时状态(包括:
自动开/关,工作定时等)。
1.2目的
运用veriloghdl描述设计,用QuartusII进行仿真波形
1.3使用环境(软件/硬件环境,设备等)
Pc机QuartusII软件环境
第2章技术规范
2.1功能定义
(1),根据用户需求,通过按键切换来实现风扇定时和普通工作模式。
(2)普通工作模式时,由手动开关控制电风扇的开关,即当开关打开时,风扇工作;开关关闭时,风扇停止工作。
(3)定时模式时,根据设定定时时间来选择电风扇工作时间,比如10分钟、20分钟、30分钟等,并且同步显示剩余工作时间,但是此时用户仍可以通过开关控制提前关掉电扇。
(4)LED上显示当前工作状态:
风扇工作亮,停止工作灭。
数码管显示总的设定的时间(小时,分钟)和剩余工作时间。
2.2系统结构框图
总体设计可以分为以上几个模块,各模块的功能简要介绍:
(1)分频模块:
模块的功能是把50MHz的系统时钟转换为1Hz的时钟,和2Hz的时钟。
1Hz的时钟供计数模块的使用。
2Hz的时钟供输入定时数值的使用。
(2)模式选择控制模块:
选择需要的工作模式。
包括两个模式:
定时、普通。
(3)自动定时倒计时模块:
选择定时模式后,根据键盘的输入值来设定工作时间,在定时时间以内则风扇工作,倒计时结束或开关关闭时风扇自动关闭。
(4)显示模块:
LED上显示当前工作状态:
风扇工作亮,停止工作灭。
数码管显示总的设定的时间和剩余工作时间。
2.3应用范围
可以用于控制电扇手动控制电风扇工作或停止,也可以按照设定的时间自动工作或停止。
2.4引脚描述
顶层模块管脚描述
(1)输入开关管脚
信号名称
功能描述
输入输出
位宽
Clk
系统时钟,频率为50MHz
input
1
Op
模式选择信号,为1时为定时模式;为0时为普通模式。
input
1
In
输入设定时间信号
input
4
Key
设定时间后开始计时信号
Input
1
Clr
清零信号
input
1
Fz
复制信号
Input
1
En
开始计时信号
Input
1
(2)输出显示管脚
信号名称
功能描述
输入输出
位宽
Out
风扇工作信号,为1是风扇工作,为0时风扇停止工作
Output
1
Out_3
时间高位数码管输出端,为时钟的十位
output
7
Out_2
时间低位数码管输出端,为时钟的个位
output
7
Out_1
时间高位数码管输出端,为分钟的十位
output
7
Out_0
时间高位数码管输出端,为分钟的十位
output
7
第3章设计方案
3.1概述
此自动定时控制器,可以实现定时模式和普通模式的切换,一共有六个模块。
(1)分频模块:
模块的功能是把50MHz的系统时钟转换为1Hz的时钟,和2Hz的时钟。
1Hz的时钟供计数模块的使用。
2Hz的时钟供输入定时数值的使用。
(2)模式选择控制模块:
模式选择控制模块:
选择需要的工作模式。
包括两个模式:
定时、普通。
(3)自动定时倒计时模块:
选择定时模式后,根据键盘的输入值来设定工作时间,在定时时间以内则风扇工作,倒计时结束或开关关闭时风扇自动关闭。
(4)显示模块:
LED上显示当前工作状态:
风扇工作亮,停止工作
灭。
数码管显示总的设定的时间和剩余工作时间。
(5)信号处理模块:
该模块的主要作用是在定时没有结束的时候用火仍可以通过开关来控制电扇的关闭。
(6)数据输入模块:
当赋值信号(fz)有效后可以通过键盘输入定时的时间,确定输入无误后按下启动键(en),风扇开始倒计时。
3.2顶层模块划分
(1)分频模块:
这个模块的功能是把频率为50MHz的时钟转换为1Hz的时钟,供计时模块的使用。
引脚分配:
信号名称
功能描述
方向
宽度
Clk
输入50MHz的时钟信号
input
1
Inclk
输出经过分频以后的1Hz的时钟信号
output
1
Nclk
输出经过分频后的2hz的时钟信号
Output
1
电路设计:
(2)模式选择控制模块:
选择需要的工作模式。
包括两个模式:
自动、手动,op为1时是定时模式,opl为0时是普通模式。
若为定时模式风在设定的时间内自动工作,当计时结束时风扇自动停止工作,即计时反馈信号out为0时,风扇自动关闭。
若选为手动模式,则在有手动开关key来控制风扇的开关,key为1时风扇工作,为0时停止工作。
引脚分配
信号名称
功能描述
方向
宽度
op
模式选择信号,为1时为自动开关模式;为0时为手动开关模式。
input
1
key
开关信号
input
1
out
风扇工作状态信号
output
1
clk
主时钟
Input
1
Clr
清零信号
Input
1
A_1
Op为1时a_1为1
Output
1
A_0
Op为0时a_0为1
Output
1
Key_1
Key和a_0都为1时可key_1为1,否则为0。
Output
1
电路设计
(3)自动定时倒计时模块:
选择定时模式后,根据键盘的输入值来设定工作时间,在定时时间以内则风扇工作,倒计时结束时风扇自动关闭。
管脚分配
信号名称
功能描述
输入输出
位宽
Clk
主时钟
Input
1
nclk
计时时钟,频率为1Hz
input
1
en
开始倒计时信号
input
1
H
小时数据输入
input
8
m
分钟数据输入
Input
8
Sign
时间计数为零反馈信号
output
1
电路设计
(4)显示模块:
LED上显示当前工作状态:
风扇工作亮,停止工作灭。
数码管显示总的设定的时间和剩余工作时间。
管脚分配
信号名称
功能描述
输入输出
位宽
Data_3
时间高位输出端,为小时的十位
input
4
Data_2
时间低位输出端,为小时的个位
input
4
Data_1
时间高位输出端,为分钟的十位
input
4
Data_0
时间低位输出端,为分钟的个位
input
4
Out_3
时间高位数码管输出端,为小时的十位
output
7
Out_2
时间低位数码管输出端,为小时的个位
output
7
Out_1
时间高位数码管输出端,为分钟的十位
Output
7
Out_0
时间低位数码管输出端,为分钟的个位
Output
7
Clk
主时钟
Input
1
clr
清零信号
Input
1
sign
计时信号
Input
1
电路设计
(5)信号处理模块:
该模块主要是用来在定时还没有结束时,用户仍可以通过开关关闭电扇。
信号名称
功能描述
输入输出
位宽
Key
电扇开关
Input
1
Key_1
电扇在普通模式下产生的工作信号
Input
1
Sign
倒计时信号
Input
1
Out
电扇工作信号
Output
1
(6)数据输入模块:
该模块用于用户输入定时时间。
信号名称
功能描述
输入输出
位宽
Clk
2hz时钟,用于防抖
Input
1
clr
清零信号
Input
1
Fz
赋值信号
Input
1
H_0
小时低位输入端
Input
1
H_1
小时高位输入端
Input
1
M_0
分钟低位输入端
Input
1
M_1
分钟高位输入端
Input
1
H
小时输入数值
Output
8
M
分钟输入数值
Output
8
第4章功能验证方案
4.1分频模块
modulefenpin(clk,clr,nclk,inclk);
inputclk,clr;
outputnclk,inclk;
regnclk,inclk;
reg[50:
0]nadd,inadd;
always@(posedgeclk)
begin
if(!
clr)
begin
nclk=0;
nadd=0;
end
else
begin
if(nadd==)
begin
nclk=!
nclk;
nadd=0;
end
else
nadd=nadd+1;
end
end
always@(posedgeclk)
begin
if(!
clr)
begin
inclk=0;
inadd=0;
end
else
begin
if(inadd==)
begin
inclk=!
inclk;
inadd=0;
end
else
inadd=inadd+1;
end
end
endmodule
倒计时模块
modulehour(a,en,sign,data,clk,b_h,bcd_h,bcd_l);
inputa,clk,en,sign;
input[7:
0]data;
wire[7:
0]data;
outputb_h;
regb_h;
output[3:
0]bcd_h,bcd_l;
reg[3:
0]bcd_h,bcd_l;
reg[7:
0]count;
rege;
always@(posedgeclk)
begin
if(!
en)
e=1;
end
always@(posedgeaornegedgeen)
if(!
en)
begin
count=data;
b_h=0;
end
else
begin
if(a)
begin
if(count[3:
0]==0)
begin
if(count[7:
4]==0)
begin
b_h=1;
end
else
begin
count[7:
4]=count[7:
4]-1;
count[3:
0]=4'b1001;
b_h=0;
end
end
else
begin
count[3:
0]=count[3:
0]-1;
b_h=0;
end
end
end
always@(posedgeclkorposedgee)
begin
if(e)
begin
bcd_h=count[7:
4];
bcd_l=count[3:
0];
end
end
Endmodule
moduleclock(en,a_1,sign,data,sclk,clk,b_m,bcd_h,bcd_l);
inputen,sign,clk,sclk,a_1;
input[7:
0]data;
wire[7:
0]data;
outputb_m;
regb_m;
output[3:
0]bcd_h,bcd_l;
reg[3:
0]bcd_h,bcd_l;
reg[7:
0]count;
wireas;
rege;
assignas=e&sign&a_1;
always@(posedgeclk)
begin
if(!
en)
e=1;
End
always@(posedgesclkornegedgeen)
if(!
en)
begin
count=data;
b_m=0;
end
else
begin
if(as)
begin
if(count[3:
0]==0)
begin
if(count[7:
4]==0)
begin
count[7:
4]=4'b0101;
count[3:
0]=4'b1001;
b_m=1;
end
else
begin
count[7:
4]=count[7:
4]-1;
count[3:
0]=4'b1001;
b_m=0;
end
end
else
begin
count[3:
0]=count[3:
0]-1;
b_m=0;
end
end
end
always@(posedgeclkorposedgee)
begin
if(e)
begin
bcd_h=count[7:
4];
bcd_l=count[3:
0];
end
end
endmodule
modulesg(b_m,b_h,clk,sign,clr);
inputb_m,b_h,clk,clr;
outputsign;
regsign;
always@(posedgeclkornegedgeclr)
begin
if(!
clr)
begin
sign=1;
end
else
begin
if(b_h)
begin
if(b_m)
begin
sign=0;
end
else
begin
sign=1;
end
end
else
begin
sign=1;
end
end
end
Endmodule
信号处理模块
modulelast(key,sign,key_1,out);
inputkey,sign,key_1;
outputout;
wireout;
wireks;
assignks=key&sign;
assignout=ks|key_1;
endmodule
数据输入模块
moduledisplay(h_1,h_0,m_1,m_0,fz,clk,clr,h,m);
inputh_1,h_0,m_1,m_0;
inputclk,clr,fz;
output[7:
0]h,m;
reg[7:
0]h,m;
reg[3:
0]add_m_0,add_m_1,add_h_0,add_h_1;
always@(posedgeclkornegedgeclr)
begin
if(!
clr)
begin
add_m_0=0;
add_m_1=0;
end
else
begin
if(fz)
begin
if(!
m_0)
begin
if(add_m_0==4'b1001)
begin
add_m_0=1'b0;
end
else
begin
add_m_0=add_m_0+1'b1;
end
end
if(!
m_1)
begin
if(add_m_1==4'b0101)
begin
add_m_1=1'b0;
end
else
begin
add_m_1=add_m_1+1'b1;
end
end
end
end
end
always@(posedgeclkornegedgeclr)
begin
if(!
clr)
begin
add_h_0=0;
add_h_1=0;
end
else
begin
if(fz)
begin
if(!
h_0)
begin
if(add_h_0==4'b1001)
begin
add_h_0=0;
end
else
begin
add_h_0=add_h_0+1;
end
end
if(!
h_1)
begin
if(add_h_1==4'b0101)
begin
add_h_1=0;
end
else
begin
add_h_1=add_h_1+1;
end
end
end
end
end
alw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于verilog hdl的电风扇设计 基于 verilog hdl 电风扇 设计