EDA中FPGA计数器设计_第1页
EDA中FPGA计数器设计_第2页
EDA中FPGA计数器设计_第3页
EDA中FPGA计数器设计_第4页
EDA中FPGA计数器设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告(论文)设计课题:计数器7段数码管控制接口设计专业班级:学生姓名: 指导教师: 设计时间:2010-05-31

电子工程系可编程器件EDA技术与实践课程设计任务书姓 名:专业:班级:指导教师:职称:高工课程设计题目:计数器7段数码管控制接口设计已知技术参数和设计要求:1.设计个共阴7段数码管控制接口,在硬件时钟电路的基础上,采用分频器,输出一个1s的时钟信号,同时显示2、3、4所要求的计数器。2•设计个带使能输入、进位输出及同步清零的增1十进制计数器;3•设计个带使能输入及同步清零十八进制同步加法计数器;4.设计个四位二进制可逆计数器。所需仪器设备:计算机、EDA实箱、示波器成果验收形式:EDA实验箱上连接电路实现整个设计;验收设计的显示结果及各模块软件程序。参考文献:1•徐惠民,安德宁《数字逻辑设计与VHDL描述》机械工业出版社2•蒋璇,臧春华《数字系统设计与PLD应用技术》电子工业出版社3.陈赜,朱如其《系统可编程技术实践教程》科学出版社4•黄正瑾,徐坚等《CPLD系统设计技术入门与应用》电子工业出版社5.赵曙光,郭万有等《可编程逻辑器件原理开发与应用》西安电子科技出版社6•卢毅,赖杰《VHDL与数字电路设计》科学出版社7•潘松,黄继业《EDA技术使用教程》科学出版社时间安排2010-5-24至2010-6-2指导教师:教研室主任:2010年6月2日内容摘本报告通过对计数器7段数码管控制接口电路设计过程的论述,引出了EDA在电子电路系统设计方法及应用。主要术语摘要:*EDA(电子设计自动化):ElectronicDesignAutomation*FPGA(现场可编程门阵列):FieldProgrammableGatesArrayASIC(专用集成电路):ApplicationSpecificIntegratedCircuitsVHDL(硬件描述语言):VeryhighspeedICHardwareDescriptionLanguage随着电子设计自动化(EDA)技术的不断发展,当今的EDA技术更多是指芯片内的电路设计自动化。也就是说,开发人员完全可以通过自己的电路设计来定制芯片内部的电路功能,使之成为设计者自己的专用集成电路(ASIC)芯片,这就是当今的用户可编程逻辑器件(PLD)技术。高密度PLD又称复杂可编程逻辑器件,如市场上十分流行的CPLD、FPGA器件,它们属于全定制ASIC芯片,编程时仅需以JTAG方式与计算机并口相连即可。采用FPGA/CPLD等新型可编程逻辑器件进行数字系统设计,不仅使设计的电子产品达到微型化、高集成化和高可靠性,而且开发周期短、成本低、风险小,广泛应用在高速数字系统、高可靠性系统、信号处理等领域。是当今电子信息类专业人员必备的基础技能,其中子顶向下设计及模块化设计是基于芯片系统设计的主要方法。了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合。适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,按适配划分后管脚定位,同相关功能块硬件电路接口连线。概述………………1方案设计与论证………………1单元电路设计与参数计算……………………1总原理图及元器件清单……………………12安装与调试……………………13性能测试与分析………………13结论……………13心得体会………………………13参考文献………………………13、概述计数器7段数码管控制接口电路主要由分频器、计数器、计数器显示扫描分时选择模块、共阴7段数码管译码器及数码管组成。计数采用动态扫描显示方式输出。合理的可编程逻辑器件(PLD)的EDA技术设计流程及方法步骤是高效准确设计电子系统的基础。在EDA数字电路设计中,时序电路及计数器的设计是其他电子电路设计的基础。二、 方案设计与论证1.根据电路持点,采用层次化设计方法,将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口。再将各模块相连接,实现设计要求。2•采用动态扫描显示方式输出:7个LED显示,将所有的段选线并联接至一共阴7段数码管译码器输出端,阳极接位选控制线,实现各位分时选通。每一位显示时间间隔不内能超过20ms,否则会闪烁。论证:若采用静态扫描显示方式,则7个数码管段选线是独立的,则需要I/O端口较多,占有资源大,且此功耗大。因此,采用动态扫描显示方式输出。其中,分频器:用来产生1HZ计数脉冲;显示译码器:完成对显示的控制。5.所有模块全用VHDL语言描述。三、 单元电路设计与参数计算1.分频器设计:CLKO选择时钟频率为1.25MHz;LK3输出口的频率通过JP1(F_SEL1)、JP2(F_SEL2)、JP3(F_SEL3)及JP10(CLK3)来设置,输出频率对应的关系为:Fc=1.25MMHzX1/16X1/16X1/16X1/16=19.037HZ。CLK3所以设计十八分频器输出1HZ计数脉冲,VHDL文本如下(文本名:outclk_1hz.vhd):LIBRARYieee;USEieee.std_logic_1164.ALL;

