数字系统设计与verilog HDL课程设计
数字逻辑电路与系统设计课程设计

数字逻辑电路与系统设计课程设计课程设计目的通过本课程设计的学习,学生应能够掌握数字逻辑电路基本概念、设计方法以及应用技巧。
学生应该能够使用Verilog HDL或者其他硬件描述语言(HDL)设计数字逻辑电路和系统,并能够基于FPGA平台设计和实现数字电路系统。
课程设计内容本次课程设计主要包含以下内容:1.数字电路基础知识:数字逻辑基本理论、逻辑门的特点、数字电路的抽象层次。
2.Verilog HDL编程:Verilog HDL的基本语法、数据类型、运算符以及常用结构体。
3.组合逻辑电路设计:组合逻辑电路的设计方法、Karnaugh图、逻辑门级联、多路复用器/解复用器、译码器、比较器等。
4.时序逻辑电路设计:时序逻辑电路的设计方法、触发器、寄存器、计数器等。
5.FPGA系统设计:FPGA的基本原理和结构、FPGA开发板的使用、FPGA系统设计的流程以及示例项目。
课程设计要求1.课程设计可以采用Verilog HDL或者其他HDL编程语言。
2.参与者需要结成小组,每个小组3-5人。
3.每个小组需要完成一项数字电路设计项目,包括设计报告和实验验证。
4.每个小组需要在课程结束时提交一份完整的设计报告以及实验数据和项目代码。
5.设计项目可以是基于组合逻辑或时序逻辑的电路系统设计,包括但不限于多路选择器、加法器、比较器、寄存器、时钟控制器、计数器、显示控制器等。
6.设计报告应该包含问题描述,设计总体方案,设计分级具体实现以及实验结果和分析等。
7.实验验证应该使用FPGA开发板完成,需要进行基准测试,并按照设计要求逐步进行验证。
8.设计报告和实验验证需要进行小组汇报,并进行讨论。
课程设计参考资料1.Verilog HDL编程指南(第二版), 王自发, 清华大学出版社,20182.数字逻辑与计算机设计,M. Morris Mano, Pearson Education,20153.FPGA原理与设计, Jonathan W. Valvano, Morgan & Claypool,20114.FPGA开发实战, Evan A. Curtice, Packt Publishing, 2018结论通过本次课程设计,学生将能够熟练掌握数字逻辑电路设计的基础知识和关键技能。
数字系统设计与veriloghdl课后答案

数字系统设计与veriloghdl课后答案【篇一:数字逻辑与数字系统设计习题参考答案】>第1章习题解答1.3 (1)86(2)219(3)106.25(4)0.6875 (4)0.1011.4 (1)101111(2)1001000(3)100001l.111.5 (1)(117)10=(165)8=(1110101)2=(75)16(2)(3452)10=(6574)8=(110101111100)2=(d7c)16(3)(23768.6875)10=(56330.54)8=(101110011011000.1011)2=(5cd 8.b)16 (4)(0.625)10=(0.5)8=(0.101)2=(0.a)16 1.6(1)(117)8=(1001111)2=(79)10(2)(7456)8=(111100101110)2=(3886)10(3)(23765.64)8=(10 0111 1111 0101.1101)2=(10229.8125)10(4)(0.746)8=(0.11111)2=(0.96875)10 1.7 (1)(9a)16=(10011010)2=(154)10(2) (3cf6)16=(11110011110110)2=(15606)10(3) (7ffe.6)16=(111111*********.011)2=(32766.375)10 (4)(0.c4)16=(0.110001)2=(0.765625)10 1-8(1)(125)10=(000100100101)8421bcd(2)(7342)10=(0111001101000010)8421bcd(3)(2018.49)10=(0010000000011000.01001001)8421bcd(4)(0.785)10=(0.011110000101)8421bcd1.9(1)(106)10=(1101010)2 原码=反码=补码=01101010 (2)(-98)10=(-1100010)2原码=11100010反码=10011101 补码=11100011(3)(-123)10=(-1111011)2 原码=11111011反码=10000101 补码=11111011(4)(-0.8125)10=(-0.1101)2 原码=1.1101000反码=1.0010111 补码=1.00110001.10(1)(104)10=(1101000)2 [1101000]补=01101000(-97)10=(-1100001)2 [-1100001]补=1001111101101000 + 10011111 0000011110000011 + 01001111 11010010[104-97]补=01101000+10011111=00000111, 104-97=(00000111)2=7 (2) (-125)10=(-1111101)2(79)10=(01001111)2[-1111101]补=10000011 [01001111]补=0100111101111000 [-125+79]补=10000011+01001111=11010010,-125+79=(-0101110)2=-46 (3) (120)10=(1111000)2[01111000]补=01111000(-67)10=(-1000011)2[-1000011]补=10111101[120-67]补=10000011+01001111=00110101,-125+79=(00110101)2=53 (4) (-87)10=(-1010111)2[-1010111]补=10101001(12)10=(1100)2[1100]补=00001100[-87+12]补=10101001+00001100=10110101,-125+79=(-1001011)2=-75+ 10111101 0011010110101001+ 00001100 10110101第2章习题解答2.3 解:根据逻辑图可直接写出逻辑表达式:(a) f=ab?bc;(b)f=abbcac解:设3个输入变量分别为a、b、c,输出为f,按题意,其中有奇数个为1,则输出f=1,因此可写出其逻辑表达式为f=abc?abc?abc?abc。
Verilog数字系统设计教程课程设计

