收藏 分销(赏)

简易电子琴实训总结报告.doc

上传人:精**** 文档编号:3002083 上传时间:2024-06-12 格式:DOC 页数:14 大小:295.54KB 下载积分:8 金币
下载 相关 举报
简易电子琴实训总结报告.doc_第1页
第1页 / 共14页
简易电子琴实训总结报告.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
《基于FPGA数字系统设计》项目设计文档 项目名称: 基于VHDL简易电子琴 姓 名: 院 系: 专 业: 学 号: 指引教师: 完毕时间: 年 6月20日 基于FPGA数字系统设计项目成绩评价表 设计题目 基于VHDL简易电子琴 设计规定 1) 设计一种简易电子琴; 2) 运用实验箱脉冲源产生1,2,3,。。。共7个或14个音阶信号; 3) 用批示灯显示节拍; 4) *能产生颤音效果。 设计过程 采用现场可编程逻辑器件(FPGA)制作,运用EDA软件中VHDL硬件描述语言编程进行控制,然后烧制实现。 采用是现场可编程逻辑器件来实现,它长处是所有电路集成在一块芯片上,此方案所需外围电路简朴,这样它体积就减少了,同步还提高了系统稳定度。 由设计者把编好 VHDL程序烧制到现场可编程逻辑器件FPGA中,然后通过控制输入电路把乐谱输入到FPGA,产生不同频率驱动扬声器,发出不同乐谱。同步也把发出乐谱符号通过显示屏输出。 项目设计成绩评价 评价项目 指 标 满分 评分 工作量、工作态度和出勤率 按期圆满完毕了规定任务,难易限度和工作量符合教学规定,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与她人合伙。 30 课程设计质量 项目设计系统架构合理,设计过程简洁对的,分析问题思路清晰,构造严谨,文理通顺,撰写规范,图表完备对的。 40 创新 工作中有创新意识,对前人工作有某些改进或有一定应用价值。 15 答辩 能对的回答指引教师所提出问题。 15 综合成绩级别 指引教师: 年 月 日 目 录 1 项目名称、内容与规定 ………………………………………4页 1.1 设计内容…………………………………………………4页 1.2 详细规定…………………………………………………4页 2 系统整体架构(Architecture Description)………………4页 2.1 设计思路…………………………………………………4页 2.2 系统原理(包括:框图等阐述)与设计阐明等内容…4页 2.3 创新点与原创性内容……………………………………5页 3 系统设计 (含HDL或原理图输入设计)………………………5页 注:此某些包括重要逻辑单元、模块、源代码等内容 3.1 HDL 代码…………………………………………………5页 3.2 系统整体电路图(或RTL级电路图)…………………7页 4 系统仿真(Simulation Waveform)…………………………7页 5 FPGA实现(FPGA Implementation)………………………9页 6 总结(Closing) ……………………………………………10页 参照书目(Reference):…………………………………………11页 附录(Appendix):………………………………………………12页 1、 项目名称、内容与规定 1.1 设计内容: 设计一种简易八音符电子琴,它可通过按键输入来控制音响。 1.2 详细规定: 1、设计一种简易电子琴; 2、运用实验箱脉冲源产生1,2,3,。。。共7个或14个音阶信号; 3、用批示灯显示节拍; 4、*能产生颤音效果。 2、系统整体架构 2.1 设计思路 本课程设计目在于灵活运用EDA技术编程实现一种简易电子琴,它规定在实验箱上构造一种电子琴电路,不同音阶相应不同频率正弦波。按下每个代表不同音阶按键时,可以发出相应频率声音 2.2 系统原理 采用现场可编程逻辑器件(FPGA)制作,运用EDA软件中VHDL硬件描述语言编程进行控制,然后烧制实现。采用FPGA来设计原理图如图1.1所示。它由控制输入电路、FPGA、显示电路和扬声器电路构成。 扬声电路 显示电路 FPGA 控制输入电路 图1.1 采用FPGA设计电子琴原理方框图 控制输入电路重要是为顾客设计,起到一种输入控制作用。FPGA是现场可编程逻辑器件,也是本设计方案核心内容,它是实现电子琴运作重要控制模块。由设计者把编好 VHDL程序烧制到现场可编程逻辑器件FPGA中,然后通过控制输入电路把乐谱输入到FPGA,产生不同频率驱动扬声器,发出不同乐谱。同步也把发出乐谱符号通过显示屏输出。 2.3 创新点与原创性内容 对于电子琴设计,诸多方案均可以实现,但是采用数字逻辑电路来制作话电路硬件所需器材多,体积庞大,比较复杂,并且精度和稳定度都不是很高。如果采用是现场可编程逻辑器件来实现,它长处是所有电路集成在一块芯片上,此方案所需外围电路简朴,这样它体积就减少了,同步还提高了系统稳定度。还可以用Modelsim XE 5.3d软件进行仿真和调试等。设计人员可以充分运用VHDL硬件描述语言以便编程,提高开发效率,缩短研发周期,减少研发成本;并且易于进行功能扩展,实现办法灵活,调试以便,修改容易。。因而,电子琴设计咱们选取采用现场可编程逻辑器件(FPGA)制作来实现。 3 系统设计 3.1 HDL 代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity speakera is port( clk :in std_logic; --时钟输入 index:in std_logic_vector( 6 downto 0); -- 按键输入 spks:out std_logic); --扬声器输出 end; architecture one of speakera is signal preclk,fullspks :std_logic; signal tone:std_logic_vector( 10 downto 0); begin search :process (index) begin case index is when "0000001" => tone <= ""; when "0000010" => tone <= ""; when "0000100" => tone <= ""; when "0001000" => tone <= ""; when "0010000" => tone <= ""; when "0100000" => tone <= ""; when "1000000" => tone <= ""; when others => tone <= ""; end case; end process; divdeclk :process(clk) variable count4 :std_logic_vector( 3 downto 0); begin preclk <= '0'; if count4 > 11 then preclk <= '1';count4 :="0000"; elsif clk'event and clk='1' then count4 := count4 + 1; end if; end process; genspks :process(preclk,tone) variable count11 :std_logic_vector( 10 downto 0); begin if preclk'event and preclk = '1' then if count11 =16#7ff# then count11 := tone;fullspks <= '1'; else count11 := count11 + 1;fullspks <= '0'; end if; end if; end process; dealyspks :process( fullspks) variable count2 :std_logic; begin if 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; 3.2 系统整体电路图 4 系统仿真(Simulation Waveform) 功能仿真: 时序仿真: 5 FPGA实现 数控分频模块目是对基准脉冲分频,得到1,2,3,4,5,6,7,七个音符相应频率。该模块VHDL描述中涉及了三个模块,一方面对12MHz基准脉冲进行再次分频,得到便是所需要频率。 实验箱: 实验操作内容及环节: 1、打开QuartusⅡ,创立工程 一方面建立一种QuartusⅡ工程,指定工作目录、工程名称、顶层设计实体名称、目的器件系列、工具设立等。环节如下: (1) 选取“开始”—>“程序”—>Altera—> QuartusⅡ (2) 选取File—>New Project Wizard 界面,单击Next按钮,进入工程名称设定、工程目录选取。 (3) 在对话框中,指定工程存储目录、工程名和顶层实体名,工程名和顶层实体名规定相似,工程目录可以随意设立,但必要是英文目录,单击Next按钮。 (4) 顾客指定目的器件,依照开发板所有效期间来选取,单击Next按钮。 (5) 新建一种VHDL语言。 (6) 把程序代码输入,编译、运营程序,单击processing—>start comilation,运营程序。 2.引脚分派 (1)单击assignments—>timing analysis setting进行引脚分派 (2)直接导入引脚分派,单击assignments—>import assignments (3)引脚分派完毕 3.产生波形图 (1)创立波形文献,单击File—>other files—>vector waveform file (2)点击空白处,点开INSERT->insert node,再点击—>node finder—>list,把元器件添加进去,得到其仿真波形图 系统整体组装图: 6 总结(Closing) 通过两个周学习,最后完毕了我设计任务——基于VHDL语言简易电子琴设计。通过本次课程设计学习,我对数据库软件EDA技术、VHDL、等系列知识均有了一定理解。使用EDA技术开发页面能力也有了很大提高。 我深深体会到设计课重要性和目性所在。本次设计课不但仅培养了咱们实际操作能力,也培养了咱们灵活运用课本知识,理论联系实际,独立自主进行设计能力。它不但仅是一种学习新知识新办法好机会,同步也是对我所学知识一次综合检查和复习,使我明白了自己缺陷所在,从而查漏补缺。 在设计中规定咱们要有耐心和毅力,还要细心,稍有不慎一种小小错误就会导致成果不对的,而对错误检查规定我要有足够耐心,通过这次设计和设计中遇到问题,也积累了一定经验。用VHDL硬件描述语言形式来进行数字系统设计以便灵活,运用EDA软件进行编译优化仿真极大地减少了电路设计时间和也许发生错误,减少了开发成本,这种设计办法必将在将来数字系统设计中发挥越来越重要作用。VHDL设计核心是电路逻辑设计,而一种程序核心是总体设计。对于硬件设计接触不多咱们清晰这一点也许不无好处。 设计工作此课程设计从构思到最后完毕这两个周内,周边诸多同窗和朋友予以了我善意协助,尚有教师同窗们对我不厌其烦指引,使我对此类课程设计设计流程以及脊髓有了很深理解,通过你们协助,我把从计算机构成原理这门课上学到理论第一次用到了实际设计上。在此,我深深表达感谢。 参照书目(Reference): [1] 张肃文,.EDA技术与VHDL语言.北京:清华大学出版社 [2] 张亦华,延明. 数字电路EDA入门.北京:北京邮电大学出版社 [3] 《VHDL 程序设计》(第二版). 曾繁泰等. 清华大学出版社 [4]《VHDL与数字电路设计》.卢毅, 赖杰. 科学出版社 [5]《EDA技术与实验》陈强 附录(Appendix): library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity speakera is port( clk :in std_logic; --时钟输入 index:in std_logic_vector( 6 downto 0); -- 按键输入 spks:out std_logic); --扬声器输出 end; architecture one of speakera is signal preclk,fullspks :std_logic; signal tone:std_logic_vector( 10 downto 0); begin search :process (index) begin case index is when "0000001" => tone <= ""; when "0000010" => tone <= ""; when "0000100" => tone <= ""; when "0001000" => tone <= ""; when "0010000" => tone <= ""; when "0100000" => tone <= ""; when "1000000" => tone <= ""; when others => tone <= ""; end case; end process; divdeclk :process(clk) variable count4 :std_logic_vector( 3 downto 0); begin preclk <= '0'; if count4 > 11 then preclk <= '1';count4 :="0000"; elsif clk'event and clk='1' then count4 := count4 + 1; end if; end process; genspks :process(preclk,tone) variable count11 :std_logic_vector( 10 downto 0); begin if preclk'event and preclk = '1' then if count11 =16#7ff# then count11 := tone;fullspks <= '1'; else count11 := count11 + 1;fullspks <= '0'; end if; end if; end process; dealyspks :process( fullspks) variable count2 :std_logic; begin if 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;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服