USEieee.std_logic_unsigned.ALL;ENTITYoutclk_1hzISPORT(clr,clk:INstd_logic;——clk为时钟信号源产生频率作为输入out_clk0:BUFFERstd_logic);——out_clk0分频器输出的计数脉冲ENDoutclk_1hz;ARCHITECTUREdiv20OFoutclk_1hzISsignalcounter:integerRANGE0TO18;BEGINPROCESS(clk,clr)BEGINIF(clk='1'ANDclk'event)THENIFclr='0'THENcounter<=0;ELSIFcounter=18THENcounter<=0;out_clk0<=notout_clk0;ELSEcounter<=counter+1;ENDIF;ENDIF;ENDPROCESS;ENDdiv20;仿真结果如下(图1):Name Value'I50.0ns100.0ns150.0ns200.0ns250.0ns300.0ns350.0ns400.0ns450.0ns500.0ns550.0ns600.0ns650.0ns700.0ns750.0ns800.OnJWWWUWWWUWWWWWUWWWUWWWWclrelkJWWWUWWWUWWWWWUWWWUWWWW吨辭out_clkO0X1Y0Y1X2Y3Uy5X6Y7X8y9丫100X1Y0Y1X2Y3Uy5X6Y7X8y9丫10刖仃12灯3丫14刖叭1G阳7丫18丫叭1Y2^3UY5X6Y7Y8#9刖珈1阳2灯3划4佃刖歆17阳8曲(图1)2.十进制计数器模块(文件名:counter_10.vhd):LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEieee.std_logic_arith.ALL;ENTITYcounter_10ISPORT(clk,clr,en:INstd_logic clk计数时钟,clr同步清零端,en使能输入端

co:OUTstd_logic 进位输出q:OUTstd_logic_vector(0TO3));——计数输出ENDcounter_10;ARCHITECTUREjskzOFcounter_10ISSIGNALqs:std_logic_vector(0TO3);BEGINco<='1'WHEN(qs="1001"ANDen='1')ELSE'0';PROCESS(clk,clr,en)BEGINIF(clk'eventANDclk='1')THENIFclr='0'THENqsv="OOOO";——同步清零ELSIFen='1'THENIFqs="1001"THENqs<="0000";ELSEqs<=qs+1;ENDIF;ENDIF;ENDIF;ENDPROCESS;q<=qs;ENDjskz;仿真结果如下(图2):Name:enclrelkco裁q鲫qs图2)3•十六进制同步加法计数器模块(文件名:counter_60.vhd):LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEieee.std_logic_arith.ALL;ENTITYcounter_60ISPORT(clk,clr,en:INstd_logic;q:OUTstd_logic_vector(0TO6));ENDcounter_60;ARCHITECTUREjskzOFcounter_60ISSIGNALqs:std_logic_vector(0TO6);BEGINPROCESS(clk,clr,en)BEGINIF(clk'eventANDclk='1')THENIFclr='O'THENqsv="OOOOOOO";——clr='O',同步清零ELSIFen='1'THENIFqs="0111011"THENqs<="0000000";ELSEqs<=qs+1;ENDIF;ENDIF;ENDIF;ENDPROCESS;q<=qs;ENDjskz;仿真结果如下(图3):Name: ^ValuaO.Ons550.0ns 600.0ns 650.0ns 700.0ns 750.0ns 800.0ns 850.0ns 900.0ns 950.0ns 1Ous 1.05us 1.1us 1.15us 1.2usI ] ] ] ] t t t t ] ] ] ] I tenclrelk耶q酬qsDO■LnTumjTnjuiruTrLTLrLnjTrLruTnUTrLnjTrLrLnrLTLnrLnrLrLrLnjX25X26)(27X28X29)(30心炉p3)(34炉厲X37加8)(39140X"*2㈣【44X45X46X47:48^49炖炉加猝炉膵[56^57)(58)(5910X2E脸6淞7X28乂29X和心⑺X?3X?4悩X?6心X?8炳汁也牌加*45)(46)(47*48)(49㈣归汐X§3X§4X砧X§6归X§8御X1=1〉(图3)4.四位二进制可逆计数器(文件名:count2_4.vhd)模块:

LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcount2_4ISport(clk,en,updn:INstd_logic;——en使能输入端,updn可逆计数控制端q:OUTstd_logic_vector(0to3));ENDcount2_4;ARCHITECTUREjskzOFcount2_4issignalcount:std_logic_vector(0to3);BEGINq<=count;PROCESS(clk,en)BEGINIF(en='0')THENcount<="0000";ELSIF(clk'eventandclk='1')thenIFupdn='1'THENcount〈二count+'l'; updn='1',加1计数ELSEcount〈二count-'l'; updn='0',加1计数ENDIF;ENDIF;ENDPROCESS;ENDjskz;仿真结果如下(图4):Nameupdnen[^―elk昴q刖count(图4)5.计数器显示扫描分时选择模块(文件名:selcount.vhd):LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEieee.std_logic_arith.ALL;ENTITYselcountISPORT(clk1,reset:INSTD_LOGIC;count10,count2:INstd_logic_vector(3DOWNTO0);count60:INstd_logic_vector(6DOWNTO0);daout:OUTstd_logic_vector(3DOWNTO0);sel:OUTstd_logic_vector(2DOWNTO0));ENDselcount;ARCHITECTUREfunOFselcountISSIGNALcount:std_logic_vector(2DOWNTO0);BEGINsel<=count;PROCESS(clk1,reset)BEGIN——实现动态扫描IF(reset='0')THENcount<="000";ELSIF(clk1'eventANDclk1='1')THENIF(count>="110")THENcount<="000";ELSEcount<=count+1;ENDIF;ENDIF;CASEcountISWHEN"000"=>daout<="000"&count2(0);——从低位起输出四位二进制WHEN"001"=>daout<="000"&count2(1);WHEN"010"=>daout<="000"&count2(2);WHEN"011"=>daout<="000"&count2(3);WHEN"100"=>daout<=count60(3DOWNTO0);——输出六十进制

WHEN"101"=>daout(3)<='0';daout(2DOWNTO0)<=count60(6DOWNTO4);WHEN"110"=>daout<=count10(3DOWNTO0);——输出十进制WHENothers=>daout<="0000";ENDCASE;ENDPROCESS;ENDfun;仿真结果如下(图5):Name:clk1_z—reset逅芦countIOcount2逼芦count60daoutseicount(图5)6•共阴7段数码管译码器模块(文件名:bcd7.vhd):LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;entitybcd7isport(d3,d2,d1,d0:instd_logic;a,b,c,d,e,f,g:outstd_logic);end;architecturearc_bcd7ofbcd7issignaldin:std_logic_vector(3downto0);signaldout:std_logic_vector(6downto0);begindin<=d3&d2&d1&d0;process(din)begincasediniswhen"0000"=>dout<="1111110";when"0001"=>dout<="0110000";when"0010"=>dout<="1101101";when"0011"=>dout<="1111001";when"0100"=>dout<="0110011";when"0101"=>dout<="1011011";when"0110"=>dout<="1011111";when"0111"=>dout<="1110000";when"1000"=>dout<="1111111";when"1001"=>dout<="1111011";whenothers=>dout<="1111111";endcase;endprocess;a<=dout(6);b<=dout(5);c<=dout(4);d<=dout(3);e<=dout(2);f<=dout(1);g<=dout(0);endarc_bcd7;仿真结果如下(图6):1.总原理图(图7)(文件名:jsqled7kz.gdf):编译并进行引脚分配,最后器件编程,即:通过JTAG下载电缆线下载jsqled7kz.sof文件到FLEX器件。

(图7)2.元件清单元件序号型号主要参数数量备注EPF10K10LC84-3EPF10KK0〜K34拨动开关LED6〜led06共阴数码管五、安装与调试据原理连接硬件电路。动态扫描脉冲clk_200hz频率f=1.25MMHzXl/16X1/16X1/16=3O5.18HZ,接CLK2,计数脉冲clk_20hz接CLK3。接LED6〜ledO到段码控制端a〜g,接位选控制seiO〜sei2到selO〜sel2,en、clr、updn、reset分别接开关。检查接线正确无误后接通电源。六、性能测试与分析当clr置低电平时,系统清零;当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论