基于Verilog HDL的表决器的设计

基于Verilog HDL的表决器的设计
基于Verilog HDL的表决器的设计

学生课程实验报告书

12 级电通系

通信工程专业 03 班

学号 312890 姓名

2014--2015学年第 2 学期实验项目:

基于Verilog HDL的表决器的设计

实验时间: 2015.6.07

实验目的:

1、熟悉Verilog HDL的编程。

2、熟悉七人表决器的工作原理。

3、进一步了解实验系统的硬件结构。

实验原理:

所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个按键开关来表示七个人,当对应的按键开关输入为‘1’时,表示此人同意;否则若按键开关输入为‘0’,则表示此人反对。表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。同时,数码管上显示通过的票数。

实验内容:

本实验就是利用实验系统中的按键开关模块和LED模块以及数码管模块来实现一个简单的七人表决器的功能。按键开关模块中的键1~键7表示七个人,当按键开关输入为‘1’时,表示对应的人投同意票,否则当按键开关输入为‘0’时,表示对应的人投反对票;LED模块中D1表示七人表决的结果,当LED1点亮时,表示此行为通过表决;否则当LED1熄灭时,表示此行为未通

过表决。同时通过的票数在数码管上显示出来。

实验步骤:原理图步骤与实验一相同

模式选择键”:按动该键能使实验板产生12种不同的实验电路结构。本次实验的模式选择到“5”(红色数码管上显示)。

用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致

表6-1 端口管脚分配表

实验现象与结果

当设计文件加载到目标器件后,按实验系统中按键开关模块的键1-键7七位按键开关,如果按键开关的值为“1”(即按键开关的开关置于上端,表示此人通过表决)的个数大于或等于四时LED 模块的D1被点亮,否则D1不被点亮。同时数码管上显示通过表决的人数。 实验程序:

module dee5(K,m_Result,LEDAG); input [7:1] K; output m_Result; output [3:0]LEDAG; integer i; reg m_Result; reg[3:0]LEDAG; reg [2:0] sum; always@(K) begin sum=0;

LEDAG=0;

for(i=1;i<=7;i=i+1)

if(K[i]) sum=sum+1; if(sum>=4)

begin m_Result=1; if(sum==4) LEDAG=4'b0100; if(sum==5) LEDAG=4'b0101; if(sum==6) LEDAG=4'b0110; if(sum==7) LEDAG=4'b0111;

end

else m_Result=0;

begin

if(!sum) LEDAG=4'b0000;

if(sum) LEDAG=4'b0001; if(sum==2) LEDAG=4'b0010; if(sum==3) LEDAG=4'b0011; end end

endmodule

表决器的仿真波形图:

实验现象:当输入大于4个1的时候数码管会显示相应数字,同时LED 灯会亮,当输入3个或一下

1时,LED 灯不亮。

心得体会:通过这次实验是我了解了7人表决器的工作原理,运用老师上课的笔记,轻松的做出了相应的程序。同时,能更加灵活的运用EDA 软件了。

指导教师评语:

实验成绩_______________ 指导教师_______________

端口名 使用模块信号 对应FPGA 管脚

说 明

K1 键1 1 七位投票人 的表决器 K2 键2 2 K3 键3 3 K4 键4 4 K5 键5 5 K6 键6 6 K7

键7

7 m_Result LED 模块 D1 11 表决结果亮为通过 LEDAG0 数码管模块1 39 表决通过的票数

LEDAG1 数码管模块1 40

LEDAG2 数码管模块1 41 LEDAG3

数码管模块1

42

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

电子线路设计与测试 实验报告 一、实验名称 多功能数字钟设计 二、实验目的 1.掌握可编程逻辑器件的应用开发技术 ——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法;

4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计。 三、设计内容及要求 1.基本功能 具有“秒”、“分”、“时”计时功能,小时按24小时制计时。 具有校时功能,能对“分”和“小时”进行调整。 2.扩展功能 仿广播电台正点报时。在59分51秒、53秒、55秒、57秒发出低音512Hz 信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。 定时控制,其时间为23时58分。 3.选做内容 任意时刻闹钟(闹钟时间可设置)。 自动报整点时数。 四.系统框图与说明 数字钟框图

