基于FPGA的快速加法器的设计与实现

基于FPGA的快速加法器的设计与实现
基于FPGA的快速加法器的设计与实现

基于FPGA的快速加法器的设计与实现

赵亚威1吴海波2

(1.沈阳理工大学,辽宁沈阳 110045;

2.东北大学,辽宁沈阳 110004)

E-mail: hb_0427@https://www.360docs.net/doc/1b14055980.html,

摘要:加法器是算术运算的基本单元,可以有多种实现结构,采用不同的结构实现其耗用的资源和运算的速度也各不相同。本文研究了基于FPGA的常用加法器的结构及其设计方法,对各自性能加以分析比较,在此基础上采用流水线结构设计了一个8bit的加法器。并在Xilinx 公司的ISE 5.2i 软件环境下, 采用VHDL和Verilog HDL 硬件描述语言进行了设计实现并使用Modelsim进行仿真验证,在此基础上对其性能进行了比较分析。实验结果表明流水线加法器的速度高于其它结构实现的加法器。

关键词:加法器、进位、FPGA、Verilog HDL、流水线

1. 引言

算术逻辑单元(ALU) 不仅能完成算术运算也能完成逻辑运算,是微处理器芯片中的一个十分重要的部件[3]。但是所有基本算术运算(加、减、乘、除)最终都可归结为加法运算,所以加法运算的实现显得尤为重要。对于多位加法操作来说,因为存在进位问题,使得某一位计算结果的得出与所有低于它的位都相关。为了减少进位传输所耗费的时间,提高计算速度,人们设计了多种类型的加法器,提出了很多实现加法器的设计方法,如行波进位加法器、快速行波进位加法器、超前进位加法器等。以上提到的都是并行加法器,此外还有串行加法器,其具有占用资源少、设计灵活等优点。

2. 常用加法器设计方法的分析比较

并行加法器中全加器的位数与操作数的位数相同,可同时对操作数的各位相加。影响运算速度的主要是传递进位信号的逻辑线路(即进位链)。接下来就上面提到的几种并行加法器加以分析比较。

2.1 行波进位加法器

N位行波进位加法器是将N个一位全加器串联进行两个N位数的相加,进位是采用串行进位的方法来实现的,即本级的C out作为下一级的C in参与下一位的加法运算[3]。这种加法器结构简单,但速度较慢,从其逻辑表达式: Sum i = A i⊕B i⊕C i,C i + 1 =A i B i + C i(A i⊕B i)可以看

- 1 -

出,串行进位链的总延迟时间与字长成正比,字长越长,延迟时间就越长。假设每一级全加器的延迟时间为dt ,则N位加法器的进位总延迟为Ndt。所以高性能设计中一般不用这种结构的加法器。

2.2 快速行波进位加法器

从Xilinx公司的Virtex-E器件的结构可以发现,虽然行波进位加法器由于速度太慢一般不被IC设计采用,但是在这种可编程逻辑器件上,行波进位加法器由于结构最为工整,占用资源少,且速度能够满足较多应用的需求,是最适宜实现的结构形式[4]。每一个Virtex-E的CLB包含两个SLICE,每个SLICE由两个LC构成,在每个SLICE中都有专用进位逻辑,从而为高速算术功能提供快速的算术进位能力[2]。算术逻辑中包括一个异或门,使每个LC单元可以实现一个一位全加器。与传统的全加器相比,它在结构上有一些适当的调整,这样一方面缩短了进位传递的时间(约为组合逻辑输出的10%),另一方面又可以在低级进位到达时,更快速地输出该位的和运算结果。此外,在FPGA内部同一列的两个SLICE间,还专门为进位传递保留了一条最短连线。正是基于这样的一种结构,Virtex-E器件可以实现快速的行波进位加法器:16位的行波进位加法器寄存器输入到输出的响应时间为4.3ns,64位的行波进位加法器为6.3ns[4]。

2.3 超前进位加法器

影响加法器速度的关键因素是进位信号产生和传递的时间,所以要想提高加法器的速度,就必须尽可能的缩短进位时间,即改进进位方式[3]。超前进位加法器的特点是各级进位信号同时产生,大大减少了进位产生的时间。在加法器进位计算的表达式C i + 1 = A i B i + C i(A i⊕B i)中,令P i = A i⊕B i ,G i = A i B i ,则有

C i + 1 = G i + C i P i 。各位进位产生的逻辑表达式可写为:

C1 = G1 + P1C0

C2 = G2 + P2G1 + P2P1C0

C3 = G3 + P3G2 + P3P2G1 + P3P2P1C0

从上面的表达式可知:所有位的进位都不依赖低位的进位,每一位的进位只依赖于输入的A、B 和C0 ,可以同时产生。若不考虑G i和P i的形成时间,则N位超前进位加法器的进位总延迟为dt ,与字长无关。但随着加法器位数的增加,C i的表达式会越来越长,电路结构会越来越复杂,而且将受到元器件扇入系数的限制,所以完全采用并行进位是不可能的,实际上通常采用分组并行进位来实现。即把N位字长分为许多小组(每组通常4 位),在组内实现超前进位,在组间既可采用行波进位,也可采用超前进位。一般地,把组内采用超前进位,组间行波进位的方式称为单级超前进位加法器;把组内、组间均采用超前进位的方式称为多级超前进位加法器[3]。

2.4 高速串行加法器

串行加法器利用多个时钟周期完成一个完整的加法运算,从而使占用的资源大幅度减少。为了使数字串行加法器具有更广泛的应用范围,设计的关键是要使电路达到尽可能高的工作频率,以取得高的数据吞吐量,从而满足系统其它部分的速度要求。在数字串行加法器中,字长为W的操作数被分为P个位宽为N(N能被W整除,P=W/N)的数字,然后从低位开始相加,

