欢迎来到天天文库
浏览记录
ID:37817146
大小:1.16 MB
页数:10页
时间:2019-05-31
《分频器和计数器的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数电实验实验五:分频器和计数器的应用专业:信息工程班级:09031201学号:2012302250姓名:周康鹏同组人:魏东(2011302282)一、实验目的1、熟悉分频器的原理;2、了解计数器74160(十进制计数器)的工作原理,任意进制计数器的改装;3、了解共阳极七波段数码管的工作原理和使用方法。二、实验要求1、利用开发板上的50M时钟,用VHDL或VerilogHDL实现两路分频输出,一路为50M分频占空比50%的1Hz信号输出,另一路5M分频占空比20%的10Hz信号输出。(不做波形仿真)2、根据
2、所学过的门电路、中规模器件和计数器,用原理图方法实现计数方式如下电路(两位BCD显示)(需要做波形仿真):00,01,02,..............09;11,12,.................19;22,...................29;33,..................39;44,................49;55..............59;66............69;77..........79;88........89;99;3、用上述实验要求1已经
3、实现的分频信号1Hz和10Hz,作为时钟信号,驱动实验要求2的计数电路,并结合上次实验实现的乘法器,实现99乘法表显示并能够用开关控制显示速率(1Hz或10Hz显示)(不做波形仿真)。4、利用上次实验实现的加法电路,能够用开关实现99乘法表和99加法表的切换(不做波形仿真)。三、实验设备1.计算机(QuartusⅡ9.0)2.FPGA开发电路板(芯片型号:EP3C16F484C6)四、实验原理1、分频器:7由于FPGA开发板上的时钟频率为50MHz,即1s内计数510次,脉冲周期为20ns;○1要将其分
4、频为1Hz的脉冲输出,即脉冲周期为1s,且占空比为50%,可以777设置输入CP脉冲在计数0~5.210期间为低电平,5.210~510期间为高电平;○2要将其分频为10Hz的脉冲输出,即脉冲周期为0.1s,且占空比为20%,666可以设置输入CP脉冲在计数0~110期间为低电平,110~510期间为高电平;2、实验要求2图1计数器仿真电路图五、实验步骤及结果分析步骤1、分频器封装用VHDL编写程序fenpin.vhd(分频程序(附录显示))并将此程序封装为:图2分频封装(fenpin.bsf
5、)步骤2、乘法器封装用VHDL编写程序mul4a.vhd(乘法程序(附录显示))并将此程序封装为:图3乘法器封装(mul4a.bsf)步骤3、加法器封装图4加法器仿真电路图并将图4所示电路图封装为:图5加法器封装(add4a.bsf)步骤4、计数器封装将图1所示电路图封装为:图6计数器封装(jishu.bbsf)步骤5、图7实验要求中3的电路图(注:要将fenpin.vhd、mul4a.vhd和add4a.bdf加入到所在工程的顶层文件中)步骤6、附加要求的实现:将图7中添加一加法器的封装文件,并将计数器
6、的个位、十位分别作为加法器的两个加数,在数码管显示时,对积与和对应为分别作二选一数据选择器,共八个,将这八个数据选择器的开关共在一起,即可完成乘法表和加法表的切换。实验结果:1、图8计数器的仿真结果显示2、硬件结果检测将实验要求3与附加要求中的电路图设置好引脚并下载到FPGA开发板上,以检测实验结果是否符合预期结果。经检测实验电路满足预期的结果,可以控制计数在1s和0.1s的速率下切换,同时也可以控制乘法表和加法表的切换。六、实验心得与体会通过本次实验我对VHDL语言在实现函数或逻辑功能方面有了更深入的了
7、解,对Quartus在封装*.vhd文件与*.bdf文件的操作进行了初步的了解,同时在工程中如何应用这些用户封装文件有了基本的掌握。除此以外,对在自己在理论设计方面的不足有了一些有了确切的掌握。附录:1.分频程序(fenpin.vhd)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenpinisport(CP_in:instd_logic;cp_1:outstd_logic;cp_10:outstd
8、_logic);endfenpin;architecturefwmoffenpinissignaltemp1:std_logic;signaltemp2:std_logic;beginprocess(CP_in)variablecount1:integerrange0to50000000;variablecount2:integerrange0to5000000;beginif(CP_in'eventandCP_in='1')
此文档下载收益归作者所有