《数字逻辑系统设计》设计报告格式

合集下载

数字逻辑综合设计实验报告

数字逻辑综合设计实验报告

数字逻辑综合设计实验报告本次数字逻辑综合设计实验旨在通过集成数字电路设计的各项技能,实现课程中所学的数字逻辑电路的设计和应用。

本文将从实验流程、实验过程和实验结果三个方面进行详细阐述。

一、实验流程1.确定实验内容和目的。

2.设计电路,包括逻辑门、时序电路和其他数字电路。

3.将电路图转化为器件链路图。

4.验证器件是否可以直接连接,确定器件安装方式。

5.安装器件,焊接电路板。

6.进行测试和调试,确认电路是否可以正常工作。

7.完成实验报告并提交。

二、实验过程1.确定实验内容和目的本次实验的内容是建立一个多功能的数字电路,实现数字电路的常见功能,包括计数器、时序控制器等。

本次实验的目的是通过对数字电路设计的综合应用,提高学生对数字电路设计的实践能力。

2.设计电路在确定实验内容和目的之后,我们需要对电路进行设计。

为了实现功能的复杂性,我们设计了一个包含多个逻辑门、计数器和其他数字电路的复杂电路。

3.将电路图转化为器件链路图在完成电路设计后,我们需要将电路图转化为器件链路图。

我们需要根据电路设计中使用的器件类型和数量来确定器件链路图。

在转化过程中,我们需要考虑器件之间的连接方式、信号传输、电源连接等因素。

4.验证器件是否可以直接连接,确定器件安装方式对于电路板的安装和器件之间的连接问题,我们需要进行仔细的测试和验证。

只有当所有器件都可以无误地连接到电路板上并正常工作时,我们才能确定最佳的器件安装方式。

5.安装器件,焊接电路板完成以上所有的测试和验证后,我们可以开始完成电路板的安装。

在安装过程中,我们需要仔细按照器件链路图和设计图来进行布线和连接。

最后,我们需要进行焊接,确保连接性能和电路板的可靠性。

6.进行测试和调试,确认电路是否可以正常工作完成器件安装和焊接后,我们需要进行测试和调试。

我们需要检查每个部分的性能和功能,以确保电路可以正常工作。

如果我们发现任何错误或问题,我们需要进行进一步的调试和修复。

7.完成实验报告并提交。

数字逻辑设计实验报告

数字逻辑设计实验报告

一、实验目的1. 理解和掌握数字逻辑设计的基本原理和方法。

2. 熟悉数字电路的基本门电路和组合逻辑电路。

3. 培养动手能力和实验技能,提高逻辑思维和解决问题的能力。

4. 熟悉数字电路实验设备和仪器。

二、实验原理数字逻辑设计是计算机科学与技术、电子工程等领域的基础课程。

本实验旨在通过实际操作,让学生掌握数字逻辑设计的基本原理和方法,熟悉数字电路的基本门电路和组合逻辑电路。

数字逻辑电路主要由逻辑门组成,逻辑门是数字电路的基本单元。

常见的逻辑门有与门、或门、非门、异或门等。

根据逻辑门的功能,可以将数字电路分为组合逻辑电路和时序逻辑电路。

组合逻辑电路的输出只与当前输入有关,而时序逻辑电路的输出不仅与当前输入有关,还与之前的输入有关。

三、实验内容1. 逻辑门实验(1)实验目的:熟悉逻辑门的功能和特性,掌握逻辑门的测试方法。

(2)实验步骤:① 将实验箱中的逻辑门连接到测试板上。

② 根据实验要求,将输入端分别连接高电平(+5V)和低电平(0V)。

③ 观察输出端的变化,记录实验数据。

④ 分析实验结果,验证逻辑门的功能。

2. 组合逻辑电路实验(1)实验目的:掌握组合逻辑电路的设计方法,熟悉常用组合逻辑电路。

(2)实验步骤:① 根据实验要求,设计组合逻辑电路。

② 将电路连接到实验箱中。

③ 根据输入端的不同组合,观察输出端的变化,记录实验数据。

④ 分析实验结果,验证电路的功能。

3. 时序逻辑电路实验(1)实验目的:掌握时序逻辑电路的设计方法,熟悉常用时序逻辑电路。

(2)实验步骤:① 根据实验要求,设计时序逻辑电路。

② 将电路连接到实验箱中。

③ 观察电路的输出变化,记录实验数据。

④ 分析实验结果,验证电路的功能。

四、实验结果与分析1. 逻辑门实验结果:通过实验,验证了逻辑门的功能和特性,掌握了逻辑门的测试方法。

2. 组合逻辑电路实验结果:通过实验,掌握了组合逻辑电路的设计方法,熟悉了常用组合逻辑电路。

3. 时序逻辑电路实验结果:通过实验,掌握了时序逻辑电路的设计方法,熟悉了常用时序逻辑电路。

数字逻辑课程设计报告(优秀版)

数字逻辑课程设计报告(优秀版)

目录目录 (1)一、设计目的 (2)二、设计要求 (2)三、设计方案 (2)四、顶层图及相关模块说明 (3)1、顶层图 (3)2、各模块说明(1)进制模块 (3)a、二十四进制 (5)b、六十进制 (5)(1)动态扫描模块 (6)(2)分频模块 (8)(3)报时模块 (9)(4)二路选择器模块 (10)五、经验总结 (12)一、设计目的1.学会应用数字系统设计方法进行电路设计;2.进一步提高QuartusⅡ9.0软件的开发应用能力;3.培养学生书写综合实验报告的能力。

二、设计要求1、能进行正常的时、分、秒计时,用动态扫描的方式显示,需用6个数码管。

(1)用M6M5进行24进制小时的显示。

(2)用M4M3进行60进制分的显示。

(3)用M2M1进行60进制秒的显示。

2、利用按键实现“校时”、“校分”和“秒清0”功能。

(1)SA:校时键。

按下SA键时,时计数器迅速递增,按24小时循环,并且计满23时回到00。

(2)SB:校分键。

按下SB键时,分计数器迅速递增,按60小时循环,并且计满59时回到00,但不向时进位。

(3)SC:秒清零。

按下SC时,秒计数器清零。