- 2 -

在P个时钟内完成加法操作。P个时钟周期称为一个采样周期。以N=2的数字串行加法器为例,如果输入操作数的字长为8那么串行加法器可以在4个时钟周期内完成加法运算。这个加法器只用了两个全加器的资源,比一般的8bit行波进位加法器小。数字串行加法器的控制也比较简单,输入移位寄存器完成并行—>串行转换功能,通过移位操作不断为加法器提供位宽为N 的操作数,输出移位寄存器完成串行—>并行转换,输出计算结果。对于特定的输入字长,通过选择不同的N可以实现速度、面积不同的数字串行加法器。这样,设计者可以根据实际情况加以选择,提高了设计的灵活性[5]。

3. 采用流水线结构实现的快速加法器

3.1 流水线结构

流水线的作用是提高硬件部件的使用率,减少指令的平均执行时间,从而增强了处理器的处理能力。流水线的流水线深度是指流水线中总的流水线的数目,也就是处理器可以并行处理多少条指令。流水线的每一个阶段称为流水步、流水步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等。一个流水阶段与另一个流水阶段相连形成流水线。指令从流水线一端进入,经过流水线的处理,从另一端流出。在流水线的每一个功能部件的后面都要有一个缓冲器,称为锁存器、闸门寄存器等它的作用是保存本流水段的执行结果。图1是一个三级流水线操作的示意图[1],在第N个指令取指时,前面一个(即第N-1个)指令正在译码,而第N-2个指令则正在执行。

图1 三级流水操作

3.2 基于流水线结构的加法器

并行加法器速度快,只有一级门延时,对于实现4位以下的加法器比较合适[2]。FPGA中每个逻辑单元规模小,其中实现组合逻辑的为4到5变量的查找表(LUT),当增加并行加法器的位数时,将受到查找表容量的限制,但是FPGA中具有上千个触发器,资源丰富,因此可以考虑在FPGA的设计中采用流水线结构,充分利用丰富的触发器资源从而大大提高加法器的工作速度。流水线结构将每一步运算都用寄存器暂存,尽管单个运算需要多个时钟周期才能得出结果,但由于操作数是不断加到运算输入端的,所以总的效果是每个加法运算平均耗费的时间等于锁存时钟的周期,即加法器的速度只受时钟速度的限制。

3.3 流水线加法器的实现

在ISE中使用Verilog HDL语言实现了一个8位加法器,分别采用了2级和4级流水线结构进行设计,下面分别给出了8位加法器的2级和4级流水线结构图:

- 3 -

图2 2级流水线8位加法器结构

图3 4级流水线8位加法器结构[1]

在ISE中进行选用Virtex-E器件xcv50e进行综合、翻译、映射和布局布线,最后通过Modelsim进行仿真验证。在实现过程中还通过约束编辑器对该设计加以全局约束,从而获得更高的速度。实验结果表明对于2级流水线设计,占用SLICE数为9(1%)个,允许的最大时钟频率为202.388MHz;对于4级流水线设计,占用SLICE数为24(3%)个,允许的最大时钟频率为240.732MHz。可见,流水深度越大加法器的速度越高,但速度的提高是以牺牲资源为代价的[2],性能(速度)和开销(资源消耗)是一对矛盾[6], 如何设计器件以提高性价比才是我们首要解决的问题。在2级流水线设计中布线延迟和逻辑延迟所占比重基本是各50%左右,而4级流水线设计中布线延迟所占的比重已经上升到60%,因此应当注意:虽然所采用的流水线加法器流水深度同运算速度在一定程度上是成正比的,但是随着流水深度的增加,布线延迟在总的延迟中所占的比重越来越大,逻辑延迟所占比重逐渐变小,总的延迟不一定减小,而资源耗费却会迅速增加[6]。

- 4 -

4. 结束语

本文对于应用FPGA器件进行加法运算设计进行了有益的探索,研究了几种常用的基于FPGA的加法器的实现结构,并着重讨论了基于流水线结构的加法器,对于流水线深度不同的加法器分别进行了仿真验证。通过试验结果得出流水深度并不是永远正比于运算速度,并且随着流水深度的增加资源耗费却会迅速增加的结论。当然我们在设计器件时应针对具体问题进行分析,根据系统的特定要求来合理地选择不同加法器以达到提高系统性能的目的。

参考文献

[1] 王金明,杨吉斌.数字系统设计与Verilog HDL[M].北京:电子工业出版社,2002 236-239

[2] 徐志军,徐光辉.CPLD/FPGA的开发与应用[M].北京:电子工业出版社,2002 236-240

[3] 安印龙,许琪等. 并行加法器的研究与设计[J].西安:晋中师范高等专科学校校报,2003,20(4):330-334

[4] 杨靓,徐炜等. FPGA上浮点加/减法器的设计[J].计算机工程与应用,2003,(2):24-25

[5] 钟信潮,薛小刚等. 高速数字串行加法器及其应用[J].电子技术应用,2004,(1):60-62

[6] 伞景辉,常青. 基于FPGA 的乘法器实现结构分析与仿真[J].微处理机,2004,(3):3-7

The Design and Implementation of High-Speed Adder

Based on FPGA

Zhao Yawei1 , Wu Haibo2

(1.ShenYang University of Technology,LiaoNing Shenyang 110045

2.Northeastern University, LiaoNing Shenyang 110004)

