数电课程设计.docx
- 文档编号:13143678
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:28
- 大小:718.20KB
数电课程设计.docx
《数电课程设计.docx》由会员分享,可在线阅读,更多相关《数电课程设计.docx(28页珍藏版)》请在冰点文库上搜索。
数电课程设计
数字电子技术课程设计
简易电话机
目录
第一章设计指标
1.1设计指标…………………………………………………2
第二章系统概述
2.1设计思想…………………………………………………2
2.2可行性论证………………………………………………2
2.3各功能的组成……………………………………………3
2.4总体工作过程……………………………………………8
第三章单元电路设计与分析
3.1各单元电路的选择………………………………………9
3.2设计及工作原理分析……………………………………13
第四章电路的组构与调试
4.1遇到的主要问题………………………………………15
4.2现象记录及原因分析…………………………………15
4.3解决措施及效果…………………………………………16
4.4功能的测试方法、步骤、设备、记录的数据…………16
第五章结束语
5.1对设计题目的结论性意见及进一步改进的意向说明…16
5.2总结设计的收获与体会………………………………16
参考文献……………………………………………………………17
附图(电路图):
8张系统设计电路图……………………………………17
第一章:
设计指标
(1)利用3x4小键盘输入“0”~“9”10个数字键,字符能够在6段LED数码管从左到右依次正确显示,每按1次按键,显示一位号码;
(2)设有“RESET”复位键,等待键盘新一轮输入。
第二章系统概述
2.1设计思想
对于整个数字系统而言,分模块设计验证是基本的原则。
要实现简易电话拨号机功能,首先要解决的是按键输入状态的读取,扫描当前有哪个按键按下并用编码唯一标识(编码),以便后续的电路对其进行分析与处理;其次,要解决的是如何将按键输入状态码与LED显示的码值之间的转换,根据按键编码信号产生唯一的LED控制信号,涉及的是编码和解码的原理;最后要解决的数码位的移位操作以及6位数码管的动态显示,要了解人眼的视觉暂留现象存在。
2.2可行性论证
按键阵列扫描
通常情况下,当按键按下时,其触电的合、断有弹性抖动,一般而言约5~10ms,为了保证按键动作一次只判断一次电平信号,对于按键的输入信号,要加以干扰消除,实现机械防抖动,根据之前所学的数字电路知识,最简单的可以直接采用RS触发触发器对X的电平信号整形,实现消抖动。
其次,要论证的是如何解决按键阵列上按键输入的判断。
由于需要判断的按键较多,为节省信号端口资源,将按键组成分成行、列加以激励信号,根据模块输出来判断按键状态。
在译码器A部分,由于需要扫描4列键盘,所以至少需要产生4种状态,每个对应一列,分析一下,可以采用2-4译码器电路实现(当然仪器上只有3-8译码器)
按键阵列编码与解码
对于一组扫描码,FPGA输入引脚会读入一组行信号X0~X2,由于各按键之间相互独立,所以每个按键会对应特定的一组信号组合(X0~X2,S1,,S0),列写如下的真值表分析:
表2-1按键输入真值表
所以根据真值表推导出D3~D0的逻辑表达式,利用基本逻辑门实现按键编码(BCD码)。
6位数据动态显示
为了实现移位操作而且要记录之前的按键码值,需要用到寄存器。
常见的就是利用D触发器实现。
由于从键盘模块输入的数码(BCD码)在时间上是有先后的,并总是从高位到低位依次串行输入,所以首先要用移位寄存器将串行输入的BCD码送到动态显示模块进行显示,第二,还需要一个复位端以便清零。
要注意的是,各输入端的数据应该在移位脉冲的上升沿到来前就已经稳定,以满足建立时间ts的要求,也就是说移位脉冲上升沿要比数据稳定晚一些。
设计时,要考虑一个重要的问题就是如何进行移位操作。
由于我们处理的是BCD码,也就是一位十进制数要用4位二进制表示,十进制移动一位相当于4位二进制同时移动1位。
2.3各功能模块的组成
(1)按键消抖模块
对于一个按键输入,利用D触发器可以消除抖动,避免了由于机械抖动而导致同一个按键重复输入现象。
电路图如下所示:
分析综合可知,只有持续一段时间的按键输入才会有效而产生高电平脉冲。
利用如上所示电路组成按键消抖模块:
为每个按键的输入加上按键消抖模块就可以获得稳定按键输入信号。
(2)按键阵列判断模块
首先需要利用状态机循环产生扫描信号依次扫描各列,如下图所示,当按键“4”按下时,激励信号与输出信号状态如下:
如上图所示,当列扫描信号C1为0,其余均为1时,读入3位行信号r[2..0]可以得到信号“011”,可以判断位于C1行r[2]列处按键即按键4被按下,由此得知当前哪个按键被按下。
与此同理,可以分析3x4键盘上每个按键按下时对应状态输出,而后利用编码电路加以按键编码。
(3)按键编码模块
利用表2-1按键输入真值表,列写卡诺图推导出输出BCD编码与按键输入之间的逻辑关系式,推到过程可查阅《数字电子技术与系统设计》书,关系表达式如下:
所以利用如下逻辑电路就可以实现上述的关系:
同样,分析综合后产生的译码电路如下所示:
(4)移位寄存器电路模块
为了实现6位LED数码管动态显示,电路一直循环产生扫描信号,读取按键的输入状态,而后利用6选1数据选择器(MUX6)依次读取寄存器中的内容,并送到6位数码管显示电路。
需要注意的是,最新输入的BCD码要在最高位显示,也就是说当按下一个按键A时,而后又按下按键B,那么首先当3-8译码器产生LED位选信号110时,要读取的码值是按键B的BCD码,其实,3-8译码器产生101位选信号时,要读取的码值是按键A的BCD码,这样子就可以实现数字左移效果。
当然,由于LED数码管的位选信号与扫描信号共用,所以扫描模块的时钟与显示模块的时钟应该不一样,扫描模块时钟要快很多,在时间上错开就可以实现3-8译码器的分时复用。
(5)时钟分频电路
开发板上直接提供的是10MHz时钟,由于按键按下时间一般为10~20ms,为了及时扫描按键输入,扫描信号用的时钟是10KHz,数据显示用的是800Hz,所以需要做分频电路。
首先做一个10分频电路,利用计数器7490就可以实现10分频,电路图如下:
分析综合后生成符号模块(scan.bsf)
随后利用此模块可以将10MHz的时钟分频出各种信号,电路图如下:
分析综合生成如下符号模块:
为了获得800Hz的时钟信号,为了数码管显示正常,需要50%的占空比的信号。
由于计数模块使用的局限性,所以采用verilogHDL描述,其中输入信号10khz的信号,利用计数功能实现800Hz时钟信号获得。
moduleclk_xhz(clk_in,
clk_out);
inputclk_in;
outputclk_out;
reg[4:
0]counter;
regclk_out;
initial
begin
counter<=5'b00000;
clk_out<=0;
end
always@(posedgeclk_in)
begin
counter<=counter+1;
if(counter>13)
begin
clk_out<=~clk_out;
counter<=0;
end
end
endmodule
同样分析综合,生成符号模块如下:
(6)数据显示模块
为了显示6位数码,需要依次读取6个BCD码,顺序送给LED显示。
首先显示的是最新输入的数码,其次是之前输入的BCD码,需要使用数据选择器与BCD码转7段数码管显示码模块。
其中,7段数码管显示模块采用AHDL描述:
SUBDESIGN7seg
(
data_in[3..0]:
INPUT;
a,b,c,d,e,f,g:
OUTPUT;
)
BEGIN
TABLE
data_in[3..0]=>a,b,c,d,e,f,g;
b"0000"=>1,1,1,1,1,1,0;
b"0001"=>0,1,1,0,0,0,0;
b"0010"=>1,1,0,1,1,0,1;
b"0011"=>1,1,1,1,0,0,1;
b"0100"=>0,1,1,0,0,1,1;
b"0101"=>1,0,1,1,0,1,1;
b"0110"=>0,0,1,1,1,1,1;
b"0111"=>1,1,1,0,0,0,0;
b"1000"=>1,1,1,1,1,1,1;
b"1001"=>1,1,1,0,0,1,1;
b"1010"=>1,1,1,0,1,1,1;
b"1011"=>0,0,0,1,1,1,0;
b"1100"=>1,0,0,1,1,1,0;
b"1101"=>0,1,1,0,1,1,1;
b"1110"=>0,0,0,1,1,1,0;
b"1111"=>1,1,1,1,1,1,1;
ENDTABLE;
END;
分析综合生成符号模块:
为了选择4位输入的BCD码,需要解决的是如何选择问题。
首先想到的是1位数据的6选1选择器,如果利用4个选择器就可以实现4位数据的6选1数据选择器。
2.4总体工作过程
图2-4完整电路设计图
系统工作时,如果复位按键没有按下时,当按键按下时,首先经过按键消抖电路,消除机械抖动,产生按键按下信号DP,随后将按键输入状态送给编码电路,译码出BCD码值,由于DP信号产生,使得BCD值可以送到6位移位寄存器。
随后,6位移位寄存器输出送给数据显示模块,利用6选1数据选择器顺序读取6组信号送到7段数码管显示电路,实现简易电话拨号机功能。
第三章单元电路设计与分析
3.1各单元电路的选择
(1)按键消抖电路
利用基本的按键消抖模块,构成如下整个键盘的消抖电路,稳定的输出按键状态给后续电路分析处理:
分析综合生成按键消抖符号模块:
其中,K[2..0]是3位按键输入,CLK是扫描时钟输入,这里采用10KHz,其中S[1..0]是2位状态码输入,共4个状态
。
(2)按键编码电路
根据表2-1按键输入真值表与逻辑表达式,绘制如下逻辑电路图就可以实现按键编码功能:
分析综合生成如下符号模块:
(3)6位移位寄存器
如上所示,就是4x6D触发器构成的6位输入移位寄存器,最新输入的信号在DA[3..0]存储,类似于堆栈原理实现,最先输入的信号存储在最上面。
分析综合生成符号模块如下:
(4)数据显示模块
要顺序依次显示按键的输入,需要对来自于6位移位寄存器的BCD码信号顺序进行选择,最新按下的数字最先显示,所以需要有针对4位数据的6选1数据选择器:
分析综合后符号模块如下:
其次,为了产生3位的循环码来供数据选择器使用,需要使用状态机,如下所示为3位输出的状态机:
分析综合后生成符号模块:
利用上述的数据选择器与状态机,构成数据显示模块,电路如下所示:
分析综合后生成符号模块:
3.2设计及工作原理分析
对于整个系统综合后工作状态,已在总体工作过程中加以分析,对于设计中的技巧与关键点,在这里加以说明:
(1)按键编码电路
首先,就是按键的编码模块设计,这是设计中首先考察的基本知识,其中涉及到卡诺图分析与真值表运用。
推出逻辑表达式:
表3-2-1D0数据位真值表
推出逻辑表达式:
表3-2-2D1数据位真值表
推出逻辑表达式:
表3-2-3D2数据位真值表
推出逻辑表达式:
表3-2-4D3数据位真值表
(2)6位移位寄存器电路
其次,在设计过程中又一难点就是6位移位寄存器的设计,之前学习数字电路时学习过D触发器,当时只学会了触发器特性,没有好好加以运用。
现在在这里,利用D触发器可以很好的解决6位BCD的存储与移位操作。
为了实现移位,必须是当下一次按键按下输出BCD码时,电路要保存之前的按键BCD码并存储,由于BCD码只有4位,所以保存1个BCD码需要有4个D触发器,由于要显示6段数码管,所以需要6组,每组4个D触发器共24个D触发器构成6位移位寄存器,前一组的输出接下一组的输入,就可以实现按序存储如计算机里的堆栈一样。
第四章电路的组构与调试
4.1遇到的主要问题
(1)按键阵列输入不稳定:
一开始,为了简化电路设计,没有考虑使用按键消抖电路,在测试按键时,输入不稳定,有时候会出现错误,比如按键按一次却输出显示多次按键输入;
(2)按键检测到但是数码管不显示,一开始的时候只能检测第1列按键,后来改进后,可以检测到1-9数字键并显示,但是检测的到0按键,奇怪的是LED数码管却不能移位显示0;
(3)数码管显示不稳定,会有明显的数码段闪动显示,很刺眼;
(4)按键编码错误,按下的按键与编码的输出不合逻辑,不符合真值表的要求;
(5)移位寄存器不会设计,不知道如何处理移位效果。
4.2现象记录及原因分析
(1)针对输入信号的不稳定导致输入信号错误,分析最可能的原因就是按键按下与弹起带有明显的机械抖动,导致输入信号的不稳定与错误;
(2)检测到按键输入,但是数码管不显示,可能的原因就是由于数码管显示电路的时钟频率太低或是太高,导致按键按下时不能显示数字;
(3)数码管显示不稳定,会有明显的闪动的原因应该是扫描的频率太低,也就是说3-8译码器的译码过程太慢,导致显示太慢;
(4)按键编码错误,最可能的就是逻辑表达式的推导出错或是电路连接时引脚标号出错引起;
4.3解决措施及效果
(1)针对按键抖动,设计添加按键消抖电路,实现稳定准确的按键信号输入;
(2)针对按键按下并可以检测到,但是数码管不显示的现象,修改显示模块的时钟,一开始使用的时钟是1KHz,发现只能显示第1列数字键,后来修改频率为500Hz,可以检测显示3行的数字输入,但是虽然检测到按键(0)的输入,但是不能显示在LED数码管上,所以后来利用Verilog硬件描述语言产生800Hz的信号,作为显示模块的时钟输入,就可以很好的解决按键(0)不显示的现象;
(3)数码管显示会闪动,解决的最简单的就是提高显示扫描的频率;
(4)按键编码错误的检查,可以采用LED灯显示按键编码输出,逐个按键测试,最终解决按键编码错误;
(5)对于6位移位寄存器的设计,查阅图书馆的书籍与文献,最终设计出基于24个D触发器的6位BCD码移位寄存器。
4.4功能的测试方法、步骤、设备、记录的数据
在整个数字电路课程设计中,熟悉、巧妙地运用软件的波形文件仿真功能与实际电路调试,以及借助于软件自带常用模块的使用等,可以显著的提高设计效率,节约设计的时间。
在设计时,采用分块设计、分块验证的思想。
每设计完一个模块,就加以分析、综合与仿真,可以采用实际硬件测试,简单直观,也可以采用软件附有的波形编辑仿真。
一般的步骤就是
设计、绘制模块的电路图,设定输入输出信号
保存、编译电路图;
编写测试波形文件、添加测试节点(信号);
编译、功能仿真。
如果采用实际硬件仿真,一般的步骤就是:
设计、绘制模块的电路图,设定输入输出信号
保存、编译电路图;
分配输入输出引脚;
编译、编程下载。
测试设备:
LP-2900FPGA实验台
测试时引脚分配表
信号Signal
EPF10K10TC144-4
信号Signal
EPF10K10TC144-4
138SEL[2]
PIN_37
KO[2]
PIN_18
138SEL[1]
PIN_36
KO[1]
PIN_19
138SEL[0]
PIN_33
KO[0]
PIN_20
clk_ind
PIN_7
kp
PIN_8
DEO[3]
PIN_13
LED_COM
PIN_141
DEO[2]
PIN_12
nRST
PIN_47
DEO[1]
PIN_11
osc_clk_10m
PIN_55
DEO[0]
PIN_10
SEG[7]
PIN_32
K[2]
PIN_42
SEG[6]
PIN_31
K[1]
PIN_43
SEG[5]
PIN_30
K[0]
PIN_44
SEG[4]
PIN_29
SEG[3]
PIN_28
SEG[2]
PIN_27
SEG[1]
PIN_26
SEG[0]
PIN_23
第五章结束语
5.1对设计题目的结论性意见及进一步改进的意向说明
(1)简易电话机的设计给了我许多启发与思考,做完整个实验,花费了不少时间与精力,但是收获也与之成正比,之前老师指导我们实现基本的多位串行进位加法器与动态显示扫描电路,让自己对FPGA有了直观的认识,加上后来的软件基本操作的熟悉与掌握、电路图绘制以及功能仿真、硬件编程等,让我认识一个简单的数字系统设计过程。
(2)其次,这一次设计给我一个很重要的思想:
“分模块设计”。
简易电话机的设计,对于实际真正运用的大型数字系统而言,还是蛮简单的,但是就初学者而言,还是比较复杂的。
对于这个系统,首先要确定需要那几个模块,模块之间如何进行信号的传递与处理,每个模块的功能是什么等问题,深刻认识模块设计与自顶向下的设计思想。
5.2总结设计的收获与体会
简易电话机的设计,给了我很多教训,也让我收获了很多知识与经验。
首先,让我对FPGA有了初步的认识,包括设计开发数字系统的芯片类型、开发软件与开发流程的认识与掌握。
其次,就是设计思想的重要性。
对于一个复杂的数字系统而言,一般有2种设计思想,一种是“自顶向下”的设计思想,也就是说对于一个系统,首先要确定一个完整的电子系统具备的那些必须功能,而后根据功能来设计具体的每个功能模块,每个功能模块可能又需要有更小的子模块来实现。
所以,工程上设计数字系统的时候常用的就是采用自顶向下的设计方法。
而本次采用的就是自顶向下的设计方法。
而与之对应的另一种就是自底向上的设计思想。
就是说先设计每个小模块,而后逐级向上设计,如堆积木式的设计方法,最终将各个模块设计组装调试,完成设计过程。
在设计之前,首先需要深刻、仔细的分析实验指导书,明确设计的任务与要求,而后针对要求来确定功能,根据需要的功能来确定需要的功能模块,最后需要的就是每个模块的设计与综合,最后组装实现整个任务。
在这几天的调试过程中,深刻的体会了模块化设计的重要性。
由于一个电路中有许多模块,每个模块又需要子模块等,如果一开始就去设计每个模块而不加以验证,那么由这些模块组合的系统很难保证不出现问题,而一旦出现问题,就需要逐个排查,对于简单的系统设计可以这么操作,但是如果一个大型的数字系统有几百个,甚至几千个小功能模块,如果再采用一个个模块测试的话,工作量之大,耗费时间等都不可想象。
所以良好、高效的设计开发就需要模块化设计、模块化验证。
每设计好一个模块,注明设计思想与思路,编译、测试没有出现错误时才能添加到整个工程中,而且一定要注意的是各个模块之间的信号传递与处理不能出错,否则会导致不可预测的后果。
给我的感触中,还有的就是数字电子技术的灵活运用十分重要。
对于时序的理解与流程的规划,在实际的设计中显得尤其重要,一定要明确的了解总体的工作过程,分析清楚主次与时序上的先后,才能正确的设计,避免一些常见的并且容易出现的错误。
此外,灵活、巧妙的运用常见的触发器、计数器以及集成芯片,对于高效的数字电路设计也十分重要。
总体而言,这一次数字电路设计,虽有些累但乐在其中,收获很大。
参考文献
【1】基于FPGA的数字电路系统设计崔葛瑾沈利芳等西安电子科技大学出版社
【2】数字电路及系统设计赵曙光刘玉英崔葛瑾高等教育出版社
【3】VerilogHDL程序设计教程王金明人民邮电出版社
附录
1.总电路图A
2.图B时钟分频电路
3.图C按键消抖模块电路
模块部分C0
模块部分C1
模块部分C2
3.图D按键编码模块电路
5.图E6位移位寄存器电路
6.图F数码管数字显示电路
7.图G数据选择电路
8.循环码产生器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计