要求按键均不产生数字跳变,因此须对“SA”、“SB”进行消抖处理。

3、能进行整点报时。

(1)在59分50、52、54、56、58秒按500Hz频率报时;(2)在59分60秒用1KHz的频率作最后一声正点报时。

4、更高要求:能进行闹时功能(1)闹时的最小时间间隙为10分钟,闹时长度为1分钟。

闹时频率可以自己设置。

(2)按下闹时按键SD后,将一个闹时时间数存入计数器内。

时钟正常运行时,闹时时间和运行的时间进行比较,当比较结果相同时输出一个启动信号,触发闹时电路工作,输出音频信号。

三、设计方案1、按自顶向下的层次化设计方法设计。

(1)顶层图(2)消抖电路用D触发器构成,SA、SB、SC为包含抖动的输入信号,而电路的输出则是一个边沿整齐的输出信号。

(3)计时(24进制计数器),计分(60进制计数器)、计秒(60进制计数器)模块可由10进制计数器连接构成,也可用VHDL语言完成。

数字逻辑课程设计完整报告(精编文档).doc

数字逻辑课程设计完整报告(精编文档).doc

【最新整理,下载后即可编辑】一、概述智能抢答器是一种生活中常见的装置,电视节目中都可以看得到,是一种简易但又特别实用的一种装置。

本次我的课程设计的要求是设计一个智力竞赛抢答装置,可以供4人(组)使用,并且每人对应着一个开关,每个开关对应着一个发光二极管,当选手抢答成功时,所对应的发光二极管就会亮,主持人也有一个开关,当主持人按下自己开关使,选手才可以抢答,比赛才开始,并且计时器开始计时,如果在2分钟时间内没有选手抢答,那么这道题作废,主持人断开自己开关,再进行下道题。

二、方案论证设计一个智能抢答器,可以供4人比赛,每人对应一个开关和发光二极管。

主持人控制一个开关,当主持人按下开关,抢答开始并且开始计时,如果2分钟内没有选手抢答,那么本题作废,主持人断开开关,进行下题。

方案一:方案一原理框图如图1所示。

图1 智力抢答器电路的原理框图方案二:方案二原理框图如图2所示。

图2 智力抢答器电路的原理框图本设计采用的是方案二,电路简单,易懂,更具性价比。

三、电路设计 1.抢答电路抢答电路是实现抢答功能,当主持人按下开关抢答开始,当最先开始选手按下开关并且对应发光二极管发光,而且其他选手抢答无效。

为实现功能当一个开关闭合同时其它开关处于断开状态时,输出高电平对应二极管发光,同时将其它三个二极管锁定为低电平,这三个开关失效。

图3 抢答电路2.计时电路计时器电路主要由三片74LS190N 构成。

将三片计数器芯片接成120进制的加法计数器并将初始值置为000,接收脉冲信号由000开始计时。

选手按钮显示电路译码电路 控制电路主持人按钮脉冲电路计时电路 报警电路表1 同步十进制加/减计数器74LS190N功能表的控制停止计数且保持当前数据不变;当LD′=0时,计数器不受CLK的控制预置数;当CTEN′=0,LD′=1,U′/D=0时计数器加法计数,CTEN′=0,LD′=1,U′/D=1时计数器减法计数;当低位计数器U8到9时进位,高位加1。

数字逻辑课程设计报告2

数字逻辑课程设计报告2

第10页目录2六.实验目的———————————————————————11 七.计数器(方法及步骤)—————————————————12 八.译码器(方法及步骤)—————————————————14 九.接连—————————————————————————15 十. 实验总结——————————————————————16六.实验目的目的1.熟悉IspLEVER软件的使用方法,学习与掌握MACH器件编程方法;2.用ABEL语言或其它硬件描述语言(Verilog 或VHDL语言)编程实现一个简单的电子琴或频率计;3.在ispLEVEL软件环境下,将设计好的程序输入、编译、连接,生成JEDEC格式的文件。

4.将JEDEC格式的文件下载到器件中。

要求1.初步掌握使用ABEL语言编程的方法,使用ABEL语言设计一个4位格雷码计数器或可逆十进制计数器,并进行编译、连接,生成JEDEC文件,将JEDEC文件通过GAL编程器写入GAL16V8,将GAL16V8插入TDS实验台,将计数器的输出接到电平指示灯,验证设计结果。

2.用ABEL语言(或VHDL语言)设计一个电子琴或一个频率计;将设计好的程序输入、编译、连接生成JED格式的文件;将JED格式的文件下载到器件中;在TDS实验台上对设计进行调试,连线、验证设计结果。

第11页七.计数器实验运行实验演示图第12页下载到芯片第13页八.译码器实验运行实验演示图第14页九.接连实验运行实验演示图第15页下载到芯片十.实验总结第一次接触到ispEVLER,对它没有一丁点的经验可言,这也是这次试验的困难的地方。

本次试验由于我没有好好的阅读实验指导书,在实验过程中出现了好多不懂的地方。

而且地闹上的工具都是英文的,我一点都都不懂。

在第一次的实验演示的时候就因为不太理解老师的讲解而没有跟上老师地进度,所以我第一天的任务没有完成,找了半天错误原因也没有找到,我只好第二天又重新做了一遍,这次我吸取教训认认真真的阅读了指导书的步骤和方法,然后一步一步的按部就班,最终在上课不久之后我很顺利的完成了任务,有了第一次的经验,在完成计数器和译码器的工程中,非常顺利和快速,同学们都是用了源代码仿真,但我对于源代码的输入太慢,所以我选择了画图的方式,在最后一步的接连过程中,由于我的两个子文件在两个文件夹中,老师说也没办法一起打开,无奈的我只好使用一个文件,再将另一个文件从新画了一遍。

数字逻辑课程设计报告

数字逻辑课程设计报告

数字逻辑课程设计报告数字逻辑课程设计多功能数字钟班级:学号:课程设计人:指导老师:课题:完成时间:一、设计目的:学会应用数字系统设计方法进行电路设计,熟练地运用汇编语言。

二、设计任务及要求:1.记时、记分、记秒2.校时、校分、秒清03.整点报时4.时间正常显示5.闹时功能三、设计思路:将整个闹钟分为以下几个模块,每个模块中都有详细的各部分的设计思路,源代码及仿真图像,生成的器件。

