verilog EDA 数字秒表设计 quartus
EDA数字秒表的设计
目录1 绪论 (1)2 设计要求 (2)3 总体设计要求 (2)3.1 基本原理 (2)3.2分频器模块 (3)3.3 计数模块 (4)3.4 记录模块 (5)3.5 寄存器模块 (6)3.6 回放模块 (8)3.7 选择模块 (9)3.8 数显模块 (11)3.9 数字秒表的总原理图 (13)4 仿真调试 (13)4.1 分频器模块的仿真调试 (13)4.2 计数器模块的仿真调试 (14)4.3 记录模块的仿真调试 (14)4.4 寄存器模块的仿真 (14)4.5 回放模块的仿真调试 (15)4.6 选择模块的仿真调试 (15)5 管脚分配 (16)6 总结与心得体会 (17)参考文献 (18)附录:源程序代码 (19)1 绪论EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
EDA课程设计,数字秒表的设计
《EDA技术及应用课程设计》课程设计报告题目:数字秒表的设计院(系):专业班级:学生姓名:学号:指导教师:20 13 年 6 月 24 日至20 13 年 7 月 3 日华中科技大学武昌分校制数字秒表的设计课程设计任务书目录目录 (1)摘要 (2)1.设计目的 (3)2.设计要求 (3)3.设计过程 (3)3.1设计规划 (3)3.2建立工程 (4)3.3建立各个功能模块程序并进行仿真调试 (5)3.3.1 50MHz分频为1000Hz分频器的源程序 (5)3.3.2 50MHz分频为100Hz分频器的源程序 (5)3.3.3 改变分频系数 (6)3.3.4 十进制计数器的源程序 (7)3.3.5 六进制计数器的源程序 (8)3.3.6 数字秒表的源程序 (10)3.3.7 数码管显示的源程序 (12)3.4建立逻辑图 (13)3.5系统与外设端口的连接 (15)3.6启动程序观察结果 (15)4.设计总结 (16)5.参考资料 (17)附录 (18)摘要随着人们生活水平的日益提高,社会体系的日益完善,人们对于各种应用器件的要求也越来越高。
秒表作为日常生活中,特别是体育运动中应用的特别广泛,所以精确且方便使用的秒表就被越来越多的人所选择。
本秒表计时器用于体育竞赛及各种要求有较精确时的各领域,往常利用中小规模集成电路实现,但一般体积大,使用携带不方便。
利用VHDL在FPGA或CPLD上实现1/100秒计时控制器,能充分发挥VHDL与可编程逻辑器件灵活、高效、集成度高的特点。
利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。
该秒表能对0秒~59分59.59秒范围进行计时,显示最长时间是59分59秒。
计时精度达到10ms。
设计了复位开关和启停开关。
复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。
关键词:EDA技术 VHDL语言计时器数码管1.设计目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,进一步了解EDA技术,同时也对计算机系统中时钟控制系统进行了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的,以及怎样变频的。
用Verilog HDL语言编写的电子秒表
module jian_kong(rest,kon,clk001,clk001out);//开始与暂停按键的控制电路 input rest; input kon; input clk001; output clk001out; wire k; wire d; assign d=~k; assign clk001out=k&clk001; D_FF D_FF0(rest,kon,d,k); endmodule module D_FF(rest,clk,d,q); input rest; input clk; input d; output q; reg q; always@(posedge rest or posedge clk) if(rest==1'b1) begin q<=1'b0; end else begin q<=d; end endmodule //到此程序全部结实
Module shumaguan(a_to_g,A_TO_D,clk,qian,bai,shi,ge);//数码管驱动 output reg [6:0]a_to_g; output reg [3:0]A_TO_D; input wire clk; input wire [3:0]qian; input wire [3:0]bai; input wire [3:0]shi; input wire [3:0]ge; reg [3:0]duan; reg [1:0]wei; reg a; reg [16:0]q; always@(posedge clk) begin if(q==49999) begin q<=0; a<=~a; end else q<=q+1; end
always@(*)//4位位选译码 case(wei) 3:begin A_TO_D=4'b1110; duan=qian; end 2:begin A_TO_D=4'b1101; duan=bai; end 1:begin A_TO_D=4'b1011; duan=shi; end 0:begin A_TO_D=4'b0111; duan=ge; end default:A_TO_D=4'b1110; endcase always@(posedge a)//四个状态循环 if(wei==3) wei<=0; else wei<=wei+1; endmodule //到此数码管驱动模块结束
EDA基于Verilog数字秒表
石家庄经济学院信息工程学院电子信息工程专业EDA技术课程设计报告题目:数字秒表姓名学号 412109 班级电子一班指导教师王军芬2015年 1 月 16日课程设计任务书3。
2总电路连线及波形仿真图:图2 电路原理总图3.3 5个模块原理图、波形仿真图及源程序:(1)分频模块:图3 分频模块原理图因为将50MHz的频率分成100Hz和2000HZ的过程中涉及到到频率范围太大,进行波形仿真时,无法正常显示。
设计原理:将50MHz分频为clk1100Hz和clk2 2000HZ的频率,先分频到2000HZ,分频倍数,N1=25000,所以此处用到的是偶数倍分频,其原理如下:使用一模N1计数器模块即可实现,即每当模N1计数器上升沿从0开始计数至N1时,输出时钟进行翻转,同时给计数器一复位信号使之从0开始重新计数,在把2000赫兹频率分为100赫兹,分频倍数为N2=20,每当模N2计数器上升沿从0开始计数至N2时,输出时钟进行翻转,同时给计数器一复位信号使之从0开始重新计数,为以此循环即可。
源程序:module fenpin(clk,clk1,clk2);input clk;output clk1;output clk2;reg [15:0]k2;reg[7:0] k1;reg clk2;reg clk1;always@(posedge clk)beginif(k2<16'd12499)k2=k2+8'd1;else k2=0;if(k2==16'd12499)clk2=clk2+1;//clk2=2000hzendalways @(posedge clk2)beginif(k1〈8’d9)k1=k1+8’d1;else k1=0;if(k1==8'd9)clk1=clk1+1;//clk1=100hzendendmodule(2)计数模块:图4 计数模块原理图图5 波形仿真图设计原理:此处rst是复位键键,当其处于高电平时,全部清零,start是开始键,pause是暂停键,三个按键都用了一个T触发器,按下复位键,其他二个按键没用,按下开始键计数开始,按下暂停键计数停止,再按开始键计数开始.其计数部分由一个六进制的计数器和三个十进制的计数器组成,首先是百分秒位msl开始从零计数,当其计数到九时,向十分秒位msh进一,同时将百分秒位清零;当十分位计数到九时,向秒位sl进一,同时将十分妙位和百分秒位清零;当秒位计数到九时,向十秒位sh进一,同时将秒位、十分秒位和百分秒位清零;当十秒位计数到五时,将所有位清零。
使用quartus设计数字电路系统的流程
使用Quartus设计数字电路系统的流程1. 准备工作在开始使用Quartus设计数字电路系统之前,需要进行一些准备工作:•安装Quartus软件:根据你的操作系统下载并安装Quartus软件。
Quartus支持Windows和Linux操作系统,并提供30天的免费试用期。
•获取开发板:选择一块兼容Quartus的开发板,例如Altera提供的Cyclone系列开发板。
•了解基本概念:熟悉数字电路设计的基本概念,如逻辑门、触发器、计数器等。
2. 创建工程在Quartus中创建一个新的工程以开始数字电路设计:1.启动Quartus软件。
2.打开“File”菜单,选择“New Project Wizard”。
3.在弹出的对话框中,选择工程名称和存储位置。
4.选择目标设备类型和型号,并确认。
5.选择设计文件的类型,可以选择使用VHDL或Verilog进行设计。
6.添加设计文件到工程中。
3. 设计电路在Quartus中设计数字电路系统有两种主要的方法:使用逻辑图或硬件描述语言(VHDL或Verilog)。
3.1 使用逻辑图1.打开“Tools”菜单,选择“Block Diagram/Schematic File”。
2.在弹出的对话框中,选择使用排版编辑器或图形编辑器进行设计。
3.使用逻辑图元件工具,如逻辑门、触发器等,拖放到设计区域。
4.连接逻辑图元件并设置其属性和功能。
5.保存设计并编译。
3.2 使用VHDL或Verilog1.打开“File”菜单,选择“New”,再选择“Design Files”。
2.在弹出的对话框中,选择使用VHDL或Verilog进行设计。
3.在代码编辑器中编写设计代码。
4.保存设计文件并编译。
4. 仿真在Quartus中进行仿真可以验证设计的正确性以及进行性能评估。
1.打开“Tools”菜单,选择“RTL Simulation”。
2.在弹出的对话框中,选择仿真工具和仿真文件。
verilog秒表设计【管理资料】
深圳大学实验报告课程名称:数字系统设计实验项目名称:Verilog秒表设计学院:信息工程学院专业:电子信息工程指导教师:邓小莺报告人:陈耀省学号:2010130267班级:电子三班实验时间:2012年11月实验报告提交时间:2012年11月28日教务部制一、实验目的1、进一步熟悉ISE软件的使用,熟悉FPGA开发流程;2、掌握编写Verilog代码的步骤,学会绘制ASM图;3、学会自顶向下的设计方法,使用不同的模块实现系统的设计。
二、实验设备1、装有ISE软件的PC机一台;2、Nexys3开发板一块。
三、实验内容与要求设计一个秒表它具有计时功能。
此秒表有两个按键(reset, start)按下reset键后,秒表清零。
开始默认秒表计时,按下start键后,停止计时,再次按下start键后,又开始计时,如此反复。
用FPGA开发板上的两个七段数码管显示时间(以秒为单位),计时由0 到 59 循环。
三、实验步骤1、设计系统框图,设计采取自顶向下的设计方案,整个秒表系统的原理图如下所示。
主要包括五个模块——按键消抖模块、分频模块、按键功能控制模块、计数模块、数码管驱动显示模块。
2、根据系统的原理图,画出各个模块的ASM图。
(1)利用D触发器对按键进行消抖处理,其电路图如下。
利用下面这个电路即可实现对start键和reset键的消抖。
只有连续输入三个周期的高电平时,按键才有效。
(2)分频模块的ASM图。
此ASM图将100MHz的信号分频为100Hz的信号,用于计数和数码管的扫描。
(3)start键与reset键功能控制模块的ASM图。
图中rst为复位信号,sta为计时信号。
利用状态机实现不同状态之间的转换并输出复位信号与计时信号。
默认状态是start_time,即计时状态。
(4)计数模块的ASM图。
输入100Hz的时钟用于计数,当复位信号有效时,将所有的数全部置0。
否则sta信号有效时开始计数。
最后输出秒位与十秒位。
基于FPGAVerilog的数字式秒表设计
基于FPGA的数字式秒表一、设计任务及要求秒表由于其计时精确,分辨率高(秒),在各种竞技场所得到了广泛的应用,本次设计的任务就是设计一个基于 FPGA 的数字式秒表。
1、基本要求:(1)性能指标:秒表的分辨率为秒,最长计时时间为秒;(2)设置启/停开关和复位开关(计数控制器):启/停开关 S1 的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。
复位开关 S2 用来使计时器清 0,复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时进程应立即终止,并对计时器清零。
(开关按下为 0,弹起为 1)。
(3)秒表的计时基准信号:以周期为秒(频率 100HZ)的计时脉冲作为一个比较精准的计时基准信号输入到秒位计数器的时钟端;在设计中采用分频器把 1000HZ 的时钟信号转换为 100HZ 的计时基准信号,其分频系数为 10。
(4)数码管动态显示:七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用 1000HZ 。
为了得到 1000Hz 信号,必须对输入的时钟信号 50MHZ 进行分频。
显示模块共用 11 个管脚,其中 8 个用于连接 8 个数码管的七段 LED,还有 3 个管脚用于选择点亮哪个数码管,每隔很短的一段时间 8 个数码管交替点亮,依次循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器的计数值。
上电后,八个数码管中左边四个显示自己的学号后四位,在运行过程中一直不变;右边四个显示计时时间,范围 0000~9999,利用两个按钮 S1、S2 控制计时。
2、提高要求:加入小数点,计时数码管显示范围 ~。
二、 系统原理框图100Hz50MHz1000Hz 三、 电路实现四、 功能模块1、 分频器(以10分频器为例)(1)Verilog HDL 语言程序module fp10(Clk,Out10分频器);input Clk;output Out;reg Out;reg [3:0] Cout;reg Clk_En;initialOut<=0;always @(posedge Clk )beginCout <= (Cout == 4'd10) 4'd0 : (Cout + 4'd1); Clk_En <= (Cout >= 4'd5) 1'd1 : 1'd0;Out<=Clk_En;endEndmodule(2)模块化电路(3)波形仿真由波形仿真图可以看出,10分频器将1000Hz的脉冲分频成100Hz的脉冲。
EDA数字秒表的设计
EDA数字秒表的设计第一篇:EDA数字秒表的设计设计报告——数字秒表的设计EDA 一设计目的1.根据设计要求,完成对数字秒表的设计。
2.进一步加强对QuartusⅡ的应用和对Verilog HDL语言的使用。
二设计内容和要求1.计时精度应大于1/100S,计时器能显示1/100S的时间,提供给计时器内部定时的时钟频率应大于100Hz,这里选用KHz。
2.计时器的最大计时时间为1小时,为此需要6位的显示器,显示的最长时间为59分59.99秒。
3.设置有复位和起/停开关,复位开关用来使计数器清零,做好计时准备。
起停开关的使用方法与传统的机械式计数器相同,即按一下,启动计时器开始计时,再按一下计时终止。
三系统设计方案自顶向下的设计自顶向下的设计方法是数字系统设计中最常用的设计方法.也是基于芯片的系统设计的主要方法。
自顶向下的设计方法利用功能分割手段将设计由上到下进行层次话和模块化,及分层次、分模块进行设计和仿真。
功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。
如此分割,逐步的将系统细化,将功能逐步的具体化,模块化。
高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。
四模块设计1.分频模块将输入1KHZ的系统时钟经过十分频分为100HZ的单位时钟。
编程原理跟计数器原理相似。
2.定时模块采用2个60进制、1个100进制的BCD码全加器作为定时器,分为分,秒,百分秒,输入时钟信号为分频器输出信号100HZ时钟,外界两个拨码开关作为清零按钮和暂停按钮。
3.位选发生器:根据显示的数据位和人眼暂留效应,设计显示分为分、秒、百分秒位,每位需要2个数码管进行显示,因此变化频率至少为300HZ,为了方便则采用1KHZ,循环码则从000循环到101。
4.多路选择器根据位选信号,输出对应位显示的数据。
基于verilog语言编程的数字秒表设计
基于verilog语言编程的数字秒表设计数字秒表设计系别:电子通信工程系专业:电子信息工程班级:学号:姓名:数字秒表(基于verilong语言编程)课程设计一、设计要求用verilong语言编写程序,结合实际电路,设计一个4位LED数码显示“秒表”,显示时间为99.9~00.0秒,每秒自动减一,精度为0.1。
另设计一个“开始”按键和一个“复位”按键。
再增加一个“暂停”按键。
?按键说明:按“开始”按键,开始计数,数码管显示从99.9开始每秒自动减一;按“复位”按键,系统复位,数码管显示99.9;按“暂停”按键,系统暂停计数,数码管显示当时的计数。
二、设计目的1、通过本次课程设计加深对verilong语言课程的全面认识、复习和掌握,对EPM7064芯片的应用达到进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将软硬件结合起来,对程序进行编辑,调试。
使其能够通过电脑下载到芯片,正常工作。
4、实际操作Quartus II软件,复习巩固以前所学知识。
三、总体设计本秒表系统具有复位、暂停、秒表计时等功能。
clk为系统工作时钟,采用Altera DE2上的50M时钟信号,经过分频器产生秒表计时周期为0.01s的时钟,再经过计数器,分别对秒表的百分位、十分位、秒、秒十位、分、分十位进行计数。
onoff为启动/暂停控制信号,当它为0时,启动计时,当它为1时,计时暂停。
clr为复位信号,当该信号有效时,计数器和译码清零,此时数码管显示输出为00:00:00。
在总体电路图中,根据设计要求,需要两个输入控制信号onoff和clr。
由于开发板上除了拨动开关就是瞬时的按键开关,且按键开关平时都呈高电平,按一下为低电平。
故在实际测试时采用了拨动开关SW0来控制秒表的启动/暂停,通过KEY0来控制秒表的清零。
?四、设计思路描述该实验要求进行计时并在数码管上显示时间,通过相关软件Quartus II编译,利用JTAG下载电路到核心芯片,驱动硬件工作。
EDA课程设计(VHDL语言数字秒表的设计)毕业设计(论文)
摘要EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。
本次课程设计就是利用VHDL语言结合硬件电路来实现数字秒表的功能,数字秒表有4个模块构成,分别为分频电路模块,去抖电路模块,时间计数电路模块,显示模块。
用VHDL 语言编程来实现各个模块的功能,再用原件例化的方法实现各模块之间的连接,从而实现整个数字秒表电路的功能。
关键词:EDA,VHDL,数字秒表AbstractThe technology of EDA as a new technology in electronic engineering has greatly improved the efficiency and reliability of electronic system design. The course design is the use of VHDL language combination of hardware circuitry to achieve digital stopwatch function. Digital Stopwatch is made up of four modules, such as: sub-frequency circuit module, debounce circuit module, counting circuit module and display module. I used VHDL language programming to achieve the functions of each module and connected each module with the method of original cases to realize the entire digital stopwatch function.Keywords: EDA,VHDL,digital stopwatch1绪论[]1EDA是20实际90年代初以来迅速发展起来的现代电子工程领域的一门新技术。
基于EDA技术的数字秒表的设计.EDA课程设计
--进程开始
begin
if clr='0' then
cqi<=0;
elsif clk'event and clk='1' then --采取时钟信号的上升沿
技术
if ena='1' then
if cqi<99 then
cqi<=cqi+1;
else
cqi<=0;
end if;
end if;
end if;
总体方案设计图如图3.1:
图3.1总体方案设计图
3.2秒表系统各模块直接的连接
从设计的秒表的顶层实体上来看,这个秒表有一个系统时钟输入, 有清零键CLR,暂停键STOP二个使能控制输入,输出则是、都是接到数 码管上的。因此,我们要把系统时钟接到分频器的输入端,将分频器的 输出即100 Hz标准时钟接到即使系统的输入端上。计时系统有一个100
entity cnt100 is
port (clk:in std_logic;
--声明clk是标准逻辑位类型的
输入端口
clr:in std_logic;
--声明clr是标准逻辑位类型的输
入端口
ห้องสมุดไป่ตู้
ena:in std_logic;
--声明ena是标准逻辑位类型的输
入端口
cq:out std_logic_vector(6 downto 0);
口
clr:in std_logic; --声明clr是标准逻辑位类型的输入端
口
ena:in std_logic; --声明ena是标准逻辑位类型的输入端口
cq:out std_logic_vector(6 downto 0);
eda数字秒表课程设计
eda数字秒表课程设计一、课程目标知识目标:1. 学生能够理解EDA(电子设计自动化)的基本概念,掌握数字秒表的设计原理;2. 学生能够运用所学知识,分析并描述数字秒表的电路结构、工作原理及各部分功能;3. 学生能够掌握数字秒表中计时、清零、启动/停止等基本操作。
技能目标:1. 学生能够运用EDA软件进行数字秒表的原理图绘制和仿真;2. 学生能够根据设计要求,编写数字秒表的Verilog HDL代码,并进行功能验证;3. 学生能够通过实际操作,调试并优化数字秒表的性能。
情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,激发学习热情;2. 学生培养团队协作精神,学会与他人共同解决问题;3. 学生培养严谨、细致、求实的科学态度,提高创新意识和实践能力。
课程性质:本课程为实践性较强的电子技术课程,旨在让学生通过实际操作,掌握EDA数字秒表的设计与实现。
学生特点:本年级学生已具备一定的电子技术基础,对EDA技术有一定了解,具有较强的学习能力和动手能力。
教学要求:教师需引导学生运用所学知识,通过实际操作,完成数字秒表的设计与制作。
在教学过程中,注重培养学生的实践能力、创新意识和团队协作能力。
通过本课程的学习,使学生能够将理论知识与实践相结合,提高综合素养。
二、教学内容本课程教学内容紧密围绕课程目标,结合教材相关章节,组织以下内容:1. EDA技术简介:使学生了解EDA技术的发展、应用及优势,为后续学习打下基础。
2. 数字秒表原理:讲解数字秒表的电路结构、工作原理,引导学生掌握计时、清零、启动/停止等基本功能。
3. 原理图绘制与仿真:教授学生使用EDA软件绘制数字秒表的原理图,并进行功能仿真。
4. Verilog HDL编程:教授学生编写数字秒表的Verilog HDL代码,掌握代码编写规范和技巧。
5. 功能验证与优化:指导学生进行数字秒表的功能验证,分析并解决可能出现的问题,优化设计。
具体教学内容安排如下:1. 第1-2课时:EDA技术简介,数字秒表原理学习。
eda数字秒表课程设计
eda数字秒表课程设计一、教学目标本课程旨在让学生了解和掌握eda数字秒表的基本原理和设计方法。
通过本课程的学习,学生将能够:1.理解数字秒表的功能和应用;2.掌握eda数字秒表的设计原理和流程;3.学会使用eda工具进行数字秒表的设计和仿真;4.培养动手实践能力和团队协作精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.eda简介:介绍eda的基本概念、发展历程和常用工具;2.数字秒表设计原理:讲解数字秒表的组成部分、工作原理和设计方法;3.eda数字秒表设计实例:通过具体实例,演示如何使用eda工具进行数字秒表的设计和仿真;4.实践操作:学生分组进行数字秒表的设计和仿真,培养动手实践能力和团队协作精神。
三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:讲解eda的基本概念、发展历程和常用工具;2.案例分析法:通过分析具体案例,让学生了解数字秒表的设计方法和流程;3.实验法:学生动手进行数字秒表的设计和仿真,培养实践能力;4.讨论法:分组讨论,引导学生主动思考和解决问题。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、科学的学习资料;2.多媒体资料:制作精美的PPT,生动展示数字秒表的设计原理和流程;3.实验设备:准备充足的设计和仿真实验设备,确保每位学生都能动手实践;4.网络资源:提供在线学习平台和参考资料,方便学生随时查阅和复习。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:考察学生在课堂上的参与程度、提问回答等情况,占总评的20%;2.作业:布置适量作业,检查学生对知识点的掌握程度,占总评的30%;3.实验报告:评估学生在实验过程中的操作能力和解决问题的能力,占总评的20%;4.期末考试:全面考察学生的知识掌握和应用能力,占总评的30%。
六、教学安排本课程的教学安排如下:1.课时:共计32课时,每课时45分钟;2.教学时间:安排在每周的二、四、六下午;3.教学地点:实验室和教室;4.教学进度:按照教材的章节顺序进行,确保每个章节都有足够的时间进行讲解和实践。
基于EDA软件Quartus Ⅱ的数字秒表设计
入, N E WC L K为分 频 器输 出连接 至 第 一 个 十进 捌 汁
数 器 ul 模 块 上 ,且 C A R R Y 一 ( ) U T作 为进 位 信 号 依
I l 9 . . 1 6 1 1 a r i n 、 D OU T【 l 1 . . 8 1 1 s 、 D O U T『 7 — 4 1 1 / 1 0 s 与
图 2 秒 表 电 路逻 辑 图
D O U T [ 3 . . 0 1 1 / 1 0 0 s 。 信号 C L K作 为分 频器 u 0模块 输
信 息 化
D OI : 1 01 6 5 2 5 4 . c n k i . 1 4 - 1 3 6 2 / n . 2 0 1 7 . 0 2 . 3 3
.
基于 E D A软件 Qu a r t u s l l 的数字秒表设计
钱 虹 凌
( 大 同 大 学 T 学 院实 训 中心 , 山西 大同 0 3 7 0 0 3 )
安 交通 大 学 电 气 学 院 电机 专 业 ,现 就 职 于 大 同 大 学 工 学 院 实
训 中心 、
设 计 所 需 计 时 区域 为 0 . 0 l s 至 1 h的秒 表 , 首 先需 使用 一个 时钟 信 号作 为计 时基础 ,本文所 使 为 周期 1 / 1 0 0 s 计 时信 号 ,具 体 为 E D A实验 箱 上基 准
总第 1 3 4期 2 0 1 7年 第2期
现 代 工 业 经 济 和 信 息化
Mo d e m I n d u s t ia r l E c o n o my a n d I n f o r ma t i o n i z a t i o n
verilogEDA数字秒表设计quartus
课程考查报告课程名称 EDA技术题目名称数字电子钟学生学院信息工程学院专业班级通信工程09(1)班学号 310900xx 学生姓名陈 XX 任课教师李学易2013 年12月27日电子钟设计目的:根据实验板的资源和利用Quartus II软件编译、仿真可以实现电子钟的数字系统设计。
设计内容:数字电子钟的功能:1、时钟显示功能(显示时、分、秒)2、时钟调整功能(小时、分钟的校准)3、闹钟设置功能设计方案:根据程序设计需要,信号的定义如下:Clk:标准时钟信号,频率为4HzClk_1k:产生闹铃声、报时声的时钟信号,频率为1024HzMode:功能控制信号,为0:计时功能;1:闹钟功能;2:手动校时功能Turn:接按键,在手动校时功能时,选择的是校准小时,还是分钟;若长时间按该键,可使秒信号清零Change:接按键,在手动校时时,每按一次,计数器加一若长按,则连续快速加一Hour,min,sec:此三信号分别输出并显示时、分、秒信号Alert:输出到扬声器的信号,产生闹钟音和报时音;闹钟音为持续20秒的“嘀嘀嘀”音,若按住change键,则可屏蔽该音;报时音为“嘀嘀嘀嘀嘟”四短一长音。
Ld_alert:接发光二极管,指示是否设置了闹钟功能Ld_hour:接发光二极管,指示当前调整的是小时信号Ld_min:接发光二极管,指示当前调整的是分钟信号实验结果:时序仿真图:RTL图:心得体会:经过一周的EDA课程设计,对用verilog语言设计数字系统有了一定认识。
设计过程当然有点累,可是当完成这个设计时,内心是无比的高兴。
通过这次的课程设计,很好地把课堂理论和实践结合起来,认识更深刻了。
设计中遇到过很多问题,这时耐心、细心是不可缺少的,通过查阅网上资料和其他参考文献以及和别人交流,最终都把问题解决了。
当然其中也缺少不了庞老师的耐心指导,在此,感谢庞老师的教导!参考文献:《Verilog数字系统设计教程》第2版夏宇闻编著《Verilog的135个经典设计实例》王金明编著源代码:module digital_watch(clk,clk_1k,mode,change,turn,alert,hour,min,sec,LD_alert,LD_hour,LD_min);input clk,clk_1k,mode,change,turn;output alert,LD_alert,LD_hour,LD_min;output[7:0] hour,min,sec;reg[7:0] hour,min,sec,hour1,min1,sec1,ahour,amin;reg[1:0] m,fm,num1,num2,num3,num4;reg[1:0] loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,ctb,m_clk,h_clk;always @(posedge clk)beginclk_2Hz<=~clk_2Hz;if(sound==3) begin sound<=0; ear<=1; end//ear 信号用于产生或屏蔽声音else begin sound<=sound+1; ear<=0; endendalways @(posedge clk_2Hz) //由4Hz 的输入时钟产生1Hz 的时基信号clk_1Hz<=~clk_1Hz;always @(posedge mode) //mode 信号控制系统在三种功能间转换begin if(m==2) m<=0; else m<=m+1; endalways @(posedge turn)fm<=~fm;always //该进程产生count1,count2,counta,countb 四个信号begincase(m)2: beginif(fm)begin count1<=change; {LD_min,LD_hour}<=2; end elsebegin counta<=change; {LD_min,LD_hour}<=1; end {count2,countb}<=0;end1: beginif(fm)begin count2<=change; {LD_min,LD_hour}<=2; end elsebegin countb<=change; {LD_min,LD_hour}<=1; end {count1,counta}<=2'b00;enddefault: {count1,count2,counta,countb,LD_min,LD_hour}<=0;endcaseendalways @(negedge clk)//如果长时间按下“change”键,则生成“num1”信号用于连续快速加1if(count2)beginif(loop1==3) num1<=1;elsebegin loop1<=loop1+1; num1<=0; endendelse begin loop1<=0; num1<=0; endalways @(negedge clk) //产生num2 信号if(countb)beginif(loop2==3) num2<=1;elsebegin loop2<=loop2+1; num2<=0; endendelse begin loop2<=0; num2<=0; endalways @(negedge clk)if(count1)beginif(loop3==3) num3<=1;elsebegin loop3<=loop3+1; num3<=0; endendelse begin loop3<=0; num3<=0; endalways @(negedge clk)if(counta)beginif(loop4==3) num4<=1;elsebegin loop4<=loop4+1; num4<=0; endendelse begin loop4<=0; num4<=0; endassign ct1=(num3&clk)|(!num3&m_clk); //ct1 用于计时、校时中的分钟计数assign ct2=(num1&clk)|(!num1&count2); //ct2 用于定时状态下调整分钟信号assign cta=(num4&clk)|(!num4&h_clk); //cta 用于计时、校时中的小时计数assign ctb=(num2&clk)|(!num2&countb); //ctb 用于定时状态下调整小时信号always @(posedge clk_1Hz) //秒计时和秒调整进程if(!(sec1^8'h59)|turn&(!m))beginsec1<=0; if(!(turn&(!m))) minclk<=1;end//按住“turn”按键一段时间,秒信号可清零,该功能用于手动精确调时else beginif(sec1[3:0]==4'b1001)begin sec1[3:0]<=4'b0000; sec1[7:4]<=sec1[7:4]+1; endelse sec1[3:0]<=sec1[3:0]+1; minclk<=0;endassign m_clk=minclk||count1;always @(posedge ct1) //分计时和分调整进程beginif(min1==8'h59) begin min1<=0; hclk<=1; endelse beginif(min1[3:0]==9)begin min1[3:0]<=0; min1[7:4]<=min1[7:4]+1; endelse min1[3:0]<=min1[3:0]+1; hclk<=0;endendassign h_clk=hclk||counta;always @(posedge cta) //小时计时和小时调整进程if(hour1==8'h23) hour1<=0;else if(hour1[3:0]==9)begin hour1[7:4]<=hour1[7:4]+1; hour1[3:0]<=0; end else hour1[3:0]<=hour1[3:0]+1;always @(posedge ct2) //闹钟定时功能中的分钟调节进程if(amin==8'h59) amin<=0;else if(amin[3:0]==9)begin amin[3:0]<=0; amin[7:4]<=amin[7:4]+1; end else amin[3:0]<=amin[3:0]+1;always @(posedge ctb) //闹钟定时功能中的小时调节进程if(ahour==8'h23) ahour<=0;else if(ahour[3:0]==9)begin ahour[3:0]<=0; ahour[7:4]<=ahour[7:4]+1; end else ahour[3:0]<=ahour[3:0]+1;always //闹铃功能if((min1==amin)&&(hour1==ahour)&&(amin|ahour)&&(!change)) //若按住“change”键不放,可屏蔽闹铃音if(sec1<8'h20) alert1<=1; //控制闹铃的时间长短else alert1<=0;else alert1<=0;always //时、分、秒的显示控制case(m)3'b00: begin hour<=hour1; min<=min1; sec<=sec1; end//计时状态下的时、分、秒显示3'b01: begin hour<=ahour; min<=amin; sec<=8'hzz; end//定时状态下的时、分、秒显示3'b10: begin hour<=hour1; min<=min1; sec<=8'hzz; end//校时状态下的时、分、秒显示endcaseassign LD_alert=(ahour|amin)?1:0; //指示是否进行了闹铃定时assign alert=((alert1)?clk_1k&clk:0)|alert2; //产生闹铃音或整点报时音always //产生整点报时信号alert2beginif((min1==8'h59)&&(sec1>8'h54)||(!(min1|sec1)))if(sec1>8'h54) alert2<=ear&clk_1k; //产生短音else alert2<=!ear&clk_1k; //产生长音else alert2<=0;endendmodule。
基于Quartus的数字秒表设计
EDA技术课程大作业设计题目:数字秒表设计姓名:学号:姓名:学号:姓名:学号:专业班级:级通信工程2013年1月2日数字秒表设计1. 设计背景和设计方案要求1.1设计背景经过一个学期对《EDA 技术实用教程》的学习,已经初步掌握了一些较为简单的EDA 应用实例。
本次实验我小组选择的课题是《数字秒表设计》。
1.1.1任务安排1.2设计原理和结构1.2.1秒表功能秒表的显示范围是00:00:00-59:59:99,显示精度为1ms ,其拥有可控的自动报警功能(可通过蜂鸣器控制模块的clk 端选择计数一小时后报时或者不报时,如想要报时则接通clk 端,反之clk 端断开,选择报时则计数达到一小时后蜂鸣器会响一声,否则蜂鸣器不响,)、可控的启动功能(通过计数器的start 端口来控制计数器的启动,也即控制数字秒表的启动)及数字秒表清零功能(通过控制计数器清零端来实现,当清零端为高电平时,计数器清零,也即数字秒表清零,否则秒表正常计数)。
1.2.2秒表结构秒表的物理结构比较简单,它主要由十进制计数器、六进制计数器、数据选择器、显示译码器蜂鸣器等组成。
此外,秒表还需有一个启动信号、清零信号及报时信号,以便实现对秒表的控制和有效应用(启动和清零信号及报时信号由使用者给出,设计时主要任务是将此外界信号的功能准确的通过数字秒表体现出来,也即,当使用者给出启动信号时数字秒表能够正常启动,上面已经给出,启动和清零的功能是通过将此信号送给计数器来实现的)。
1.2.3设计思路十进制计数器clk 端接石英晶体振荡器,选择振荡频率为1000HZ 。
则振荡一秒钟之后,十进制计数器进位输出端输出100个高电平信号,每个高电平信号表示1001s,也即10ms 。
然后将10ms 的信号接到下一个十进制计数器的clk 端,则10个此信号之后,输出一个高电平信号,也即每个高电平信号表示10 10=100ms 。
依此类推,通过选择不同的计数器,在进位输出端可分别得到10ms 、100ms 、1s 、10s 等进位信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程考查报告课程名称 EDA技术题目名称数字电子钟学生学院信息工程学院专业班级通信工程09(1)班学号 310900xx 学生姓名陈 XX 任课教师李学易2013 年12月27日电子钟设计目的:根据实验板的资源和利用Quartus II软件编译、仿真可以实现电子钟的数字系统设计。
设计内容:数字电子钟的功能:1、时钟显示功能(显示时、分、秒)2、时钟调整功能(小时、分钟的校准)3、闹钟设置功能设计方案:根据程序设计需要,信号的定义如下:Clk:标准时钟信号,频率为4HzClk_1k:产生闹铃声、报时声的时钟信号,频率为1024HzMode:功能控制信号,为0:计时功能;1:闹钟功能;2:手动校时功能Turn:接按键,在手动校时功能时,选择的是校准小时,还是分钟;若长时间按该键,可使秒信号清零Change:接按键,在手动校时时,每按一次,计数器加一若长按,则连续快速加一Hour,min,sec:此三信号分别输出并显示时、分、秒信号Alert:输出到扬声器的信号,产生闹钟音和报时音;闹钟音为持续20秒的“嘀嘀嘀”音,若按住change键,则可屏蔽该音;报时音为“嘀嘀嘀嘀嘟”四短一长音。
Ld_alert:接发光二极管,指示是否设置了闹钟功能Ld_hour:接发光二极管,指示当前调整的是小时信号Ld_min:接发光二极管,指示当前调整的是分钟信号实验结果:时序仿真图:RTL图:心得体会:经过一周的EDA课程设计,对用verilog语言设计数字系统有了一定认识。
设计过程当然有点累,可是当完成这个设计时,内心是无比的高兴。
通过这次的课程设计,很好地把课堂理论和实践结合起来,认识更深刻了。
设计中遇到过很多问题,这时耐心、细心是不可缺少的,通过查阅网上资料和其他参考文献以及和别人交流,最终都把问题解决了。
当然其中也缺少不了庞老师的耐心指导,在此,感谢庞老师的教导!参考文献:《Verilog数字系统设计教程》第2版夏宇闻编著《Verilog的135个经典设计实例》王金明编著源代码:module digital_watch(clk,clk_1k,mode,change,turn,alert,hour,min,sec,LD_alert,LD_hour,LD_min);input clk,clk_1k,mode,change,turn;output alert,LD_alert,LD_hour,LD_min;output[7:0] hour,min,sec;reg[7:0] hour,min,sec,hour1,min1,sec1,ahour,amin;reg[1:0] m,fm,num1,num2,num3,num4;reg[1:0] loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,ctb,m_clk,h_clk;always @(posedge clk)beginclk_2Hz<=~clk_2Hz;if(sound==3) begin sound<=0; ear<=1; end//ear 信号用于产生或屏蔽声音else begin sound<=sound+1; ear<=0; endendalways @(posedge clk_2Hz) //由4Hz 的输入时钟产生1Hz 的时基信号clk_1Hz<=~clk_1Hz;always @(posedge mode) //mode 信号控制系统在三种功能间转换begin if(m==2) m<=0; else m<=m+1; endalways @(posedge turn)fm<=~fm;always //该进程产生count1,count2,counta,countb 四个信号begincase(m)2: beginif(fm)begin count1<=change; {LD_min,LD_hour}<=2; end elsebegin counta<=change; {LD_min,LD_hour}<=1; end {count2,countb}<=0;end1: beginif(fm)begin count2<=change; {LD_min,LD_hour}<=2; end elsebegin countb<=change; {LD_min,LD_hour}<=1; end {count1,counta}<=2'b00;enddefault: {count1,count2,counta,countb,LD_min,LD_hour}<=0;endcaseendalways @(negedge clk)//如果长时间按下“change”键,则生成“num1”信号用于连续快速加1if(count2)beginif(loop1==3) num1<=1;elsebegin loop1<=loop1+1; num1<=0; endendelse begin loop1<=0; num1<=0; endalways @(negedge clk) //产生num2 信号if(countb)beginif(loop2==3) num2<=1;elsebegin loop2<=loop2+1; num2<=0; endendelse begin loop2<=0; num2<=0; endalways @(negedge clk)if(count1)beginif(loop3==3) num3<=1;elsebegin loop3<=loop3+1; num3<=0; endendelse begin loop3<=0; num3<=0; endalways @(negedge clk)if(counta)beginif(loop4==3) num4<=1;elsebegin loop4<=loop4+1; num4<=0; endendelse begin loop4<=0; num4<=0; endassign ct1=(num3&clk)|(!num3&m_clk); //ct1 用于计时、校时中的分钟计数assign ct2=(num1&clk)|(!num1&count2); //ct2 用于定时状态下调整分钟信号assign cta=(num4&clk)|(!num4&h_clk); //cta 用于计时、校时中的小时计数assign ctb=(num2&clk)|(!num2&countb); //ctb 用于定时状态下调整小时信号always @(posedge clk_1Hz) //秒计时和秒调整进程if(!(sec1^8'h59)|turn&(!m))beginsec1<=0; if(!(turn&(!m))) minclk<=1;end//按住“turn”按键一段时间,秒信号可清零,该功能用于手动精确调时else beginif(sec1[3:0]==4'b1001)begin sec1[3:0]<=4'b0000; sec1[7:4]<=sec1[7:4]+1; endelse sec1[3:0]<=sec1[3:0]+1; minclk<=0;endassign m_clk=minclk||count1;always @(posedge ct1) //分计时和分调整进程beginif(min1==8'h59) begin min1<=0; hclk<=1; endelse beginif(min1[3:0]==9)begin min1[3:0]<=0; min1[7:4]<=min1[7:4]+1; endelse min1[3:0]<=min1[3:0]+1; hclk<=0;endendassign h_clk=hclk||counta;always @(posedge cta) //小时计时和小时调整进程if(hour1==8'h23) hour1<=0;else if(hour1[3:0]==9)begin hour1[7:4]<=hour1[7:4]+1; hour1[3:0]<=0; end else hour1[3:0]<=hour1[3:0]+1;always @(posedge ct2) //闹钟定时功能中的分钟调节进程if(amin==8'h59) amin<=0;else if(amin[3:0]==9)begin amin[3:0]<=0; amin[7:4]<=amin[7:4]+1; end else amin[3:0]<=amin[3:0]+1;always @(posedge ctb) //闹钟定时功能中的小时调节进程if(ahour==8'h23) ahour<=0;else if(ahour[3:0]==9)begin ahour[3:0]<=0; ahour[7:4]<=ahour[7:4]+1; end else ahour[3:0]<=ahour[3:0]+1;always //闹铃功能if((min1==amin)&&(hour1==ahour)&&(amin|ahour)&&(!change)) //若按住“change”键不放,可屏蔽闹铃音if(sec1<8'h20) alert1<=1; //控制闹铃的时间长短else alert1<=0;else alert1<=0;always //时、分、秒的显示控制case(m)3'b00: begin hour<=hour1; min<=min1; sec<=sec1; end//计时状态下的时、分、秒显示3'b01: begin hour<=ahour; min<=amin; sec<=8'hzz; end//定时状态下的时、分、秒显示3'b10: begin hour<=hour1; min<=min1; sec<=8'hzz; end//校时状态下的时、分、秒显示endcaseassign LD_alert=(ahour|amin)?1:0; //指示是否进行了闹铃定时assign alert=((alert1)?clk_1k&clk:0)|alert2; //产生闹铃音或整点报时音always //产生整点报时信号alert2beginif((min1==8'h59)&&(sec1>8'h54)||(!(min1|sec1)))if(sec1>8'h54) alert2<=ear&clk_1k; //产生短音else alert2<=!ear&clk_1k; //产生长音else alert2<=0;endendmodule。