您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 基于FPGA的篮球-记分器设计
1第1章前言1.1产品现状与发展作为每场篮球赛的必备品,比赛的记分器的质量显得尤为重要。目前使用的记分器大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序不稳定,系统的可靠性能比较差。基于现场可编程逻辑门阵列FPGA器件的记分器,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率以及使用成本。1.2FPGA简介FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程。需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。有必要检查和修改的地方有RTL级描述、系统方案、约束和测试激励等。一般情况下,对RTL级的描述即原理图或者HDL设计代码的修改最多也最有效。修改后要重新走一遍流程。有时要反复修改,经过多次这样的修改才能完成最后的设计。FPGA的设计流程和相关概念说明如下:库:指FPGA器件厂家提供的工艺库和EDA工具提供的标准通用库(如IEEE库等)。工艺库中有各种宏功能模块和基本功能单元,含有他们的行为级模型、门级模型、布线模型等信息。需要说明的是,系统行为仿真和RTL级功能仿真有时要用到某种功能模块,例如RAM模型。对于RAM模型的控制信号,不同的厂家其规定不一定相同,如写使能信号,有的厂家规定高电平有效,有的厂家规定低电平有效。其实,在厂家提供的工艺库中,RAM模型有行为级模型、门级模型、版图级模型等。而行为级模型只是规定其功能,无延时信息,跟工艺无关,但门级模型和版图级模型跟工艺密切相关。解决的方法是系统行为仿真时可以使用高级语言自己建立一个模型或者调用厂家库中提供的行为级模型,功能仿真时调用行为级模型,时序仿真时调用门级模型。测试激励:指测试文件,他调用FPGA设计的顶层模块,同时产生顶层模块需要的输入信号,称之为激励信号,使用行为描述即可,不要求可综合。仿真时他作为最顶层的文件,从而可以观察FPGA的输出是否正确。所有的仿真都可使用同一个测试激励。约束:指对逻辑综合和布局布线时的约束。包括器件型号、速度、面积、功耗、引脚分配、时钟网络资源的分配、模块在器件中的定位等约束。一部分在软件中设置,一部分以约束文件的形式存在。1.3自上而下(TOPDOWN)的设计方法2自上而下的设计方法是现代电子系统的新型设计策略,它从设计的总体要求出发,自上而下地逐步从系统数学模型的设计与仿真,到数据流级的设计与仿真,选择系统设计方案,最后完成系统硬件的整体设计。VHDL的自上而下的设计方法不仅体现在它的基本结构由描述外视特性的实体与描述内视行为和结构的结构体构成,同一实体可以有一个以上的结构体,以便设计方案的选择,还体现在系统硬件设计过程的三个层次:行为级描述与仿真、RTL级描述与仿真、逻辑综合与门级仿真。逻辑综合与所使用的逻辑综合工具有关,由逻辑综合优化工具生成具体的门级逻辑电路的EDIF(ElectronicDesignInterchangeFormat)网表。EDIF网表是一种标准接口,它是一个以ASCII字符为基础的中间互换格式,被大多数供应商提供的CAE/CAD系统所支持。半导体制造厂基于这种网表生成ASIC芯片的制造工艺,FPGA则基于这种网表生成用以配置FPGA芯片的位流文件。这三种仿真贯穿系统硬件设计的全过程,从而可以在系统设计早期发现设计中存在的问题,与传统的自下而上的后期仿真相比大大缩短系统的设计周期,并且利于方案的综合评价与选取。这是用VHDL语言设计系统硬件的最突出的优点。1.4设计语言、仿真平台与开发系统(1)硬件描述语言篮球记分器的设计采用了功能强大的通用硬件描述语言VHDL,它具有很强的行为描述能力,设计方法灵活,可以支持自顶向下(TopDown)和基于库(Library-Based)的设计方法,硬件描述与具体的工艺技术和硬件结构无关,能轻易地改变设计的规模和结构,标准、规范易于共享与复用,易于向ASIC移植。(2)MAX+plusII软件开发工具本设计采用的软件开发工具是美国Altera公司的MAX+plusII,它支持多种设计输入方法,包括原理图输入、文本输入(如AHDL,VHDL,VerilogHDL文本文件)和第三方EDA工具输入文件(如EDIF,HDL,VQM文件),利用该工具所配备的编辑、编译、仿真综合、芯片编程等功能,可将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如FPGA芯片),做成ASIC芯片。(3)EDA实验开发系统设计中采用的EDA实验开发系统,主要用于提供可编程逻辑器件的下载电路及EDA实验开发的外围资源,供硬件验证用。一般包括:①实验或开发所需的各类基本信号发生模块;②FPGA/CPLD输出信息显示模块;③监控程序模块;④目标芯片适配座以及上面的FPGA/CPLD目标芯片和下载电路。[2]1.5用MAX+plusII进行系统开发的设计流程(1)编写VHDL程序(使用VHDLFile);(2)编译VHDL程序(使用Compiler);(3)仿真验证VHDL程序(使用WaveformEditor,Simulator);(4)进行芯片的时序分析(使用TimingAnalyzer);(5)安排芯片管脚位置(使用FloorplanEditor);(6)下载程序至芯片(使用Programmer)。3第2章系统总体设计2.1系统设计要求(1)通过开关按钮,实现每次按键可以加1分、2分、3分以及减1分、2分、3分得功能;(2)通过六位BCD-7数码管分别显示两队每场比赛总得分记录显示功能;(3)由六位BCD-7数码管在切换计时方式的情况下,实现每节12分钟倒计时的功能;(4)通过蜂鸣器用以实现每节结束后的鸣笛声,以示本节比赛结束;(5)实现每次进攻的24秒的倒计时功能;(6)实现每次进球后24秒立刻重新倒计时的功能;(7)鉴于数码管数量有限,将通过显示切换选择电路,实现不同电路的显示功能。2.2系统设计方案的提出方案一:采用数字电路控制。虽然采用数字篮球记分器电路的好处是设计简单,但是由于其是纯电路实际,在系统运行时,延时会比较严重。方案二:通过单片机实现,可以采用80C51单片机来实现比赛记分。虽然有灵活的设计和丰富的IO端口,但是单片机设计的缺点是程序运行时容易出现跑飞现象。通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,但是由于所学知识不能将其有效的应用,现有环境不能满足,而且单片机的记分器有一定的不足之处,在运行时程序有时会产生PC指针错误,还有基于现在所学知识的应用,所以基于以上比较提出了第三种方案。方案三:利用FPGA设计篮球记分器,其成本低,设计方便(有相应的开发板),现有资源充足,实现比较容易,更利于系统的维护改进和升级,可靠性更高,更安全。通过以上比较描述,本设计采用基于FPGA的篮球记分器设计方案。4第3章系统详细设计3.1分频器电路的设计[1]分频器作为电路时间的正常显示驱动部分。分频器在本电路中起到为12分钟倒计时(60秒倒计时)、24秒倒计时等电路提供脉冲信号,更为重要的是1KHZ为数码管的动态显示提供合适的频率。本设计采用的分频比为1:1000。引脚功能图如图3.1所示:图3.1分频器的引脚功能图引脚功能:CLK3为脉冲输入端,输入1000HZ脉冲。Q为输出端,输出为1HZ。VHDL程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYFEN1000ISPORT(CLK3:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDFEN1000;ARCHITECTUREONEOFFEN1000ISSIGNALA:STD_LOGIC;BEGINPROCESS(CLK3)VARIABLECNT:INTEGERRANGE0TO499;BEGINIFCLK3'EVENTANDCLK3='1'THENIFCNT=499THENCNT:=0;A=NOTA;ELSECNT:=CNT+1;ENDIF;ENDIF;Q=A;ENDPROCESS;ENDONE;3.2计数译码显示电路的设计[1]一般情况计数器是由计数脉冲信号(CLK)和控制信号作为输入信号,计数值和进位信号作为输出信号。控制信号除了复位信号(RES)之外,还有使能信5号,一般控制器的信号还有一个或者几个,他们是随着优先级进行控制,由高到低进行循环控制。本电路采用六位二进制加法计数器,为数码管的显示提供动态扫描电路,并为选择计数提供共同的可能。引脚功能图如图3.2所示:图3.2计数器的引脚功能图引脚功能:CLK1是脉冲输入端,为电路提供脉冲信号。Q是输出端,为后面的数码管显示提供一个动态扫描。VHDL程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT6IS;PORT(CLK1:INSTD_LOGIC;Q:OUTSTD_LOFIC_VECTOR(2DOWNTO0));ENDCNT6;ARCHITECTUREABBOFCNT6ISSIGNALQ_TEMP:STD_LOGIC_VECTOR(2DOWNTO0));BEGINPROCESS(CLK1)BEGINIF(CLK1’EVENTANDCLK1=’1’)THENIFQ_TEMP=”101”THENQ_TEMP=”000”;ELSEQ_TEMP=Q_TEMP+1;ENDIF;ENFIF;Q=Q_TEMP;ENDPROCESS;ENDABB;3.3BCD-7段数码管显示译码电路的设计[1]BCD-7段译码器的输入是4位BCD码,输出是数码管各段的驱动信号,也称4-7译码器。例如,当输入8421BCD码DCBA=0100时,就会显示4,同理,根据组成0-9这10个字形的要求可以列出8421BCD-7段译码器的显示。本电路驱动数码管显示比分和时间,更是动态扫描的组成部分。引脚功能图如图3.3所示:6图3.3BCD-7段译码引脚功能图该模块是数码管显示模块,Y是输入端,主要显示倒计时或者比分。LED是输出端,实现数码管显示功能。VHDL程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYBCD7ISPORT(Y:INSTD_LOGIC_VECTOR(3DOWNTO0);LED:OUTSTD_LOGIC_VECTOR(0DOWNTO6));ENDBCD7;ARCHITECTUREONEOFBCD7ISBEGINPROCESS(Y)BEGINIFY=0000THENLED=1111110;ELSIFY=0001THENLED=0110000;ELSIFY=0010THENLED=1101101;ELSIFY=0011THENLED=1111001;ELSIFY=0100THENLED=0110011;ELSIFY=0101THENLED=1011011;ELSIFY=0110THENLED=1011111;ELSIFY=0111THENLED=1110000;ELSIFY=1000THENLED=1111111;ELSIFY=1001THENLED=1111011;ELSELED=0000000;ENDIF;ENDPROCESS;ENDONE;3.4数据计分显示电路
本文标题:基于FPGA的篮球-记分器设计
链接地址:https://www.777doc.com/doc-4691199 .html