1.数字钟电路系统由主体电路和扩展电路两大部分所组成。 2.秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数器进位,小时计数器按照“24进制”规律计数。 3.计数器的输出经译码器送显示器。 五.设计步骤 1.列写多功能数字钟设计--层次结构图 2.拟定数字钟的组成框图,在Max+Plus II软件中,使用Verilog语言输入,采用分层次分模块的方法设计电路; 3.设计各单元电路并进行仿真; 4.对数字钟的整体逻辑电路图,选择器件,分配引脚,进行逻辑综合; 5.下载到Cyclone II FPGA实验平台上,实际测试数字钟的逻辑功能。

六.Verilog代码 //24进制时钟, 具有计时、校时、仿广播电台正点报时、固定时刻定时,任意时刻闹钟等功能 module clock_main(LED_Hour,LED_Minute,LED_Second,Alarm,CP_1KHz,Jsh_Min_key,Jsh_Hour_ke y,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; //定义显示模式按键 input Ctrl_Bell;//定义闹钟铃声控制 output [7:0]LED_Hour,LED_Minute,LED_Second;//定义输出变量 wire [7:0]LED_Hour,LED_Minute,LED_Second;//定义输出变量类型 wire [7:0]Hour,Minute,Second; wire [7:0]Set_Hour_Out,Set_Min_Out; wire Out_1Hz,Out_500Hz;//定义分频模块输出变量类型 reg Alarm_Ring,Alarm_Clock_1KHz;//定义仿广播电台报时和固定时刻定时铃声 output Alarm;//蜂鸣器输入 supply1Vdd; wire Alarm_Clock;//任意时刻闹钟闹铃 wire MinL_EN,MinH_EN,Hour_EN;//定义中间变量类型 //分频 fre_dividerFD0(Out_1Hz,Out_500Hz,Vdd,Vdd,CP_1KHz); //正常计时 counter10 U1(.Q(Second[3:0]),.nCR(Vdd),.EN(Vdd),.CP(Out_1Hz)); counter6 U2(.Q(Second[7:4]),.nCR(Vdd),.EN(Second[3:0]==4'h9),.CP(Out_1Hz)); assignMinL_EN=Jsh_Min_key?Vdd:(Second==8'h59); assign MinH_EN=(Jsh_Min_key&&(Minute[3:0]==4'h9))||(Minute[3:0]==4'h9)&&(Second==8'h59 ); counter10 U3(.Q(Minute[3:0]),.nCR(Vdd),.EN(MinL_EN),.CP(Out_1Hz)); counter6 U4(.Q(Minute[7:4]),.nCR(Vdd),.EN(MinH_EN),.CP(Out_1Hz)); assign Hour_EN=Jsh_Hour_key?Vdd:((Minute==8'h59)&&(Second==8'h59)); counter24 U5(Hour[7:4],Hour[3:0],Vdd,Hour_EN,Out_1Hz); //仿广播电台正点报时 baoshi BS1(Alarm_Ring,Minute,Second,Out_500Hz,CP_1KHz);//在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点 //固定时刻定时

Verilog HDL数字时钟课程设计

课程设计报告 课程设计名称:EDA课程设计课程名称:数字时钟 二级学院:信息工程学院 专业:通信工程 班级:12通信1班 学号:1200304126 姓名:@#$% 成绩: 指导老师:方振汉 年月日

目录 第一部分 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系统仿真设计及波形图........................... 错误!未定义书签。5 5.1芯片引脚图.................................... 错误!未定义书签。5 5.2数字时钟仿真及验证结果 (16) 5.3数字时钟完整主程序 (17) 6课程设计小结 (23) 7心得与体会 (23) 参考文献 (24)

基于VerilogHDL设计的数字时钟

深圳大学考试答题纸 (以论文、报告等形式考核专用) 二○18 ~二○19 学年度第一学期 课程编 1602080001 课程名称 号 学 姓名李思豪专业年级电子科学与技术16级1班号 题目:基于Verilog HDL设计的数字时钟 摘要:本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过Altera QuartusⅡ 6.0和cyclnoe II EP2C35F672C6完成综合、仿真。此程序通过下载到FPGA芯片后,可应用于实际的数字钟显示中 关键词:Verilog HDL;硬件描述语言;FPGA

目录 一、实验任务 (3) 实验目的 (3) 实验要求 (3) 二、设计思路 (3) 三、实验结果 (10) 四、总结与收获 (14)