Abstract: Adder is the basic cell of arithmetic operation, many structures can be used to implement it, and the adder designed by different method consumes different number of resource and has a different speed respectively. This paper studies the structures and methods of adder based on the FPGA, analyses and compares the performance of each adders, moreover design an 8 bits adder based on the structure of pipeline. Carry out it by utilizing the Hard Describe Language (VHDL and Verilog HDL) and ISE software package V5. 2i from Xilinx and simulate it by Modelsim software, and evaluation and comparison the performance (area and speed) of it. The result of experiment indicates that the pipeline adder is faster others. Keywords: Adder,Carry,FPGA,Verilog HDL,Pipelining

作者简介:

赵亚威,女,1976年出生,沈阳工业学院应用技术学院教师,在读

硕士,研究方向电工理论新技术

- 5 -

吴海波,男,1978年出生,东北大学在读硕士,研究方向,大规模可编程逻辑器件设计

- 6 -

基于FPGA的计数器的程序的设计方案

基于FPGA的计数器的程序设计方案 1.1 FPGA简介 FPGA(Field-Progrmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了 原有可编程器件门电路数有限的缺点。 自1985 年Xilinx 公司推出第一片中大规模现场可编程逻辑器件(FP2GA) 至 今,FPGA 已经历了十几年的历。在这十几年的过程中,可编程器件有了惊人的发展: 从最初的1200 个可利用门,到今天的25 万可利用门,规模增大了200 多倍; FPGA 供应商也从Xilinx 的一枝独秀,到今天近20 个厂商的分庭抗争;FPGA 从单一的基于SRAM结构到今天各种结构类型的出现,都充分体现了可编程器件这一巨大市场的吸引力。FPGA 不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开 发周期短、开发软件投入少、芯片价格 不断降低。由于目前电子产品生命周期相对缩短,相近功能产品的派生设计增多 等特点,促使FPGA 越来越多地取代了ASIC 的市场,特别是对国内众多的科研单位来说,小批量、多品种的产品需求,使得FPGA 成为首选。 1.2 硬件描述语言VHDL特点 功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改。由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描

基于FPGA的电子抢答器的程序设计

基于FPGA的电子抢答器的程序设计 摘要 随着科学技术日新月异,文化生活日渐丰富,在各类竞赛、抢答场合电子抢答器已经作为一种工具得到了较为广泛的应用。顾名思义,电子抢答器是一种通过抢答者的指示灯显示、数码显示和警示显示等手段准确、公正、直观地判断出最先获得发言权选手的设备。 此次设计有4组抢答输入,每组设置一个抢答按钮供抢答者使用。电路具有第一抢答信号的鉴别和锁存功能。当第一抢答者按下抢答开关时,该组指示灯亮以示抢答成功。同时,电路也具备自锁功能,保证能够实现在一路成功抢答有效后,其他三路均不能抢答。本设计基于VHDL语言,采用FPGA为控制核心,并结合动手实践完成,具有电路简单、操作方便、灵敏可靠等优点。该四路抢答器使用VHDL硬件描述语言进行编程,分为七个模块:判断模块,锁存模块,转换模块,扫描模块,片选模块,定时报警模块和译码模块。编程完成后,使用QuartersII工具软件进行编译仿真验证。 关键词:VHDL,FPGA,四路抢答器,仿真

目录 1 概述 (1) 1.1 设计背景 (1) 1.2 抢答器现状 (1) 1.3 本论文主要完成的工作 (1) 1.4 设计心得 (2) 2 开发工具简介 (3) 2.1 VHDL语言简介 (3) 2.2 FPGA开发过程与应用 (4) 2.2.1 FPGA发展历程及现状 (4) 2.2.2 FPGA工作原理 (4) 2.2.3 FPGA开发流程 (5) 2.3 Quartus II软件 (6) 3系统设计 (8) 3.1 系统设计要求 (8) 3.2 系统设计方案 (8) 3.2.1 系统硬件设计方案 (8) 3.2.2 系统软件设计方案 (8) 3.3.3 系统原理详述 (10) 4 电路程序设计及仿真 (12) 4.1 抢答锁存模块设计 (12) 4.1.1 VHDL源程序 (12) 4.1.2 抢答锁存电路的模块 (13) 4.2 仿真 (14) 总结 (15) 致谢 (17) 参考文献 (18)

FPGA四路电子抢答器设计

课程设计报告 专业班级 课程 FPGA/CPLD原理及应用题目四路电子抢答器设计学号 姓名 同组人 成绩 2013年5月

一、设计目的 1.进一步掌握QUARTUSⅡ软件的使用方法; 2.会使用VHDL语言设计小型数字电路系统; 3.掌握应用QUARTUSⅡ软件设计电路的流程; 4.掌握电子抢答器的设计方法。 二、设计要求 1.系统总体设计 (1)设计一个可以容纳四组参赛队进行比赛的电子抢答器。 (2)具有第一抢答信号的鉴别和锁存功能。在主持人发出抢答指令后,若有参赛者按抢答器按钮,则该组指示灯亮,显示器显示出抢答者的组别。同时,电路处于自锁存状态,使其他组的抢答器按钮不起作用。 (3)具有计时功能。在初始状态时,主持人可以设置答题时间的初始值。在主持人对抢答组别进行确认,并给出倒计时记数开始信号以后,抢答者开始回答问题。此时,显示器从初始值开始倒计时,计到0时停止计数,同时扬声器发出超时警报信号。若参赛者在规定的时间内回答完问题,主持人可以给出计时停止信号,以免扬声器鸣叫。 (4)具有计分功能。在初始状态时,主持人可以给每组设置初始分值。每组抢答完毕后,由主持人打分,答对一次加1分,答错一次减1分。 (5)设置一个系统清除开关,该开关由主持人控制。 (6)具有犯规设置电路。超时抢答者,给予鸣喇叭警示,并显示规范组别。 2.设计方案 系统的输入信号有:各组的抢答按钮A、B、C、D,系统允许抢答信号STA,系统清零信号RST,计分时钟信号CLK,加分按钮端ADD、en,减分端SUB、sta,计时使能端en时钟信号clk,复位rst;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口可用a1、b1、c1、d1表示,四个组抢答时的计时数码显示控制信号,抢答成功组别显示的控制信号,各组计分显示的控制信号。整个系统至少有三个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块,其他功能模块(输出显示模块)。 3.如图为流程图: 开始→抢答→抢答鉴别→回答→加减分数→显示↑↑ 倒计时倒计时 犯规抢答或抢答后答题时间超时鸣喇叭警告。

推荐-基于FPGA的计数器的程序设设计 精品

郑州轻工业学院 电子技术课程设计 题目 _基于FPGA的计数器设计___ _________________________ 学生姓名 _ XXX_________________ 专业班级 _电子信息工程10-01班____ 学号 _5401001030XXX__________ 院(系)电气信息工程学院___ ____ 指导教师 _杜海明耿鑫____________ 完成时间20XX年06月22日_______

郑州轻工业学院 课程设计任务书 题目基于FPGA的计数器的程序设设计_______________ 专业、班级电子信息工程学号姓名 _____ 主要内容、基本要求、主要参考资料等: 主要内容: 要求学生使用硬件描述语言(Verilog 或者VHDL)设计基于FPGA的计数器的 源程序。实现如下功能:显示1个0-9999的四位计数器;四位七段数码管的译码与 显示。理解数码管的译码原理,同时需要做一个分频器,理解时钟分频的原理及意 义。 基本要求: 1、学会quartusII的使用,掌握FPGA 的程序设计方法。 2、掌握硬件描述语言语法。 3、程序设计完成后要求在quartusII中实现功能仿真。 主要参考资料: 1、. [M]..20XX,4 2、陈怀琛.MATLAB及在电子信息课程中的应用[M].北京:电子工业出版 社.20XX,1 完成期限:20XX.6.21—20XX.6.25 指导教师签名: ________________ 课程负责人签名: ___________________ 20XX年6月18日

目录

基于FPGA的计数器的程序设设计 摘要 本文介绍了一种基于FPGA的,由顶层到底层设计的数字频率计。本文主要包括该频率计的设计基础和实现方法以及译码与显示等内容,描述了它的设计平台、工作原理和软硬件实现。本设计主要有分频器、四位计数器、16位锁存器以及数码管显示电路。计数器设计采用VHDL硬件描述语言编程,极大地减少了硬件资源的占用,仿真与分析结果表明,该数字频率计性能优异,软件设计语言灵活,硬件简单,速度快。 关键词FPGA 计数器 VHDL

8路抢答器基于fpga解析

基于FPGA的多路数字抢答器的设计 摘要:本文主要介绍了以FPGA为基础的八路数字抢答器的设计,首先对各模块的功能进行分配,此次设计主要有七个模块,依次为分频模块、抢答模块、加减分模块、倒计时模块、设置倒计时模块、蜂鸣器模块和数字显示模块。主持人按下开始键可以实现抢答开始,选手号的显示,加减分模块,积分的显示,积分的重置,并启动倒计时模块;若有选手犯规或者倒计时记到五秒,停止倒计时,开启蜂鸣器,并为进入加减分模块做准备。此次设计程序用Quartus II12.0为软件开发平台,用Verilog语言来编写,使用模块化编程思想,自上向下,通过寄存器变量来控制各个模块的运行。本次设计采用FPGA来增强时序的灵活性,由于FPGA的I/O端口资源丰富,可以在此基础上稍加修改可以增加很多其他功能的抢答器,因此后期可塑性很强,因为核心是FPGA芯片,外围电路比较简单,可靠性强、运算速度高,因此便于维护,并且维护费用低。 关键词:FPGA、抢答器、倒计时、犯规报警、加减分、显示 目录 第一章绪论................. . (2) 第二章 FPGA原理及相关开发工具软件的介绍 (3) 2.1 FPGA的简介..... . (3) 2.1.1 FPGA的发展与趋势......... .. (3) 2.1.2 FPGA的工作原理及基本特点 (4) 2.1.3 FPGA的开发流程 (5) 2.1.4 FPGA的配置... . (5) 2.2 软件介绍............... .. (6) 2.2.1 Verilog HDL的介绍........... .. (6)

2.2.2 Quartus II软件.................... .. (7) 第三章数字抢答器系统设计方案和主要模块 (8) 3.1 功能描述及设计架构...... .. (8) 3.2 抢答器程序流程图以及各模块代码分析 (10) 3.2.1 抢答器程序结构及主程序流程图 (10) 3.2.2 秒分频模块 (15) 3.2.3 倒计时以及倒计时剩5S时报警模块...... 错误!未定义书签。 3.2.4 倒计时显示及倒数计时设置显示模块 (20) 3.2.5 选手号显示及违规报警模块 (26) 3.2.6倒计时设置模块 (30) 3.2.7顶层模块 (35) 3.3 硬件电路 (37) 3.3.1 按键电路图 (38) 3.3.2 数码管显示电路图 (38) 3.3.2 蜂鸣器电路图 (39) 第四章管脚分配及功能 (40) 第五章总结 (41) 参考文献 (418) 第一章绪论 1.1 课题研究背景 随着社会的发展,各种竞赛比赛日益增多,抢答器以它的方便快捷、直观反映首先取得发言权的选手等优点,深受比赛各方的辛睐,市场前景一片大好。另一方面随着电子科技的发展,抢答器的功能以及实现方式也越来越多,产品的可靠性以及准确性也越来越强。能够实现多路抢答器功能的方式有很多种,主要包括前期的数字电路、模拟电路以及数字电路与模拟电路组合的方式,但是这种方

基于fpga的计数器的程序设计

基于FPGA的计数器的程序设计 摘要 本文介绍了一种基于FPGA的,由顶层到底层设计的数字计数器。本文主要包括该计数器的设计基础和实现方法以及译码与显示等内容,描述了它的设计平台、工作原理和软硬件实现。本设计主要有分频器、四位计数器、16位锁存器以及数码管显示电路四个模块组成。计数器各模块设计采用VHDL硬件描述语言编程,极大地减少了硬件资源的占用,仿真与分析结果表明,该数字计数器性能优异,软件设计语言灵活,硬件简单,速度快。 关键词FPGA计数器VHDL分频器

目录 基于FPGA的计数器的程序设计 (1) 摘要 (1) 1 绪论 (3) 1.1 FPGA简介 (3) 1.2硬件描述语言VHDL简介 (3) 1.3开发工具Quartus II简介 (4) 2整体设计方案 (4) 3各功能模块设计及仿真 (5) 3.1分频器的设计 (5) 3.1.1分频器设计原理 (5) 3.1.2源程序及波形仿真 (6) 3.1.3分频器RTL 电路图 (7) 3.2计数器的设计 (7) 3.2.1分频器设计原理 (7) 3.2.2源程序及波形仿真 (8) 3.2.3 RTL 电路图 (11) 3.3锁存器的设计 (11) 3.3.1锁存器设计原理 (11) 3.3.2锁存器源程序及波形仿真 (12) 3.3.3锁存器RTL电路图 (13) 3.4显示部分的设计 (13) 3.4.1七段数码管显示原理 (13) 3.4.2七段数码管显示源程序及波形仿真 (15) 3.4.3七段数码管显示RTL 电路图 (16) 4系统顶层设计 (17) 4.1.1自顶向下的设计方法 (17) 4.1.2 顶层设计源程序及其仿真波形 (17) 4.1.3系统顶层RTL 电路图 (20) 5总结 (21) 参考文献 (22)

基于FPGA的四路抢答器的Verilog-HDL代码

module qiangda4(clk,clr,inputEn,add,stu,inputL1,inputL2,inputL3,inputL4,Led1 ,Led2,Led3,Buzzer); // 开始声明各个端口 //输入口 input clk,clr,inputEn,add,stu,inputL1,inputL2,inputL3,inputL4; //输出口 output [0:7] Led1; //倒计时时使用的LED控制端 output [0:7] Led2; //数码管控制端 output [0:7] Led3; //分数显示数码管控制端 output Buzzer; //蜂鸣器 //各个寄存器变量声明 reg [0:7] Led1; reg [0:7] Led2; reg [0:7] Led3; reg cnt=32'b0; reg Buzzer; reg score=4’hf;//分数显示寄存器 //配置寄存器,EnFlat是表明开始抢答的标志位 reg EnFlat=1'b0; //BuClk是蜂鸣器的标志位 reg BuClk=1'b0; //BuL是做蜂鸣器的延时用 reg [0:7]BuL=8'd0; //抢答选手标志位 reg answer=3’d0; //各组分数标志位 reg score1=4’d5; reg score2=4’d5; reg score3=4’d5; reg score4=4’d5; //------------初始化模块--------------- always @ (posedge clk)//捕捉时钟 begin //初始化各按键并开始抢答 begin if(inputEn==1'b0) begin //初始化各个标志位和参数

基于FPGA的定时器计数器的设计与实现

基于FPGA的定时器/计数器的设计与实现 摘要 本课题旨在用EDA工具与硬件描述语言设计一个基于Altera公司的FPGA 16位计数器\定时器,可对连续和非连续脉冲进行计数,并且计数器在具有计数定时功能基础上,实现简单脉宽调制功能和捕获比较功能。本设计采用QuartusII编译开发工具使用VerilogHDL 设计语言进行设计,并采用了由上而下的设计方法对计数器进行设计,体现了VerilogHDL 在系统级设计上自上而下设计风格的优点。本设计中采用了三总线的设计方案,使设计更加简洁与规范。本设计所有模块与功能均在Quartus II 7.0_1.4G_Liwz版本下通过编译与仿真,实现了定时器/计数器的设计功能。 关键词:VerilogHDL硬件描述语言;QuartusII;FPGA;定时器/计数器

FPGA-based timer / counter design and implementation This topic aims to use EDA tools to design a 16 bit counter \ timer based on Altera's FPGA by hardware descripe language, which can count continuous and discontinuous pulset, and the counter with the function of capture and PWM. This design uses VerilogHDL language and top-down design method to design the counter on QuartusII compile tool, the design reflect the advantages of VerilogHDL top-down design in system-level design. The design uses a three-bus design, which make design much more specifications and concise. The design and function of all modules are compiled and simulationed on the Quartus II 7.0_1.4G_Liwz versions, and achieve the timer / counter’s features. Key words: VerilogHDL hardware description language; QuartusII; FPGA; timer / counter

简易四路抢答器

单片机课程设计 预习报告 班级:建电141 姓名:付鹏鑫 学号:1412032031 设计题目:四位竞赛抢答器系统设计设计时间:2016.01.03~01.07 评定成绩: 评定教师:

目录 摘要 -------------------------------------------------------------------- 错误!未定义书签。 一、任务分析: -------------------------------------------------------------------------------- 3 二、总体方案: -------------------------------------------------------------------------------- 4 2.1 可行方案--------------------------------------------------- 错误!未定义书签。 2.2 方案设计--------------------------------------------------- 错误!未定义书签。 三、硬件设计: -------------------------------------------------------------------------------- 8 3.1 电路原理图 --------------------------------------------------------------------------- 8 1.AT89C51简介 ------------------------------------------------------------------------ 10 2.PCF8591简介 --------------------------------------------------------------------------- 9 3.RESPACK8及RX8简介 (12) 3.2 器件选择--------------------------------------------------- 错误!未定义书签。 四、软件设计: ---------------------------------------------------- 错误!未定义书签。 4.1程序处理流程 --------------------------------------------- 错误!未定义书签。 4.2 程序流程图 ----------------------------------------------- 错误!未定义书签。 4.3 程序介绍--------------------------------------------------- 错误!未定义书签。 五、调试过程: ------------------------------------------------------------------------------ 22 5.1 调试步骤----------------------------------------------------------------------------- 22 六、参考文献: ---------------------------------------------------- 错误!未定义书签。 错误!未定义书签。 摘要:抢答器作为一种工具,已广泛应用于各自智力与知识竞赛场合。本设计是基于C52单片机系统的四路抢答器。考虑到其限时回答功能,

基于FPGA的抢答器毕业设计.

摘要 本文介绍了一种采用EDA技术,在QuartusII工具软件环境下用VHDL语言编写的数码显示8路抢答器的电路组成、设计思路及功能。 抢答器同时供8名选手或8个代表队比赛,分别用8个按钮[1]~[8]表示。设置一个系统清除和抢答控制开关,该开关由主持人控制。抢答器具有锁存与显示功能,即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在七段数码管上显示选手号码。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。 系统主芯片采用EP2C35F484C8,由基本时钟发生电路模块,复位电路模块,键盘防抖动模块,键盘扫描模块,数码管驱动模块,报警频率选择模块组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,从而完成抢答器功能。 关键词:抢答器;硬件描述语言;可编程逻辑门阵列;

Abstract This article introduces an EDA technology tools in QuartusII environment using VHDL language digital display 8 answering device circuit design ideas and features. Responder same time for eight players or eight team competition, with eight buttons, respectively [1] ~ [8] said. Setting clear and answer in a system control switch, the switch control by the moderator. Responder has a latch and display, the player press the button, latch the corresponding number, speaker audible prompts, and seven-segment digital tube display in player numbers. Players answer in the implementation of the priority latch, first answer in player numbers has been maintained to host the system cleared. System main chip EP2C35F484C8, from the basic clock circuit module, reset the circuit module, keyboard judder module, the keyboard scan module, a digital control drive module, alarm frequency selection module. The compilation and simulation process is designed, in the programmable logic device to download verification, thus completing the Responder feature. Key words:Responder;Very Hardware Description Language; FPGA;

基于FPGA十进制同步计数器

十进制同步计数器 一、实验目的 1.学习十进制同步计数器的Verilog硬件设计 2.学会并掌握Quartus II软件的使用 3.学会并掌握modelsim仿真软件的使用 二、实验原理 进制计数器具有电路结构简单、运算方便等特点,但是日常生活中我们所接触的大部分都是十进制数,特别是当二进制数的位数较多时,阅读非常困难,还有必要讨论十进制计数器。在十进制计数体制中,每位数都可能是0,1,2,…,9十个数码中的任意一个,且“逢十进一”。根据计数器的构成原理,必须由四个触发器的状态来表示一位十进制数的四位二进制编码。 第2个计数脉冲来到后,其状态为0010。以下类推,可以得到如表1所示的状态表。但需注意:在第9个脉冲来到后,亦即计数器处于1001态时,低电平封住了F2的置1端,Q1的高电平又使K4=1,故第十个计数脉冲来到后,F2、F3状态不变,F1、F4同时置0,计数器跳过多余的6个状态,完成一次十进制计数循环。 表1 同步十进制加法计数器状态表 为了满足十进制加法计数器的原理,本实验用Verilog程序在FPGA/CPLD 中来实现。首先设计一个程序,程序为脉冲输入,设输出的四位码为q[3:0],十进制计数值为count,脉冲上升沿时q值+1,直到q=9时count=1,q置零重新开始计数直至下一个q=9,count=2,依次循环。

三、实验任务 1.根据实验目的编写verilog程序 2.将设计好的Verilog译码器程序在Quartus II上进行编译 3.对程序进行适配、仿真,给出其所有信号的时序仿真波形图(注意仿真波形 输入激励信号的设置)。本实验要求自己设置clr值,理解清零的意义 四、实验步骤: 1.建立工作库文件和编辑设计文文件 任何一项设计都是一项Project(工程),而把一个工程下的所有文件放在一个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的文件,而此文件夹将被EDA软件默认为Work Library(工作库),所以第一步先根据自己的习惯,建立个新的文件夹。 (1)新建文件夹:在E盘建立并保存工程,文件夹取名myproject,工程取名为cnt10_1 (2)输入源程序:打开Quartus II,选择菜单File-->New-->Design Files-->VerilogHDL File-->OK(如下图所示) 代码如下: module cnt10_1(clr, clk, q, cout); input clr, clk; output[3:0] q; output cout; reg[3:0] q; reg cout; always @(posedge clk) begin if (clr) q = 0; else begin if (q == 9) q = 0; else q = q + 1;

VHDL语言四人抢答器

中南林业科技大学 课程设计报告 设计名称:基于VHDL语言的四人抢答器姓名:杜涵学号:20134491 专业班级:电子信息工程一班 院(系):计算机与信息工程学院 设计时间:2015年12月8日 设计地点:东园22栋201

目录 一、设计题目……………………………………………… 二、设计要求……………………………………………… 三、设计目的……………………………………………… 四、设计背景……………………………………………… 五、使用工具……………………………………………… 六、设计原理……………………………………………… 七、设计结构……………………………………………… 八、原理图………………………………………………… 九、模块程序……………………………………………… 十、引脚分配………………………………………………十一、设计结果验证………………………………………十二、总结…………………………………………………

一、设计题目:基于VHDL语言的四路抢答器 二丶设计要求: 1、设计制作一个竞赛抢答器,每组受控于一个抢答开关,分别为S1, S2, S3, S4。 2、控制键K,用于控制整个系统清零, K=0,系统清零;抬起复位键时,K=1,抢答开始。 3、每答对一题计十分,每次答题时间不能超过60秒。 4、第一抢答者按下抢答按钮,对应的led灯点亮,同时数码管显示是第几位抢答者,并封锁其他各组的按钮,即其他任何一组按键都不会再使电路响应。与此同时,数码管开始显示60秒的倒计时。通过K键复位,开始下一轮抢答。 三、设计目的 1.通过设计竞赛抢答器的实例来体会设计实际产品的过程,在学好理论的基础上,提高动手实践能力。 2.学习怎样用vhdl语言来描述自己的设计思路,调试硬件后,能够使产品实现功能。 3.进一步掌握用vhdl语言编写数字电路。 4.在做课题过程中,掌握多位共阴极扫描显示数码管的驱动及编码,学会使用和调试硬件。

基于FPGA的二十四进制计数器

实验名称:二十四进制计数器二十四进制计数器

实验步骤或程序: 十进制计数器程序: library ieee; use ieee.std_logic_1164.all; entity count10 is port(ep,et,clk,nld,nrd: in std_logic; d: in std_logic_vector(3 downto 0); q:buffer std_logic_vector(3 downto 0); c:buffer std_logic ); end count10; architecture rtl of count10 is begin process(ep,et,clk,nld,nrd,d) begin if ep='1' and et='1' then if nrd='0' then q<="0000"; c<='0'; else if clk'event and clk='1' then if nld='0' then q<=d;

else case q is when"0000"=>q<="0001";c<='0'; when"0001"=>q<="0010";c<='0'; when"0010"=>q<="0011";c<='0'; when"0011"=>q<="0100";c<='0'; when"0100"=>q<="0101";c<='0'; when"0101"=>q<="0110";c<='0'; when"0110"=>q<="0111";c<='0'; when"0111"=>q<="1000";c<='0'; when"1000"=>q<="1001";c<='1'; when others=>q<="0000"; c<='0'; end case; end if; else q<=q; c<=c; end if; end if; else q<=q; c<=c; end if; end process; end rtl; 管脚设置: 二十四进制计数器:

基于fpga的四路抢答器课程设计报告

一、课题设计的基础和实验条件 1.工作基础 (1)数字电路,模拟电路的学习;对所需使用的芯片管脚及 功能的了解;掌握了基本的数字电路设计流程。 (2)学会使用MAX+PLUS 软件设计数字电路; 了解EDA实验开发系统。 2.实验条件 (1)提供有目标芯片:FPGA-型号EP7128SLC84-15的实验开发系统、数码显示器、二极管、三极管、钮子开关; (2)电路设计器件: AND4、NOT、D触发器等 二、设计目标 1. 4人抢答器(四名选手分别为:R1,R2,R3,R4); 2. 主持人启动及复位开关HT; 3. 七段显示码显示选手的编号; 4. 抢答器具有“互锁”功能; 三设计电路图及仿真 该设计属于较为复杂的中小规模数字系统设计,按照系统的功能要求和自顶向下的层次化设计思想,该抢答器可以分为三个模块,他们分别为:抢答器控制模块——IN,该模块用于控制选手及主持人的动作;编码模块——qiwei,用于将选手的编号编码以便用数码管显示输出; (1)抢答器控制模块IN的设计: 该模块在任意一位选手首先按下抢答键后,其输出高电平给D锁存器,并将输出结果送至编码器qiwei, 该模块的主持人按键HOST按钮可以实现系统的复位。其原理图为:

选手的输出信号发出之后,需要把输出转换为数字,故需要加一个七位译码器。(2)七位译码器的设计: 通过编程定义生成了一个七位译码器: 生成此七位译码器的程序如下:

(3)生成完整设计图: 两个模块进行连接即得到最终的实验电路图: (4)设计图的仿真: 对设计的电路进行仿真得到仿真图如下:

从仿真结果可以看出符合功能要求。 (5)连接引脚图: 根据设计图选择适当的引脚连接得到下图的引脚图

基于FPGA的环形计数器设计

龙源期刊网 https://www.360docs.net/doc/1b14055980.html, 基于FPGA的环形计数器设计 作者:段品凡郭昭利王彦博张哲曾健于海霞 来源:《电脑知识与技术》2019年第09期 摘要:设计一个能自启动的模8右移扭环形计数器和模4右移环形计数器,以Verilog语言进行程序编写,并设以FPGA应用设计为基础,使用Quartus Ⅱ进行仿真。 关键词:FPGA;Verilog;Quartus Ⅱ。 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2019)09-0217-02 在信息化时代的今天,无论是工厂的生产,还是日常生活,自动化的程度越来越高,在许多场合,人,已不再是必须主角,而代替人类完成诸多工作的是高度自动化的设备,而其中关键的一环便是计数器。 1 原理 1.1 FPGA简介 以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多數的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。 1.2 计数模块简介 此模块为本次设计的主模块,由两个小模块IC181模块(模8右移扭环形计数器模块)和IC182模块(模4右移环形计数器模块)组成,完成本设计的计数功能。其中,扭环形计数器又称约翰逊计数器,它具有电路结构简单,工作速度快且循环码等优点,因而应用较广。 2 总体设计 2.1 总体框图 2.2 总体流程图 3 具体设计

基于FPGA的计数器设计

一级建造师工程经济模拟题100道 得分规则:备选答案为ABCD四项的为单项选择题,每题1分,每题的备选项中,只有1个最符合题意:备选答案为ABCDE五项的为多项选择题,每题2分,每题的备选项中,有2个或2个以上符合题意,至少有1个错项。错选,本题不得分;少选,所选的每个选项得0.5分。 1、在工程经济学中,作为衡量资金时间价值的绝对尺度,利息是指( )。P2 A.占用资金所付出的代价 B.放弃使用资金所得的补偿 C.考虑通货膨胀所得的补偿 D.资金的一种机会成本 E.投资者的一种收益 2、利率是各国调整国民经济的杠杆之一。其高低首先取决于( )。P2 A.金融市场借贷资本的供求状况 B.借贷资本的期限 C.通货膨胀的波动影响 D.社会平均利润率的高低 3、下列关于利息和利率的说法中,正确的有( )。P2-3 A.利息是占用资金所付出的代价 B.利息能够促进企业加强经济核算 C.利率的高低取决于平均投资利润率的高低 D.利息是衡量资金时间价值的绝对尺度 E.利息和利率是以信用方式动员和筹集资金的动力 4、在工程经济分析中,通常采用( )计算资金的时间价值。P5 A、连续复利 B、间断复利 C、连续单利 D、瞬时单利 5、关于现金流量图绘制规则的说法,正确的有( )。P5 A.横轴为时间轴,整个横轴表示经济系统寿命期 B.横轴的起点表示时间序列第一期期末 C.横轴上每一间隔代表一个计息周期 D.与横轴相连的垂直箭线代表现金流量 E.垂直箭线的长短应体现各时点现金流量的大小 6、要正确绘制现金流量图,必须把握好现金流量的要素主要包括( )。P6 A.现金流量的时间点 B.现金流量的大小 C.现金流量的运动状态 D.现金流量的方向 E.现金流量的作用点 7、现金流量的分布情况,说明( )。P8 A.从收益方面来看,获得时间越早,数额越多,其现值越大 B.从收益方面来看,获得时间越早,数额越少,其现值越大 C.建设项目早投产,早获收益,多获收益,才能达到最佳经济效益

基于FPGA技术实现智能抢答器的设计

河北工业大学城市学院 毕业设计说明书 作者:陈厚黎学号: 098063 系:信息工程系 专业:电子科学与技术 题目:基于FPGA技术实现智能抢答器的设计指导者:伍萍辉教授 (姓名) (专业技术职务) 评阅者: (姓名) (专业技术职务) 年月日

目次 1引言............................................................................................................................................. - 1 -1.1 本课题的发展现状................................................................................................................ - 1 -1.2 本课题研究的目的和意义.................................................................................................. - 1 - 1.3、实现方法概述...................................................................................................................... - 2 - 2 基本应用电路设计................................................................................................................ - 5 -2.1 抢答器设计基本要求.......................................................................................................... - 5 -2.2 硬件电路设计........................................................................................................................ - 6 - 2.3 软件程序设计........................................................................................................................ - 6 - 3 系统总体电路图...................................................................................................................... - 18 - 4 编程及测试.............................................................................................................................. - 19 -结论.......................................................................................................................................... - 20 -参考文献................................................................................................................................ - 21 -致谢.......................................................................................................................................... - 22 -附录.............................................................................................................................................. - 23 -

verilog_hdl_fpga抢答器

FPGA期末结业论文基于FPGA&VerilogHDL的四路抢答器院系:物理与电子学院 专业:电子信息科学与技术 任课教师: 学号: 姓名: 2013年12月

目录 (0)摘要 (2) (1)引言 (3) 1.1关于课程设计 (3) 1.1.1课程设计目的 (3) 1.1.2课程设计内容 (3) 1.2开发工具简介 (4) 1.2.1 EDA技术 (4) 1.2.2 硬件描述语言-Verilog HDL (4) 1.2.3 Verilog HDL设计流程 (5) 1.2.4 FPGA基本特点 (5) 1.2.5 FPGA工作原理 (5) (2)概述 (5) 2.1 设计过程 (5) 2.1.1系统设计要求 (5) 2.1.2系统设计方案 (6) (3)系统设计 (6) 3.1系统组图 (6) 3.2系统主源程序 (8) (4)仿真综合 (10) (5)结论 (13) (6)参考文献 (13) (7)附录 (13)

0摘要 抢答器是在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答者的机器。电子抢答器的中心构造一般都是由抢答器由单片机以及外围电路组成。 本设计是以四路抢答为基本概念。从实际应用出发,利用电子设计自动化( EDA)技术,用可编程逻辑器件设计具有扩充功能的抢答器。它以Verilog HDL硬件描述语言作为平台,结合动手实验而完成的。它的特点是电路简单、制作方便、操作简单、方便、性能可靠,实用于多种智力竞赛活动。本抢答器的电路主要有四部分组成:鉴别锁存电路、FPGA主芯片EP1C3T144C8电路、计分电路以及扫描显示模块的电路,并利用Quartus II工具软件完成了Verilog HDL源程序编写和硬件下载。这个抢答器设计基本上满足了实际比赛应用中的各种需要。在实际中有很大的用途。 关键词:抢答器 Quartus II Verilog HDL EP1C3T144C8

相关文档
最新文档