2022年多功能电子钟的Verilog设计 .pdf

上传人:C****o 文档编号:34254499 上传时间:2022-08-15 格式:PDF 页数:33 大小:643.99KB
返回 下载 相关 举报
2022年多功能电子钟的Verilog设计 .pdf_第1页
第1页 / 共33页
2022年多功能电子钟的Verilog设计 .pdf_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《2022年多功能电子钟的Verilog设计 .pdf》由会员分享,可在线阅读,更多相关《2022年多功能电子钟的Verilog设计 .pdf(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、多功能电子钟的Verilog设计学生:黄海平指导老师:廖泰长摘 要:Verilog是广泛应用的硬件描述语言,可以用在硬件设计流程的建模、综合和模拟等多个阶段。 随着硬件设计规模的不断扩大,应用硬件描述语言进行描述的CPLD结构,成为设计专用集成电路和其他集成电路的主流。通过应用Verilog HDL对多功能电子钟的设计,达到对Verilog HDL的理解,同时对 CPLD器件进行简要了解。本文的研究内容包括 : 对 Altera公司 Flex 10K 系列的 EPF10K 10简要介绍,Altera公司软件 Max+plus简要介绍和应用Verilog HDL对多功能电子钟进行设计。关键词:多

2、功能电子钟;硬件描述语言Abstract:Verilog is the most widely used hardware description language.It can be used to the modeling, synthesis, and simulation stages of the hardware system design flow. With the scale of hardware design continually enlarging, describing the CPLD with HDL become the mainstream of desig

3、ning ASIC and other IC.To comprehend Verilog HDL and get some knowledge of CPLD device, we design a block with several functions with Verilog HDL. This thesis is about to discuss the above there aspects: Introduce the EPF10K 10 of Flex 10K series producted by Altera Corporation simply. the software

4、Max+plus ,Design the block with several functions with Verilog HDL. Keywords: block with several functions; hardware description language名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 33 页 - - - - - - - - - 目录1 引言 . 21.1 课题的背景、目的 . 21.2 课题设计环境 . 22 EPF10K 10 相关

5、说明及 VERILOG HDL 简介 . 32.1EPF10K10 相关说明. 32.2VERILOG HDL硬件描述语言简介 . . 53 应用 VERILOG HDL 描述的多功能电子钟. 63.1 功能描述 . 63.2 源程序 . 73.3 模块仿真 . 14 4 应用 VERILOG HDL 描述的多功能电子钟功能模块及仿真 . 164.1 计时模块. 164.2 闹铃设置模块. 184.3 校时模块. 204.4 秒表功能模块 . 234.5 整点报时模块 . 264.6 闹铃屏蔽及响铃功能. 284.7 秒表提示铃声功能. 29 5 结束语 . 316 致谢 . 31参考文献 .

6、 32 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第2页 共32页引言随着电子技术的发展,现场可编程门阵列FPGA 和复杂可编程逻辑器件CPLD 的出现,使得电子系统的设计者利用与器件相应的电子CAD 软件,在实验室里就可以设计自己的专用集成电路ASIC 器件。这种可编程ASIC 不仅使设计的产品达到小型化、 集成化和高可靠性, 而且器件具有用户可编程特性,大大缩短了设计周期, 减少了设

7、计费用, 降低了设计风险。 目前数字系统的设计可以直接面向用户需求, 根据系统的行为和功能要求, 自上至下地逐层完成相应的描述综合优化仿真与验证,直到生成器件, 实现电子设计自动化。 其中电子设计自动化( EDA)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。VHDL 是用来描述从抽象到具体级别硬件的工业标准语言,它是由美国国防部在 80 年代开发的HDL,现在已成为IEEE 承认的标准硬件描述语言。VHDL 支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现, 具有描述能力强、 生命周期长、 支持大规模设计的分解和已有设计的再利用等优点。利用VH

8、DL 这些优点和先进的EDA 工具,根据具体的实际要求,我们可以自己来设计串口异步通信电路。1.1 课题的背景、目的二十一世纪是信息化高速发展的世纪,产业的信息化离不开硬件芯片的支持。芯片技术的进步是推动全球信息化的动力。因此在二十一世纪掌握芯片技术是十分有必要的。 本次课题是计算机组成原理的课程设计,这次课题旨在通过自己对所需功能芯片的设计与实现来巩固以前所学的计算机硬件基础知识,同时也提高动手实践的能力,还有为将来进行更大规模更复杂的开发积累经验。1.2 课题设计环境本次课题设计方要用到的开发环境是Altera 公司的 EDA 设计工具软件MAX+plusII 。Altera公司的工作与

9、EDA厂家紧密结合, 使 MAX+plusII 软件可以与其它工业标准的设计输入、 综合和校验工具相连接。 设计者可以使用 Altera或标准 EDA名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第3页 共32页输入工具进行设计,使用MAX+plus II编译器对 Altera器件的设计进行编译,并使用Altera或其它EDA校验工具进行仿真。目前,MAX+plusII支持与Cadence,

10、Mentor Graphics, Synopsys, Viewlogic等 EDA 工具接口。MAX+plusII 的编译器支持 Altera 公司的 FLEX 系列、 MAX 系列和 Classic 可编程逻辑器件, 提供了一种真正与结构无关的设计环境。编译器还具有强大的逻辑综合与优化功能, 使用户不必十分关心设计的细节,可以把精力放在逻辑的实现上。MAX+plusII 的设计输入、处理和校验功能都集中在统一的开发环境下,这样可以加快动态调试,缩短开发周期。MAX+plusII 软件支持多种硬件描述语言设计输入,包括VHDL,Verilog HDL和Altera 自己的硬件描述语言 AHDL

11、 。MAX+plusII 软件提供丰富的库单元供设计调用, 其中包括 74系列的全部器件和一些基本的逻辑门, 多种特殊的逻辑宏功能 (Macro-Function)以及新型的参数化的兆功能 (Mage-Function).调用库单元进行设计,可以大大减轻工作量。2EPF10K 10 相关说明及Verilog Hdl 简介2.1EPF10K 10相关说明EPF10K 10隶属于 Altera公司生产的 FLEX 10K系列产品,此系列集成度从几万门到几十万门, 是业界第一个在PLD中嵌入存储器块的器件。 具有许多特点:高密度。 10000 到 250000 典型门;功能强大的I/O 引脚。每一个

12、引脚都是独立的三态门结构,具有可编程的速率控制;嵌入式阵列块(EAB ) 。每个EAB提供 2K比特位,可用来作存储器使用或者用来实现一般的逻辑功能;逻辑单元采用查找表( LUT )结构;采用快速通道(Fast Track )互连,速度快并可预测延时;具有实现快速加法器和计数器的专用进位链和实现高速、多输入逻辑函数的专用级连链;其中EPF10K 10相关电路说明如下: EPF10K10板,内含预定型10K10主体电路和自定义实验区二个部分;预定型10K10 主体电路特点如下 : 采用 ALTERA 公司 10K10 PLCC84 脚器件;使用有源晶振4MHZ 增强线路板抗干扰性能;采用三种不同

13、的配置方式, 对 ALTERA 公司的 10K10芯片进行配置: 通过 EDA名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第4页 共32页软件使用本板提供的JTAG 接口下载到 10K10器件中对其进行加载配置; 通过 EDA软件使用本板提供的PS MODE 接口下载到 10K10器件中对其进行加载配置; 为了确保系统板掉电又重新上电后能使10K10正常运行,本系统板提供ALTERA 公司

14、EPC1441 或 EPC1P8 二种器件对 10K10作上电后自动加载配置。本 EDA板提供电源接线端子 +5V,GND 数字地, +12V或自定义, -12V 或自定义,SGND 模拟地及电源测试引线口+5V、+12V、-12V,均给出信号信息LED指示灯,本 EDA板提供 JTAG PS MODE 代码下载信号信息LED指示灯。自定义实验区特点如下 : 本 EDA板提供三个试验区, 其中数字电路实验区A、B二个,模拟电路实验区C一个;为了提高 EDA 系统板抗干扰性能,模拟地和数字地采用分开设计,而且增加了实验区电路的可塑性,数字电路实验区配有+5V GND 数字地,用户电路实验自由连接

15、点,模拟电路实验区配有+5V SGND 模拟地,+12V、-12V 用户电路实验,自由连接点,用户实验区电路自由连接点共为1908个点,其中数字电路实验区用户自由连接点为2x49 行 x12 列+6 行 x8 列=1272个点,模拟电路实验区用户自由连接点为49 行 x12 列+6行 x8 列=636个点,提供 10K10可用的全部 I/O 脚引线插座,方便与用户实验区任意连接。实验区连线方式通常使用三种方式:元器件直接焊接方式, 一次性使用;实验区可焊接可插接排针孔, 以便实验电路任意搭接, 增强使用的灵活性 , 多次性;实验区可选配安装通用实验面包板, 无须做 b 项操作, 面包板可安装三

16、块。EDA 板上跳线连接说明: JP8:控制 EPC1441/EPC1P8 +5V 电压的提供 ,JTAG MODE JP,JTAG下载方式支持由本跳线组确定4个全 短接, 则允许 JTAG 方式下载;断开则屏蔽 JTAG方式下载; PS MODE:JP PS下载方式支持由本跳线组确定5 个全 短接, 则允许 PS方式下载;断开 , 则屏蔽 PS方式下载; JP10:MSEL0 信号受控脚跳左,则 MSEL0 为 0;跳右则 MSEL0 为 1;JP11:MSEL1 信号受控脚跳左,则 MSEL1 为 0;跳右则 MSEL1 为 1;PWR5V:+5V跳线开关跳左, +5V为 ON接通;跳右+

17、5V为 OFF关闭; PIN1_OSC:ALTERA10K10 PIN1 脚的时钟信号输入端,跳左CLOCK 信号频率, 由 U5晶振确定;跳右,CLOCK 信号频率由上层独立型适配器的时钟晶振确定;PIN43_OSC:ALTERA10K10 PIN43 脚的时钟信号输入端跳左, CLOCK信号频率由 U5 晶振确定;跳右, CLOCK 信号频率由上层独立型适配器的时钟晶振确定; J1A:控制数字实验A 区的+5V;DC :电源电压; J2A:控制数字实验A名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -

18、 - - - - 第 5 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第5页 共32页区的电源电压数字信号地GND ;J1B:控制数字实验B 区的电源电压数字信号地GND ;J1C:控制模拟实验 C区的+12V;J2C:控制模拟实验 C区的-12V;J3C:控制模拟实验 C区的电源电压模拟信号地SGND 5 ;EDA板上电源端子接口LED 指示灯说明; JPWR :电源电压接线端子,从上往下顺序定义为+5V GND 、+12V -12V SGND ;PWRT :电源电压测试接线端子,从上往下顺序定义,同JPWR +5V GND、+12V -12V S

19、GND ; JTAG_MODE:ALTERA10K10 JTAG 方 式 下 载 接 口 ; PS_MODE: ALTERA10K10 PS方式下载接口; 10K10(IN1): ALTERA10K10 外扩展, I/O 引线接口 1 ;10K10(IN2): ALTERA10K10 外扩展, I/O引线接口 2 ;JP2、JP3、JP4、JP5、JP6向上可选配; GEXIN :各种独立型适配器; LED指示灯: D2 、D3、D4 、TCK 、LED 、PS LED分别为 +5V、+12V、-12V、JTAG ;PS :信号指示灯。2.2Verilog Hdl硬件描述语言简介模块是 Ver

20、ilog 的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。 一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述 ; 设计的数据流行为使用连续赋值语句进行描述; 时序行为使用过程结构描述。一个模块可以在另一个模块中使用。说明部分用于定义不同的项, 例如模块描述中使用的寄存器和参数。语句定义设计的功能和结构。 说明部分和语句可以散布在模块中的任何地方;但是变量、寄存器、线网和参数等的说明部分必须在使用前出现。为了使模块描述清晰和具有良好的可读性 , 最好将所有的说明部分放在语句前。 本书中的所有实例都遵守这一规范。在模块中,可用下述方式描述一个设计:(1)

21、数据流方式 ; (2) 行为方式 ; (3) 结构方式 ; (4) 上述描述方式的混合。Verilog HDL 模型中的所有时延都根据时间单位定义。使用编译指令将时间单位与物理时间相关联。这样的编译器指令需在模块描述前定义。如果没有编译器指令 , Verilog HDL 模拟器会指定一个缺省时间单位。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第6页 共32页IEEE Verilog HD

22、L 标准中没有规定缺省时间单位。用数据流描述方式对一个设计建模的最基本的机制就是使用连续赋值语句。在连续赋值语句中,某个值被指派给线网变量。请注意连续赋值语句是如何对电路的数据流行为建模的;这种建模方式是隐式而非显式的建模方式。此外, 连续赋值语句是并发执行的,也就是说各语句的执行顺序与其在描述中出现的顺序无关。设计的行为功能使用下述过程语句结构描述:(1) initial语句:此语句只执行一次。(2) always语句:此语句总是循环执行, 或者说此语句重复执行。只有寄存器类型数据能够在这两种语句中被赋值。寄存器类型数据在被赋新值前保持原有值不变。所有的初始化语句和always语句在 0时刻

23、并发执行。在顺序过程中出现的语句是过程赋值模块化的实例。模块化过程赋值在下一条语句执行前完成执行。过程赋值可以有一个可选的时延。时延可以细分为两种类型 : (1) 语句间时延 : 这是时延语句执行的时延。(2) 语句内时延 : 这是右边表达式数值计算与左边表达式赋值间的时延。在Verilog HDL 中可使用如下方式描述结构: (1) 内置门原语 ( 在门级 );(2) 开关级原语 ( 在晶体管级 ) ;(3) 用户定义的原语 (在门级 ) ;(4) 模块实例 ( 创建层次结构 ) 。通过使用线网来相互连接。3 应用 Verilog HDL描述的多功能电子钟3.1 功能描述计时功能包括时、分、

24、秒的计时,分别类似于模24、模60、模60计数器。闹钟功能在设定的时间发出闹玲音,其中闹铃设置为00:00时无效。校时功能能方便的对小时、分钟和秒进行手动调整以校准时间。整点报时每逢整点按照秒的时序产生四短一长的报时音。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第7页 共32页秒表功能在每次计数满一小时的时候,发出一声提示音。3.2源程序module clockl(clk,clk1000

25、,mode,change,turn,count,clr,alert,hour,min,sec,Ld_alert,Ld_hour,Ld_min); input clk,clk1000,mode,change,turn,count,clr; output alert,Ld_alert,Ld_hour,Ld_min; output 7:0hour,min,sec; reg 7:0hour,min,sec,hour1,min1,sec1,ahour,amin,msec,secm,minm; reg 1:0m,fm,mfm,sound; reg 2:0a; reg Ld_hour,Ld_min,Ld_a

26、lert; reg clk_1Hz,clk_2Hz,clk100,minclk,hclk,secmclk,mminclk; reg alert1,alert2,alert3,alertm,ear,b; reg count1,count2,counta,countb; wire ct1,ct2,cta,ctb,min_clk,h_clk; always (posedge clk) begin clk_2Hz=clk_2Hz; if(sound=3) begin sound=0;ear=1;end else begin sound=sound+1;ear=0;end end always (pos

27、edge clk_2Hz) clk_1Hz=clk_1Hz; always (posedge mode) begin if(m=3) m=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第8页 共32页 else m=m+1; end always (posedge count) begin mfm=mfm; end always (turn) begin fm=fm; end alwa

28、ys (posedge clk1000) begin if(a=4) begin a=0;clk100=clk100; end else a=a+1; end always begin case(m) 3:begin if(mfm)b=1; else b=0; end 2:begin if(fm) begin count1=change; Ld_hour,Ld_min=2b01; end else begin count2=change; Ld_hour,Ld_min=2b10; end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -

29、- - 名师精心整理 - - - - - - - 第 9 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第9页 共32页 end 1:begin if(fm) begin counta=change; Ld_hour,Ld_min=2b01; end else begin countb=change; Ld_hour, Ld_min=2b10; end end default:count1,count2,counta,countb,Ld_hour,Ld_min=0; endcase end always (posedge clk_1Hz) if(!(s

30、ec18h59)|turn&(!m) begin sec1=0; if(!(turn&(!m) minclk=1; end else begin if(sec13:0=9) begin sec13:0=0; sec17:4=sec17:4+1; end else sec13:0=sec13:0+1; minclk=0; end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第10页 共32

31、页assign min_clk=minclk|count1; assign h_clk=hclk|count2; assign ct1=clk|min_clk; assign ct2=clk|h_clk; assign cta=clk|counta; assign ctb=clk|countb; always (posedge ct1) begin if(min1=8h59) begin min1=0; hclk=1; end else begin if(min13:0=9) begin min13:0=0; min17:4=min17:4+1; end else min13:0=min13:

32、0+1; hclk=0; end end always (posedge ct2) if(hour1=8h23) hour1=0; else begin if(hour13:0=9) begin hour13:0=0; hour17:4=hour17:4+1; end else hour13:0=hour13:0+1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第11页 共32页 en

33、d always (posedge cta) if(amin3:0=8h59) amin=0; else if(amin3:0=9) begin amin3:0=0; amin7:4=amin7:4+1; end else amin3:0=amin3:0+1; always (posedge ctb) if(ahour=8h23) ahour=0; else begin if(ahour3:0=9) begin ahour3:0=0; ahour7:4=ahour7:4+1; end else ahour3:0=ahour3:0+1; end always if(hour1=ahour)&(m

34、in1=amin)&(ahour|amin)&(!change) if(sec18h20) alert1=1; else alert1=0; else alert1=0; always case(m) 0:begin hour=hour1; min=min1; sec=sec1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第12页 共32页 end 1:begin hour=ahour

35、; min=amin; sec=8hzz; end 2:begin hour=hour1; min=min1; sec=8hzz; end 3:begin hour=minm; min=secm; sec8h54)|(!(min1|sec1) if(sec18h54) alert2=ear & clk1000; else alert2=!ear & clk1000; else alert2=0; end assign alert=(alert1)?clk1000 & clk:0)|alert2|(alert3)?clk1000 & clk:0); always (posedge clk1000

36、) begin if(!clr&b) begin 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第13页 共32页 if(msec=8h99) begin msec7:0=0;secmclk=1; end else begin if(msec3:0=4h9) begin msec3:0=0;msec7:4=msec7:4+1; end else begin msec3:0=msec3:0+

37、1;secmclk=0; end end end else if(!clr) msec7:0,secmclk=msec7:0,secmclk; else msec7:0,secmclk=0; end always (posedge secmclk) begin if(!clr&b) begin if(secm=8h59) begin secm=0;mminclk=1; end else begin if(secm3:0=4h9) begin secm3:0=0;secm7:4=secm7:4+1;mminclk=0; end else begin secm3:0=secm3:0+1;mminc

38、lk=0; end end end else if(!clr)secm7:0,mminclk=secm7:0,mminclk; else secm7:0,mminclk=0; end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第14页 共32页always (posedge mminclk) begin if(!clr&b) begin if(minm=8h59) begin minm

39、=0;alertm=1; end else begin if (minm3:0=4h9) begin minm3:0=0;minm7:4=minm7:4+1; alertm=0; end else begin minm3:0=minm3:0+1; alertm=0; end end end else if(!clr) minm7:0,alertm=minm7:0,alertm; else minm7:0,alertm8h75)| (!(minm|secm)&alertm) alert3=1; else alert3=0; endmodule 3.3模块仿真模块符号生成如图3.1:名师资料总结

40、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第15页 共32页图3.1 模块仿真符号生成仿真波形如图 3.2和3.3:整体图:图3.2 模块整体仿真波形局部图:图3.3 模块局部仿真波形名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 33 页 - - - - - - - - -

41、 多功能电子钟的Verilog 设计第16页 共32页4应用 Verilog HDL描述的多功能电子钟功能模块及仿真本章根据模块功能共分为七个模块,分别为计时模块、闹铃设置模块、校时模块、秒表功能模块、整点报时模块、闹铃屏蔽及响铃功能模块、秒表提示铃声功能模块。 其中计时模块、 闹铃设置模块、 校时模块和秒表功能模块之间的切换由mode (即m )调整,m=0 时为计时模块, m=1 时为闹铃设置模块, m=2 时为校时模块,m=3 时为秒表模块;另外报时由响铃输出由整点报时模块的输出、闹铃屏蔽及响铃模块的输出和秒表提示铃声模块的输出进行逻辑或后的信号。4.1 计时模块模块功能为正常计时,即每

42、秒钟读一次数,秒表加1,秒计时满 60 进 1 给分计时,分计时满 60 进 1 给小时计时, 小时计时满 24 清零。从功能上讲分别为模 60 计数器,模 60 计数器和模 24 计数器。模块程序代码 : module count(clk,hour1,min1,sec1); input clk; output 7:0hour1,min1,sec1; reg 7:0hour1,min1,sec1; reg clk_1Hz,clk_2Hz, minclk,hclk; always (posedge clk) begin clk_2Hz=clk_2Hz; end always (posedge c

43、lk_2Hz) clk_1Hz=clk_1Hz; always (posedge clk_1Hz) if(sec1=8h59) begin sec1=0; minclk=1; end else begin 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第17页 共32页 if(sec13:0=9) begin sec13:0=0; sec17:4=sec17:4+1; end else s

44、ec13:0=sec13:0+1; minclk=0; end always (posedge minclk) begin if(min1=8h59) begin min1=0; hclk=1; end else begin if(min13:0=9) begin min13:0=0; min17:4=min17:4+1; end else min13:0=min13:0+1; hclk=0; end end always (posedge hclk) if(hour1=8h23) hour1=0; else begin if(hour13:0=9) begin hour13:0=0; hou

45、r17:4=hour17:4+1; end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第18页 共32页 else hour13:0=hour13:0+1; end endmodule 模块仿真 : 模块符号生成如图 4.1:图4.1 计时模块符号生成模块仿真波形如图 4.2:图4.2 时模块符号仿真波形4.2 闹铃设置模块模块功能为设置闹铃的分钟和小时, 设置的时候由 turn 控制

46、调整分钟及调整小时之间的切换, 每按一次 change,所调整的计数器加 1,分钟计数器满 60清零,小时计数器满 24清零。模块程序代码 : module alarmclock(turn,change,ahour,amin,asec); input change,turn; output 7:0ahour,amin,asec; reg 7:0ahour,amin,asec; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 33 页 - - - - - - - - -

47、多功能电子钟的Verilog 设计第19页 共32页reg counta,countb,fm; always (posedge turn) begin fm=fm; end always begin if(fm) begin counta=change; end else begin countb=change; end end always begin asec=8hzz; end always (posedge counta) begin if(amin=8h59) amin=0; else begin if(amin3:0=9) begin amin3:0=0; amin7:4=amin

48、7:4+1; end else amin3:0=amin3:0+1; end end always (posedge countb) if(ahour=8h23) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 33 页 - - - - - - - - - 多功能电子钟的Verilog 设计第20页 共32页 ahour=0; else begin if(ahour3:0=9) begin ahour3:0=0; ahour7:4=ahour7:4+1; end els

49、e ahour3:0=ahour3:0+1; end endmodule 模块仿真 : 模块符号生成如图 4.3:图4.3 闹铃设置模块符号生成仿真波形如图 4.4:图4.4 闹铃设置模块仿真波形4.3 校时模块模块功能为修正分钟和小时时间以及秒钟的精确调整清零。由turn 控制调整分钟和调整小时之间的切换,每按一下change所调整的计数器加 1,分钟计数器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 33 页 - - - - - - - - - 多功能电子钟的Ve

50、rilog 设计第21页 共32页满60清零,小时计数器满 24清零;秒种的精确调整清零具体为在正常计时的情况下,长时间按住 turn ,即可使秒钟清零,进行精确调时。模块程序代码 : module alterclock(clk,mode,turn,change,hour1,min1,sec1); input clk,mode,turn,change; output 7:0hour1,min1,sec1; reg 7:0hour1,min1,sec1; reg clk_1Hz,clk_2Hz,count1,count2,fm,m; always (posedge clk) begin clk_

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