Verilog数字系统设计教程课程设计
项目背景与概述
数字系统设计是计算机科学和电子工程中一个重要的领域。
Verilog是一种在
数字系统设计中广泛使用的硬件描述语言。
本课程设计旨在向学生介绍Verilog的基础知识和应用技巧,在实践中培养学生的硬件设计思维和实验能力。
本课程设计将包括以下主要内容:
•Verilog语言基础
•数字逻辑设计案例分析
•FPGA芯片设计与调试
•Verilog仿真与验证
•高级Verilog主题:状态机、计数器、时序逻辑等
通过本课程设计,学生将获得以下知识和技能:
•掌握Verilog语言基础,了解硬件描述语言在数字系统设计中的应用;
•学会如何使用Verilog进行数字逻辑设计和FPGA芯片编程;
•能够独立完成数字系统设计项目,并进行仿真和验证;
•具备一定的硬件设计思维和实验能力。
教学方法和步骤
本课程设计采用项目驱动的学习方法,将以小组为单位,通过实际数字系统设
计项目来掌握Verilog语言及数字电路设计基本技能。
课程设计步骤如下:
1。
精品课件-Verilog HDL数字系统设计-Verilog HDL数字系统设计-第1章

编程器件的基础上进一步发展的产物,它是作为ASIC领域中的 一种半定制电路而出现的,既解决了定制电路的不足,又克服 了原有可编程器件门电路有限的缺点。
第1章 概 述
26
如前所述,FPGA是由存放在片内的RAM来设置其工作状态的, 因此工作时需要对片内RAM进行编程。用户可根据不同的配置模 式,采用不同的编程方式。FPGA有如下几种配置模式:
第1章 概 述
1
第1章 概
述
1.1 EDA技术简介 1.2 可编程器件 1.3 Verilog HDL简介
第1章 概 述
2
1.1 EDA技术简介
现代电子设计技术的核心已日趋转向基于计算机的电子设 计自动化(EDA,Electronic Design Automation)技术。所谓 EDA技术,就是依赖功能强大的计算机,在EDA工具软件平台上, 对以硬件描述语言(HDL,Hardware Description Language)为 系统逻辑描述手段完成的设计文件,自动地进行逻辑编译、化 简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实 现既定的电子线路系统功能。
6.目标器件的编程/下载 7.硬件仿真与测试
第1章 概 述
18
1.2 可 编 程 器 件
1.2.1 可编程逻辑器件概述 随着数字电路的普及,传统的定制数字集成电路器件已满
足不了应用的需求,可编程逻辑器件(PLD)应运而生,并逐渐地 成为主流产品。PLD与传统定制器件的主要区别是它的可编程性, 它的逻辑功能是由用户设计的,并且一般都可重复编程和擦除, 即PLD是能够为客户提供范围广泛的多种逻辑能力、特性、速度 和电压特性的标准成品部件,而且此类器件的功能可在任何时 间修改,从而实现多种不同的功能。对于可编程逻辑器件,设 计人员可利用价格低廉的软件工具快速开发、仿真和测试其设 计。
Verilog数字系统设计教程第三版课程设计