一、实验任务 实验目的 1.深入了解基于quartus ii工具的复杂时序逻辑电路的设计。 2.理解并熟练利用EDA工具进行综合设计。 3.熟练掌握芯片烧录的流程及步骤。 4.掌握Verilog HDL 语言的语法规范及时序电路描述方法。 实验要求 设计一个带秒表功能的24 小时数字钟,它包括以下几个组成部分: ①显示屏,由6 个七段数码管组成,用于显示当前时间(时:分,秒)或设置的秒表时间; ②复位键复位所有显示和计数 ③设置键,用于确定新的时间设置,三个消抖按键分别用于时分秒的设置 ④秒表键,用于切换成秒表功能 基本要求 (1) 计时功能:这是本计时器设计的基本功能,每隔一秒计时一次,并在显示屏上显示当前时间。 (2) 秒表功能:设置时间,进行倒计时功能 (3) 设置新的计时器时间:按下设置键后,用户能通过时分秒三个消抖按键对时间进行设置。 二、设计思路 1、总原理框图:

基于verilog数字秒表的设计实现

生产实习报告 班级:通信13-2班 姓名:闫振宇 学号: 成绩: 电子与信息工程学院 信息与通信工程系

基于verilog数字秒表的设计实现 1. 概述 硬件描述语言HDL ( HardwareDescription Langyage) 是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计这里用这种语言可以从上层倒下层逐层描述自设计思想用一系列分层的模块来表示极其复杂的数字系统,然后用EDA 工具逐层验证,把其中需要为具体物理电路的模块组合由自动综合工具转换到门级电路网表。Verilog HDL 是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。使用VERILOG 进行系统设计时采用的是从顶至下的设计,自顶向下的设计是从系统机开始巴西同划分为若干个基本单元,然后再把每个单元划分为下一层的基本单元,这样下去直到可以直接用EDA 元件库中的基本元件来实现为止。 2. 设计目的及要求 a.有源晶振频率:50MHZ; b.测试计时范围:00’00”00 ~ 59’59”99,显示的最长时间为59分59 秒; c.数字秒表的计时精度是10ms; d.显示工作方式:六位BCD七段数码管显示读数,两个按钮开关(一个按钮使秒表复位,另一个按钮控制秒表的启动/暂停)。 3.设计原理 秒表的逻辑结构较简单,它主要由四进制计数器、十六进制计数器、分频器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。 秒表有共有6个输出显示,其中6个显示输出数据,分别为百分之一秒、十分之一秒、

多功能数字钟设计Verilog语言编写

多功能数字钟设计 院系:电光学院 班级:*** 学号: *** 姓名: *** 指导老师:*** 时间:2010.4.20.

摘要:利用QuartusII软件设计一个数字钟,利用模块化的程序设计思想,核心 模块均采用Verilog语言编写(译码显示模块采用原理图设计),软件仿真调试编译成功后,再下载到SmartSOPC实验系统中。经过硬件测试,查找软件设计缺陷,并进一步完善软件,最终设计得到较为满意的多功能数字钟。 关键词:QuartusII; 多功能数字钟; 模块化; Verilog; 可编程; Abstract:Using the QuartusII software design a digital bell with the blocking method.The design takes theory drawing instead of Verilog language.After emluating and debuging successfully,translate and edit the code.Then,download the result to the programmable SmartSOPC system and test it in hardware.Realizing the soul of designing hardware by software. Keywords:QuartusII; digital bell; blocking method; VHDL; programmable; hardware 目录 设计内容简介 (3) 设计要求说明 (3) 方案论证(整体电路设计原理) (3) 各子模块设计理 (5) 分频模块: (5) 计数模块: (7) --校准模块程序实现: (8) --秒计数模块程序实现: (9) --分计数模块程序实现: (10) --时计数模块程序实现: (10) 整点报时模块: (12) 闹钟设定模块: (13) --闹钟调节模块程序实现: (14) --输出信号选择模块程序实现: (14) 彩铃模块: (15) 译码显示模块: (18) 万年历模块: (19) --日计数模块程序设计: (20) --月计数模块程序设计: (23) --年计数模块程序设计: (23) --万年历波形仿真结果: (25) 结论: (26) 实验感想: (26) 附图: (27)

基于FPGA的VerilogHDL数字钟设计-

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 ?功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间围模式; 2)计时时间围 00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实 现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或 外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接 8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; ?设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电 路系统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。

实现数字时钟设计的Verilog代码

