当前位置:文档之家› Verilog HDL数字时钟课程设计

Verilog HDL数字时钟课程设计

课程设计报告课程设计名称:EDA课程设计课程名称:数字时钟二级学院:信息工程学院专业:通信工程班级:12通信1班学号:**********姓名:@#$%成绩:指导老师:***年月日目录第一部分 EDA技术的仿真 (3)1奇偶校验器 (3)1.1奇偶校验器的基本要求 (3)1.2奇偶校验器的原理 (3)1.3奇偶校验器的源代码及其仿真波形 (3)28选1数据选择器 (4)2.18选1数据选择器的基本要求 (4)2.28选1数据选择器的原理 (4)2.38选1数据选择器的源代码及其仿真波形 (5)34位数值比较器 (6)3.14位数值比较器的基本要求 (6)3.24位数值比较器的原理 (6)3.34位数值比较器的源代码及其仿真波形 (7)第二部分 EDA技术的综合设计与仿真(数字时钟) (8)1概述 (8)2数字时钟的基本要求 (9)3数字时钟的设计思路 (9)3.1数字时钟的理论原理 (9)3.2数字时钟的原理框图 (10)4模块各功能的设计 (10)4.1分频模块 (10)4.2计数模块(分秒/小时) (11)4.3数码管及显示模块 (13)5系统仿真设计及波形图........................ 错误!未定义书签。

55.1芯片引脚图................................. 错误!未定义书签。

55.2数字时钟仿真及验证结果 (16)5.3数字时钟完整主程序 (17)6课程设计小结 (23)7心得与体会 (23)参考文献 (24)第一部分 EDA技术仿真应用1、奇偶校验器1.1奇偶校验器的基本要求用于检验一个二进制数据中的0或1的个数是奇数还是偶数,然后输出检测结果。

当输入字节为8位的A中的1的个数为奇数时输出端odd为高电even输出高电平,反之odd输出低电平,even输出高电平。

1.2奇偶校验器的原理通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。

在被校验的数据后加一位校验位或校验字符用作校验码实现校验。

1.3奇偶校验器的源代码及仿真波形module jiou(even_bit,odd_bit,a);input[7:0] a;output even_bit,odd_bit;assign even_bit = ^a;assign odd_bit = ~even_bit;endmodule2、8选1数据选择器2.1数据选择器的基本要求在数字信号的传输中,需要从一组数据选出某一个数据出来,常用的数据选择器有4选1、8选1、16选1等类型。

要求设计8选1数据选择器并仿真验证。

2.2数据选择器的原理74LS151为互补输出的8选1数据选择器,引脚排列如图3-2,功能如表3-1。

选择控制端(地址端)为A2~A0,按二进制译码,从8个输入数据D0~D7中,选择一个需要的数据送到输出端Q,为使能端,低电平有效。

使能端=1时,不论A2~A0状态如何,均无输出(Q=0,=1),多路开关被禁止。

使能端=0时,多路开关正常工作,根据地址码A2、A1、A0的状态选择D0~D7中某一个通道的数据输送到输出端Q。

如:A2A1A0=000,则选择D0数据到输出端,即Q=D0。

如:A2A1A0=001,则选择D1数据到输出端,即Q=D1,其余类推。

2.3数据选择器的源代码及仿真波形module Verilog1( Y ,A ,D0, D1, D2, D3, D4, D5, D6, D7 ,G );input [2:0] A ;wire [2:0] A ;input D0 ;input D1 ;input D2 ;input D3 ;input D4 ;input D5 ;input D6 ;input D7 ;input G ;wire G ;output Y ;reg Y ;always @(G or A or D0 or D1 or D2 or D3 or D4 or D5 or D6 or D7 )beginif (G == 1)Y <= 0;elsecase (A )3'b000 : Y = D0 ;3'b001 : Y = D1 ;3'b010 : Y = D2 ;3'b011 : Y = D3 ;3'b100 : Y = D4 ;3'b101 : Y = D5;3'b110 : Y = D6 ;3'b111 : Y = D7 ;default : Y = 0;endcaseendendmodule3、4位数值比较器3.1 数字比较器的基本要求在一些数字系统中,经常需要比较两个数字的大小,完成这样的功能所设计的各种逻辑电路称为数值比较器。

数值比较器根据数据的位数不同,有一位和多位数值比较器。

要求设计4位数值比较器并仿真。

3.2 数字比较器的原理如果两位数A1A0和B1B0的高位不相等,则高位比较结果就是两数比较结果,与低位无关。

这时,由于中间函数(A1=B1)=0,使与门G1、G2、G3均封锁,而或门都打开,低位比较结果不能影响或门,高位比较结果则从或门直接输出。

