数字电路时钟设计verilog语言编写--

上传人:飞*** 文档编号:41850917 上传时间:2018-05-31 格式:DOCX 页数:13 大小:77.09KB
返回 下载 相关 举报
数字电路时钟设计verilog语言编写--_第1页
第1页 / 共13页
数字电路时钟设计verilog语言编写--_第2页
第2页 / 共13页
数字电路时钟设计verilog语言编写--_第3页
第3页 / 共13页
数字电路时钟设计verilog语言编写--_第4页
第4页 / 共13页
数字电路时钟设计verilog语言编写--_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数字电路时钟设计verilog语言编写--》由会员分享,可在线阅读,更多相关《数字电路时钟设计verilog语言编写--(13页珍藏版)》请在金锄头文库上搜索。

1、电子线路设计与测试电子线路设计与测试实验报告实验报告一、实验名称一、实验名称多功能数字钟设计二、二、 实验目的实验目的1.掌握可编程逻辑器件的应用开发技术设计输入、编译、仿真和器件编程;2.熟悉一种 EDA 软件使用;3.掌握 Verilog 设计方法;4.掌握分模块分层次的设计方法;5.用 Verilog 完成一个多功能数字钟设计。三、三、 设计内容及要求设计内容及要求1基本功能 具有“秒” 、 “分” 、 “时”计时功能,小时按 24 小时制计时。 具有校时功能,能对“分”和“小时”进行调整。2.扩展功能 仿广播电台正点报时。在 59 分 51 秒、53 秒、55 秒、57 秒发出低音51

2、2Hz 信号,在 59 分 59 秒时发出一次高音 1024Hz 信号,音响持续 1 秒钟,在 1024Hz 音响结束时刻为整点。 定时控制,其时间为 23 时 58 分。3.选做内容 任意时刻闹钟(闹钟时间可设置) 。 自动报整点时数。四系统框图与说明四系统框图与说明数字钟框图1.数字钟电路系统由主体电路和扩展电路两大部分所组成。2.秒计数器计满 60 后向分计数器进位,分计数器计满 60 后向小时计数器进位,小时计数器按照“24 进制”规律计数。3.计数器的输出经译码器送显示器。五五设计步骤设计步骤1.列写多功能数字钟设计-层次结构图主体电路主体电路 cl ock_m ai n. v co

3、unt er24. v count er60. v count er60. v6 count er6. v10 count er10. v6 count er6. v10 count er10. v f re_di vi der. v set cl ock. v baoshi . v2.拟定数字钟的组成框图,在 Max+Plus II 软件中,使用 Verilog 语言输入, 采用分层次分模块的方法设计电路;3.设计各单元电路并进行仿真;4.对数字钟的整体逻辑电路图,选择器件,分配引脚,进行逻辑综合;5.下载到 Cyclone II FPGA 实验平台上,实际测试数字钟的逻辑功能。六六Veri

4、logVerilog 代码代码/24 进制时钟, 具有计时、校时、仿广播电台正点报时、固定时刻定时,任意时刻闹钟等功能module clock_main(LED_Hour,LED_Minute,LED_Second,Alarm,CP_1KHz,Jsh_Min_key,Jsh_Hour_key,Set_Hour_key,Set_Min_key,Show,Ctrl_Bell);input CP_1KHz;/定义输入时钟input Jsh_Min_key,Jsh_Hour_key;/定义校时按键input Set_Hour_key,Set_Min_key;/定义闹钟定时按键input Show; /

5、定义显示模式按键input Ctrl_Bell;/定义闹钟铃声控制output 7:0LED_Hour,LED_Minute,LED_Second;/定义输出变量wire 7:0LED_Hour,LED_Minute,LED_Second;/定义输出变量类型wire 7:0Hour,Minute,Second; wire 7:0Set_Hour_Out,Set_Min_Out;wire Out_1Hz,Out_500Hz;/定义分频模块输出变量类型reg Alarm_Ring,Alarm_Clock_1KHz;/定义仿广播电台报时和固定时刻定时铃声output Alarm;/蜂鸣器输入supp