下面给出实现数字时钟设计的Verilog代码 module top(inc_hour,sub_hour,inc_min,sub_min,rst,clk,sel,q); input inc_hour,sub_hour,inc_min,sub_min; input rst,clk; output reg [2:0] sel; output reg [6:0] q; reg [9:0] scan; reg [2:0] scan_clk; reg div_clk; reg [19:0] counter_clk; reg [3:0] sec_counter1,sec_counter2; reg [3:0] min_counter1,min_counter2; reg [3:0] hour_counter1,hour_counter2; always @ (negedge rst or posedge clk) begin if(~rst) begin counter_clk<=20'h00000; div_clk<=1'b0; end else begin if(counter_clk==20'h7a11f) begin counter_clk<=20'h00000; div_clk<=~div_clk; end else counter_clk<=counter_clk+1; end end always @(negedge rst or posedge div_clk) begin if(~rst) begin sec_counter1<=4'h0; sec_counter2<=4'h0; min_counter1<=4'h0; min_counter2<=4'h0; hour_counter1<=4'h0; hour_counter2<=4'h0; end

基于某verilog数字钟设计资料报告材料

一、课程设计目标 1. 熟悉并掌握verilog 硬件描述语言 2. 熟悉quartus 软件开发环境 3.学会设计大中规模的数字电路,并领会其中的设计思想 二、课程设计实现的功能 (1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)可以调节小时,分钟。 (3)能够进行24小时和12小时的显示切换。 (4)可以设置任意时刻闹钟,并且有开关闹钟功能。 (5)有整点报时功能,几点钟LED灯闪亮几下。 (6)有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。 三、设计原理: 1、总原理框图: 2、各个子模块设计:

(1)、分频模块: 分频模块的作用主要是要获得各种频率的时钟信号。输入信号为50MHZ的信号,要想获得1HZ的信号作为秒脉冲计时,则要对50MHZ信号分频。通过计数的方式,当计数从0开始到24 999999时,1HZ信号取反一次,计数又从0开始,如此循环,就可以得到1HZ脉冲信号。对于其他信号也是如此,只是计数值不一样,得到的分频信号不同。 部分代码如下: always(posedge _50MHZ or negedge nCR)begin if(~nCR) begin Q1<=32'd0; end else if(Q1>=32'd2*******) begin Q1<=32'd0; _1HZ=~_1HZ; end else begin Q1<=Q1+1'd1; end (2)、计数模块: 秒计数:在1HZ脉冲下进行秒计时,当计时达到59秒后,在下一个脉冲来临变0,并发出一个脉冲信号,可供下面分钟计数作为输入脉冲信号计时。 分钟计数:在输入脉冲下,分钟开始计时,当计时达到59后,在下一个脉冲来临变0,并发出一个脉冲,供小时计数的输入脉冲新号。 小时计数:脉冲信号来临时,计数加1,达到23后在下一个脉冲的作用下清零,从新计时。 如果有复位信号,则时分秒全部清零。 部分代码如下: module second(cp,reset,mode_flag,BT2,SH,SL,co); input cp,reset,BT2; input[3:0]mode_flag; output co=1'b0; //输出脉冲信号 reg co; output [3:0]SL,SH; //输出秒计时的十位、各位 reg[3:0]SH,SL; reg[7:0]cnt; always(posedge cp or negedge reset ) begin if(!reset) begin //有复位,清零 t<=8'd0;

数字系统设计与verilogHDL课程设计

数字系统设计与v e r i l o g H D L课程设计设计题目:实用多功能数字钟 专业:电子信息科学与技术 班级:0313410 学号: 姓名:杨存智 指导老师:黄双林 摘要 本课程设计利用QuartusII软件VerilogVHDL语言的基本运用设计一个多功能数字钟,经分析采用模块化设计方法,分别是顶层模块、alarm、alarm_time、counter_time、clk50mto1、led、switch、bitel、adder、sound_ddd、sound_ddd_du模块,再进行试验设计和软件仿真调试,分别实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能。 单个模块调试达到预期目标,再将整体模块进行试验设计和软件仿真调试,已完全达到分块模式设计功能,并达到设计目标要求。 关键字:多功能数字钟、Verilog、模块、调试、仿真、功能 目录