1.计时模块计小时:24进制计数器计分、计秒:60进制计数器计时间过程:计秒:1HZ计数脉冲,0~59循环计数,计数至59时产生进位信号。

计分:以秒计数器进位信号作为分计数脉冲,0~59循环计数,59时产生进位。

计时:以分计数器进位信号作为时计数脉冲,0~23循环计数,23时清0。

二十四进制计数器代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24 isport (clk:in std_logic;qh,ql:out std_logic_vector(3 downto 0));end cnt24;architecture behave of cnt24 issignal q1,q0:std_logic_vector(3 downto 0);beginprocess(clk)beginif(clk'event and clk='1')thenif(q1="0010" and q0="0011")thenq1<="0000";q0<="0000";elsif(q0="1001")thenq0<="0000";q1<=q1+'1';elseq0<=q0+'1';end if;end if;qh<=q1;ql<=q0;end behave;仿真结果:图一、cnt24仿真图像六十进制计数器代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60 isport (clk:in std_logic;clr:in std_logic;ql,qh:out std_logic_vector(3 downto 0);c:out std_logic);end cnt60;architecture cnt of cnt60 issignal q1,q0:std_logic_vector(3 downto 0);beginprocess(clk,clr)beginif(clr='1')thenq1<="0000";q0<="0000";c<='0';elseif(clk'event and clk='1')thenif(q1="0101" and q0="1001")then-----到59 q1<="0000";q0<="0000";c<='1';elsif(q1<"0101" and q0="1001")thenq0<="0000";q1<=q1+'1';c<='0';elsif(q0<"1001") thenq0<=q0+'1';end if;end if;end if;qh<=q1;ql<=q0;end cnt;仿真结果:图二、cnt60仿真图像clk qh[3..0]ql[3..0] cnt24instclkclrql[3..0]qh[3..0]c cnt60inst1图三、生成的计数器符号2.校时模块:思路:按下校时键,时位迅速递增,满23清0按下校分键,分位迅速递增,满59清0注意:此时应屏蔽分进位。

数字逻辑与数字系统课程设计报告

数字逻辑与数字系统课程设计报告

课程设计报告课程:数字逻辑与数字系统课题:多功能数字电子钟姓名:学号:学院:班级:指导老师:设计日期:一、设计要求1.具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。

2.精度要求为1s。

二、系统功能简介1.计时:正常工作状态下每天按24小时制计时并显示,蜂鸣器无声,逢整点报时。

2.整点报时:蜂鸣器在59分钟的51、53、55、57秒时发出频率为512hz的低音,在59秒时发出1024hz的高音,结束时为整点。

3.显示:要求采用扫描显示方式驱动8个LED数码管显示小时、分、秒、横线。

4.闹钟:闹钟定时时间到,蜂鸣器发出周期1秒的“滴、滴”声,持续时间30秒钟。

5.调时和校时:按动开关mode使计时与闹钟时间显示切换。

按下按动set键进入“小时”定时状态,同时显示小时的两位闪烁,此时如果按下k键,小时进位;然后继续按set键“分钟”的两位闪烁,按下k键,分进位;再按下set键“秒“的两位闪烁,按下k键,秒清零。

闹钟调时方法类似。

三、系统简介1.开发系统:windows xp/982.开发软件:MAX+PIUS II3.开发芯片:EP1K10TC100—3四、主要模块简介此系统由控制器(crt)、计时调时模块(time)、闹钟模块(baoshi)、定时模块(dingshi)、动显模块(dongxian1)和分频模块(fenpin)组成。

数字钟系统总体结构框图:1.控制模块:此模块主要为控制系统整体变换的模块,有f4hz,k,set,reset,mode五个控制时钟输入,f4hz驱动控制模块,mode键是让闹钟显示和计时显示两种状态互相切换的。

当set有效时,小时闪烁,当按下k键时,小时进行校时加1;当继续按下set键时,分闪烁,当按下k键时,分进行校时加1;当继续按下set键时,秒闪烁,当按下k键时,秒清零,继续按下set键,回复正常计时状态。

当按下mode键时,进行计时和闹钟时间切换。

数字逻辑设计报告

数字逻辑设计报告

数字逻辑设计报告设计报告题目:多功能电子钟的设计摘要:设计的电子钟可以实现一天的计时,显示时分秒(以24小时为一个计时周期),并且具有调时功能。

在完成的基础上,加了整点报时功能和闹叫功能。

设计中主要包括脉冲的发生,计时,对数码管的驱动显示,调时开关的设计和用数值比较器设计成的定时闹叫。

其中主要涉及到60进制,24进制的设计,555触发器和数值比较器的应用。

关键词:计数校时闹叫整点报时目录:1.设计任务和要求 (3)1.1设计任务 (3)1.2设计要求 (3)2.系统设计 (3)2.1系统要求 (3)2.2方案设计 (3)2.3系统工作原理 (4)3.单元电路设计 (5)3.1秒脉冲发生器 (5)3.1.1电路结构工作原理 (5)3.1.2电路仿真 (5)3.1.3元器件选择与参数确定 (5)3.2六十进制加法计数器 (5)3.2.1电路结构工作原理 (5)3.2.2电路仿真 (5)3.2.3元器件选择与参数确定 (5)3.3二十四进制加法计数器 (5)3.3.1电路结构工作原理 (5)3.3.2电路仿真 (5)3.3.3元器件选择与参数确定 (5)3.4译码驱动与显示电路 (6)3.4.1电路结构工作原理 (6)3.4.2电路仿真 (6)3.4.3元器件选择与参数确定 (6)3.5时间校准 (6)3.5.1电路结构工作原理 (6)3.5.2电路仿真 (6)3.5.3元器件选择与参数确定 (6)3.6闹钟与整点报时电路 (6)3.6.1电路结构工作原理 (6)3.6.2电路仿真 (6)3.6.3元器件选择与参数确定 (6)4.系统仿真 (7)5.电路安装、调试与测试 (7)5.1电路安装 (7)5.2电路调试 (7)5.3系统功能及性能测试 (7)5.3.1测试方法设计 (7)5.3.2测试结构及分析 (8)6.结论 (8)7.参考文献 (8)8.总结、体会和建议 (9)附录 (9)设计任务和要求:1.用六位数码管显示时,分,秒,在分和秒之间显示“:”,并以1Hz的速度闪烁,以24小时为一个记时周期。