6、ly1Vdd;wire Alarm_Clock;/任意时刻闹钟闹铃wire MinL_EN,MinH_EN,Hour_EN;/定义中间变量类型/分频fre_dividerFD0(Out_1Hz,Out_500Hz,Vdd,Vdd,CP_1KHz);/正常计时counter10 U1(.Q(Second3:0),.nCR(Vdd),.EN(Vdd),.CP(Out_1Hz);counter6 U2(.Q(Second7:4),.nCR(Vdd),.EN(Second3:0=4h9),.CP(Out_1Hz);assignMinL_EN=Jsh_Min_key?Vdd:(Second=8h59);

7、assign MinH_EN=(Jsh_Min_keycounter10 U3(.Q(Minute3:0),.nCR(Vdd),.EN(MinL_EN),.CP(Out_1Hz);counter6 U4(.Q(Minute7:4),.nCR(Vdd),.EN(MinH_EN),.CP(Out_1Hz);assign Hour_EN=Jsh_Hour_key?Vdd:(Minute=8h59)counter24 U5(Hour7:4,Hour3:0,Vdd,Hour_EN,Out_1Hz);/仿广播电台正点报时baoshi BS1(Alarm_Ring,Minute,Second,Out_500

8、Hz,CP_1KHz);/在 59 分 51 秒、53 秒、55 秒、57 秒发出低音 512Hz 信号,在 59 分 59 秒时发出一次高音 1024Hz 信号,音响持续 1 秒钟,在 1024Hz 音响结束时刻为整点/固定时刻定时always (Hour or Minute or Second)/所定时刻为 23 时 58 分,蜂鸣器发出低音1KHz 信号,持续 5 秒钟if (Hour=8h23default Alarm_Clock_1KHz=1b0;endcaseelse Alarm_Clock_1KHz=1b0;/任意时刻闹钟setclock SC1(Alarm_Clock,Set_

9、Hour_Out,Set_Min_Out,Hour,Minute,Second,Set_Hour_key,Set_Min_key,CP_1KHz,Out_500Hz,Out_1Hz,Ctrl_Bell);/响铃assign Alarm=Alarm_Ring|Alarm_Clock_1KHz|Alarm_Clock;/数码管显示选择Choice_2to1 CU1(LED_Hour,Show,Set_Hour_Out,Hour);/Show 为高电平时,显示闹钟所定时刻;为低电平时,显示正常计时Choice_2to1 CU2(LED_Minute,Show,Set_Min_Out,Minute);

10、Choice_2to1 CU3(LED_Second,Show,8h00,Second);Endmodule/*分频模块,获得 500Hz 低频 1Hz 时钟源*modulefre_divider(Out_1Hz,Out_500Hz,nCR,EN,In_1KHz);input nCR,EN,In_1KHz;output Out_1Hz,Out_500Hz;supply1Vdd;wire Out_1Hz,Out_500Hz;wire 11:0Qn;/定义中间变量类型wire EN1,EN2;counter10 DU1(.Q(Qn3:0),.nCR(nCR),.EN(EN),.CP(In_1KHz

11、);counter10 DU2(.Q(Qn7:4),.nCR(nCR),.EN(EN1),.CP(In_1KHz);counter10 DU3(.Q(Qn11:8),.nCR(nCR),.EN(EN2),.CP(In_1KHz);assign EN1= (Qn3:0=4d9);assign EN2= (Qn7:4=4d9)assign Out_500Hz=Qn0; assign Out_1Hz=Qn11;endmodule/*模 10 计数器*module counter10(Q,nCO,nCR,EN,CP);inputCP,nCR,EN;output3:0Q;outputnCO;reg3:0

12、Q;always(posedge CP or negedgenCR)beginif(nCR)Q=4d9)Q2)|(CntL9)|(CntH=2)else if(CntH=2)CntL= CntL+1b1;endelse if(CntL=9)beginCntH= CntH+1b1;CntL = 4b0000;endelsebeginCntH= CntH;CntL= CntL+1b1;endendendmodule/*仿广播电台正点报时*modulebaoshi(Alarm_Ring,Minute,Second,_500Hz,_1KHz);input 7:0 Minute,Second;/定义输入

13、变量input _500Hz,_1KHz;output Alarm_Ring;/定义输出变量regAlarm_Ring;/定义输出变量类型always(Minute or Second)if(Minute=8h59)case (Second)8h51,8h53,8h55,8h57:Alarm_Ring=_500Hz; /在 59 分 51 秒、53 秒、55 秒、57 秒发出低音 512Hz 信号8h59:Alarm_Ring=_1KHz; /在 59 分 59 秒时发出一次高音 1024Hz 信号default:Alarm_Ring=1b0;endcaseelseAlarm_Ring=1b0

14、;Endmodule/*任意时刻闹钟*module setclock(Alarm_Clock,Set_Hour_Out,Set_Min_Out,Hour,Minute,Second,Set_Hour_key,Set_Min_key,_1KHz,_500Hz,_1Hz,Ctrl_Bell);inputSet_Hour_key,Set_Min_key;inputCtrl_Bell;input 7:0Hour,Minute,Second;outputAlarm_Clock;output 7:0Set_Hour_Out,Set_Min_Out;wire 7:0Set_Hour_Out,Set_Min_

15、Out;wireAlarm_Clock;input _1KHz,_500Hz,_1Hz;supply1Vdd;wireHourH_EQU,HourL_EQU,MinH_EQU,MinL_EQU;wireTime_EQU;counter60 SU1(.Qnt(Set_Min_Out),.nCR(Vdd),.EN(Set_Min_key),.CP(_1Hz); /实现 闹钟分钟的设定counter24 SU2(Set_Hour_Out7:4,Set_Hour_Out3:0,Vdd,Set_Hour_key,_1Hz); / 实现闹钟小时的设定comparator SU4(HourH_EQU,Set_Ho

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号