课程设计的目的 通过课程设计的锻炼,要求学生掌握Verilog HDL语言的一般设计方法,掌握Verilog HDL语言的基本运用,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,基于实践、源于实践,实践出真知,实践检验真理,培养学生的创新精神。 掌握现代数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。 课程设计的任务与要求 用Verilog HDL语言设计一个多功能的数字钟,具有下述功能: (1)计时功能。包括时、分、秒的计时; (2)定时与闹钟功能:能在设定的时间发出闹铃音; (3)校时功能。对时、分和秒能手动调整以校准时间; (4)整点报时功能;每逢整点,产生“嘀嘀嘀嘀一嘟”四短一长的报时音。 2.课程设计思路及其原理 数字计时器要实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能,所有功能都基于计时功能。因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为50MHZ,通过分频获得所需脉冲频率1Hz。得到1hz脉冲后,要产生计时模块,必须需要加法器来进行加法,因此需要一个全加器,此实验中设计一个八位全加器来满足要求。 数字电路设计中,皆采用二进制加法,为实现实验中时分秒的最大功能,本实验中采用十六进制加法器,再进行BCD码进行转换来实现正常时钟显示。为产生秒位,设计一个模60计数器,利用加法器对1HZ 的脉冲进行秒计数,产生秒位;为产生分位,通过秒位的进位产生分计数脉冲,分位也由模60计数器构成;为产生时位,用一个模24计数器对分位的进位脉冲进行计数。整个数字计时器的计数部分共包括六位:时十位、时个位、分十位、分个位、秒十位和秒个位。基本的计时模块完成之后,整点报时、清零、校时、LED显示、闹铃模块可以相互实现,其中,闹铃模块与计时模块的显示相互并行。 清零功能是通过控制计数器清零端的电平高低来实现的。只需使清零开关按下时各计数器的清零端均可靠接入有效电平(本实验中是低电平),而清零开关断开时各清零端均接入无效电平即可。 保持功能是通过逻辑门控制秒计数器输入端的1Hz脉冲实现的。正常情况下,开关不影响脉冲输入即秒正常计数,当按下开关后,使脉冲无法进入计数端,从而实现计时保持功能。

Verilog数字钟设计实验报告

基于FPGA实现多功能数字钟 ——电子系 071180094 王丛屹 摘要 本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,并通过ISE完成综合、仿真。此程序通过下载到FPGA芯片后,可应用于实际的数字钟显示中,实现了基本的计时显示和设置,调整时间,闹钟设置的功能。 [关键词] FPGA;Verilog HDL;数字钟

一、多功能数字钟的设计 设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示。能够利用按键实现“较时”、“较分”功能,随时对数码管的显示进行校正和校对。数字中系统主要由系统时钟,三个功能按键(mode ,turn ,change ),FPGA ,数码管和蜂鸣器部分组成。 图: 多功能数字钟总体设计模块 以下就各个模块说明其功能 1. 分频模块

由于FPGA内部提供的时钟信号频率大约为50MHz,在这需要将它转化成1Hz的标准时钟信号供数字钟的计时显示;在此我采用了级联分频法。 RTL图如下:

最终输出的是1Hz,100Hz,1kHz的标准时钟信号clk_1Hz ,clk_100Hz,clk_1k。 2、计时模块 原理:m是模式按键,当m=0时,进入计时模式,在计时模式下可以进行时间调整。num3,num4产生加速调整时间,当其值为1时,可以快速调整时间,该调整时间的频率由clk提供。counta,count1是手动调节时间。Turn接按键,可以改变当前调节的是小时还是分钟,长按turn键还可以使秒钟信号清零。sec1,min1,hour1输出的是计时的秒,分,时。 RTL图如下: 代码如下:

用verilog-HDL多功能数字钟

用verilog-HDL多功能数字钟

Verilog HDL实验报告 基于Verilog HDL语言的多功能数字钟设计 一、试验目的 设计一个有如下功能的数字钟: (1)计时功能:包括时、分、秒。 (2)定时与闹钟功能:能在所设定的时间发出铃音。 (3)校时功能:对小时、分钟和秒钟进行手动校时。 (4)整点报时功能:每到整点能够发出“嘀嘀嘀嘀嘟”四短一长的报时。 二、试验原理

ALERT HOUR[7..0]MIN[7..0]SEC[7..0]LD_ALERT LD_HOUR LD_MIN CLK CLK_1K MODE TURN CHANGE clock CLK CLK_1K MODE TURN CHANGE ALERT HOUR[7..0]MIN[7..0]SEC[7..0]LD_ALERT LD_HOUR LD_MIN 多功能数字钟端 口示意图 数字钟设有五个输入端,分别为时钟输入(CLK )、模式(MODE )、产生声音的时钟信号(CLK_1K )、切换(TURN )和调时(CHANGE )键。输出共七个,其中HOUR[7..0]、MIN[7..0]和SEC[7..0]采用BCD 计数方式,分别驱动2个数码管。 硬件电路原理图如下:

