首页 李斌抢答器CPLD课程设计微波炉

李斌抢答器CPLD课程设计微波炉

举报
开通vip

李斌抢答器CPLD课程设计微波炉李斌抢答器CPLD课程设计微波炉PAGEPAGE1————————————————————————————————作者:————————————————————————————————日期:个人收集整理勿做商业用途个人收集整理勿做商业用途PAGE个人收集整理勿做商业用途PAGE1西安文理学院物理与机械电子工程学院课程设计报告专业班级10级电子信息工程2班课程CPLD/FPGA技术及应用题目四路抢答器学号08101100219姓名李斌同组人王景成绩2013年6月PAGE1一、设计目的(1...

李斌抢答器CPLD课程设计微波炉
李斌抢答器CPLD课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 微波炉PAGEPAGE1————————————————————————————————作者:————————————————————————————————日期:个人收集整理勿做商业用途个人收集整理勿做商业用途PAGE个人收集整理勿做商业用途PAGE1西安文理学院物理与机械电子工程学院课程设计报告专业班级10级电子信息工程2班课程CPLD/FPGA技术及应用 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目四路抢答器学号08101100219姓名李斌同组人王景成绩2013年6月PAGE1一、设计目的(1)熟练掌握EDA工具软件QuartusII的使用;(2)熟练用VHDL硬件描述语言描述数字电路;(3)学会使用VHDL进行大规模集成电路设计;(4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性;(5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力。二、系统总体设计(1)设计要求:设计一个可以容纳四组参赛队进行比赛的电子抢答器,具体要求如下:1、具有抢答信号的鉴别和锁存功能。主持人发出抢答指令后,若有参赛者按抢答器,则该组指示灯亮,并显示抢答者的组别。同时,电路处于自锁存状态,其他组的抢答器不起作用。2、具有计时功能.设每题答题时间为20秒,在主持人对抢答组别进行确认后,抢答者开始答题。此时,显示器开始倒计时,计到0时停止,同时超时LED闪烁五下表示超时警报。若抢答者在规定的时间内回答完问题,主持人给出计时停止信号,超时LED不闪烁。3、具有计分功能(0~9分)。在初始状态时,主持人可以给4组设置初始分值。每组抢答完毕后,由主持人打分,答对一次加2分,答错一次减1分.扩展功能参考:具有犯规设置电路。对提前抢答者和超时抢答者,给予鸣喇叭警示,并显示犯规组别。数码管显示布局如下:设计原理及思路:将该任务分成八个模块进行设计,分别为:倒计时模块、分频模块、判断模块、时钟模块、记分模块、加1模块、显示译码模块等组成,最后是顶层文件工程.抢答鉴别及锁存分频计数计分器数码管显示数码管显示系统组成框图详细设计(1)、时钟时钟模块libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH。ALL;useIEEE。STD_LOGIC_UNSIGNED.ALL;entityf01msisPort(CLK:instd_logic;CP:outstd_logic);endf01ms;architectureBehavioraloff01msissignala:integerrange0to500;beginprocess(CLK)beginif(CLK'eventandCLK=’1’)thenifa=499thena<=0;elsea〈=a+1;endif;caseaiswhen0to249=>CP〈='1’;when250to499=〉CP<='0’;whenothers=>CP<='Z’;endcase;endif;endprocess;endBehavioral;封装图:、抢答判断libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH。ALL;useIEEE.STD_LOGIC_UNSIGNED。ALL;entitypanduanisPort(CLR:inSTD_LOGIC;EN:inSTD_LOGIC;A,B,C,D:inSTD_LOGIC;LEDA:outSTD_LOGIC;LEDB:outSTD_LOGIC;LEDC:outSTD_LOGIC;LEDD:outSTD_LOGIC;FALSE:outSTD_LOGIC_VECTOR(3downto0);Q:outSTD_LOGIC_VECTOR(3downto0));endpanduan;architectureaofpanduanissignaltmp:std_logic_vector(3downto0);signaltag:std_logic;begintmp<=a&b&c&d;process(CLR,en,a,b,c,d,tmp)beginifclr='1'thenq<=”0000";LEDA〈='0’;LEDB<='0’;LEDC〈='0’;LEDD<='0’;FALSE<="0000”;TAG<=’0’;ELSIFEN=’0’THENIFA='1’THENFALSE(3)<=’1';ENDIF;IFB=’1'THENFALSE(2)〈=’1';ENDIF;IFC='1'THENFALSE(1)<=’1';ENDIF;IFD=’1'THENFALSE(0)〈=’1';ENDIF;ELSEFALSE〈="0000”;IFTAG='0’THENIFTMP="1000"THENLEDA<='1’;LEDB<='0';LEDC〈='0';LEDD<='0';Q<="1000";TAG<='1';ELSIFTMP=”0100"THENLEDA<='0’;LEDB〈=’1’;LEDC<=’0’;LEDD〈='0’;Q〈="0100”;TAG〈='1';ELSIFTMP="0010”THENLEDA〈='0’;LEDB〈=’0’;LEDC<=’1’;LEDD<=’0';Q<=”0010";TAG<=’1’;ELSIFTMP=”0001”THENLEDA〈='0’;LEDB<=’0';LEDC<='0’;LEDD<=’1’;Q<="0001";TAG〈='1’;ENDIF;ENDIF;ENDIF;ENDPROCESS;enda;封装图:、时钟分频模块libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE。STD_LOGIC_ARITH。ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityfenpin1sisPort(CLK:instd_logic;CP:outstd_logic);endfenpin1s;architectureBehavioraloffenpin1sissignalcount:integerrange0to500000;beginprocess(CLK)beginif(CLK’eventandCLK='1’)thenifcount=499999thencount<=0;elsecount<=count+1;endif;casecountiswhen0to249999=〉CP〈='1';when250000to499999=>CP<='0’;whenothers=>CP〈=’Z’;endcase;endif;endprocess;endBehavioral;封装图:、记分模块LIBRARYIEEE;USEIEEE。STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH。ALL;USEIEEE。STD_LOGIC_UNSIGNED.ALL;ENTITYjifenISPORT(chos:inSTD_LOGIC_VECTOR(3downto0);CLK:INSTD_LOGIC;ADD:INSTD_LOGIC;SUB:INSTD_LOGIC;A:OUTSTD_LOGIC_VECTOR(3DOWNTO0);B:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C:OUTSTD_LOGIC_VECTOR(3DOWNTO0);D:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDjifen;ARCHITECTUREARTOFjifenISSIGNALAA:STD_LOGIC_VECTOR(3DOWNTO0);--SIGNALSIGNALBB:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALCC:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALDD:STD_LOGIC_VECTOR(3DOWNTO0);signalq0:std_logic;signaln:integerrange0to3;signali:std_logic;BEGINPOR1:PROCESS(ADD,SUB)BEGINi〈=addorsub;ifclk’eventandclk=’1’thenifi='0'thenq0〈='0';n<=0;elsifn<=3andi='1'thenq0〈=notq0;n<=n+1;elseq0<='0';endif;endif;IF(q0’EVENTANDq0=’1’)THENIF(ADD='1’ANDSUB='1')THENAA<="0000”;BB〈=”0000";CC<=”0000”;DD<="0000";ELSIF(ADD=’1'ANDSUB=’0’)THENIF(chos="1000”)THENAA〈=AA+"0010";BB<=BB;CC〈=CC;DD<=DD;ELSIF(chos="0100”)THENAA〈=AA;BB<=BB+"0010";CC<=CC;DD<=DD;ELSIF(chos="0010")THENAA<=AA;BB〈=BB;CC<=CC+"0010”;DD〈=DD;ELSIF(chos=”0001")THENAA〈=AA;BB<=BB;CC〈=CC;DD<=DD+”0010";ELSEAA〈=AA;BB<=BB;CC〈=CC;DD<=DD;ENDIF;—-加分程序elsIF(SUB=’1'ANDADD=’0')THENIF(chos=”1000”)THENAA〈=AA—"0001”;BB<=BB;CC〈=CC;DD〈=DD;ELSIF(chos=”0100")THENAA<=AA;BB<=BB-”0001";CC〈=CC;DD<=DD;ELSIF(chos=”0010”)THENAA<=AA;BB〈=BB;CC〈=CC—"0001”;DD〈=DD;ELSIF(chos="0001")THENAA〈=AA;BB〈=BB;CC〈=CC;DD〈=DD—"0001”;ELSEAA〈=AA;BB<=BB;CC〈=CC;DD〈=DD;ENDIF;ELSEAA〈=AA;BB<=BB;CC〈=CC;DD〈=DD;ENDIF;ELSEAA〈=AA;BB<=BB;CC<=CC;DD<=DD;ENDIF;A<=AA;B〈=BB;C〈=CC;D<=DD;ENDPROCESS;ENDARCHITECTUREART;封装图:、分加1模块libraryieee;useieee.std_logic_1164。all;useieee.std_logic_unsigned.all;entityjia1isport(clk,I:instd_logic;q:outstd_logic);endjia1;architecturearofjia1issignaln:integerrange0to1;signalq0:std_logic;beginprocess(clk)beginifclk'eventandclk='1'thenifi=’0'thenq0<='0’;n〈=0;elsifn<=1andi='1’thenq0<=notq0;n〈=n+1;elseq0〈='0';endif;endif;endprocess;q〈=q0;endar;封装图:、倒计时模块libraryIEEE;useIEEE。STD_LOGIC_1164.ALL;useIEEE。STD_LOGIC_ARITH。ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitydaojishiisPort(clk,clr,rst:inSTD_LOGIC;m:outSTD_LOGIC;high,low:outSTD_LOGIC_VECTOR(3downto0));enddaojishi;architectureaofdaojishiissignalhh:std_logic_vector(3downto0);signalll:std_logic_vector(3downto0);beginprocess(clk,clr,rst,hh,ll)beginifclr='1'thenll<="0000";hh<="0010”;m〈='0’;elsifclk’eventandclk='1'thenifrst=’1’thenll〈=ll—1;ifll=”0000”thenll<="1001”;hh〈=hh-1;ifhh=”0000”andll=”0000”thenm〈=’1';hh<="0000”;ll〈=”0000”;endif;endif;endif;endif;high<=ll;low<=hh;endprocess;enda;封装图:、译码模块libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE。STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitydynamicisPort(clk:instd_logic;reset:instd_logic;din1:instd_logic_vector(3downto0);din2:instd_logic_vector(3downto0);din3:instd_logic_vector(3downto0);din4:instd_logic_vector(3downto0);din5:instd_logic_vector(3downto0);din6:instd_logic_vector(3downto0);din7:instd_logic_vector(3downto0);shift:outstd_logic_vector(2downto0);bus4:outstd_logic_vector(3downto0));enddynamic;architectureBehavioralofdynamicissignalscan_clk:std_logic_vector(2downto0);beginprocess(clk,scan_clk,reset,din1,din2,din3,din4,din5,din6,din7)beginifreset='1’thenscan_clk<="000”;elsifclk'eventandclk='1’thenscan_clk<=scan_clk+1;if(scan_clk=6)thenscan_clk〈=”000";endif;endif;endprocess;process(scan_clk,din1,din2,din3,din4,din5,din6,din7)begincasescan_clkiswhen”000"=〉bus4<=din1;shift〈=”000";when"001”=〉bus4<=din2;shift<=”001”;when"010"=〉bus4<=din3;shift〈="010";when”011"=〉bus4<=din4;shift<=”011";when”100”=>bus4<=din5;shift〈=”100";when”101”=>bus4<=din6;shift〈=”101";when”110"=>bus4<=din7;shift〈="110";whenothers=〉bus4〈="0000”;shift〈=”111";endcase;endprocess;endBehavioral;封装图:、段码译码显示libraryIEEE;useIEEE。STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE。STD_LOGIC_UNSIGNED。ALL;entityxianshiisPort(DIN:inSTD_LOGIC_VECTOR(3downto0);DOTU:outSTD_LOGIC_VECTOR(6downto0));endxianshi;architecturertlofxianshiisbeginPROCESS(DIN)BEGINCASEDINISWHEN”0000"=〉DOTU<=”0111111";WHEN"0001”=>DOTU<=”0000110";WHEN”0010”=>DOTU<="1011011”;WHEN"0011"=〉DOTU<="1001111";WHEN"0100"=>DOTU<=”1100110”;WHEN”0101”=>DOTU<="1101101”;WHEN”0110”=〉DOTU〈="1111101”;WHEN"0111”=>DOTU<="0000111";WHEN"1000"=〉DOTU<=”1111111";WHEN”1001"=〉DOTU<="1101111”;WHENOTHERS=〉DOTU〈="0000000";ENDCASE;ENDPROCESS;endrtl;封装图:四、仿真分析判断模块:倒计时:五、设计中遇到的问题及解决方法本次设计的最大问题是数码管动态扫描。由于实践能力及知识储备等问题,我们在实验中就数码管动态扫描出现了很多分歧,由于不知道该如何动态扫描,我们查阅了很多很多的资料,通过不断的搜集资料,学习相关知识,编写源程序,并最终达到统一。尤其是在分频那一块,由于每个人的思路不一样,出现很多的分频方法,这期间出现了很多的奇思妙想,但由于时间问题,不可能一一验证,最终我们只选取一种简单的分频方法。在实验的过程中,由于VHDL的编程与以前学习的C语言编程方法不一样,很多时候会把VHDL当成C语言的编程方法来编程,出现了很多的问题。最终导致编写的VHDL程序出现很多错误。在本次的设计中,数码管动态扫描是本次设计的难点,关键时段选,位选不知如何同时输出,也不知道该如何动态扫描,由于C语言的动态扫描只需要两个数组,一个延时函数,一个FOR循环即可实现动态扫描,但是VHDL和C语言的语法不一样,且没有延时函数,这就给我们编程带来很多的麻烦,刚开始一直出不了C语言编程的怪圈,导致编写的VHDL源程序出现乱扫描。本次课程设计大家都用到数码管动态扫描,大家都被这一模块卡住,最后通过大家共同探讨,共同讨论,分析程序中出现的错误。六、心得体会第一次接触EDA课程设计,由于知识储备的不足,导致在设计中出现了很多问题,走了不少弯路。这次EDA课程设计历时一个星期左右,时间虽短,且任务量大,但通过两个星期的实践,使我对EDA技术有了更进一步的了解。同时,大致懂得了一个课题制作的具体 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 和实施方法。另外,课程设计对QuartusⅡ软件的使用要求较高,从而使我能更为熟练的运用此软件。并懂得了采用模块化的设计思路使得问题变的简单一些,降低了发生错误的几率,也便于修改和更新。课程设计中,需要找很多资料,在当今的信息化环境中,虽然资料很多,但需要仔细斟酌才能找到所需要的.这次的课程设计很好的锻炼了这种能力。此外,组员中的交流中从中也学到了不少东西.在实验设计中,出现的最大问题是逃不出C语言编程的思维模式,由于刚刚学完单片机,很多问题老是按照C51的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 去想,导致出现很多的弯路,由于大家本次课程设计都用到数码管动态扫描,大家合作解决了扫描问题。总之,这次的课程设计是一次很好的锻炼机会,我从中学到了很多知识,对将来的学习和工作都有很大的帮助。
本文档为【李斌抢答器CPLD课程设计微波炉】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
电气工程师
暂无简介~
格式:doc
大小:965KB
软件:Word
页数:0
分类:建筑/施工
上传时间:2021-10-17
浏览量:0