如果高位相等,即(A1=B1)=1,使与门G1、G2、G3均打开,同时由(A1>B1)=0和(A1<B1)=0作用,或门也打开,低位的比较结果直接送达输出端,即低位的比较结果决定两数谁大、谁小或者相等。

3.3 数据比较器的源代码级仿真波形module bijiao(a,b,c);input[3:0] a,b;output [1:0] c;reg[1:0] c;always@(a or b)beginif(a>b)c=2'd2;else if(a<b)c=2'd1;elsec=2'd0;endendmodule第二部分 EDA技术的综合设计(数字时钟)1.概述数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。

数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。

这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。

数字钟已成为人们日常生活中不可缺少的生活必需品,广泛地应用于人家庭以及车站、码头、剧场、办公室等家庭和公共场所,给人们的生活,学习,工作,娱乐带来极大的方便。

数字钟一般由振荡器,分频器,译码器,显示器等部分组成,这些都是数字电路中最基本的,应用最广的电路。

当前市场上已有现成数字钟集成电路芯片出售,价格较便宜。

由于数字集成电路技术的发展,采用了先进稳定的石英振荡器技术,使数字钟具有走时准确,性能稳定,携带方便等特点,是目前人们生活和工作不可或缺的报时用品。

2.数字时钟的基本要求(1).数字时钟显示时、分、秒。

(2).基准时间0.5S的产生。

(3).计时秒个位达到10,秒的十位加1,秒满60,分个位加1。

(4).计时分个位达到10,分的十位加1,分满60,时个位加1。

依次类推。

(4).时钟显示:6位数码管3. 数字时钟的设计思路3.1 数字时钟的理论原理它是以电子方式而不是机械方式来完成这些功能。

因此在电子时钟里面,有一个电源(可能是电池或从墙壁插座接入的120伏交流电),一个电子时基按某种已知的精确速度发出信号,一个类似“齿轮装置”的某种电子部件,数字时钟通常使用“计数器”部件完成时基转换。

此外还有一个显示屏,通常是LED(发光二极管)或LCD(液晶显示屏)。

它是以电子方式而不是机械方式来完成这些功能。

因此在电子时钟里面,有一个电源(可能是电池或从墙壁插座接入的120伏交流电),一个电子时基按某种已知的精确速度发出信号,一个类似“齿轮装置”的某种电子部件,数字时钟通常使用“计数器”部件完成时基转换。

此外还有一个显示屏,通常是LED(发光二极管)或LCD(液晶显示屏)。

3.2 数字时钟的原理框图4模块个功能的设计4.1分频模块分频模块用于为系统的实现提供稳定的工作频率和计时信号源,分频为1HZ频率的信号作为计时模块的信号源和数码管动态显示的扫描频率。

系统所给的时钟是50MHz,而我们需要的周期为1s,即频率为1Hz,所以我们需要先进行分频,将50MHz分频成1Hz,用于计数。

always@(posedge CP)beginif(cnt<=49999999)beginCP_1HZ<=1'b0;cnt=cnt+1;endelsebeginCP_1HZ<=1'b1;cnt=0;endend4.2计数模块计数模块是对秒,分,时进行计数,当达到59秒或59分时,接下来会产生进位,然后对小时进行24小时制进位。

秒计数always @ (posedge CP_1HZ or posedge reset)if (reset==1)sec<=0;elsebeginif(sec==59)beginsec<=0;tun<=1;endelsebeginsec<=sec+1;tun<=0;endendassign mt=tun;分计数always@(posedge mt or posedge reset)if(reset==1)min<=0;elsebeginif(min==59)beginmin<=0;mod<=1;endelsebeginmin<=min+1;mod<=0;endendassign nt=mod;always@(posedge CP_1HZ)beginbeginif(min==29)s1<=1;elses1<=0;endbeginif(min==59)s2<=1;elses2<=0;endEnd小时计数always@(posedge nt or posedge reset) if(reset==1)hour<=0;elsebeginif(hour==23)hour<=0;elsehour<=hour+1;endalways@(sec or reset)if(reset==1)beginsec_H<=0;sec_L<=0;endelsebeginsec_H<=sec%10;sec_L<=sec/10;endalways@(min or reset)if(reset==1)beginmin_H<=0;min_L<=0;endelsebeginmin_H<=min%10;min_L<=min/10;endalways@(hour or reset)if(reset==1)beginhour_H<=0;hour_L<=0;endelsebeginhour_L<=hour%10;hour_H<=hour/10;end4.3数码管及显示模块FPGA板上共有6个数码显示管,通过将计数模块和显示模块相连接,将时,分,秒在数码管上显示出来。

相关主题