三、试验内容 1. 代码 /*信号定义: clk: 标准时钟信号,其频率为4Hz; clk_1k:产生闹铃声、报时音的时钟信号,其频率为1024Hz; mode:功能控制信号;为0:计时功能; 为1:闹钟功能; 为2:手动校时功能; turn:接按键,在手动校时功能时,选择是调整小时还是分钟; 若长时间按住改建,还可使秒信号清零,用于精确调时;change: 接按键,手动调整时,每按一次,计数器加1; 如果长按,则连续快速加1,用于快速调时和定时; hour,min,sec:此三信号分别输出并显示时、分、秒信号, 皆采用BCD码计数,分别驱动6个数码管显示时间; alert:输出到扬声器的信号,用于产生闹铃音和报时音; 闹铃音为持续20秒的急促的“嘀嘀嘀”音,若按住“change”键,则可屏蔽该音;整点报时音为“嘀嘀嘀嘀嘟”四短一长音; LD_alert:接发光二极管,指示是否设置了闹钟功能; LD_hour:接发光二极管,指示当前调整的是小时信号; LD_min:接发光二极管,指示当前调整的是分钟信号 */ module

Verilog 实现简易数字钟设计

module ly2(clock,sec1,sec2,min1,min2,hou1,hou2); input clock; output sec1,sec2,min1,min2,hou1,hou2; reg[5:0] sec,min,hou; reg tun,mod; reg[3:0] sec1,sec2,min1,min2,hou1,hou2; wire mt,nt; initial begin tun=1; mod=1; min=0; hou=0; sec=0; sec1=0; sec2=0; min1=0; min2=0; hou1=0; hou2=0; end always @(posedge clock) \\clock 标准1HZ时钟信号 begin if(sec==59) begin sec<=0; \\秒为60进制计数器 tun<=1; \\每60秒产生一个进位信号tun。 end else begin sec<=sec+1; tun<=0; \\进位信号置0。 end end assign mt=tun; \\生成分的控制信号, always@(posedge mt) begin if(min==59) \\分钟为60进制计数器begin min<=0; mod<=1; \\每60分产生一个小时的进位。 end else begin

min<=min+1; mod<=0; \\分钟向小时的进位信号置0。 end end assign nt=mod; \\生成时的控制信号,always@(posedge nt) begin if(hou==23) \\小时为24进制计数器hou<=0; else hou<=hou+1; end always@(sec) begin sec1<=sec%10; \\sec1为秒个位 sec2<=sec/10; \\sec2为秒十位 end always@(min) begin min1<=min%10; \\min1为分个位 min2<=min/10; \\min2为分十位 end always@(hou) begin hou1<=hou%10; \\hou1为时个位 hou2<=hou/10; \\hou2为时十位 end endmodule

实用多功能数字时钟设计verilog

西安邮电大学 数字系统设计实验课程设计报告书2013- 2014 学年第一学期 专业:自动化 班级: 学号姓名

实用多功能数字时钟设计 一、设计要求 数字钟具有整点报时和校时功能。 (1)以4位LERD数码管显示时、分,时为24进制。 (2)时、分显示数字之间以小数点间隔,小数点以1Hz频率、50%占空比的亮、灭规律表示秒计时。 (3)整点报时采用蜂鸣器实现。每当整点前控制蜂鸣器以低频鸣响4次,响1s、停1s,直到整点前一秒以高频响1s,整点时结束。 (4)采用两个按键分别控制“校时”或“校分”。按下“校时”键时,时显示值以0~23循环变化;按下“校分”键时,分显示值以0~59循环变化,但时显示值不能变化。 二、背景知识介绍 (1)Verilog HDL简介 Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。 Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。 Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。 (2)Modelsim简介 Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。 (3)Quartus工程说明 创建工程时,路径中不允许有中文。

基于veriloghdl设计的数字时钟

大学考试答题纸 (以论文、报告等形式考核专用) 二○ 18 ~二○ 19 学年度第 一 学期 课程编 号 160208000 1 课程名称 学 号 姓名 思豪 专业年级 电子科学与技术16级1班 题目: 基于Verilog HDL 设计的数字时钟 摘 要:本文利用Verilog HDL 语言自顶向下的设计法设计多功能数字钟,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过Altera Quartus Ⅱ 6.0和cyclnoe II EP2C35F672C6完成综合、仿真。此程序通过下载到FPGA 芯片后,可应用于实际的数字钟显示中 关键词:Verilog HDL ;硬件描述语言;FPGA