数字逻辑课程设计报告

数字逻辑课程设计报告

数字逻辑与数字系统课程设计实验报告姓名:学号:专业班级:指导老师:一)设计题目:电子钟二)设计任务和基本要求:1.实验台上的六个数码管显示时、分、秒;2.能使电子钟复位(清零);3.能启动和停止电子钟运行;4.在电子钟停止运行状态下,能够修改时、分、秒的值;5.具有报时功能,整点时喇叭鸣叫。

三)所用主要器件和设备:1、TDS 系列数字电路实验系统2、ISP 系统可编程器件以及《数字逻辑》课程实验所用部分中、小规模集成电路等3、PC 计算机4、ISP1032E 可编程逻辑器件以及数据选择器、触发器、移位寄存器、计数器及基本门电路等5、在Windows 平台上运行的ispLEVER 编程软件四)设计思想:数字钟电路的基本结构由两个 60 进制计数器和一个24 进制计数器组成,分别对秒、分、小时进行计时,当计时到23 时59 分59 秒时,再来一个计数脉冲,则计数器清零,重新开始计时。

当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号时、分、秒的计时结果通过6 个数码管来动态显示。

数字钟除了能够正常计时外,还应能够对时间进行调整。

因此,通过模式选择信号MOD1、MOD2 控制数字钟的工作状态,即控制数字钟,使其分别工作于正常计时,调整分、时和设定分、时5 个状态。

当数字钟处于计时状态时,3 个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为CLK,秒的进位, 分的进位;当数字钟处于调整时间状态时,被调的分或时会一秒一秒地增加;当数字钟处于定时状态时,可以设定小时和分;当计时到所设定的时刻时,会响闹钟五)设计步骤及程序:pause是暂停键,当暂停时set1与set2分别控制调节为时还是为分或是为秒。

exam提供一个模拟上升沿,hh,hl,mh,ml,sh,sl分别控制小时高位,低位,分钟高位,分钟低位,秒高位,低位。

thh,thl,tmh,tml,tsh,tsl分别表示时分秒变化的中间变量。

数字逻辑实验报告格式

数字逻辑实验报告格式

一、实验目的1. 理解数字逻辑的基本概念和基本电路结构。

2. 掌握常用的数字逻辑电路的分析和设计方法。

3. 培养实验操作能力和分析问题、解决问题的能力。

二、实验仪器与设备1. 数字逻辑实验箱2. 数字逻辑实验指导书3. 电源4. 测试仪器三、实验原理数字逻辑是研究数字电路和数字系统的基本原理和设计方法的学科。

本实验主要涉及以下原理:1. 逻辑门电路:与门、或门、非门、异或门等。

2. 组合逻辑电路:加法器、编码器、译码器、多路选择器等。

3. 时序逻辑电路:触发器、计数器、寄存器等。

四、实验内容1. 逻辑门电路实验(1)观察与门、或门、非门、异或门的逻辑功能。

(2)验证逻辑门电路的输出与输入之间的关系。

2. 组合逻辑电路实验(1)设计一个4位加法器。

(2)设计一个8421BCD码到7段显示器的译码器。

3. 时序逻辑电路实验(1)观察D触发器的逻辑功能。

(2)设计一个异步计数器。

五、实验步骤1. 逻辑门电路实验(1)按照实验指导书的要求,搭建与门、或门、非门、异或门电路。

(2)输入不同的逻辑值,观察输出结果。

(3)记录实验数据,分析逻辑门电路的输出与输入之间的关系。

2. 组合逻辑电路实验(1)按照实验指导书的要求,搭建4位加法器电路。

(2)输入不同的加数和被加数,观察输出结果。

(3)记录实验数据,分析4位加法器的逻辑功能。

(4)按照实验指导书的要求,搭建8421BCD码到7段显示器的译码器电路。

(5)输入不同的8421BCD码,观察7段显示器显示的数字。

(6)记录实验数据,分析译码器的逻辑功能。

3. 时序逻辑电路实验(1)按照实验指导书的要求,搭建D触发器电路。

(2)输入不同的时钟信号和复位信号,观察输出结果。

(3)记录实验数据,分析D触发器的逻辑功能。

(4)按照实验指导书的要求,搭建异步计数器电路。

(5)观察异步计数器的输出波形,分析计数器的逻辑功能。

六、实验结果与分析1. 逻辑门电路实验结果与分析通过实验,验证了与门、或门、非门、异或门的逻辑功能,并分析了输出与输入之间的关系。

数字逻辑报告

数字逻辑报告

计算机科学与技术专业《数字逻辑课程设计》报告(2008/2009学年第一学期)设计题目:学生姓名:学生班级:学生学号:指导教师:2008年12月12日目录第一章系统概述 (1)1.1项目目的 (1)1.2项目范围 (1)第二章设计要求与内容 (2)2.1 设计要求 (2)2.2 设计内容 (2)第三章设计方案 (3)3.1 总体框图 (3)3.2 定时器设计 (3)3.3控制器的设计 (4)3.4 总电路图 (6)第四章简单元器件 (7)第五章仿真与实现 (8)结束语 (10)参考文献 (11)第一章系统概述1.1项目目的运用和掌握所学的《数字逻辑与数字系统》的基本知识,使用电脑EWB仿真技术,独立完整地设计交通灯电路,以及仿真和调试等的综合能力。

通过指导学生循序渐进地独立完成数字电路的设计任务,加深学生对理论知识的理解,提高学生的动手能力,独立分析、解决问题能力,协调能力和创造性思维能力。

提高学生在数字电路应用方面的实践技能,树立严谨的科学作风,培养学生综合运用理论知识解决实际问题的能力,学生通过电路的设计、安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。

本课程设计培养、启发学生的创造性思维,进一步理解数字系统的概念,掌握小型数字系统的设计方法,掌握小型数字系统的组装和调试技术,掌握查阅有关资料的技能。

1.2项目范围该交通灯系统解决了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。