Verilog数字系统设计教程第三版课程设计介绍Verilog是一种充满活力的硬件描述语言(HDL),是数字系统设计中广泛使用的一种语言。
随着数字系统设计中应用越来越广泛,Verilog已经成为了数字系统设计工程师必须掌握的一门技能。
本文档主要介绍了Verilog数字系统设计教程第三版课程设计。
课程目标本课程通过Verilog数字系统设计教程第三版中的案例来帮助学生了解数字系统设计的基本概念和技能。
本课程的目标是:1.理解数字系统设计的基本概念和原理2.掌握Verilog语言的基本语法和使用方法3.能够使用Verilog设计数字系统4.能够对数字系统进行仿真和验证课程设计课程内容本课程根据Verilog数字系统设计教程第三版的案例,分为以下几个部分:1.Verilog的基本语法和使用方法2.设计单周期处理器并进行仿真和验证3.设计带缓存的单周期处理器并进行仿真和验证4.设计多周期处理器并进行仿真和验证课程安排本课程采用实践与理论相结合的方式进行教学。
具体安排如下:1.周一:上课讲解Verilog的基本语法和使用方法2.周二:自主学习并完成单周期处理器实验3.周三:上课讲解带缓存的单周期处理器的设计方法4.周四:自主学习并完成带缓存的单周期处理器实验5.周五:上课讲解多周期处理器的设计方法6.周六:自主学习并完成多周期处理器实验7.周日:讨论和总结实验结果课程评估本课程的评估分为两部分:1.实验报告:每个实验需要学生撰写实验报告,包括设计思路、Verilog代码、仿真结果等。
2.期末考试:期末考试主要考查学生对Verilog的掌握程度和对数字系统设计的理解程度。
总结本文档介绍了Verilog数字系统设计教程第三版课程设计的目标、内容、安排和评估。
本课程旨在帮助学生在数字系统设计中掌握基本概念和技能,并掌握Verilog的基本使用方法。
通过本课程的学习,学生将能够设计数字系统并进行仿真和验证。
第4章 Verilog设计初步 数字系统设计与Verilog HDL (第4版)教学课件

qout[0]<=~qout[WIDTH-1];
end
end
endmodule
Synplify Pro新建项目对话框
Synplify Pro新建文件对话框
Implementation Option对话框
约翰逊计数器综合后的RTL级原理图
约翰逊计数器综合后的门级原理图 (MAX7000器件)
begin
if(~reset) begin q<=1'b0;qn<=1'b1; end //异步清0,低电平有效
else if(~set) begin q<=1'b1;qn<=1'b0; end
//异步置1,低电平有效
else
begin q<=d;qn<=~d; end
end
endmodule
4.4 Verilog基本时序电路设计
begin if(~reset) begin q<=1'b0;qn<=1'b1;end
//同步清0,低电平有效 else if(~set) begin q<=1'b1;qn<=1'b0;end //同步置1,低电平有效 else begin q<=d; qn<=~d; end
end endmodule
【例4.11】 带异步清0/异步置1(低电平有效)的D触发器
module dff_asyn(q,qn,d,clk,set,reset);
input d,clk,set,reset; output reg q,qn;
always @(posedge clk or negedge set or negedge reset)
数字系统设计与Verilog HDL实验报告(二)

《数字系统设计与Verilog HDL》实验报告(二)班级:自动1003班姓名:**学号:********实验二、四位并串转换电路一、实验目的1、了解及掌握时序电路的基本结构常用数字电路;2、通过ModelSim软件编写时序电路的程序进行仿真和调试。
二、实验内容1、熟悉时序电路中时钟的同步与异步用法;2、编写一个四位并串转换设计程序以及测试该模块的测试程序,要求如下:(1)输入一个四位二进制数pin;(2)每个时钟周期按从左往右的顺序输出一位pin的二进制位的数。
三、实验步骤及源程序新建工程及文件,分别添加设计程序及测试程序,进行编译及纠错,编译通过后运行程序仿真进行调试得出结果。
设计模块:module para_to_serial4(pin,clk,reset,sout);input [3:0] pin;input clk,reset;output sout;reg sout;reg [3:0] data;always @(posedge clk or negedge reset)beginif(~reset)beginsout<=1'b0;data<=pin;endelsebegindata<={data[2:0],data[3]};sout<=data[3];endendendmodule测试模块:`timescale 1ns/1nsmodule test_para_to_ser;wire sout;reg [3:0] pin;reg clk,reset;para_to_serial4 test1(pin,clk,reset,sout);initialbeginclk=1'b0;reset=1'b0;#5 reset=1'b1;#300 $stop;endinitialpin=4'b1001;always#5 clk=~clk;endmodule四、实验结果五、实验心得体会这次试验相对于上次有了一定的难度,由于这门课程刚开始学习,我还不能很好地从宏观把握这门课程,对这门课程的认识和理解还不够深刻,所以做实验时遇到了一些困难,虽然找了一些参考资料,有一定的帮助,但最后还是有点纠结,最终在和同学的交流中才比较深刻的对实验有了了解。
数字系统设计与VerilogHDL课程设计