目录 一、实验任务 (3) 实验目的 (3) 实验要求 (3) 二、设计思路 (3) 三、实验结果 (10) 四、总结与收获 (14)

一、实验任务 实验目的 1.深入了解基于quartus ii工具的复杂时序逻辑电路的设计。 2.理解并熟练利用EDA工具进行综合设计。 3.熟练掌握芯片烧录的流程及步骤。 4.掌握Verilog HDL 语言的语法规及时序电路描述法。 实验要求 设计一个带秒表功能的24 小时数字钟,它包括以下几个组成部分: ①显示屏,由6 个七段数码管组成,用于显示当前时间(时:分,秒)或设置的秒表时间; ②复位键复位所有显示和计数 ③设置键,用于确定新的时间设置,三个消抖按键分别用于时分秒的设置 ④秒表键,用于切换成秒表功能 基本要求 (1) 计时功能:这是本计时器设计的基本功能,每隔一秒计时一次,并在显示屏上显示当前时间。 (2) 秒表功能:设置时间,进行倒计时功能 (3) 设置新的计时器时间:按下设置键后,用户能通过时分秒三个消抖按键对时间进行设置。 二、设计思路

数字时钟设计

实验报告 课程名称:可编程逻辑器件与数字系统设计实验项目:数字时钟设计 专业班级: 姓名:学号: 实验室号:实验组号: 实验时间:批阅时间: 指导教师:成绩:

沈阳工业大学实验报告 专业班级:学号:: 实验名称:数字时钟设计 1.实验目的: 熟悉Quartus II 6.0运行环境,掌握基本使用方法; 学会使用Quartus II编写程序,进行下载验证。 2.实验内容: (1)60进制计数器; (2)24进制计数器; (3)调用24进制和60进制计数器制作数字时钟。 3. 实验方案 (1)编写题目要求的程序; (2)按照要求将相关程序进行检测和调试,运行正确的程序; (3)程序完成后,将其与实验箱连接,并打开电源; (4)下载程序到芯片内; (5)观察程序功能是否成功实现。 4. 实验步骤或程序 详细过程见附录。 5.程序运行结果 运行结果如下图所示: 24进制计数器

60进制计数器 6.出现的问题及解决方法 首次运行程序时,没有任何出错状况;而在下载后,发现24进制计数器中的频率有些快,只要把频率的短路针调到1Hz即可,没有其他问题。 附录A(24进制计数器) 1、功能实现与程序选择 24进制计数器是实现从0到23的计数。由此可以运用Verilog HDL 语言将此功能实现。 2、程序运行与调试 module count24(Rd,EN,CLK,Qh,Ql,C); input Rd,EN,CLK; output [3:0]Qh,Ql; output C; reg [3:0]Qh,Ql; reg C;

initial begin Qh=4'd0;Ql=4'd0;C=0; end always (posedge CLK) begin if(EN==1) begin if(Rd==0) begin Qh=4'd0;Ql=4'd0;C=0; end else if(Qh<4'd2&&Ql<4'd9) Ql=Ql+1; else if(Qh<4'd2&&Ql==4'd9) begin Qh=Qh+1;Ql=4'd0; end else if(Qh==4'd2&&Ql<4'd3) Ql=Ql+1; else begin Qh=4'd0;Ql=4'd0;C=0; end if(Qh==4'd2&&Ql==4'd3) C=1; end end endmodule 3、保存一个名称,建立一个和module模块的名称一致的工程并进行调试。

verilog数字钟设计(FPGA)

一、课程设计目标 1. 熟悉并掌握verilog 硬件描述语言 2. 熟悉quartus 软件开发环境 3. 学会设计大中规模的数字电路,并领会其中的设计思想 二、课程设计实现的功能 (1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式); (2)可以调节小时,分钟。 (3)能够进行24小时和12小时的显示切换。 (4)可以设置任意时刻闹钟,并且有开关闹钟功能。 (5)有整点报时功能,几点钟LED 灯闪亮几下。 (6)有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。 三、设计原理: 1、总原理框图: 是 是 计数模块 译码显示模块 分频模块 设置闹钟小时 分钟校正 小时校正 模式选择模块 设置闹钟分钟 复位 是否到闹钟时间 切换12进制显示 输出闹钟信号 到达整点 输出整点报时信号