随着社会经济的发展,城市交通问题越来越引起人们的关注。

人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

,然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与支道、城区同周边地区的交通拥堵状况。

数字逻辑课程设计报告

数字逻辑课程设计报告

数字逻辑课程设计多功能数字钟班级:学号:课程设计人:指导老师:课题:完毕时间:一、设计目旳:学会应用数字系统设计措施进行电路设计,纯熟地运用汇编语言。

二、设计任务及规定:1.记时、记分、记秒2.校时、校分、秒清03.整点报时4.时间正常显示5.闹时功能三、设计思绪:将整个闹钟分为如下几种模块,每个模块中均有详细旳各部分旳设计思绪,源代码及仿真图像,生成旳器件。

1.计时模块计小时:24进制计数器计分、计秒:60进制计数器计时间过程:计秒:1HZ计数脉冲,0~59循环计数,计数至59时产生进位信号。

计分:以秒计数器进位信号作为分计数脉冲,0~59循环计数,59时产生进位。

计时:以分计数器进位信号作为时计数脉冲,0~23循环计数,23时清0。

二十四进制计数器代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24 isport (clk:in std_logic;qh,ql:out std_logic_vector(3 downto 0)); end cnt24;architecture behave of cnt24 issignal q1,q0:std_logic_vector(3 downto 0); beginprocess(clk)beginif(clk'event and clk='1')thenif(q1="0010" and q0="0011")thenq1<="0000";q0<="0000";elsif(q0="1001")thenq0<="0000";q1<=q1+'1';elseq0<=q0+'1';end if;end if;qh<=q1;ql<=q0;end process;end behave;仿真成果:图一、cnt24仿真图像六十进制计数器代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60 isport (clk:in std_logic;clr:in std_logic;ql,qh:out std_logic_vector(3 downto 0);c:out std_logic);end cnt60;architecture cnt of cnt60 issignal q1,q0:std_logic_vector(3 downto 0);beginprocess(clk,clr)beginif(clr='1')thenq1<="0000";q0<="0000";c<='0';elseif(clk'event and clk='1')thenif(q1="0101" and q0="1001")then-----到59 q1<="0000";q0<="0000";c<='1';elsif(q1<"0101" and q0="1001")thenq0<="0000";q1<=q1+'1';c<='0';elsif(q0<"1001") thenq0<=q0+'1';end if;end if;end if;qh<=q1;ql<=q0;end process;end cnt;仿真成果:图二、cnt60仿真图像clk qh[3..0]ql[3..0] cnt24instclkclrql[3..0]qh[3..0]c cnt60inst1图三、生成旳计数器符号2.校时模块:思绪:按下校时键,时位迅速递增,满23清0 按下校分键,分位迅速递增,满59清0注意:此时应屏蔽分进位。

数字逻辑设计报告

数字逻辑设计报告

数字逻辑设计报告数字逻辑设计报告是一份包含数字逻辑设计项目的详细分析,设计和验证结果的文档。

它通常由一个项目小组准备,以记录和组织整个项目过程中的信息、工作进展和最终成果。

数字逻辑设计报告的主要目的是向受众群体介绍数字逻辑设计的基础概念和实践,展示项目小组在项目开发过程中采取的方法以及对复杂问题的解决方案。

此外,数字逻辑设计报告还可以作为后续工作的参考,帮助理解和维护数字逻辑系统。

数字逻辑设计报告应该包括以下重要方面的信息:1. 项目概述:这一章节应该涵盖数字逻辑设计的基础知识和项目的背景信息。

它应该概述数字逻辑设计项目的范围和目标,包括展示了所需的逻辑电路的概念和要求。

也应包括对现有设计方案的概述和论证。

2. 设计方法:本章节应介绍数字逻辑设计小组采用的技术和方法,包括设计流程(如设计、模拟、调试等)和工程工具(如EDA工具、模拟器等)。

此外,还应该介绍具体使用的编程语言和框架,以及设计小组应用的规范方法。

3. 数字电路设计:本章节应详细介绍数字电路设计的实际操作过程。

这应该包括基于项目需求对数字电路进行设计、模拟和验证的详细过程。

需要使用实际案例和图表来具体展示设计细节。

数字电路设计应遵循一定的设计规范和标准。

4. 测试与验证: 本章节应描述数字电路进行测试和验证的过程。

这些步骤可以分为模拟和实际测试两类。

在此过程中,需要对电路进行性能分析、优化和验证。

同时需要讨论如何诊断和修复电路中的故障。

5. 结果和分析:在此章节中,需要对数字逻辑设计项目的结果进行总结。

总结包括设计方案的特点、设计中遇到的问题以及解决方案,评估数据和分析。

需要根据实际结果对设计进行评估。

6. 项目结论:在本章节中,应总结项目的成果,并讨论未来的工作计划,以进一步完善如此数字逻辑电路的设计。

7. 引用和附录:需要包含文献资料和附录。

文献资料可以包括所涉及的元器件、文献资源等。

附录可以包括一些相关的原始数据、参数,供给后续工作参考使用。

数字逻辑课程设计报告

数字逻辑课程设计报告

数字逻辑课程设计报告多功能数字钟的设计与实现学院:班级:姓名:学号:时间:一设计目的(1)学会应用数字系统设计方法进行电路设计;(2)进一步提高QUARTUS II软件的开发应用能力;(3)培养学生书写综合实验报告的能力。

二设计任务及要求(1)拥有正常的时、分、秒计时功能。

(2)能利用实验板上的按键实现校时、校分及秒清零功能。

(3)能利用实验板上的扬声器做整点报时。

(4)闹钟功能。

(5)在QUARTUSⅡ中采用层次化设计方法进行设计。

(6)完成全部电路设计后在实验板上下载,验证设计课题的正确性。

三设计思路1 总体设计框图与顶层图2.1计时模块2.1.1 设计方法该模块的设计相对简单,使用一个二十四进制和两个六十进制计数器级联,构成数字钟的基本框架。

二十四进制用于计时,六十进制用于计分和计秒。

计时间过程:计秒:1Hz计数脉冲,0~59循环计数,计数至59时产生进位信号。

计分:以秒计数器进位信号作为分计数脉冲,0~59循环计数,59时产生进位。

