




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南文理芙蓉学院课程设计报告课程名称: 自动化系统课程设计 专业班级: 自动化1101班 学号(7位)学生姓名: 陈 鹏 指导教师: 彭 琛 完成时间: 2014年11月25 日 报告成绩: 评阅意见: 评阅教师 日期 湖南文理学院制基于fpga多路彩灯控制器的设计一、引言 21世纪,电子技术迅猛发展,高薪技术日新月异。传统的设计方法正逐步退出历史的舞台,取而代之的是基于eda技术的芯片设计技术,它正在成为电子系统设计的主流。大规模可编程器件现场可编程门阵列fpga和复杂可编程逻辑器件cpld是当今应用最广泛的两类可编程专用集成电路。近年来,eda技术高速发展使现代电子产品向着功能多样化,体积
2、最小化,功耗最低化的方向发展。它与传统电子产品在设计上的显著优势就是:第一大量使用大规模可编程逻辑器件,以提高产品性能,缩小产品体积,降低功耗。第二是广泛运用现代化计算机技术,以提高电子设计自动化程度,缩短开发周期,提高产品的竞争力。所以掌握这方面的应用极其重要,本题目就是基于fpga这一技术完成实现的。众所周知,彩灯、流水灯、装饰灯等在日常生活和商业都有极其广泛的应用。具有很高的商业价值和研究价值。而对于越来越变化多端要求极高的灯饰行业, 相对传统的单片机来说,fpga的性价比越来越高,功能强大,能轻松的完成对彩灯的控制。随着科技的发展 , 在现代生活中, 彩灯作为一种景观应用越来越多。而在
3、电子电路设计领域中,电子设计自动化(eda)工具已成为主要的设计手段,vhdl语言则是eda的关键技术之一,它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。本文介绍了基于eda技的多路彩灯控制器的设计与分析。在max+plusii环境下采用vhdl语言实现,论述了基于vhdl语言和fpga芯片的数字系统设计思想和实现过程。电子设计自动化技术eda的发展给电子系统的设计带来了革命性的变化,eda软件设计工具,硬件描述语言,可编程逻辑器件使得eda技术的应用走向普及。fpga是新型的可编程逻辑器件,
4、采用fpga进行产品开发可以灵活地进行模块配置,大大缩短了产品开发周期,也有利于产品向小型化,集成化的方向发展。二、任务要求设计一个多路彩灯控制器,能循环变化花型 ,可清零,可选择花型。彩灯控制器有16路发光二极管构成,当控制器开关打开时,能够在6种不同花型之间进行循环变化。要求控制器具备复位清零功能,一旦复位信号失效,不论控制器花型变化处于何种状态,都会无条件即刻清零,回到初始化状态。三、设计作用与目的根据系统设计要求可知,整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号clk_in,系统清零信号clr,彩灯节奏快慢选择开关chose_key;共有16个输出信号led15.0,分别用
5、于控制十六路彩灯。据此,我们可将整个彩灯控制器cdkzq分为三大部分:时序控制电路sxkz和显示控制电路xskz。本题目还用原理图来完成顶层文件,对于比较简单的,子模块较少的题目,建议顶层模块使用原理图,会比较直观。而对于比较复杂的,子模块较多的题目,使用文本元件例化,会更简洁清晰。如用原理图完成顶层文件连线如图所示。本题目是采用文本元件例化来完成的。 彩灯控制器的组成原理图四、所用设备及软件 4.1 fpga的发展历程fpga(fieldprogrammable gate array),即现场可编程门阵列,它是在pal、gal、cpld等可编程器件的基础上进一步发展的产物。它是作为专用集成电
6、路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(verilog或vhdl)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 fpga 上进行测试,是现代 ic设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如and、or、xor、not)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的fpga里面,这些可编辑的元件里也包含记忆元件例如触发器(flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把fpga内部的逻辑块连接起来,就好像一个电路试验板
7、被放在了一个芯片里。一个出厂后的成品fpga的逻辑块和连接可以按照设计者而改变,所以fpga可以完成所需要的逻辑功能。fpga一般来说比asic(专用集成电路)的速度要慢,无法完成复杂的设计,但是功耗较低。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的fpga。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的fpga上完成的,然后将设计转移到一个类似于asic的芯片上。另外一种方法是用cpld(complex programmable logic device,复杂可编程逻辑器件)。4.2 quartus
8、 ii4.2.1简介quartus ii 是altera公司的综合性pld/fpga开发软件,支持原理图、vhdl、veriloghdl以及ahdl(altera hardware description language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整pld设计流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。quartus ii支持altera的ip核,包含了lpm/megafunction宏功能模
9、块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方eda工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方eda工具。此外,quartus ii 通过和dsp builder工具与matlab/simulink相结合,可以方便地实现各种dsp应用系统;支持altera的片上可编程系统(sopc)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。maxplus ii 作为altera的上一代pld设计软件,由于其出色的易用性而得到了广泛的应用。目前altera已经停止了对maxplus ii 的更新支持,quartus i
10、i 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。altera在quartus ii 中包含了许多诸如signaltap ii、chip editor和rtl viewer的设计辅助工具,集成了sopc和hardcopy设计流程,并且继承了maxplus ii 友好的图形界面及简便的使用方法。altera quartus ii 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。4.2.2 功能quartus ii提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、veriloghdl、a
11、hdl和vhdl完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;logiclock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用signaltap ii逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的edif网表文件、vhdl网表文件和verilog网表文件;能生成第三方eda软件使用的vhd
12、l网表文件和verilog网表文件。4.2.3 简介altera的quartus ii可编程逻辑软件属于第四代pld开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于internet的协作设计。quartus平台与cadence、exemplarlogic、 mentorgraphics、synopsys和synplicity等eda供应商的开发工具相兼容。改进了软件的logiclock模块设计功能,增添 了fastfit编译选项,推进了网络编辑性能,而且提升了调试能力。支持max7000/max3000等乘积项器件quartus ii设计套装的其他特性包括:1 dsp buil
13、der 12.0新的数字信号处理(dsp)支持通过系统控制台,与matlab的ddr存储器进行通信,并具有新的浮点功能,提高了设计效能,以及dsp效率。 经过改进的视频和图像处理(vip)套装以及视频接口ip通过具有边缘自适应算法的scaler ii megacore功能以及新的avalon-streaming (avalon-st)视频监视和跟踪系统ip内核,简化了视频处理应用的开发。 增强收发器设计和验证更新了arria v fpga的收发器工具包支持,进一步提高收发器数据速率(对于stratix v fpga,高达14.1 gbps)。五、系统设计方案5.1、系统总体设计图5.1 系统总
14、图5.2、系统软件设计5.2.1,时序控制器:sxkz部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; -库函数声明entity sxkz is -实体声明port(chose_key:in std_logic; -速度控制按钮clk_in:in std_logic; -输入时钟信号clr:in std_logic; -复位信号clk:out std_logic -改变后的时钟信号);end entity;architecture art of sxkz is -结构体声明signal cll
15、k:std_logic;begin process(clk_in,clr,chose_key)is -进程 variable temp:std_logic_vector(0 to 2); -定义一个变量beginif clr=1 then cllk=0;temp:=000; -复位初始化elsif rising_edge (clk_in) then if chose_key=1 then -按键按下,高速时if temp=011 then -输出时钟信号t为输入信号的temp:=000; -8倍cllk=not cllk; else temp:=temp+1;end if;else if te
16、mp=111 then -按键没按下,低速时temp:=000; -输出时钟信号t为输入信号的cllk=not cllk; -16倍else temp:=temp+1; end if; end if; end if;end process;clk=cllk;end art; 生成的元器件符号symbol:图5.2 时序控制器5.2.2,显示控制器:xskzlibrary ieee;use ieee.std_logic_1164.all;entity xskz isport( clk:in std_logic;clr:in std_logic;led:out std_logic_vector(0
17、 to 15) -彩灯输出,控制端口);end entity;architecture art of xskz istype state is(s0,s1,s2,s3,s4,s5,s6); -定义一组状态机 signal current_state:state; signal flower:std_logic_vector(15 downto 0); -定义一信号 begin process(clr,clk) isconstant f1:std_logic_vector(0 to 15):=0001000100010001; constant f2:std_logic_vector(0 to
18、15):=1010101010101010; constant f3:std_logic_vector(0 to 15):=0011001100110011; constant f4:std_logic_vector(0 to 15):=0100100100100100; constant f5:std_logic_vector(0 to 15):=1001010010100101; constant f6:std_logic_vector(0 to 15):=1101101101100110;-定义一组彩灯的花式。beginif clr=1 then current_stateflower=
19、0000000000000000; -初始状态current_state -状态指向下一个状态flower=f1;current_state flower=f2;current_stateflower=f3;current_stateflower=f4;current_stateflower=f5;current_stateflower=f6;current_state=s1; -返回第一个状态,实现循环end case;end if;end process;led=flower; end architecture;flower=f3;current_stateflower=f4;curren
20、t_stateflower=f5;current_stateflower=f6;current_state=s1; -返回第一个状态,实现循环end case;end if;end process;led=flower; end architecture;生成元器件符号:symbol图5.3 显示控制器5.2.3,彩灯控制器:cdkzlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cdkz2 is -实体port(clkin:in std_logic; -端口定义clr:in std
21、_logic;chose_key:in std_logic;led:out std_logic_vector(0 to 15);end entity;architecture art of cdkz2 is -结构体component sxkz is -元件例化sxkzport(chose_key:in std_logic;clk_in:in std_logic;clr:in std_logic;clk:out std_logic);end component sxkz;component xskz is -元件例化xskzport(clk:in std_logic;clr:in std_lo
22、gic;led:out std_logic_vector(0 to 15);end component xskz;signal s0:std_logic; -定义一个信号beginu1:sxkz port map(chose_key,clkin,clr,s0); u2:xskz port map(s0,clr,led);end architecture;彩灯控制器symbol:图5.4 彩灯控制器图5.5 rtl六、仿真调试分析start compilation先编译generate functional simulation netlist然后生成功能仿真网络表assignmentssett
23、ingsimulation setting设置成功能仿真然后新建一个vector waveform file 通过viewutility windows-node finder 把输入输出管脚添加进波形仿真图里 点击start simulation6.1,时序控制器波形仿真:图6.1输入信号图6.2 输出波形6.2显示控制器波形仿真:图6.3输入信号图6.4 输出波形6.3彩灯控制器波形仿真:图6.5 chose_key为0时图6.6 chose_key为1时七、设计中的问题及解决方法实验表明 ,此设计方法能够满足多种不同花样彩灯的变化要求 ,并且该方法便于扩展不同变化模式的彩灯花样,同时又实
24、现了彩灯的两种不同频率的闪烁。如果不按任何按键时候,灯就按四种花样顺序循环跑,如果按下某个键再松开,比如按下c键然后松开,那么不管之前灯跑到哪个花样,按键后灯就会从c代表的花样处开始跑,然后是d花样,然后是a花样,依次循环。但是a,b,c,d认为是按下会弹起的按键,因为这个程序里,如果一直按着按键不松手,会导致灯只是反复跑一个花样。比如按着b键不松手,那么就会反复跑b花样。还有不能允许同时按下两个键,三个键,4个键,也就是说,同一时刻abcd只能有一个是高电平,否则会出错,因为这个程序并没有防错机制。八、心得体会:本次设计的课题是彩灯控制器的设计,当拿到这个课题的时候经过分析就知道关键是计数器
25、和分频器的使用,分频的方法有很多种,对于同一种功能的实现,用vhdl可以采用多种方式进行描述,每种方式之间各有优劣,本次设计只采用了其中较简单的一种,应尽量用最简洁的语言写出所需功能的程序。通过这次课程设计对eda技术有了更进一步的熟悉,vhdl语言和语言等其他语言还是有很大的区别。vhdl是eda技术的重要组成部分,其具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力。其主要的也是最大的优点就在于设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精
26、力。在实际操作中发现设计和课本上的知识有很大联系,但又高于课本,一个简单的原理要把它应用以及和其他功能综合起来就有些困难。通过设计也巩固了我们的书本知识以及通过借阅书籍和上网查找资料,也丰富了自己对eda的了解九、主要参考文献:【1】谭会生、张昌凡 eda技术及应用 西安电子科技大学出版社 2002.8【2】张洪润、张亚凡 fpga/cpld应用设计200例 北京航空航天大学出版社 2007.2【3】王刚、张潋 基于fpga的sopc嵌入式系统设计与典型实例 电子工业出版社 2009.1【4】周润景.基于quartus的fpga/cpld数字系统设计实例m.西安:电子工业出版社,2007,8【
27、5】潘松 黄继业. eda技术实用教程(第二版)m.北京:科学出版社,2006.9【6】林明权 马维旻. vhdl数字控制系统设计范例m.西安:电子工业出版社,2003.1【7】褚振勇. fpga设计及应用(第三版)m.西安:电子科技大学出版社,2012.4【8】张毅刚 彭喜元 彭宇.单片机原理及应用(第二版)m.北京:高等教育出版社,2009.11附录:彩灯控制器的源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity horseracelamp isport(clk:in std_
28、logic;clr:in std_logic;a:in std_logic;b:in std_logic;c:in std_logic;d:in std_logic;opt:in std_logic;q:out std_logic_vector(5 downto 0);div2:out std_logic);end;architecture one of horseracelamp is type states is(s0,s1,s2,s3); signal present:states; signal q1:std_logic_vector(5 downto 0); signal count
29、:std_logic_vector(3 downto 0); signal halfclk:std_logic_vector(1 downto 0); signal clkin:std_logic_vector(1 downto 0);begin process(clk) beginif clkevent and clk=1 then halfclk=halfclk+1;end if;end process;process(opt) begin if opt=0then clkin(0)=halfclk(0); else clkin(0)=clk; end if; end process; process(clk,clr,a,b,c,d) beginif clr=1 then present=s0; q10);elsif clkin(0)event and clkin(0)=1 then case present is when s0=if q1=000000thenq1=100000;elseif count=1100 t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 7《健康看电视》教学设计(第一课时)教学设计-2023-2024学年道德与法治四年级上册统编版
- 游戏开发运营作业指导书
- 2024-2025学年高中政治 专题6 1 不打官司解决纠纷教学实录 新人教版选修5
- 2024年春七年级语文下册 第5单元 18 一棵小桃树教学实录 新人教版
- 企业战略执行监控与调整实战指南
- 2024-2025学年高中历史 专题四 雅尔塔体系下的冷战与和平 一 战后初期的世界政治形势教学教学实录 人民版选修3
- 某一级公路施工组织设计方案
- 2023七年级语文上册 第六单元 21女娲造人教学实录 新人教版
- 2025年三醋酸纤维素膜项目发展计划
- 3当冲突发生 第二课时(教学设计)-2023-2024学年道德与法治四年级下册统编版
- 政治-贵州省贵阳市2025年高三年级适应性考试(一)(贵阳一模)试题和答案
- 公司副总经理英文简历
- 2025浙江杭州地铁运营分公司校园招聘665人易考易错模拟试题(共500题)试卷后附参考答案
- 第一篇 专题一 第2讲 牛顿运动定律与直线运动
- 规划高中生涯模板
- 中国卒中学会急性缺血性卒中再灌注治疗指南 (2024)解读-指南解读系列
- 第二单元 第二次工业革命和近代科学文化 说课稿 2024-2025学年统编版九年级历史下册
- 《电气安全培训课件》
- 2025年结核病防治知识竞赛题库及答案(共117题)
- 高标准农田施工组织设计
- TSDHCIA 016-2021 化工行业智能化水平评估规范
评论
0/150
提交评论