附全部代码: 总模块: module clock(clk,reset,MODE,Alarm_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signa l,nao_signal); input clk;//50MHz input reset,MODE,Alarm_ctr,BT2,H12_24;//复位键,模式选择按钮,闹钟开关档,调节按 钮,12—24小时切换档output [7:0]DMH,DML,DHH,DHL; //4个数码管显示输入信号 output dian,bao_signal,nao_signal; //时分间隔点,报时信号,闹钟信号 output [3:0]DSH,DSL; //秒钟输出信号 wire [3:0] SH,SL,MH,ML,HH,HL; wire [3:0] LED_mode; wire [3:0] HH12,HL12,HH24,HL24,MH24,ML24,SH24,SL24; wire [3:0] set_HH,set_HL,set_MH,set_ML; wire _1HZ,_10ms,_250ms,_500ms; wire Keydone1; wire Keydone2; wire co1,co11,co111,co2,co22,co222,set_co2; wire [3:0]mode_flag; assign dian=1'b0; devide_f u1(_1HZ,_10ms,_250ms,_500ms,reset,clk); //分频,得到4种不同频率的时钟信号key_press u2(_10ms,MODE,Keydone1); //模式档按钮去抖动 key_press u20(_10ms,BT2,Keydone2); //调节按钮去除抖动 mode u3(Keydone1,mode_flag); //通过模式按钮产生不同模式 second u4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1); //秒计时 minute u5(co11,reset,MH24,ML24,co2); //分计时 hour u6(co22,reset,HH24,HL24); //小时计时 SEG7_LUT u7(DML,ML); //4个数码管显示 SEG7_LUT u8(DMH,MH); SEG7_LUT u9(DHL,HL); SEG7_LUT u10(DHH,HH); display_LED u11(DSL,SL); //LED灯显示秒或模式灯 display_LED u12(DSH,SH); mode_choose u13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222); //选择模式进行不同操作 hour12_24 u14(HH24,HL24,HH12,HL12); //12--24小时切换 boshi u15(HH,HL,MH,ML,SH,SL,_1HZ,bao_signal); //整点报时 set_naozhong u16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2); //设置闹钟时间Naozhong u17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal);

实用多功能数字时钟设计verilog

题 EDA课程设计 目 学生姓名:梅泽霖 学号:1211002015 专业:电子科学与技术 完成日期:2014年1月15日

实用多功能数字时钟设计 一、设计要求 数字钟具有整点报时和校时功能。 (1)以4位LERD数码管显示时、分,时为24进制。 (2)时、分显示数字之间以小数点间隔,小数点以1Hz频率、50%占空比的亮、灭规律表示秒计时。 (3)整点报时采用蜂鸣器实现。每当整点前控制蜂鸣器以低频鸣响4次,响1s、停1s,直到整点前一秒以高频响1s,整点时结束。 (4)采用两个按键分别控制“校时”或“校分”。按下“校时”键时,时显示值以0~23循环变化;按下“校分”键时,分显示值以0~59循环变化,但时显示值不能变化。 二、背景知识介绍 (1)Verilog HDL简介 Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。 Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。 Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。 (2)Quartus工程说明 创建工程时,路径中不允许有中文。

Verilog数字钟设计

基于FPGA 实现多功能数字钟 摘要 本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,并通过ISE 完成综合、仿真。此程序通过下载到FPGA 芯片后,可应用于实际的数字钟显示中,实现了基本的计时显示和设置,调整时间,闹钟设置的功能。 [关键词]FPGA;Verilog HDL;数字钟 一、多功能数字钟的设计 设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示。能够利用按键实现“较时”、“较分”功能,随时对数码管的显示进行校正和校对。数字中系统主要由系统时钟,三个功能按键(mode,turn,change),FPGA,数码管 和蜂鸣器部分组成。

图:多功能数字钟总体设计模块 以下就各个模块说明其功能 1.分频模块 由于FPGA内部提供的时钟信号频率大约为50MHz,在这需要将它转化成1Hz的标准时钟信号供数字钟的计时显示;在此我采用了级联分频法。 RTL图如下:

最终输出的是1Hz,100Hz,1kHz的标准时钟信号clk_1Hz,clk_100Hz,clk_1k。 2、计时模块 原理:m是模式按键,当m=0时,进入计时模式,在计时模式下可以进行时间调整。num3,num4产生加速调整时间,当其值为1时,可以快速调整时间,该调整时间的频率由clk提供。counta,count1是手动调节时间。Turn接按键,可以改变当前调节的是小时还是分钟,长按turn键还可以使秒钟信号清零。sec1,min1,hour1输出的是计时的秒,分,时。 RTL图如下: 代码如下:

相关文档
最新文档