计时:以分计数器进位信号作为时计数脉冲,0~23循环计数,23时清0。

2.1.2 仿真波形1)60进制计数器:4位数组qh表示十位,从0(0000)到5(0101)循环;ql表示个位,从0(0000)到9(1001)循环。

2)24进制计数器:4位数组qh表示十位,从0(0000)到2(0010)循环;ql表示个位,从0(0000)到9(1001)循环;进位tc始终为0。

2.1.3 程序说明--24进制计数器entity cnt24 isport(clk:in std_logic;ql,qh:out std_logic_vector(3 downto 0);tc:out std_logic);end cnt24;architecture one of cnt24 isbeginprocess(clk)V ariable iql,iqh:std_logic_vector(3downto0); beginif clk'event and clk='1' theniql:=iql+1;if iql="1010" theniqh:=iqh+1;iql:="0000";end if;if (iqh="0010")and(iql="0100") thentc<='0';iqh:="0000";iql:="0000";end if;end if;ql<=iql;qh<=iqh;end process;end one;生成器件:--60进制计数器entity cnt60 isport(clk,clr:in std_logic;ql,qh:buffer std_logic_vector(3 downto 0);tc:out std_logic);end cnt60;architecture one of cnt60 isbegintc<='0'when(clk='1' and ql="0000" and qh="0110") else '1';process(clk,clr,ql,qh)variable iql,iqh:std_logic_vector(3 downto 0); Beginif(clr='0'or (iql="0000" and iqh="0110"))theniql:="0000";iqh:="0000";elsif(clk'event and clk='1')theniql:=iql+1;if(iql="1010")theniql:="0000";iqh:=qh+1;end if;end if;end if;ql<=iql;qh<=iqh;end process;end one;生成器件:2.2 校时模块2.2.1 设计方法按下校时键,小时计数器迅速递增以调至所需要的小时位,满23清0;按下校分键,分计数器迅速递增以调至所需要的分位,满59清0 ;按下清零键,将秒计数器清零。

数字逻辑课程设计报告

数字逻辑课程设计报告

数字逻辑课程设计报告一、课程目标知识目标:1. 让学生掌握数字逻辑电路的基本概念,包括逻辑门、逻辑函数、逻辑代数等;2. 培养学生运用逻辑门设计简单组合逻辑电路的能力;3. 使学生了解数字电路的时序元件,如触发器、计数器等,并掌握其工作原理。

技能目标:1. 培养学生运用所学知识分析、设计及验证数字逻辑电路的能力;2. 培养学生使用相关软件(如Multisim、Proteus等)进行数字电路仿真实验;3. 提高学生的逻辑思维和问题解决能力。

情感态度价值观目标:1. 激发学生对数字逻辑电路的兴趣,培养其主动探究、积极思考的学习态度;2. 培养学生的团队协作精神,使其在合作中共同进步,相互学习;3. 引导学生关注数字逻辑电路在实际应用中的价值,如计算机、通信等领域。

分析课程性质、学生特点和教学要求:本课程为电子信息类学科的基础课程,旨在让学生掌握数字逻辑电路的基本知识和技能。

学生处于高中阶段,具有一定的物理和数学基础,但逻辑电路知识尚浅。

因此,教学要求以实用性为导向,注重培养学生的实际操作能力和逻辑思维能力。

课程目标分解为具体学习成果:1. 学生能够正确描述常见逻辑门的功能和特点,并运用逻辑门设计简单的组合逻辑电路;2. 学生能够运用时序元件设计基本的数字电路,如触发器、计数器等;3. 学生能够在团队协作中完成数字电路的设计、仿真和验证,提高解决问题的能力;4. 学生能够认识到数字逻辑电路在实际应用中的重要性,培养其学习兴趣和价值观。

二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 数字逻辑电路基本概念- 逻辑门原理与分类(教材第1章)- 逻辑函数及其表示方法(教材第2章)- 逻辑代数基本运算与化简(教材第3章)2. 组合逻辑电路设计- 组合逻辑电路分析方法(教材第4章)- 常见组合逻辑电路设计(教材第5章)- 组合逻辑电路的仿真与验证(教材第6章)3. 时序逻辑电路设计- 触发器原理与分类(教材第7章)- 计数器设计与应用(教材第8章)- 时序逻辑电路的仿真与验证(教材第9章)4. 数字电路实践操作- 实验一:逻辑门功能验证(教材附录A)- 实验二:组合逻辑电路设计与仿真(教材附录B)- 实验三:时序逻辑电路设计与仿真(教材附录C)教学大纲安排与进度:第1-2周:数字逻辑电路基本概念(第1-3章)第3-4周:组合逻辑电路设计(第4-6章)第5-6周:时序逻辑电路设计(第7-9章)第7-8周:数字电路实践操作(附录A、B、C)三、教学方法针对本课程的教学目标和内容,选择以下多样化的教学方法,以激发学生学习兴趣和主动性:1. 讲授法:- 用于讲解数字逻辑电路的基本概念、原理和性质,如逻辑门、逻辑函数、逻辑代数等;- 结合多媒体演示,使抽象的理论知识形象化,便于学生理解。

数字逻辑系统设计设计报告格式

数字逻辑系统设计设计报告格式

JIU JIANG UNIVERSITY数字逻辑系统课程设计报告设计课题:八路竞赛抢答器设计专业:电子信息工程班级学号:A1022 18号学生姓名:余超超指导教师:盛健设计时刻:—题目1.设计任务与要求设计一个八路抢答器,它由8个发射信号器、1个接收器、一个操纵器组成,可用于8组或8组以下的智力竞赛中。

设计一个八路抢答器,用VHDL编写程序,能够使8个人同时进行抢答类型的游戏,可同时共8名选手或8个组同时参加竞赛,他们编号别离为1,2,3,4,5,6,7,8各用一个抢答器按钮,按钮的编号和选手编号相对应,依次为a0,a1,a2,a3,a4,a5,a6,a7。

竞赛前,将参赛组从1至8编号,每组发给对应的一个发射器。

将接收器放于各组中央或前方。

主持人按一下操纵器(该键用于启动抢答和每次抢答后器件清零的作用)后,抢答开始。

