数字逻辑课程设计报告Word格式文档下载.docx
- 文档编号:16876735
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:27
- 大小:416.13KB
数字逻辑课程设计报告Word格式文档下载.docx
《数字逻辑课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字逻辑课程设计报告Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
顶层文件:
try1.vhd2
开机控制模块:
power_control1.vhd2
水位控制模块:
water_level1.vhd2
1实验目的
通过硬件描述语言VHDL的编程,深入了解并掌握可编程芯片PLD的设计技术,加强对《数字逻辑》课程所学知识的综合运用能力。
培养创新性思维能力和独立解决实际问题的能力。
2实验仪器和组件
DICE-SEM型实验箱(含Lattice公司的CPLD芯片ispLSI1032)
开发系统ispLever5.0
导线数根
3实验设计方案、逻辑图和波形图
3.1控制面板
3.2输入:
电源开关:
电平
启动、暂停按钮:
脉冲信号
洗衣模式:
水位:
3.3输出
指示灯:
电源开关指示灯、启动/暂停指示灯(启动工作时亮)、洗涤指示灯、漂洗指示灯、脱水指示灯
数码管:
两个数码管显示剩余时间,由三种工作状态的剩余时间共用,即:
洗涤时间、漂洗时间和脱水时间,在进行洗衣模式选择时则显示为该模式的总时间。
一位数码管显示水位。
3.4流程图
是
否
3.5设计的具体要求
(1)标准模式下,洗衣机先洗涤12分钟,然后漂洗6分钟×
2次,最后脱水3分钟。
(2)单洗模式下,洗衣机只洗12分钟。
(3)洗漂模式下,洗衣机先洗涤12分钟,然后漂洗6分钟×
2次。
(4)单漂模式下,洗衣机只漂洗6分钟×
2次
(5)漂脱模式下,洗衣机先漂洗6分钟×
2次,然后脱水3分钟
(6)单脱模式下,洗衣机只脱水3分钟
(7)上面6种模式运行时,都可以随时按启动/暂停键在暂停运行和启动运行两者间切换。
(8)在一个洗衣模式的所有工作流程完成之后,洗衣机进入标准模式,同时,如果5分钟内没有按启动/暂停键来启动运行,系统将自行掉电。
3.6端口列表及说明
端口名称
输入or输出
端口类型
功能
power
inout
std_logic
作为洗衣机开关,接电平信号
clk
in
输入时钟,接实验台上1Hz插孔
(接上页表)
start
启动/暂停按钮,接脉冲信号
mode
模式选择按钮,接脉冲信号
water
水位选择按钮,接脉冲信号
display_1
out
std_logic_vector(3downto0)
洗衣机运行时,显示剩余时间;
模式选择时,显示当前模式总时间(显示剩余时间的十位)
display_0
模式选择时,显示当前模式总时间(显示剩余时间的个位)
water_level
显示当前水位
sound
当洗衣机洗衣结束时,发出警报
power_light
显示洗衣机的开关状态,接指示灯,灯亮表示“开”
startl
启动/暂停指示灯,值为‘1’表示洗衣机处于“启动状态”
washing_light
模式选择时,亮红灯表示该模式中包括了洗涤过程;
洗衣机运行时,灯闪表示正在进行洗涤过程
clean_light
模式选择时,亮红灯表示该模式中包括了漂洗过程;
洗衣机运行时,灯闪表示正在进行漂洗过程
drain_light
模式选择时,亮红灯表示该模式中包括了脱水过程;
洗衣机运行时,灯闪表示正在进行脱水过程
表格3.1端口说明
3.7数据对象列表说明
数据对象名称
数据对象类型
states
枚举类型
将洗衣机的六种洗衣模式描述值为(s0,s1,s2,s3,s4,s5)六种状态的数据类型
c_s
表示当前状态,其值为s0,s1,s2,s3,s4,s5之一
c_t
integerrange0to27
表示洗衣机运行过程中当前模式下的剩余时间
last_time
表示当前clk脉冲到来前,洗衣机运行过程中当前模式下的剩余时间
stop
控制系统的自动掉电,当stop值为‘1’时系统自动掉电
done
表示当前是否可以修改洗衣模式,值为‘1’表示当前可修改洗衣模式
over
表示洗衣机当前是否已完成工作处于待机状态,值为‘1’表示洗衣机当前完成工作
count
integerrange0to30
作为自动掉电计时器,当系统完成工作处于待机状态时,每当时钟脉冲到来,计时器的值加1
表格3.2数据对象说明
3.8各个功能模块说明
3.8.1开机/关机控制:
power_control1
该模块通过读取由顶层模块传入的信号power、stop,做出判断,对power_light的值进行修改。
3.8.2水位控制:
water_level1
该模块通过由顶层模块传入的信号power、water、start_light、water_level,作出判断;
当power=’1’,start_light=’0’时,通过顶层的water端口传入的脉冲信号为有效,这时,每当检测到water的一个脉冲时,water_level的输出值加1。
3.8.3模式控制:
mode_choose
通过检测信号power_light、start_light、mode等的值,当处于暂停情况下时,检测到的mode的脉冲有效,对模式c_s进行修改。
3.8.4计时:
start1
当处于启动状态时,时钟脉冲clk有效,使c_t的值减1,即当前模式下的剩余时间减1,此时不能修改模式;
当暂停时,通过done的值,判断是否修改模式。
3.8.5显示时间:
operation_time
根据计时模块得到的剩余时间c_t,运算得出当前模块当前步骤(可能含洗涤、漂洗、脱水三个洗衣步骤)的剩余时间。
3.8.6模式指示等控制:
lighting
根据由c_s、power_light、start_light的值控制wash_light、clean_light、drain_light的亮、灭、闪等状态。
3.8.7启动/暂停指示灯控制:
spl
处于启动状态时,灯亮;
否则灯不亮。
3.8.8自动关机控制:
selfoff
当洗衣的流程结束时(即power=’1’、over=’1’、start_light=’0’时),每当检测到一个时钟脉冲count的值加1,当count的值等于30时,开关机控制模块power_control1检测到stop的值变成’1’,于是将power_light置为’0’,即自动关机。
4实验步骤、实验记录
详见附录中的代码部分
4.2分模块测试、仿真
4.2.1水位控制模块的仿真
图4.1水位控制模块仿真波形图
4.2.2模式控制模块仿真
图4.2模式控制模块仿真波形图
4.2.3标准洗仿真
图4.3标准洗仿真波形图
4.2.4单洗模块仿真
图4.4单洗模块仿真波形图
4.2.5洗漂模块仿真
图4.5漂洗模块仿真波形图
4.2.6单漂模块仿真
图4.6单漂模块仿真波形图
4.2.7漂脱模块仿真
图4.7漂脱模块仿真波形图
4.2.8单脱模块仿真
图4.8单脱模块仿真波形图
4.2.9暂停控制仿真
图4.9暂停控制仿真波形图
4.2.10自动关机仿真
图4.10自动关机仿真波形
5对观察结果的分析、处理及讨论
首先通过引脚绑定,生成jed文件,然后将jed文件下载到目标器件(即CPLD芯片ispLSI1032)。
通过实际手动测试,发现基本功能与仿真产生的波形图相符合,但是,测试暂停功能时,发现每当在洗衣机运行时按下暂停键,时间的显示会回到该模块最初的总时间,从新开始计时,这与4.2.9中的暂停控制波形仿真情况不符。
6实验方案的改进意见
暂停功能下载到芯片后无法正常使用,是亟待改进的一点。
但是由于仿真波形名没有反映出上述错误,所以初步判断不大可能是代码的编写错误造成的。
个人分析可能由于在引脚绑定时,对相应引脚的选择不当,导致了这一错误。
可是即使数次在不同的实验台上,选择不同的引脚匹配组合,这一问题仍是得不到解决,只能考虑对程序的代码做适当修改。
参考文献
[1]欧阳星明.数字逻辑.4版[M].武汉:
华中科技大学出版社,2009.
[2]数字逻辑实验指导书
[3]孟庆海.VHDL基础及经典实例开发.西安:
西安交通大学出版社,2008.
[4]齐洪喜.VHDL电路设计.北京:
清华大学出版社,2004.
程序源代码
try1.vhd
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitytry1is
port(
power:
inoutstd_logic;
clk,start,mode,water:
instd_logic;
display_1,display_0:
outstd_logic_vector(3downto0);
water_level:
bufferstd_logic_vector(3downto0);
sound,washing_light,clean_light,drain_light:
outstd_logic;
start_light:
bufferstd_logic;
power_light:
bufferstd_logic
);
end;
architecturewashoftry1is
typestatesis(s0,s1,s2,s3,s4,s5);
--有限状态机
signalc_s:
states;
signalc_t,last_time:
integerrange0to27;
signalstop,done,over:
std_logic;
signalcount:
integerrange0to30;
componentpower_control1
port(
power:
INSTD_LOGIC;
stop:
power_light:
OUTSTD_LOGIC
);
endcomponent;
COMPONENTwater_level1
PORT(
water:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
ENDCOMPONENT;
begin
power_1:
power_control1portmap(power,stop,power_light);
water1:
water_level1portmap(power,water,start_light,water_level);
mode_choose:
process(c_t,mode)--控制模式选择的进程
ifpower_light='
1'
then
ifstart_light='
0'
then--暂停时进行模式变换
ifmode'
eventandmode='
done<
='
;
casec_sis
whens0=>
c_s<
=s1;
whens1=>
=s2;
whens2=>
=s3;
whens3=>
=s4;
whens4=>
=s5;
whens5=>
=s0;
whenothers=>
null;
endcase;
endif;
endif;
ifc_t=0andlast_time=1then--工作流程结束后返回初始状态
c_s<
done<
ifc_t>
0andstart_light='
then--定义工作的时候不能设置水位和模式
over<
else--给系统的模式赋初值
c_s<
done<
over<
endif;
endprocessmode_choose;
start1:
process(clk)--初始进程:
判断洗衣模式
ifstart_light='
ifclk'
eventandclk='
ifc_t>
0then--计时
last_time<
=c_t;
c_t<
=c_t-1;
endif;
else
ifdone='
then
casec_sis--暂停状态下判断洗衣模式
whens0=>
c_t<
=27;
whens1=>
=12;
whens2=>
=24;
whens3=>
whens4=>
=15;
whens5=>
=3;
whenothers=>
endcase;
elsifdone='
else
c_t<
endprocessstart1;
operation_time:
process(c_t)--根据上个进程的时间信号得到洗衣机工作时间
variabletemp:
integerrange0to15;
--暂存用来显示的时间
then
ifdone='
orc_t=27then
casec_sis--显示每个模式时间的初值
display_1<
="
0010"
display_0<
0111"
0001"
whens2=>
0100"
0101"
0000"
0011"
casec_sis--工作开始后动态显示时间
whens0=>
ifc_t>
15then
temp:
=c_t-15;
elsifc_t>
3then
=c_t-3;
elsetemp:
endif;
whens1=>
temp:
12then
=c_t-12;
whens3=>
whens4=>
whens5=>
whenothers=>
endcase;
iftemp>
9then
display_1<
temp:
=temp-10;
elsedisplay_1<
casetempis
when9=>
display_0<
1001"
when8=>
1000"
when7=>
when6=>
0110"
when5=>
when4=>
when3=>
when2=>
when1=>
when0=>
display_1<
1111"
--未开电源时的初值
display_0<
endprocessoperation_time;
lighting:
process(c_t)--控制洗涤灯漂洗灯和脱水灯的亮灭
then--暂停模式下
ifdone='
casec_sis
washing_light<
clean_light<
drain_light<
else
casec_sis--执行已选的洗衣模式
ifc_t>
15thenwashing_light<
--标准洗
clean_light<
drain_light<
--1.洗涤
elsifc_t>
3thenwashing_light<
--2.漂洗
elsewashing_light<
--3.脱水
endif;
--单洗
clean_light<
drain_light<
iflast_time>
12thenwashing_light<
--洗漂
clean_light<
washing_light<
--单漂
--漂脱
--1.漂洗
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 逻辑 课程设计 报告