数字系统设计与VerilogHDL课程设计一、课程设计背景数字系统设计和VerilogHDL是计算机科学与技术专业中比较重要的课程之一。
在该课程中,学生将学习到数字系统的设计和实现过程,以及VerilogHDL语言的应用和编写。
本课程设计旨在让学生通过实践,巩固并深化所学知识,提高其实际运用能力,并帮助学生更好地理解数字系统设计和VerilogHDL的重要性。
二、课程设计目标与要求1. 课程设计目标本课程设计主要目标是让学生了解数字系统设计和VerilogHDL的工作原理和实现方法,并通过实践进行巩固,提高学生的动手能力,为日后从事该领域的工作做好充分的准备。
2. 课程设计要求本课程设计要求学生能够在充分理解了数字系统设计和VerilogHDL的基本原理和方法后,进行硬件电路图、程序代码的设计和仿真。
同时,学生需要自主完成以下任务:1.学习数字系统设计和VerilogHDL的基本知识。
2.设计并仿真一个简单的多功能数字系统,包括至少一个输入和一个输出设备,以及多个存储器(SRAM、DRAM、ROM等都可以)。
3.使用VerilogHDL语言设计实现一个几位数的计算器。
4.完成个人或小组课程设计报告,包括设计过程中的心得、体会等内容。
三、课程设计流程1. 学习数字系统设计和VerilogHDL的基本知识数字系统设计和VerilogHDL的基本知识包括数字系统的基本概念、数字信号处理、电路设计和VerilogHDL的基本语法和程序设计方法等。
学生可以通过阅读相关教材和参考资料来学习这些知识。
2. 设计多功能数字系统在完成学习后,学生可以开始设计自己的多功能数字系统。
该系统应该包括输入、输出、存储器等组件,并应该考虑到系统的稳定性、处理速度、数据存储和传输等方面的问题。
设计的过程中还需注意电路连接、时序控制、设计优化等方面,确保数字系统的高效功能和性能。
3. 设计计算器在完成多功能数字系统的设计后,学生可以进一步使用VerilogHDL语言,编写程序设计一个几位数的计算器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字系统设计与verilog HDL课程设计设计题目:实用多功能数字钟专业:电子信息科学与技术班级:0313410学号:031341025姓名:杨存智指导老师:黄双林摘要本课程设计利用QuartusII软件Verilog VHDL语言的基本运用设计一个多功能数字钟,经分析采用模块化设计方法,分别是顶层模块、alarm、alarm_time、counter_time、clk50mto1、led、switch、bitel、adder、sound_ddd、sound_ddd_du模块,再进行试验设计和软件仿真调试,分别实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能。
单个模块调试达到预期目标,再将整体模块进行试验设计和软件仿真调试,已完全达到分块模式设计功能,并达到设计目标要求。
关键字:多功能数字钟、Verilog、模块、调试、仿真、功能目录1.课程设计的目的及任务............................................................. 错误!未定义书签。
1.1 课程设计的目的 (3)1.2 课程设计的任务与要求 (4)2.课程设计思路及其原理 (4)3.QuartusII软件的应用 (5)3.1工程建立及存盘 (5)3.2工程项目的编译 (5)3.3时序仿真 (6)4.分模块设计、调试、仿真与结果分析 (7)4.1 clk50mto1时钟分频模块 (7)4.2 adder加法器模块 (7)4.3 hexcounter16 进制计数器模块 (7)4.4 counter_time 计时模块 (8)4.5 alarm闹铃模块 (8)4.6 sound_ddd嘀嘀嘀闹铃声模块 (9)4.7 sound_ddd_du嘀嘀嘀—嘟声音模块 (9)4.8 alarm_time闹钟时间设定模块 (10)4.9 bitsel将输出解码成时分秒选择模块 (10)4.10 switch去抖模块 (11)4.11 led译码显示模块 (11)4.12 clock顶层模块 (12)5.实验总结 (13)5.1调试中遇到的问题及解决的方法 (13)5.2实验中积累的经验 (14)5.3心得体会 (14)6.参考文献 (14)1.1 课程设计的目的通过课程设计的锻炼,要求学生掌握V erilog HDL语言的一般设计方法,掌握VerilogHDL语言的基本运用,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,基于实践、源于实践,实践出真知,实践检验真理,培养学生的创新精神。
掌握现代数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。
1.2 课程设计的任务与要求用Verilog HDL语言设计一个多功能的数字钟,具有下述功能:(1)计时功能。
包括时、分、秒的计时;(2)定时与闹钟功能:能在设定的时间发出闹铃音;(3)校时功能。
对时、分和秒能手动调整以校准时间;(4)整点报时功能;每逢整点,产生“嘀嘀嘀嘀一嘟”四短一长的报时音。
2.课程设计思路及其原理数字计时器要实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能,所有功能都基于计时功能。
因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为50MHZ,通过分频获得所需脉冲频率1Hz。
得到1hz脉冲后,要产生计时模块,必须需要加法器来进行加法,因此需要一个全加器,此实验中设计一个八位全加器来满足要求。
数字电路设计中,皆采用二进制加法,为实现实验中时分秒的最大功能,本实验中采用十六进制加法器,再进行BCD码进行转换来实现正常时钟显示。
为产生秒位,设计一个模60计数器,利用加法器对1HZ的脉冲进行秒计数,产生秒位;为产生分位,通过秒位的进位产生分计数脉冲,分位也由模60计数器构成;为产生时位,用一个模24计数器对分位的进位脉冲进行计数。
整个数字计时器的计数部分共包括六位:时十位、时个位、分十位、分个位、秒十位和秒个位。
基本的计时模块完成之后,整点报时、清零、校时、LED显示、闹铃模块可以相互实现,其中,闹铃模块与计时模块的显示相互并行。
清零功能是通过控制计数器清零端的电平高低来实现的。
只需使清零开关按下时各计数器的清零端均可靠接入有效电平(本实验中是低电平),而清零开关断开时各清零端均接入无效电平即可。
保持功能是通过逻辑门控制秒计数器输入端的1Hz脉冲实现的。
正常情况下,开关不影响脉冲输入即秒正常计数,当按下开关后,使脉冲无法进入计数端,从而实现计时保持功能。
要进行闹钟功能,是否进行闹钟模块nowmode,当选择00表示即使模块,10闹钟模式,01手动调整模式。
当选择闹铃模块之后,是否是整点报时闹铃还是闹钟闹铃,又需要设置一个选择模块alarmout,当00模式时不开启闹铃,01进行闹铃模式,10进行整点报时模块。
整点报时是本实验中的sound_ddd_du模块(详见附录中程序清单),sound_ddd_du模块与计时模块有点类似,但整点报时模块中不要分时分秒计数,可直接利用1hz的分频计数至时位进位时的数值,开启ddd_du闹铃。
闹钟报时功能。
在计时电路走到设定的时间时闹铃报时功能会被启动,通过与ddd产生电路进行逻辑组合,使得在达到闹铃时,发出ddd。
闹铃模块和校正模块中,需要选择闹铃调时Alarmode还是Checkmode校时模块,因此需要利用bitsel模块进行选择。
闹钟只设定时和分,基本模块Alarmode与正常计时电路里的校时校分电路相同。
本实验中为节省按键,闹钟时间调节键复用正常调时的校时校分开关,为使设定闹铃与正常计时中调节时间按键互不影响,额外用一个闹钟使能键,按下该键后进入闹钟设定界面,此时校时校分开关用于调节闹钟时间,对正常计时没有影响;恢复使能键后校分校时键用于对数字钟进行时间调节,对设定的闹钟时间没有影响。
校分校时checkmode功能基本原理是通过逻辑门电路控制分计数器的计数脉冲,当校分校时开关断开时,计数脉冲由低位计数器提供;当按下校分校时开通时,既可以手动触发出发式开关给进位脉冲,也可以有恒定的1Hz脉冲提供恒定的进位信号,计数器在此脉冲驱动下可快速计数。
为实现可靠调时,采用防抖动开关(由D触发器实现)克服开关接通或断开过程中产生的一串脉冲式振动。
当全部功能实现之后,要完成数字钟的全部输出,需要一个LED显示模块。
最后,将所有程序进行调试,在clock顶层模块中可以实现全部功能。
3.QuartusII软件的应用3.1工程建立及存盘1.打开QuartusⅡ,单击“File”菜单,选择File→New Project Wizard,对话框如下:分别输入项目的工作路径、项目名和实体名,单击Finish。
图3.12.单击“File”菜单,选择New,弹出小对话框,双击“VHDL File",即选中了文本编辑方式。
在出现的“Vhdl1.vhd”文本编辑窗中键入VHDL程序,输入完毕后,选择File→Save As,即出现“Save As”对话框。
选择自己建立好的存放本文件的目录,然后在文件名框中键入文件名,按“Save”按钮。
3.建立工程项目,在保存VHDL文件时会弹出是否建立项目的小窗口,点击“Yes”确定。
即出现建立工程项目的导航窗口,点击“Next”,最后在出现的屏幕中分别键入新项目的工作路径、项目名和实体名。
注意,原理图输入设计方法中,存盘的原理图文件名可以是任意的,但VHDL程序文本存盘的文件名必须与文件的实体名一致,输入后,单击“Finish”按钮。
3.2工程项目的编译单击工具条上的编译符号开始编译,并随着进度不断变化屏幕,编译成功,完成后的屏幕如图3.2所示:图3.23.3时序仿真建立波形文件:选择File→New,在New窗中选中“Other File”标签。
在出现的屏幕中选择“Vector Waveform File”项出现一新的屏幕,在assignment中选择seting,将timing选择function功能仿真,再在processing中建立网格。
在出现的新屏幕中,双击“Name”下方的空白处,弹出“Insert Nod or Bus”对话框,单击该对话框的“Node Finder……”。
在屏幕中的Filter中选择Pins,单击“List”。
而后,单击“>>”,所有输入/输出都被拷贝到右边的一侧,这些正是我们希望的各个引脚,也可以只选其中的的一部分,根据实际情况决定。
然后单击屏幕右上脚的“OK”。
在出现的小屏幕上单击“OK”。
设定仿真时间宽度。
选择Edit → End time,选项,在End time选择窗中选择适当的仿真时间域,以便有足够长的观察时间。
波形文件存盘。
选择File→Save as选项,直接存盘即可。
运行仿真器。
在菜单中选择项,直到出现,仿真结束。
图3.4 编辑过程的仿真波形4.分模块设计、调试、仿真与结果分析4.1 clk50mto1时钟分频模块实验中使用的振荡频率源为50MHZ,通过分频获得所需脉冲频率1Hz。
在counter_1hz==50000000时,输出信号清零,若未达到则继续加一。
为实验观察方便,在单个模块的显示中,本处clock输入为1ps周期信号,得到clk50to1输出结果如图4.1所示,完全符合实验要求。
图4.1 clk50mto1时钟分频模块4.2 adder加法器模块本实验中adder采用8位全加器,out=in1+in2,带进位。
图4.2 adder加法器模块实验中数字钟时分秒最大计数为59,带进位8位全加器完全符合实验要求,如图4.2所示,77加62等于139,76加上93等于169。
4.3 hexcounter16 进制计数器模块经过分频后,输出脉冲频率为1hz,即周期为1s,通过16进制计数器,将其转化为16进制数字。
16进制采用4位二进制,因此寄存器长度为四位。
当set高电平有效时,将数据送给counter计数器,carrtbit清零,如若counter计数器达到16进制中max即15时,counter清零,而carrtbit置高电平有效。
如若set一直处于低电平,则counter计数器自加一进行计数,carrtbit清零。
图4.3 hexcounter 16进制计数器模块调试试验结果如图4.3所示,set一直处于低电平状态下,当datout计数置3后再加一即清零,而carrybit置一,再来一个脉冲上升沿又回来置数,符合十六进制计数器。
4.4 counter_time 计时模块时钟能够产生时间前提是对秒脉冲计数产生形成的,每个计时器的时钟,由前级进位和自增脉冲相加得到,为了形成时分秒,需要对秒进位信号进行计数从而产生分,对分进位信号进行计数产生时信号。