尔后,哪一组最先按下发射器上的抢答键,接收器就当即显示该组的组号并锁定,同时发出蜂鸣声,提示抢答已有结果并终止抢答。

以后,按下任何一路抢答键均不起反映。

只有主持人再次按动启动键后,才能进行下一次抢答。

该操纵器由抢答器、编码器、译码器、8位的与门四部份组成。

2.方案设计及要紧技术思路方案一:依照功能要求,须设计有抢答电路、编码电路、译码电路、主持人操纵电路,各个电路都有其自己的功能。

通过复位按键RST,电路进入就绪状态,等待抢答。

然后再由主持人发布抢答命令进入抢答状态。

在电路中“1-8”为8路抢答器的8个按键,若是有人按下按键,程序就会判定是谁先按下的,然后输出抢答者号码的七段码值,并封锁键盘,维持适才按键按下时刻的时刻,禁止其他人按键的输入,从而实现了抢答的功能。

当要进行下一次的抢答时,由主持人先按一下复位按键RST,电路复位,进入下一次抢答的就绪状态。

该电路的组成方案二:系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置操纵端LDN,计时使能端EN,计时预置数据调整按钮能够用如TA、TB表示;系统的输出信号有:四个组抢答成功与否的指示灯操纵信号输出口可用如LEDA、LEDB、LEDC、LEDD表示,四个组抢答时的计时数码显示操纵信号假设干,抢答成功组别显示的操纵信号假设干,各组计分动态显示的操纵信号假设干。

数字逻辑设计报告综述

数字逻辑设计报告综述

《数字逻辑课程设计》姓名 : 宋国正班级:计 142学号: 1490740562016 年9月25日一、设计任务要求数字时钟是由振荡器、分频器、计秒电路、计分电路、计时电路构成。

计时采用 24h 和 12h 两种。

当接通电源或数字钟走时出现偏差,都需要对数字钟作时、分、秒时间校订。

本次设计的详细要求以下:1、显示时、分、秒的十进制显示,采纳24 小时制。

2、校时功能。

3、整点报时。

二、设计思路1、数字钟的构成原理图数字式电子钟其实是一个对标准1Hz进行计数的计数电路! 秒计数器满60后向分计数器进位 ,,分计数器满 60 后向时计数器进位 , 时计数器按 24 翻 1 规律计数 , 计数输出经译码器送 LED 显示器 ,因为计数的开端时间不行能与标准时间一致 ,故需要在电路上加上一个校时电路。

同时标准的 1Hz 时间信号一定做到正确、稳固,往常使用石英晶体振荡器电路构成。

时显示器分显示器秒显示器时译码器分译码器秒译码器时计数器时计数器时计数器校时电路振荡器分频器2、数字钟设计方案为达成上述功能,能够把数字钟系统区分为三部分:时针源(即标准秒钟的产生电路)主体电路,扩展电路。

主体电路EDA 设计又可区分为计时电路、校时电路、译码显示电路 3部分。

3、基层电路设计时针源——晶体振荡器电路给数字式电子钟供给一个频次稳固、正确的32768Hz 的方波信号 ,将 32768Hz 的高频方波信号经 32768 次分频后获得1Hz 的方波信号供秒计数器进行计数,实现该分频功能的计数器相当于15 级二进制计数器。

计时电路——时间计数器电路由秒个位、秒十位计数器,分个位、分十位计数实时个位、时十位计数电路构成。

此中,秒个位和秒十位计数器,分个位和分十位计数为六十进制计数器,而依据设计要求时个位和时十位构成的为二十四进制计数器,时间计数单元共有:时计数,分计数和秒计数 3 部分,依据设计要求时计数单元为一个二十四进制计数器,共输出为两位8421BCD 码形式;分计数和秒计数单元为六十进制计数器!共输出也为两位 8421BCD 码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JIU JIANG UNIVERSITY数字逻辑系统课程设计报告设计课题:简易电子琴专业:电子信息工程班级学号:20学生姓名:陈长源指导教师:盛健设计时间:2012.12.24~2012.12.28简易电子琴1.设计任务与要求1.1通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤1.2设计简易的八音符电子琴,它可通过按键输入来控制音响。

1.3演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。

1.4能够自动演奏多首乐曲,且每首乐曲可重复演奏2.方案设计及主要技术思路2.1方案一、本设计可有两种方案实现,他们的程序一样,但是所利用逻辑元件不同,其一是将产生的32M频率模块,自动|手动控制模块,音节产生模块,分频模块依次连接。

2.2方案二、利用顶层设计将各个程序整合,再生成相应的图形文件,利用这个图形元件再接上外围即可实现功能。

2.3优劣分析及方案选定方案一层次分明,逻辑元件连接清晰,易于理解。

反观方案二,虽然结构简单,但是不易理解。

