EDA课程设计报告
- 格式:doc
- 大小:216.05 KB
- 文档页数:12
eda花样彩灯课程设计报告一、课程目标知识目标:1. 学生能理解并掌握EDA(电子设计自动化)花样彩灯的基本原理与设计流程。
2. 学生能识别并运用课程中所学的电子元件,如LED灯、电阻、电容等,并理解其在电路中的作用。
3. 学生能够运用已学的电子知识,设计并搭建简单的EDA花样彩灯电路。
技能目标:1. 学生能够运用计算机软件进行电路设计与仿真,提高实际操作能力。
2. 学生通过小组合作,提高沟通协调能力和团队协作能力。
3. 学生能够运用问题解决策略,对设计过程中出现的问题进行分析、调试和优化。
情感态度价值观目标:1. 学生培养对电子科技的兴趣,增强创新意识和实践能力。
2. 学生在设计和制作过程中,培养耐心、细心的品质,提高面对困难的勇气和毅力。
3. 学生通过课程学习,认识到科技与生活的密切联系,增强环保意识和责任感。
本课程针对五年级学生特点,结合电子设计实际应用,注重培养学生的动手能力、创新能力和团队协作能力。
通过课程学习,使学生能够将所学知识应用于实际生活,激发他们对科技的兴趣,提高科学素养。
课程目标具体、可衡量,便于教师进行教学设计和评估。
二、教学内容本课程教学内容主要包括以下几部分:1. 电子元件的认识:介绍常用电子元件如LED灯、电阻、电容等,使学生了解其性能、特点及在电路中的作用。
2. EDA软件使用:教授学生如何使用EDA软件进行电路设计与仿真,包括电路图的绘制、元件的选取与放置、电路的仿真与调试等。
3. 花样彩灯设计原理:讲解花样彩灯的设计原理,如电路的基本连接方式、控制方法等。
4. 实践操作:指导学生进行EDA花样彩灯的设计与制作,让学生在实际操作中掌握所学知识。
5. 课程总结与展示:学生完成作品后,进行课程总结,分享设计经验,展示作品成果。
教学内容安排如下:1. 第一课时:电子元件的认识及基本电路原理介绍。
2. 第二课时:EDA软件的使用方法教学。
3. 第三课时:花样彩灯设计原理及实践操作指导。
第一篇:eda课程设计数字钟一、设计要求设计一个数字钟,具体要求如下:1、具有时、分、秒计数显示功能,以24小时循环计时。
2、具有清零、校时、校分功能。
3、具有整点蜂鸣器报时以及LED花样显示功能。
二、设计方案根据设计要求,数字钟的结构如图8-3所示,包括:时hour、分minute、秒second计数模块,显示控制模块sel_clock,七段译码模块deled,报时模块alert。
三、VHDL程序library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; useIEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM;--use UNISIM.VComponents.all;entityddz is port(rst,clk: in std_logic; hour_h: out std_logic_vector( 6 downto 0); hour_l: outstd_logic_vector( 6 downto 0); min_h: out std_logic_vector( 6 downto 0);min_l: out std_logic_vector( 6 downto 0);sec_h: out std_logic_vector( 6 downto 0);sec_l: out std_logic_vector( 6 downto 0)); endddz;architecture Behavioral of ddz is signalcnt: std_logic_vector(15 downto 0); signalsec_h_in: std_logic_vector( 3 downto 0); signalsec_l_in: std_logic_vector( 3 downto 0); signalmin_h_in: std_logic_vector( 3 downto 0); signalmin_l_in: std_logic_vector( 3 downto 0); signalhour_h_in: std_logic_vector(3 downto 0); signalhour_l_in: std_logic_vector(3 downto 0);signalclk_s,clk_m,clk_h: std_logic; begin process(rst,clk) begin if rst='0' then sec_h_in'0');sec_l_in'0');clk_msec_l_inifsec_h_in=5 thensec_h_inclk_melsesec_h_inclk_mend if; else sec_l_inclk_mend if; end if; end process;process(rst,clk_m) begin if rst='0' then-- min_h_in'0');min_l_in'0'); -- clk_hmin_l_inmin_h_inclk_mend if; else min_l_inend if; end if; end process;process(rst,clk_n) begin if rst='0' then-- hour_h_in'0');hour_l_in'0'); -- clk_hhour_l_inhour_h_inclk_nend if; else hour_l_inend if; end if; end process;process(sec_l_in) begin casesec_l_in iswhen "0000" =>sec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lprocess(sec_h_in) begin casesec_h_in iswhen "0000" =>sec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hprocess(min_l_in) begin casemin_l_in iswhen "0000" =>min_lmin_lmin_lwhen "0011" =>min_lmin_lmin_lmin_lmin_lmin_lmin_lmin_lprocess(min_h_in) begin casemin_h_in iswhen "0000" =>min_hmin _h min _hmin _hmin _h min _hmin _hmin _hmin _hmin _hmin _hend case; end process;process(hour_l_in) begin casehour_l_in iswhen "0000" =>hour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lprocess(hour_h_in) begin casehour_h_in iswhen "0000" =>hour_hhour_hhour_hhour_h hour _h hour _h hour _h hour _h hour _hhour_h hour _h四、VHDL仿真结果五、课程设计心得通过这次课程设计,有效得巩固了课本所学的知识,而且通过上机仿真不断发现问题并及时改正,加深了我们对该课程设计的印象。
电子设计自动化EDA课程设计题目:电子钟设计学院专业班级指导老师学号姓名日期目录一、设计要求 (2)二、设计目的 (2)三、系统功能概述 (2)四、系统组成以及系统各部分的设计 (3)1.分秒计数模块CNT_S (3)2.时计数模块CNT_H (4)3按键消抖动模块 (5)4.分频模块FENPING (6)5.定点报时模块 (7)6.顶层模块 (9)五、下载到实验箱以后工作情况 (13)六、课程设计心得体会 (13)七、参考文献 (14)一、设计要求设计一个电子钟,要求可以显示时、分、秒,用户可以设置时间,可以实现整点报时功能。
系统顶层框图:二、实验目的1. 掌握多位计数器相连的设计方法。
2. 掌握二十四进制,六十进制计数器的设计方法。
3. 掌握CPLD技术的层次化设计方法。
4. 了解软件的元件管理含义以及模块元件之间的连接概念。
5. 掌握电子电路一般的设计方法,并了解电子产品的研制开发过程,基本掌握电子电路安装和调试的方法。
6. 培养独立分析问题,解决问题的能力三、系统功能概述1.已完成功能1.完成时/分/秒的依次显示并正确计数,利用六位数码管显示;2.时/分/秒各段个位满10正确进位,秒/分能做到满60向前进位,有系统时间清零功能;3.定时器:实现整点报时,通过扬声器发出报时声音;4.时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整;2.待改进功能:1. 调整数码管的亮度功能未实现。
2. 应添加秒表功能。
四、系统组成以及系统各部分的设计1.分秒计数模块CNT_SVHDL的RTL描述如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT_S ISPORT(CLK,CLR:IN STD_LOGIC;OUT_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);OUT_L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);C:OUT STD_LOGIC);END CNT_S;ARCHITECTURE ONE OF CNT_S ISSIGNAL S_H:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL S_L:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR)BEGINIF CLK 'EVENT AND CLK='1' THENIF S_L(3 DOWNTO 0)<"1001" THENS_L(3 DOWNTO 0)<=S_L(3 DOWNTO 0)+1;C<='0';ELSIF S_H(3 DOWNTO 0)<"0101" THENS_L(3 DOWNTO 0)<="0000";S_H(3 DOWNTO 0)<=S_H(3 DOWNTO 0)+1;ELSES_L(3 DOWNTO 0)<="0000";S_H(3 DOWNTO 0)<="0000";C<='1';END IF;END IF;IF CLR='1' THENS_L(3 DOWNTO 0)<="0000";S_H(3 DOWNTO 0)<="0000";END IF;OUT_H<=S_H;OUT_L<=S_L;END PROCESS;END ONE;分和秒计数器模块仿真波形如下从仿真波形可知,当计数到59时,下一个时钟上升沿到来时就清零了,并且产生进位信号,符合设计要求。
EDA课程设计报告•相关推荐EDA课程设计报告在我们平凡的日常里,报告的使用成为日常生活的常态,报告中涉及到专业性术语要解释清楚。
那么报告应该怎么写才合适呢?以下是小编为大家整理的EDA课程设计报告,希望对大家有所帮助。
EDA课程设计报告1实训任务:一、实训目的和要求:(1)熟练掌握keil c51集成开发环境的使用方法(2)熟悉keil c51集成开发环境调试功能的使用和dp?51pro。
net单片机仿真器、编程器、实验仪三合一综合开发平台的使用。
(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。
(4)了解掌握单片机芯片的烧写方法与步骤。
(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。
(6)掌握利用protel 99 se绘制电路原理图及pcb图。
(7)了解pcb板的制作腐蚀过程。
二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)dp?51pro。
net单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(2)将流水灯程序编写完整并使用tkstudy ice调试运行。
(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。
(6)制板。
首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。
(7)焊接。
将所给元器件根据原理图一一焊至pcb板相应位置。
(8)调试。
先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。
目录1、概述 (4)2、设计要求 (4)3、设计内容 (5)4、方案设计与原理分析 (6)5、锁存译码设计 (9)6、报警信号发生器 (16)7、密码锁控制电路仿真结果及下载分析(18)8、心得体会 (22)电子技术综合任务书姓名学号学院班级题目简易14位数字密码锁控制电路设计设计任务1、基本要求(1)、14位数字密码分成高7位(DH6….D H0)和低7位(DL6….D L0),用数字逻辑开关预置,输出信号out为1表示开锁,否则关闭。
;(2)、14位数字密码分时操作,先预置高7位,然后再置入低7位,(3)要求电路工作可靠,保密性强,开锁出错立即报警,(4)、利用MAXPLUS2软件进行设计、编译、并在FPGA芯片上实现;(5)、14位密码自己设定。
时间进度总体时间为1周;星期一上午:讲解;星期一下午:理解电路原理;星期二下午:编辑源程序设计电路;星期四下午:验收电路图,检验程序是否正确;星期五之前:上交课程设计报告;主要参考文献【1】刘爱荣、王振成。
EDA技术与CPLD︱FPGA开发应用简明教程。
北京:清华大学出版社;【2】刘吕华。
数字逻辑EDA设计与实践。
北京:国防工业出版1、概述现在EDA技术应用广泛,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA 技术已在各大公司、科研和教学部门广泛使用。
在产品设计与制造方面,EDA 技术可实现前期的计算机仿真、系统级模拟及测试环境的仿真、PCB的制作、电路板的焊接、ASIC的设计等。
EDA是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。
它是为解决自动控制系统设计而提出的,从七十年代经历了计算机辅助设计CAD,计算机辅助工程CAE,电子系统设计自动化ESDA三个阶段。
前两个阶段的EDA产品都只是个别或部分的解决了电子产品设计中的工程问题;第三代EDA工具根据工程设计中的瓶颈和矛盾对设计数据库实现了统一管理,并提供了并行设计环境概念,提供了独立与工艺和厂家的系统级的设计工具。
eda课程设计报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用EDA软件进行电路设计与仿真,理解并掌握数字电路的设计原理。
3. 学生了解并掌握基础的硬件描述语言(如VHDL/Verilog),能完成简单的数字系统设计。
技能目标:1. 学生通过EDA软件的操作,培养电子电路设计、仿真与验证的实际操作能力。
2. 学生通过小组合作完成设计项目,提高团队协作与沟通技巧。
3. 学生能够运用所学知识解决实际问题,具备一定的创新意识和动手能力。
情感态度价值观目标:1. 学生在EDA课程学习中,培养对电子科学技术的兴趣和探究精神。
2. 学生通过课程实践,增强自信心和成就感,激发进一步学习的动力。
3. 学生在学习过程中,树立正确的工程伦理观念,认识到技术发展对社会的责任和影响。
课程性质:本课程为电子信息工程及相关专业高年级学生的专业核心课程,旨在通过理论与实践相结合的教学,提高学生的电子设计能力。
学生特点:学生已具备一定的电子技术基础,具有较强的学习能力和实践欲望,对新技术和新工具充满好奇心。
教学要求:结合学生特点,注重培养实际操作能力,鼓励学生创新思维,提高解决实际问题的能力。
通过课程目标分解,确保学生在知识、技能和情感态度价值观方面的全面成长。
后续教学设计和评估将以此为基础,关注学生的学习成果。
二、教学内容根据课程目标,教学内容分为以下三个模块:1. EDA基本概念与工具使用- 教材章节:第一章 EDA技术概述,第二章 EDA工具简介- 内容列举:EDA发展历程,常用EDA软件介绍,软件安装与配置,基本操作流程。
2. 数字电路设计与仿真- 教材章节:第三章 数字电路设计基础,第四章 仿真技术- 内容列举:数字电路设计原理,EDA软件电路设计流程,仿真参数设置,波形分析与验证。
3. 硬件描述语言与数字系统设计- 教材章节:第五章 硬件描述语言,第六章 数字系统设计实例- 内容列举:硬件描述语言基础,VHDL/Verilog语法要点,简单数字系统设计方法,设计实例分析与实操。
电子行业EDA课程设计报告1. 引言本文档是电子行业EDA课程的设计报告,旨在介绍课程的设计目标、内容、实施过程以及所取得的成果。
EDA(Electronics Design Automation)是指电子设计自动化,是电子行业中一种重要的设计和开发方法。
本课程旨在培养学生掌握EDA的基本概念、流程和工具,从而提高他们在电子行业中的设计能力和竞争力。
2. 设计目标本课程的设计目标如下:1.培养学生掌握EDA的基本概念和原理。
2.培养学生熟练掌握EDA工具的使用和应用。
3.培养学生具备独立进行EDA项目设计和开发的能力。
4.提高学生的团队合作和沟通能力。
3. 课程内容本课程的内容主要包括以下几个方面:3.1 EDA基础知识在本节课程中,学生将学习EDA的基本概念和原理,包括电子设计流程、硬件描述语言、电路仿真和验证等方面的知识。
3.2 EDA工具的使用本节课程将介绍常用的EDA工具,包括电路设计工具、电路仿真工具和电路布局工具等。
学生将学习如何使用这些工具进行电路设计、仿真和验证。
3.3 EDA项目设计与开发在本节课程中,学生将进行一个EDA项目的设计与开发实践。
学生将根据给定的项目需求,使用所学的EDA工具进行电路设计、仿真和验证,并最终提交一个完整的EDA项目报告。
3.4 团队合作与项目管理本节课程将讲解团队合作和项目管理的基本原理和方法,包括任务分配、进度管理和沟通协作等方面的内容。
学生将通过分组合作,在完成EDA项目的过程中提高团队合作和沟通能力。
4. 实施过程本课程的实施过程主要包括以下几个阶段:4.1 阶段一:知识讲解在此阶段,教师将讲解EDA的基本概念、流程和工具使用方法。
学生将通过课堂听讲和课后阅读相关资料,对EDA的基础知识进行学习和理解。
4.2 阶段二:工具练习在此阶段,学生将通过实际操作,熟悉常用的EDA工具的使用方法。
教师将提供实验环境和相关实验指导,学生将利用课余时间进行工具的练习和实践。
eda课程设计时间报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用EDA软件完成基本的电路设计,如数字电路、模拟电路等。
3. 学生了解并掌握电路仿真、波形分析等技能。
技能目标:1. 学生能独立使用EDA工具进行电路设计和仿真。
2. 学生具备分析电路原理和优化电路设计的能力。
3. 学生能够通过团队合作,共同完成一个综合性的电路设计项目。
情感态度价值观目标:1. 学生培养对电子工程的兴趣,激发创新意识和探索精神。
2. 学生树立正确的工程观念,注重实践操作和工程应用。
3. 学生在团队协作中学会沟通、分享和承担责任,培养合作精神。
课程性质:本课程为实践性较强的课程,结合理论教学和实际操作,培养学生运用EDA工具进行电路设计和仿真的能力。
学生特点:本年级学生具备一定的电子基础知识,具有较强的学习能力和动手能力,对新鲜事物充满好奇心。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,充分调动学生的主观能动性,培养其创新意识和实践能力。
在教学过程中,将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容本课程教学内容主要包括以下三个方面:1. EDA基本概念与工具使用- 了解EDA的发展历程、基本概念及其在电子工程设计中的应用。
- 学习并掌握主流EDA软件(如Multisim、Protel等)的基本操作和使用方法。
2. 电路设计与仿真- 学习数字电路、模拟电路的基本原理和设计方法。
- 利用EDA软件进行电路设计与仿真,分析电路性能,优化设计方案。
教学大纲:- 数字电路设计:组合逻辑电路、时序逻辑电路设计。
- 模拟电路设计:放大器、滤波器等电路设计。
- 电路仿真:仿真参数设置、波形分析、性能评估。
3. 综合性项目实践- 学生分组进行项目实践,运用所学知识完成一个具有实际意义的电路设计项目。
- 项目过程中,培养学生的团队协作、沟通能力及解决问题的能力。
eda课程设计报告速度表设计一、课程目标知识目标:1. 学生能理解速度表的基本原理和设计理念,掌握速度的计算公式。
2. 学生能了解并运用电子设计自动化(EDA)软件进行速度表电路的设计与仿真。
3. 学生掌握速度表在实际应用中的相关技术参数和性能指标。
技能目标:1. 学生能够运用EDA软件进行电路图绘制,具备基本的电路设计能力。
2. 学生能够通过小组合作,进行速度表的设计、搭建与调试,培养实际操作能力。
3. 学生能够运用所学知识解决实际生活中的速度测量问题,提高创新能力。
情感态度价值观目标:1. 学生通过本课程的学习,培养对电子设计自动化技术的兴趣,激发创新精神。
2. 学生在小组合作中,培养团队协作意识,提高沟通与交流能力。
3. 学生能够认识到速度表在交通安全中的作用,增强社会责任感和遵守交通规则的意识。
本课程针对学生年级特点,注重理论与实践相结合,以EDA软件为工具,培养学生电子设计能力。
课程目标具体、可衡量,旨在使学生在掌握基本知识的同时,提高实际操作和创新能力,培养良好的团队协作意识和价值观。
二、教学内容1. 速度表原理及计算公式:讲解速度表的基本工作原理,引导学生掌握速度的计算公式,理解速度与时间、路程的关系。
2. EDA软件应用:介绍EDA软件的基本功能与操作方法,使学生能够运用软件进行电路设计与仿真。
3. 速度表电路设计:依据教材相关章节,指导学生进行速度表电路的绘制,包括传感器、放大器、显示电路等组成部分。
4. 电路搭建与调试:学生分组进行速度表的搭建和调试,掌握电路故障排查方法,提高实际操作能力。
5. 速度表在实际应用中的案例分析:分析速度表在交通安全、运动监测等领域的应用案例,让学生了解速度表的实际意义。
教学内容安排和进度:第一课时:速度表原理及计算公式第二课时:EDA软件应用与电路设计第三课时:速度表电路搭建与调试第四课时:案例分析及总结教学内容与课本紧密关联,注重科学性和系统性。
eda课程设计报告本篇课程设计报告旨在介绍我所参加的EDA课程设计项目。
在这个项目中,我们学习了EDA(Electronic Design Automation)的基本概念和工具,并且设计了一个基于RTL(Register Transfer Level)的数字电路。
以下是具体内容:一、课程设计背景EDA是指用计算机辅助设计来协助电子设计工程师进行电子系统的设计、验证和实现。
EDA已经成为了电子工程领域中不可或缺的工具。
本次课程设计旨在让我们熟悉EDA工具的使用,理解数字电路设计和验证的基本原理。
二、课程设计内容我们采用了Verilog语言来描述数字电路,使用Xilinx Vivado 作为开发工具。
我们首先学习了Verilog的基本语法和编写方法,然后根据老师提供的案例,设计了一个基于RTL的数字电路——多功能计数器。
多功能计数器由三个模块组成:计数模块、比较模块和控制模块。
其中计数模块负责计数,比较模块负责比较计数器的值和一个给定的阈值,控制模块负责根据比较结果控制计数器的计数和清零。
我们使用Xilinx Vivado中的IP核生成器来构建这些模块,并将它们组合成一个完整的数字电路。
三、课程设计效果通过本次课程设计,我们掌握了EDA工具的基本使用和数字电路设计的基本原理。
我们通过自己的实践,加深了对Verilog语言的理解,并且学会了如何使用Xilinx Vivado来开发数字电路。
最终,我们成功实现了一个多功能计数器,并且对其进行了测试和验证,达到了预期效果。
四、总结EDA课程设计为我们打下了坚实的数字电路设计基础,使我们更加熟练地使用EDA工具,同时也为我们今后的学习和工作奠定了基础。
我们将继续探索EDA工具的应用,深入了解数字电路设计的原理和方法,为电子工程领域做出更多的贡献。
哈尔滨工业大学(威海)数字电子技术实验报告姓名*:班级*:学号* :同组人*:指导教师*:日期*:电子琴音阶发生器设计与制作一、设计的性质、目的和任务创新精神和实践能力二者之中,实践能力是基础和根本。
这是由于创新基于实践、源于实践,实践出真知,实践检验真理。
实践活动是创新的源泉,也是人才成长的必由之路。
通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。
巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个简易的14音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。
巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。
二、课程设计所需要的仪器1、计算机一台2、实验箱EPM7128SSLC84-15芯片三、课程设计要求设计要求:要求能产生音名A到G之间的音阶,以一秒一个音阶的速度自动演奏,并可随时手控停在某个音阶上。
为了能知道音名,要求以简谱方式显示之。
音名与频率的关系:音乐上的十二平均律规定:每两个八度音之间频率相差一倍。
在这两个八度音之间,分成十二个半音,每两个相邻半音的频率比为122。
另外还规定,音名A的频率为440Hz。
音名B到C之间、E到F 之间为半音,其余为全音。
这样,可算得从A(简谱的低音6)到a1(简谱的高音6)之间的每个音名的频率为:表1:C 261.6Hz c 523.3D 293.7Hz d 587.3E 329.6Hz e 659.3F 349.2Hz f 698.5G 392Hz g 784A 440Hz a 880B 493.9Hz b 987.8四、设计原理乐曲演奏的原理:组成乐曲的每个音符的频率值及其持续时间是乐曲演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号的频率的高低和持续时间,就可以使扬声器发出连续的乐曲声。
音调的控制。
乐曲是由不同的音符编制而成的,音符中有7个音名:C、D、E、F、G、A、B都要一个固定的振动频率,频率的高低决定了音调的高低,个音名的频率参见前面的表1。
所有的不同频率的信号都是从同一个基准频率分频的到的。
这里采用的基准频率为4MHz的晶振,为了减少输出地偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前有一个二分频的分频器。
据此,可以求出不同音的分频系数,例如,中音A的频率为523.3Hz,则其分频系数为:4000000/523.3/2=3822采用同样的方法可以求出低音A、B、C、D、E、F、G和高音A、B、C、D、E、F、G各音名的分频系数,如表2所示。
表2 个音名的分频系数和预置数音名分频系数预置数音名分频系数预置数低音C 7645 546 中音C 3822 4369 低音D 6810 1381 中音D 3405 4786 低音E 6068 2123 中音E 3034 5157 低音F 5727 2464 中音F 2863 5328 低音G 5102 3089 中音G 2551 5640 低音A 4546 3645 中音A 2273 5918 低音B 4049 4142 中音B 2025 6166当采用14位二进制计数器(count)分频时,可以的出各音名的预置数,预置数等于8191减去相应的分频系数,由此便可以的出所有的预置数,如表2所示。
音长的控制。
由于本设计仅要求每隔1秒演奏一个音阶,由于实验板采用了4MHz的时钟,故只需要将时钟二分频的2MHz的信号,再将其每隔0.5秒取反一次,便可得到周期为一秒的信号(clk1),另外,为了能使演奏循环进行,需另设一个时长计数器cnt,当乐曲演奏完成时,以便能自动从头开始演奏。
由于可随时手控停在某个音阶上,故要用一个按键(key)控制cnt,当按键按下时,让cnt停止增加即可。
为了能知道音名,可以用一个数码管显示简谱,为了区分低音和高音,低音是让显示简谱同时让小数点亮,中音是小数点不亮。
五、程序设计(一)用Verilog HDL 描述module beep(clk,duan,key,be);input clk; //时钟输入input key; //按键输入output be; //蜂鸣器输出output[7:0]duan; //数码管输出reg[2:0]low,med; //低中音变量reg be;reg[3:0]dat;reg[7:0]duan;reg[12:0]count,start;reg[3:0]cnt;//reg[3:0]c;reg[20:0]buffer;reg clk1; //1s的周期信号wire carry; //进位信号assign carry=(count==8191);always@(posedge clk) //分频:产生1s的周期信号beginbuffer=buffer+1;if(buffer==21'd2000000) //2HZbeginbuffer=0;clk1=!clk1; //T=1sendendalways@(posedge clk) //预置数,产生进位信号beginif(carry) count=start;else count=count+1;endalways@(posedge carry)beginbe=!be;endalways@(posedge clk)begincase({low,med})6'b000000:beginstart=4369;//12561;//;8738dat=4'b0001;start=4786;//12978;//9573;dat=4'b0010;end6'b010000:beginstart=5157;//13349;//10315;dat=4'b0011;end6'b011000:beginstart=5328;//13520;//10656;dat=4'b0100;end6'b100000:beginstart=5640;//13832;//11281;dat=4'b0101;end6'b101000:beginstart=5918;//14110;//11837;dat=4'b0110;end6'b110000:beginstart=6166;//14358;//12334;dat=4'b0111;end6'b000001:beginstart=546;//8738;dat=4'b1000;end6'b000010:beginstart=1381;//9573;dat=4'b1001;end6'b000011:beginstart=2123;//10315;dat=4'b1010;end6'b000100:beginstart=2464;//10656;dat=4'b1011;start=3089;//11281;dat=4'b1100;end6'b000110:beginstart=3645;//11837;dat=4'b1101;end6'b000111:beginstart=4142;//12334;dat=4'b1110;endendcaseendalways@(posedge clk1) //音阶以1秒的速度循环演奏begin//if(cnt==15) cnt=1;//else if(key==1) c=c+1;//else if(c==0) cnt=cnt+1;if(key==0) cnt=cnt+1;case(cnt)1: {low,med}=6'b000000;2: {low,med}=6'b001000;3: {low,med}=6'b010000;4: {low,med}=6'b011000;5: {low,med}=6'b100000;6: {low,med}=6'b101000;7: {low,med}=6'b110000;8: {low,med}=6'b000001;9: {low,med}=6'b000010;10:{low,med}=6'b000011;11:{low,med}=6'b000100;12:{low,med}=6'b000101;13:{low,med}=6'b000110;14:{low,med}=6'b000111;default cnt=0;endcaseendalways@(dat) //数码管显示begincase(dat)4'b0001: duan=8'hf9;4'b0010: duan=8'ha4;4'b0011: duan=8'hb0;4'b0100: duan=8'h99;4'b0101: duan=8'h92;4'b1001: duan=8'h24;4'b1010: duan=8'h30;4'b1011: duan=8'h19;4'b1100: duan=8'h12;4'b1101: duan=8'h02;4'b1110: duan=8'h78;endcaseendendmodule(二)仿真与实验在Assign Device中选择EPM7128SLC84-15,在Assign Pin/Location/Chip命令锁定引脚如表3所示。
表3 引脚锁定情况脚名脚号输入输出类型脚名脚号输入输出类型clk 2 input duan3 45 outputbe 25 output duan4 48 output key 83 input duan5 46 output duan0 41 output duan6 49 output duan1 40 output duan7 39 output duan2 44 output为了仿真方便,把clk1的分频设为了10.clk与clk1仿真波形如下:由图可以看出clk1与clk的周期是十倍关系。
Key置低时的波形:由图可看出,当按键按下时(key=1),数码管,音阶都保持不变。
蜂鸣器的波形图(be引脚):六、调试中遇到的问题及解决的方法在编译时出错:Project requires too many logic cells. 经过仔细检查,发现程序中用了很多if else 甚至有很多嵌套使用,查阅了相关资料后才明白,硬件设计和软件编程不同,在C语言里if…else和for循环满天飞,可以说用这两个语句打天下都是不成问题的,但是HDL设计中这是万万不可的,if…else嵌套是对硬件资源是一个巨大的浪费。