2.4 采用的硬件平台及主要技术2.4.1 EDA技术是以计算机为工具,根据硬件描述语言HDL (Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。

2.4.2 VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

3.模块设计过程及仿真3.1 A模块的设计本设计主要分为四个模块,分别为32M频率产生模块,手动|自动模块,音节产生模块,分频模块3.1.1A模块要实现的具体功能,引脚。

32M频率产生模块的功能是要将100M频率变为32M,手动|自动模块是实现自动控制或手动控制,音调发生模块的作用是产生音阶的分频预置值,数控分频模块是对时基脉冲进行分频,得到与1、2、3、4、5、6、7七个音符相对应的频率。

3.1.2 A模块的设计思路和设计方法及关键设计语句说明。

音乐有两个重要因素,一个是音节,一个是音调。

简单来说就是低音还是高音,每个音持续多久,即为频率。

本设计主要就是依据这个思路来实现的,设计方法采用的是自顶而下的设计方法。

关键设计语句在后面的具体程序有详细描述。

3.1.3A模块的设计过程中遇到的问题及解决方法本设计遇到的主要问题是如何产生32M的频率,由于程序要求的是32M,然而开发板上并没有32M的信号。

开发板上有48M和100M的,在分析计算后,发现用100M产生32M结果更精确。

3.1.4A模块实现的具体功能、仿真分析、模块符号图。

(3)数控分频模块(2)音调发生模块的仿真1.自动手动模块符号图3.1.5 A模块代码见附录,代码必须有注释。

自动手动控制library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity automusic isPort ( clk,Auto : in std_logic; --系统时钟;键盘输入/自动演奏index2 : in std_logic_vector(7 downto 0); --键盘输入信号index0 : out std_logic_vector(7 downto 0)); --音符信号输出end automusic;architecture Behavioral of automusic issignal count0:integer range 0 to 31;--changesignal clk2:std_logic;beginpulse0:process(clk,Aut0) --此进程完成对系统时钟8M的分频,得到4Hz的信号clk2variable count:integer range 0 to 8000000;beginif Auto='1' then count:=0;clk2<='0';elsif clk'event and clk='1' then count:=count+1;if count=4000000(4) then clk2<='1';elsif count=8000000 (8)then clk2<='0';count:=0;end if;end if;end process;music:process(clk2) --此进程完成自动演奏部分曲的地址累加beginif clk2'event and clk2='1' thenif count0=31 then count0<=0;else count0<=count0+1;end if;end if;end process;com1:process(count0,Auto,index2)beginif Auto='0' thencase count0 is --此case语句:存储自动演奏部分的曲when 0 => index0<="00000100"; --3when 1 => index0<="00000100"; --3when 2 => index0<="00000100"; --3when 3 => index0<="00000100"; --3when 4 => index0<="00010000"; --5when 5 => index0<="00010000"; --5when 6 => index0<="00010000"; --5when 7 => index0<="00100000"; --6when 8 => index0<="10000000"; --8when 9 => index0<="10000000"; --8when 10 =>index0<="10000000"; --8when 11=> index0<="00000100"; --3when 12=> index0<="00000010"; --2when 13=> index0<="00000010"; --2when 14=> index0<="00000001"; --1when 15=> index0<="00000001"; --1when 16=> index0<="00010000"; --5when 17=> index0<="00010000"; --5when 18=> index0<="00001000"; --4when 19=> index0<="00001000"; --4when 20=> index0<="00001000"; --4when 21=> index0<="00000100"; --3when 22=> index0<="00000010"; --2when 23=> index0<="00000010"; --2when 24=> index0<="00010000"; --5when 25=> index0<="00010000"; --5when 26=> index0<="00001000"; --4when 27=> index0<="00001000"; --4when 28=> index0<="00000100"; --3when 29=> index0<="00000100"; --3when 30=> index0<="00000010"; --2when 31=> index0<="00000010"; --2when others => null;end case;else index0<=index2; --键盘输入音符信号输出end if;end process;end Behavioral;音调产生模块library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity tone isPort ( index : in std_logic_vector(7 downto 0); --音符输入信号code : out std_logic_vector(6 downto 0); --音符显示信号high : out std_logic; --高低音显示信号tone0 : out integer range 0 to 2047); --音符的分频系数end tone;architecture Behavioral of tone isbeginsearch :process(index) --此进程完成音符到音符的分频系数译码,音符的显示,高低音阶begincase index iswhen "00000001" => tone0<=773;code<="1001111";high<='1';when "00000010"=> tone0<=912;code<="0010010";high<='1';when "00000100" => tone0<=1036;code<="0000110";high<='1';when "00001000" => tone0<=1116;code<="1001100";high<='1';when "00010000" => tone0<=1197;code<="0100100";high<='1';when "00100000" => tone0<=1290;code<="0100000";high<='0';when "01000000" => tone0<=1372;code<="0001111";high<='0';when "10000000" => tone0<=1410;code<="0000000";high<='0';when others => tone0<=2047;code<="0000001";high<='0';end case;end process;end Behavioral;分频模块library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity speaker isPort ( clk1 : in std_logic; --系统时钟tone1 : in integer range 0 to 30624; --音符分频系数spks : out std_logic); --驱动扬声器的音频信号end speaker;architecture Behavioral of speaker issignal preclk,fullspks:std_logic;beginpulse1:process(clk1) --此进程对系统时钟进行4分频variable count:integer range 0 to 8;beginif clk1'event and clk1='1' then count:=count+1;if count=2 then preclk<='1';elsif count=4 then preclk<='0';count:=0;end if;end if;end process pulse1;genspks:process(preclk,tone1) --此进程按照tone1输入的分频系数对8MHz 的脉冲再次分频,得到所需要的音符频率variable count11:integer range 0 to 30624;beginif preclk'event and preclk='1' thenif count11<tone1 then count11:=count11+1;fullspks<='1';else count11:=0;fullspks<='0';end if;end if;end process;delaysps:process(fullspks) --此进程对fullspks进行2分频variable count2 :std_logic:='0';beginif fullspks'event and fullspks='1' then count2:=not count2;if count2='1' then spks<='1';else spks<='0';end if;end if;end process;end Behavioral;顶层VHDL程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity top is Port ( clk32MHz :in std_logic; --32MHz系统时钟 handTOauto : in std_logic; --键盘输入/自动演奏code1 :out std_logic_vector(6 downto 0); --音符显示信号index1 :in std_logic_vector(7 downto 0); --键盘输入信号high1 :out std_logic; --高低音节信号spkout :out std_logic); --音频信号end top;architecture Behavioral of top iscomponent automusicPort ( clk :in std_logic;Auto: in std_logic;index2:in std_logic_vector(7 downto 0);index0 : out std_logic_vector(7 downto 0));end component;component tonePort ( index : in std_logic_vector(7 downto 0);code : out std_logic_vector(6 downto 0);high : out std_logic;tone0 : out integer range 0 to 2047);end component;component speakerPort ( clk1 : in std_logic;tone1 : in integer range 0 to 2047;spks : out std_logic);end component;signal tone2: integer range 0 to 2047;signal indx:std_logic_vector(7 downto 0);begin u0:automusic portmap(clk=>clk32MHZ,index2=>index1,index0=>indx,Auto=>handtoAuto); u1:tone port map(index=>indx,tone0=>tone2,code=>code1,high=>high1);u2: speaker port map(clk1=>clk32MHZ,tone1=>tone2,spks=>spkout);end Behavioral;3.2 B模块的设计乐曲自动演奏模块的作用是产生8位发生控制输入信号。

相关文档
最新文档