基于FPGA的四路抢答器的Verilog-HDL代码
基于FPGA的四路抢答器
北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:竞赛抢答器作者所在系部:电子工程系作者所在专业:电子信息工程作者所在班级:B10212作者姓名:郭思华指导教师姓名:胡辉完成时间:2012-12-16内容摘要EDA技术是现代电子信息工程领域的一门新技术,他是先进的计算机工作平台上开发出来的一套电子系统设计的软硬件工具,并设计先进的电子系统设计方法。
本文介绍了以FPGA为基础的四路抢答器的设计,此次设计是一个有4组抢答输入,并具有抢答计时控制,到时报警以及时间显示等功能的通用型抢答器。
此次设计它以VHDL硬件描述为平台,结合动手实践完成。
该抢答器分为五个模块:抢答模块、计时模块、选择模块,位循环模块和译码模块。
利用QuartusⅡ工具软件完成率编译仿真验证。
关键词EDA、可编程逻辑器件、计数器、显示器目录一概述 (1)二方案设计与论证 (1)三单元电路程序设计及其功能验证 (2)(一)抢答锁存模块的设计 (2)(二)计时模块的设计 (4)(三)数据选择模块的设计 (5)(四)译码模块的设计 (6)(五)位循环模块的设计 (8)四完整电路设计与分析 (9)(一)主电路图 (9)(二)时序仿真图 (9)(三)芯片引脚分布图 (10)五性能测试与分析 (10)六实验设备 (10)七心得体会 (10)八参考文献 (11)课程设计任务书一、概述抢答器主要由抢答模块、计时模块、选择模块,位循环模块和译码模块组成。
在整个抢答器中主持人在抢答前设置好抢答时间,在复位开始按键按下后,抢答器开始倒计时,若在计时时间内无人抢答,则抢答器报警提示,若在计时过程中有人抢答,则数码管显示第一个抢答的人的编号,同时停止计时。
抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。
二、方案设计与论证将该任务分成五个模块进行设计,分别为:抢答器抢答模块、抢答器计时模块、位循环模块、译码模块和选择模块。
基于FPGA平台的四位抢答器设计
现代电子系统设计综合题目——抢答器班级:电子信息工程(4)班姓名:尹燕宁学号:07090403日期:2011-12-14合作者:王启俊按照抢答器的设计要求,本设计主要实现以下基本功能:(1) 抢答器可以容纳四组参赛队进行抢答。
(2)系统复位后进入抢答状态,抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警。
(3)能显示抢答台号,且一组抢答后,则不接纳其他组抢答。
根据其设计要求,经过仔细试验和比较开始时所设想的两种方案,采用了以下方案以满足要求:倒计时模块应用动态显示方法显示两位变化的数字,倒计时过程中无人抢答则在计时结束后触发bell 信号发出报警声表示超时,有人抢答时则首先按下按钮的人通过一个stop信号屏蔽掉其他人的抢答信号,且不再计时。
在具体实现方案时,根据给定的电子综合设计实验箱的模块和已有元件的限制,对方案进行了如下调整和补充:首先是进行时钟信号分频,由给定的50MHz的时钟分成1Hz,以实现按秒倒计时;其次是倒计时显示的两位数字,由于只有一个静态显示数码管且被用于显示抢答台号,所以必须运用动态显示来进行两位数字的显示和控制;最后是复位后的初值设定,以使上一次抢答的结果不会影响下一次的抢答过程,增加电路的稳定性。
经过仿真以及实验,本设计能够圆满完成设计要求,且具有电路简洁、方案易懂、操作方便、抗干扰性强等特点,经过适当的轻微改造即可作为实际比赛时的四组抢答器,效果良好。
第一章方案的论证与设计第二章理论计算第三章电路图及相关设计文件第四章仿真与测试分析第五章设计总结第六章参考文献第七章附件(含完整电路图、VHDL设计文件)第一章方案的论证与设计为便于进行电路的方案设计和模块化设计,首先根据要求画出实现抢答器功能的系统框图如下所示:根据其设计要求,按照现有的知识水平和实验设备,提出了以下两种实现抢答器的方案:(一)倒计时部分采用静态显示,方便简单。
四人抢答部分根据抢答信号的高低来判断是否继续倒计时并且屏蔽掉其他后来的抢答信号。
verilog--4路抢答器设计-带30s倒计时
四路抢答器一、程序module qiangda4(clr,clk,input1,input2,input3,input4,seg,clockin,scan,LED);input clr,clk,input1,input2,input3,input4;output [7:0] seg; //7段数码管数据output [7:0] scan; //数码管位选output [3:0] LED; //输出LED灯指示output clockin; //蜂鸣器reg [7:0] seg;reg [7:0] scan;reg [3:0] LED;reg clockin;reg [3:0] data;reg input_flag,count_flag;reg [14:0] count1;reg [8:0] count2;reg [3:0] LED_N;//reg clock_flag;reg div1khz,div1hz;reg [2:0] cnt;reg [3:0] dat;//reg [7:0] data_count;reg [3:0] count_one,count_ten;initial count_one='d0; //初始化initial count_ten='d3;initial data=4'b0000;initial LED_N=4'b1111;//-------------fenping分频1khz-----------------------------------always @(posedge clk )beginif(count1=='d25000)begin div1khz<=~div1khz;count1<=0;endelsebegin count1<=count1+1'b1;endend//-------------fenping--1hz-------------------------------always @(posedge div1khz)beginif(count2=='d500)begin div1hz<=~div1hz;count2<=0;endelsebegin count2<=count2+1'b1;endend//----------------------------------------------------------always @(posedge div1hz or negedge clr)beginif(!clr)begincount_one<='d0;count_ten<='d3;count_flag<=1'b0;endelse if((!input_flag)&(!count_flag))begin if(count_one=='d0&&count_ten=='d0)begin count_flag<=1'b1;endelse if(count_one=='d0)begin count_one<=4'b1001;count_ten<=count_ten-1'b1;endelsebegin count_one<=count_one-1'b1;endendelsebegin count_one<=count_one;count_ten<=count_ten;endend//-----------------------------------------------------------always @(posedge clk ) //or input1 or input2 or input3 or input4 beginif(!clr)beginLED_N<=4'b1111;//clock_flag<=1'b0;input_flag<=1'b0;data<=4'b0000;endelse if((!input_flag)&(!count_flag))beginif(input1==0)begindata<=4'b0001;LED_N<=4'b0111;input_flag<=1'b1;endelse if(input2==0)begindata<=4'b0010;LED_N<=4'b1011;input_flag<=1'b1;endelse if(input3==0)begindata<=4'b0011;LED_N<=4'b1101;input_flag<=1'b1;endelse if(input4==0)begindata<=4'b0100;LED_N<=4'b1110;input_flag<=1'b1;endelsebegindata<=data;LED_N<=LED_N;input_flag<=input_flag;endendend//-------------led灯及蜂鸣器--------------------------------------------------- always @(posedge clk)beginLED<=LED_N;clockin<=div1khz&(input_flag|count_flag);//dat<=data;end//--------------shu ma guan sao miao数码管扫描--------------------------------- always @(posedge div1khz)beginif(cnt=='d3)begin cnt<=0;endelsebegin cnt<=cnt+1'b1;endend//-----------------------------------------------------always @(cnt,data,count_one,count_ten)begincase(cnt)//3'b000 : begin scan<=8'b01111111;end3'b001 : begin scan<=8'b10111111;dat<=data;end //选手编号3'b010 : begin scan<=8'b11011111;dat<=count_one;end //倒计时3'b011 : begin scan<=8'b11101111;dat<=count_ten;enddefault : begin scan<=8'bx;dat<=4'bx;endendcaseend//--------------------------------------------------------always @(dat)begincase(dat)4'b0000 : seg[7:0]<=8'b11000000;4'b0001 : seg[7:0]<=8'b11111001;4'b0010 : seg[7:0]<=8'b10100100;4'b0011 : seg[7:0]<=8'b10110000;4'b0100 : seg[7:0]<=8'b10011001;4'b0101 : seg[7:0]<=8'b10010010;4'b0110 : seg[7:0]<=8'b10000010;4'b0111 : seg[7:0]<=8'b11111000;4'b1000 : seg[7:0]<=8'b10000000;4'b1001 : seg[7:0]<=8'b10010000;4'b1010 : seg[7:0]<=8'b10001000;4'b1011 : seg[7:0]<=8'b10000011;4'b1100 : seg[7:0]<=8'b11000110;4'b1101 : seg[7:0]<=8'b10100001;4'b1110 : seg[7:0]<=8'b10000110;4'b1111 : seg[7:0]<=8'b10001110;default : seg[7:0]<=8'bx;endcaseendendmodule二、框图三、设计思路四路抢答,有30s倒计时,当有人抢答时,数码管显示对应选手编号,同时对应LED灯亮,蜂鸣器响起,此时其他选手抢答无效。
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 EP1C3T144C81引言硬件描述语言 Hardware Description Language 是硬件设计人员和电子设计自动化 EDA 工具之间的界面。
基于fpga技术的智力抢答器设计
毕业论文任务书毕业设计开题报告摘要抢答环节经常出现在竞赛、文体娱乐等活动中,在活动中抢答是一种生动活泼的教育形式和方法,它通过抢答和必答方式引起参赛者和观众的兴趣,并能在短时间内,增加人们的科学知识和生活知识。
为了在比赛活动中,准确、公正、直观地判断出第一抢答者,通常需要一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者并进行抢答、计分等功能。
所以,研究智力抢答器具有较强的实际意义。
本次设计在EDA开发平台上基于FPGA运用QuartusⅡ7.2软件和VHDL语言进行设计,进行了系统需求分析、系统的总体规划、各个模块设计及顶层文件的设计,实现了比赛中的智力抢答功能,其中包括:第一抢答鉴别功能;抢答信号输出模块;抢答计分功能;抢答以及答题倒计时功能;犯规报警功能以及分数、时间台号显示等功能。
因此本设计具有电路简单、可靠性强、运算速度高等特点。
随着相关设备的提高,我们可以考虑将抢答器的功能进行扩展,扩展成为功能更加全面的智力抢答器。
关键词:四人抢答器数码显示动态显示信号封锁犯规报警AbstractResponder links often appear in the race, sports and entertainment activities, in activities, answer in a lively and educational forms and methods, it way through the Responder and will answer participants and the audience's interest aroused, and can in a short time,to increase scientific knowledge and life knowledge.In order to match activities, accurate, fair and visually determine the first answer in person, usually a Responder, via digital display, lighting and sound and other means to direct the First Responder, and to answer in person, namely classification function.Therefore, research intelligence Responder has strong practical significance.The design of the EDA development platform FPGA using Quartus Ⅱ7.2 based software design and VHDL languages, for the system requirements analysis, system of overall planning, design and top-level documentation of each module, design and implement a game of intelligence Responder functionThese include: First Responder identification function; answer in scoring function; answer in and answer the countdown function; foul alarm function as well as scores, time, station number display.Therefore, this simple circuit design, reliability, high operation speed characteristics.With the college laboratory boxes and other equipment increased, we can consider the design to extend the functionality of answering device, extending a more comprehensive intelligence functions Responder.Key Words:Four people vie to answer first Digital demonstration Dynamic demonstration Signal blockade Violates a regulation the warning目录目录 (7)第1章绪论 (9)1.1 设计研究的相关背景 (9)1.2 设计研究的重要性 (9)1.3 国内外研究现状 (10)第2章实现工具简介 (11)2.1 FPGA简介 (11)2.2 QuartusⅡ的概况 (12)2.3 硬件描述语言的概述 (13)第3章系统软件 (15)3.1 设计任务 (15)3.1.1 方案拟定 (15)3.1.2 模块的划分 (17)3.2 抢答器鉴别模块 (17)3.2.1 抢答鉴别模块VHDL程序设计关键代码 (17)3.2.2 抢答鉴别模块元件图 (17)3.2.3 抢答鉴别模块仿真 (18)3.3 抢答信号输出模块 (18)3.3.1 抢答信号输出模块VHDL程序设计关键代码 (18)3.3.2 抢答信号输出模块元件图 (18)3.3.3 抢答信号输出模块仿真 (19)3.4 抢答计时模块 (19)3.4.1 抢答计时模块VHDL程序设计关键代码 (19)3.4.2 抢答计时模块元件图 (19)3.4.3 抢答计时模块仿真 (20)3.5 答题计时模块 (20)3.5.1 答题计时模块VHDL程序设计关键代码 (20)3.5.2 答题计时模块元件图 (21)3.5.3 答题计时模块仿真 (21)3.6 防抖动电路模块 (22)3.6.1 防抖动电路模块VHDL程序设计关键代码 (22)3.6.2 防抖动模块元件图 (23)3.6.3 防抖动模块仿真 (23)3.7 抢答计分模块 (24)3.7.1 抢答计分模块VHDL程序设计关键代码 (24)3.7.2 抢答计分模块元件图 (25)3.7.3 抢答计分模块仿真 (26)3.8 分频模块 (26)3.8.1 分频模块VHDL程序设计关键代码 (27)3.8.2 分频模块元件图 (27)3.8.3 分频模块仿真 (27)3.9 抢答显示模块 (28)3.9.1 抢答显示模块VHDL程序设计关键代码 (28)3.9.2 抢答显示模块元件图 (29)3.9.3 抢答显示模块仿真 (29)3.10 抢答报警模块 (30)3.10.1 抢答报警模块VHDL程序设计关键代码 (30)3.10.2 抢答报警模块元件图 (30)3.10.3 抢答报警模块仿真 (30)3.11 答题报警模块 (31)3.11.1 答题报警模块VHDL程序设计关键代码 (31)3.11.2 答题报警模块元件图 (31)3.11.3 答题报警模块仿真 (32)3.12 顶层模块 (32)3.12.1 顶层模块电路图 (33)3.12.2 顶层模块元件图 (33)3.12.2 顶层模块仿真 (34)第4章硬件环境及调试过程 (35)4.1 芯片介绍 (35)4.2 硬件实现 (35)4.2.1 选择芯片 (35)4.2.2 引脚锁定 (36)4.2.3 下载到硬件环境 (38)第5章总结及完善 (41)参考文献 (42)致谢 (43)附录A 英文资料翻译 (44)英文原文 (44)Building Programmable Automation Controllers with LabVIEW FPGA (44)中文译文 (49)使用LabVIEW FPGA(现场可编程门阵列)模块开发可编程自动化控制器 (49)附录B 源代码 (53)第1章绪论1.1 设计研究的相关背景抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观的分辨出最先获得发言权的选手。
用VerilogHDL编写四路抢答器
always@(*) begin case(qiang_da) 1:bian_ma=3'b001; 2:bian_ma=3'b010; 4:bian_ma=3'b011; 8:bian_ma=3'b100; default:bian_ma=3'b000; endcase end
assign suo=(~bian_ma_cun[0])&(~bian_ma_cun[1])&(~bian_ma_cun [2]);
assign suo_1=suo&fankui;
always@(*) begin if(qing_ling==1) bian_ma_cun<=3'b000; else if(suo_1==0) bian_ma_cun<=bian_ቤተ መጻሕፍቲ ባይዱa_cun; else bian_ma_cun<=bian_ma; end
output wire [6:0]a_to_g; output wire [3:0]A_TO_D; input wire clk;//50MHz时钟 wire [3:0]qian; wire [3:0]bai; wire [2:0]shi; wire [2:0]ge; wire cp;//1s时钟 input wire [3:0]qiang_da; input button; wire suo_1; wire [2:0]bian_ma_cun; wire fankui; output wire xuan; shumaguan shumaguan0(a_to_g,A_TO_D,clk,qian,bai,shi,ge); cp_1s cp_1s0(clk,cp); xuan_shou xuan_shou0(qiang_da,button,suo_1,bian_ma_cun,fankui); wei_xuan wei_xuan0(bian_ma_cun,xuan,shi,ge); fuwei_kongzhi fuwei_kongzhi0(button,xuan); jishu_kongzhi jishu_kongzhi0(bai,qian,cp,suo_1,xuan,fankui); endmodule
数字电子技术实验报告——基于FGPA的4位智能抢答器(verilog HDL)
基于FPGA的4位智能抢答器一、设计任务要求基于E DA/SOPC 系统开发平台,运用Q uartusⅡ可编程逻辑器件开发软件,设计一个4位智能抢答器,在开发箱上,本系统使用频率为1000 赫兹的时钟脉冲。
要求如下:1、可以同时供4名选手抢答,其编号分别为1、2、3、4,各用抢答按键S1、S2、S3、S4,按键编号与选手编号对应。
主持人设置有一个“开始”按键S5,一个“复位”按键S6,用于控制抢答的开始和系统的复位;各个按键按下为“0”,弹起为“1”;2、系统上电和按下“复位”按键后4位数码管显示“0000”,此时只有“开始”按键有效,其他按键不起作用;3、当主持人按下“开始”按键后,开始计时,数码管左边两位显示计时的时间,单位为“秒”;如果有选手按下抢答按键,定时器停止工作,数码管显示器上左边两个数码管显示抢答时刻的时间;选手编号立即锁存并显示在右边的两个数码管上,同时封锁输入电路,禁止其他选手抢答;此状态一直保持到主持人将系统复位为止;4、抢答的有效时间为10 秒,如果定时抢答的时间已到而没有选手抢答,本次抢答无效,封锁输入电路,禁止抢答,数码管左边显示“10”,右边显示“00”;此状态一直保持到主持人将系统复位为止;5、附加提高:在主持人未按下开始按键时,如果有人抢答则犯规,在数码管上右边两位闪烁犯规选手的编号,闪烁频率为0.5H Z,左边两位显示“00”;此状态一直保持到主持人将系统复位为止。
二、设计步骤本次设计主要采用V erilog HDL 语言,总体编程思路采用模块化设计方式,主要分为3 个模块,一个主控制及按键输入模块,一个计时显示模块,一个抢答组号显示模块,分别对这3个子模块进行独立编程设计,编译仿真通过并生成元件,在顶层使用原理图或者Verilog HDL 语言的方式将3个模块连接起来完成整个设计。
锁定管脚并编译仿真通过,下载到开发箱进行测试。
三、模块设计思路对于这个任务来说,计时显示模块和抢答组号显示模块的模块并不复杂,复杂的模块是主控制及按键输入模块,所以我决定再将主控制模块拆分成两个小的模块——按键输入模块、按键输入判断输出模块。
基于FPGA的四路抢答器设计
摘要本文介绍了以FPGA为基础的四路抢答器的设计,此次设计是一个有4组抢答输入,并具有抢答计时控制,按键消抖以及积分显示等功能的通用型抢答器。
主持人有4个按键控制,可以进行开始抢答,对各抢答小组成绩进行相应加减操作以及所有积分重置。
此次设计程序使用verilog语言编写,并且使用modelsim进行相关仿真,最后在FPGA开发板上烧录程序进行实际操作演示实现了相应功能,达到了此次设计的目的。
本设计采用FPGA 来做增强了时序控制的灵活性,同时由于FPGA的IO端口资源丰富,可以再本设计基础上稍加修改可以重复设计出具有多组输入的抢答器。
关键字:按键消抖;显示;仿真;四路抢答;AbstractIn this paper, the design of four channel responder based on FPGA is proposed. The design contains four channel input, and also it has timing function, button-stop-shaking function, score display function. And the result of the design is a universal responder. The host has four buttons to control, in order to start response, add or sub the scores for each group and clear all group scores. The design program uses verilog language to write software. And modelsim is used to simulate the function on computer. At last the actual design results are demonstrated on the FPGA development board, and the functions are well veified. The result achieves the purpose of the design. The design uses FPGA to enhance the flexibility of timing control. At the same time because of IO port resoures in FPGA are much rich, if you want to design more channels responder, you just only repeat design on the basic of the design which is slightly modified.Keywords: button-stop-shaking; display; simulate; four channel responder;目录1引言 (4)2FPGA原理及其相关工具软件的介绍 (4)2.1FPGA开发过程与应用 (4)2.1.1FPGA发展历程及现状 (5)2.1.2FPGA工作原理 (5)2.1.3FPGA开发流程 (5)2.2Quartus II软件 (6)2.3Simulink软件 (7)2.3.1代码仿真 (7)2.3.2门级仿真和时序仿真 (8)3实验步骤及仿真调试结果 (8)3.1功能描述及设计架构 (8)3.2抢答器程序流程图和各模块软件代码分析 (9)3.2.1抢答器程序结构及主程序流程图 (9)3.2.2主控制及按键输入模块 (11)3.2.3计时模块 (13)3.2.4BCD显示模块 (13)3.3顶层模块连线及开发板硬件配置 (14)3.4modelsim仿真 (18)4结论 (20)谢辞.............................................................................................................. 错误!未定义书签。
基于FPGA的四人抢答器设计实验报告.doc
南京铁道职业技术学院EDA技术及其应用实验报告
实训课程:EDA技术及其应用
实训项目:基于FPGA的四人抢答器
指导老师:于淑萍
姓名:张秀梅
班级:电子信息1101
学号:19
2012年12月21日星期五
基于FPGA的四人抢答器设计
一、顶层原理图:
二、四人抢答器工作原理:
@功能要求:
1、1)有多路抢答,抢答台数为4;
2)具有抢答器开始后20秒倒计时,20秒倒计时后五人抢答显示超时,并报警;
3)能显示超前抢答台号并显示犯规报警;
2、系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各
路抢答信号封锁,同时铃声响起,直至该路按键松下,显示牌显示该路抢答台号。
@设计说明:
四人抢答器框图:
四人抢答器框图
系统复位后,反馈信号为高电平,使K1,K2,K3,K4输入有效,当抢答开始后,在第一个人按键后,保持电路输出低电平,同时送显示电路,让其保存按键的台号并输出,并反馈给抢答台,使所有抢答台输入无效,计时电路停止。
当有人在规定时间无人抢答时,倒计时电路输出超时信号。
当主持人开始未说完时,有人抢先按键时将显示犯规信号。
三、各功能模块的语言源文件:
@Cnt20.v文件:
module cnt20(stop,start,reset,CLK,q,yellow,green,red);。
用Verilog HDL编写的四路抢答器演示幻灯片
always@(*)//4位位选译码 case(wei) 3:begin A_TO_D=4'b1110; duan=qian; end 2:begin A_TO_D=4'b1101;
6
module cp_1s(clk,a); //提供1秒脉 冲
input wire clk; output reg a; reg [25:0]q; always@(posedge clk)
output reg zong_kong;
always@(posedge fu_wei)
begin
zong_kong<=~zong_kong;
11
module jishu_kongzhi(q1,q2,clk,suo,clr,fa nkui);//计数电路及其控制模块
output wire [3:0]q1;
四路抢答器设计
——Verilog HDL语言
1
抢答器为四路,20秒倒计时,抢 到后显示锁定,计时停止,若 提前抢答会在另外数码管显示 抢答号码。
在BASYS 2 开发板上可以实现
2
module qiang_da_qi(a_to_g,A_TO_D,clk,q iang_da,button,xuan
14
qing_ling;
8
assign suo=(~bian_ma_cun[0])&(~bian_ ma_cun[1])&(~bian_ma_cun[2]);
assign suo_1=suo&fankui;
always@(*) begin if(qing_ling==1)
9
module wei_xuan(bian_ma_cun,xuan,bai, ge);//控制选手是否提前抢答模 块
基于FPGA的抢答器设计_本科毕业设计 精品
基于FPGA的抢答器设计摘要本文介绍了一种采用EDA技术,基于FPGA并在QuartusⅡ工具软件环境下使用Verilog硬件描述语言编写的数码管显示4路抢答器的电路设计。
本次设计的抢答器能够同时供应4位选手或者4个代表队进行抢答比赛,分别使用4个按钮a,b,c,d表示。
同时需要设置系统复位和抢答控制开关,这需由主持人控制。
主持人在允许抢答的情况下,计时器开始从30s开始倒计时,直到有人抢答成功后,由锁存器将时间锁存住,此时数码管上将显示剩余时间及抢答成功选手号码,同时对应选手的LED灯也被点亮。
在判断选手是否回答正确后,由主持人控制加减按钮进行给分。
在一轮比赛结束后,主持人按下复位按钮,则除了计分模块外,其他模块都复位为初始时刻,为下一轮的比赛做好准备。
系统芯片主要采用EP2C8Q208,由抢答判别模块,计时模块,分频器模块,计分模块,锁存器模块,数码管驱动模块组成。
经过编译及其仿真所设计的程序,该设计的抢答器基本能够实现此次设计的要求,从而完成了抢答器应具备的功能。
关键词:抢答器,数码显示,硬件描述语言,可编程逻辑门阵列FPGA-BASED RESPONDER DESIGNABSTRACTThis article introduces the design of 4 answering device circuit using an EDA technology Verilog HDL language in FPGA and QuartusⅡ environment.At the same time,the 4 answering device circuit is displayed by the digital.The Responder can also supply four players or four teams to answer in the game, respectively, using four buttons a, b, c, d. Setting reset and answer in a system control switch, which controls required by the moderator. When the moderator allows to answer, the timer starts counts down from the 30s until someone answers successfully, by the time the latch latches will to live, then the remaining time and the number of the player who responds successfully will be displayed on the digital tube, at the same time the LED of the corresponding player lights will be lighted. Determined whether the contestant answers correctly, the moderator will give points by controlling the addition and subtraction button. At the end of the game, the moderator presses the reset button, others modules are reseted to the initial time for the next round of the game except the scoring module.The system uses mainly the EP2C8Q208. At the same time the system is made from the answer in decision block, timing module, divider block, scoring module latch module, LED driver modules. After compilation and simulation of the design process, the design Responder can basically achieve the design requirements, thus completing the Responder function.KEY WORDS:Responder,Digital display, HDL ,FPGA目录前言 (1)第1章绪论 (3)§1.1 选题背景 (3)§1.1.1 EDA技术发展 (3)§1.1.2 课题研究的必要性 (4)§1.2 研究课题的内容 (4)第2章系统方案设计 (6)§2.1 FPGA简介 (6)§2.1.1 FPGA芯片结构 (8)§2.1.2 FPGA设计流程 (12)§2.1.3 FPGA软件设计 (13)§2.1.4 FPGA的应用 (14)§2. 2Verilog HDL概述 (15)§2.2.1 Verilog HDL简介 (15)§2.2.2 Verilog HDL主要功能 (16)§2.2.3 Verilog HDL与VHDL的区别 (16)§2.3 抢答器总体设计方案 (17)§2.3.1 抢答器构成 (18)§2.3.2 抢答器工作原理 (18)第3章抢答器模块设计与实现 (19)§3.1 抢答判别模块 (19)§3.2 数码管驱动模块 (20)§3.3 计时模块 (22)§3.4 分频器模块 (23)§3.5 计分模块 (23)§3.6 锁存模块 (24)§3.7 总体模块 (24)第4章抢答器程序设计、实现与仿真 (26)§4.1 抢答判别程序设计 (26)§4.2 数码管驱动模块程序设计 (28)§4.3 计时模块程序设计 (29)§4.4 分频模块程序设计 (31)§4.5 计分模块程序设计 (32)§4.6 锁存模块程序设计 (36)结论 (38)参考文献 (39)致谢 (41)附录 (42)前言随着人类社会的高速发展,电子行业也随之迅猛的发展,这也使得人们越来越想方设法的是自己更加方便、轻松的生活,例如:自从有了电视遥控器开启电视,更改电视频道,我们再也不用跑来跑去用手改换频道;自从有了全自动洗衣机,我们再也不用半自动洗衣机或者人工搓衣板去清洗衣服;自从有了交通灯,不仅省去了很多人力去指挥交通,而且使交通更加井然有序。
verilog-HDL抢答器(两个程序)
v e r i l o g-H D L抢答器(两个程序)-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN一、设计任务智力竞赛抢答器Verilog HDL要求有6位参赛者进行抢答,有六个抢答信号进行抢答。
当有抢答选手按下抢答键后系统能够快速准确的判断是那一组选手按下了抢答信号,由于系统比较小,速度比较快一般不会有同时按下的可能,所以只有六种状态,然后系统能够根据这六种状态进行适时的显示和提示。
当有选手按下以后就对抢答信号进行锁存,其他选手的输入无效。
然后就是对抢答进行时间限制了,根据设定的时间进行倒计时,当倒计时完成还没有人抢答的时候系统发出警报声音提示时间已经到了。
当有选手在主持人未按下抢答键抢答时视为超前抢答,系统显示该选手号,同时蜂鸣器响,该抢答无效。
还有清除复位键,抢答完成以后按复位键即可清除已有的状态。
通过Verilog HDL程序代码实现系统的各个功能。
二、设计目的与要求目的:理论联系实际,巩固和运用所学课程,提高分析、解决计算机技术实际问题的独立工作能力,培养学生正确的设计思想,严肃认真、实事求是的科学态度和勇于探索的创新精神。
通过对一个智力抢答器的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤,通过Verilog 程序的编写,进一步熟悉Verilog HDL 的语法知识;规范化训练学生撰写技术研究报告,提高书面表达能力。
要求:掌握FPGA设计系统的一般方法。
熟练掌握使用modelsim软件设计较复杂的数字逻辑电路。
培养学生独立分析问题和解决实际问题的能力。
三、课程设计的内容设计一抢答器,要求如下:(1)抢答台数为6;(2)具有抢答开始后20s倒计时,20秒倒计时后6人抢答显示超时,并报警;(3)能显示超前抢答台号并显示犯规报警;(4)系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁,同时铃声响起,直至该路按键松开,显示牌显示该路抢答台号。
基于FPGA的多路竞赛抢答器设计
基于FPGA的多路竞赛抢答器设计冀云【摘要】基于ISE软件开发环境,运用VHDL硬件描述语言,设计了一款4路竞赛抢答器,给出了抢答器系统的系统功能模块;对设计工程进行了综合、编译、仿真,并下载到FPGA芯片xc3s700a-5fg484进行测试;结果表明设计能实现系统预期的功能.【期刊名称】《重庆工商大学学报(自然科学版)》【年(卷),期】2014(031)003【总页数】6页(P62-67)【关键词】竞赛抢答器;VHDL;仿真波形;硬件测试【作者】冀云【作者单位】重庆电子工程职业学院应用电子学院,重庆401331【正文语种】中文【中图分类】TN421抢答器在各种竞赛性质的场合有非常广泛的应用,它由组合逻辑电路进行状态判断与选择,消除了原来由于人眼的误差而未能正确判断最先抢答的选手的情况,从而避免了竞赛场合出现不必要的争执。
现行的抢答器设计方案主要有两种:采用触发器和小规模组合逻辑芯片实现;用单片机配合外围电路实现。
方法一的优点是思路简单且存在比较成熟的设计范例,但具体电路复杂,元器件较多;相对来说使用单片机实现比较灵活,但如果选手人数较多则会出现I/O口不足的问题。
设计采用FPGA现场可编程技术,完全由HDL硬件描述语言实现抢答功能,避免了硬件电路的焊接调试,同时由于FPGA的可编程资源及I/O端口丰富,可以在设计的基础上进行自由改进。
抢答器的原理比较容易理解,首先必须设置一个抢答允许标志位,目的就是用于允许或禁止抢答者按键;如果允许抢答位有效,那么第一位按键的抢答者按下按键的就会将其清除,同时记录下按键者的编号并显示,达到后面的抢答者按键都无效化的效果。
系统设计一个多路竞赛抢答器,具有4路抢答输入,每人可通过按键手动申请抢答,要求能够识别第一个抢答的信号,点亮对应的LED表示抢答成功,同时其他选手按键失效;七段数码管对选手序号和抢答所剩的时间进行计时、显示。
系统设计结构如图1。
FPGA(现场可编程门阵列)是一种SRAM生产工艺的复杂可编程逻辑器件,基于查找表(LUT)结构技术,当用户描述了一个逻辑电路之后,设计软件会自动计算其所有可能存在的结果,并优先写入RAM。
基于FPGA的智能电子抢答器的设计
毕业设计答辩
倒计时模块COUNT
--count.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY COUNT IS PORT(CLK,EN:IN STD_LOGIC; H,L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SOUND:OUT STD_LOGIC); END COUNT; ARCHITECTURE COUNT_ARC OF COUNT IS BEGIN PROCESS(CLK,EN) VARIABLE HH,LL:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK='1'THEN IF EN='1'THEN ; IF LL=0 AND HH=0 THEN SOUND<='1'; ELSIF LL=0 THEN LL:="1001"; HH:=HH-1; ELSE LL:=LL-1; END IF; ELSE SOUND<='0'; HH:="1001"; LL:="1001"; END IF; END IF; H<=HH; L<=LL; END PROCESS; END COUNT_ARC
毕业设计答辩
实施方案:
利用VHDL硬件描述语言进行编程,我的 这个设计主要包括七个模块:判断模块,锁 存模块,转换模块,扫描模块,片选模块, 定时报警模块和译码模块。编程完成后,用 QuartersII软件进行编译,验证正确后再进 行仿真。最后利用cyclone中的 EP1C3T144C8制作成实际的系统进行测试。
FPGA四路电子抢答器设计
课程设计报告专业班级_______________________________课程FPGA/CPLD原理及应用题目四路电子抢答器设计学号__________________________________姓名__________________________________同组人_________________________________成绩__________________________________i2013年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时钟信号elk,复位rst ;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口可用a1、b1、c1、d1表示,四个组抢答时的计时数码显示控制信号,抢答成功组别显示的控制信号,各组计分显示的控制信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
moduleqiangda4(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//初始化各按键并开始抢答beginif(inputEn==1'b0)begin//初始化各个标志位和参数EnFlat=1'b1;//倒计时开始时8个Led灯全亮Led1=8'b11111111;//组号显示静态数码管(数码管为共阳极)的控制端,有8位Led2=8'b11111111;//分数显示数码管控制端Led3=8'b11111111;//蜂鸣器标志位BuClk=1'b0;//蜂鸣器的控制管脚,低电平为发声音Buzzer=1'b1;endend//--------抢答模块-------beginif(EnFlat==1'b1)begin//如果按键1按下if(inputL1==1'b0)begin//禁止其他选手抢答EnFlat=1'b0;//选手标志位改变,用于加减分数模块answer=3’d1;//静态数码管显示序号'1' ,及显示选手对应的组号Led2=8'hf9;//指示蜂鸣器发声BuClk=1'b1;end//如果按键2按下else if(inputL2==1'b0)begin//禁止其他选手抢答EnFlat=1'b0;answer=3’d2;Led2=8'ha4;BuClk=1'b1;end//如果按键3按下else if(inputL3==1'b0)begin//禁止其他选手抢答EnFlat=1'b0;answer=3’d3;Led2=8'hb0;BuClk=1'b1;end//如果按键4按下else if(inputL4==1'b0)begin//禁止其他选手抢答EnFlat=1'b0;answer=3’d4;Led2=8'h99;BuClk=1'b1;endendend//-------------------加减分数模块----------------//第一组加减分if(answer ==3’d1)beginif(add)score1=score1+1;//当主持人判定选手的回答正确时,按下add键进行加分操作elseif(stu)score1=score1-1;//当主持人判定选手的回答错误时,按下stu键进行减分操作score=score1;//把第一组的分数赋值给分数寄存器end//第二组加减分if(answer ==3’d2)beginif(add)score2=score2+1;//当主持人判定选手的回答正确时,按下add键进行加分操作elseif(stu)score2=score2-1;//当主持人判定选手的回答错误时,按下stu键进行减分操作score=score2;end//第三组加减分if(answer ==3’d3)beginif(add)score3=score3+1;//当主持人判定选手的回答正确时,按下add键进行加分操作elseif(stu)score3=score3-1;//当主持人判定选手的回答错误时,按下stu键进行减分操作score=score3;end//第四组加减分if(answer ==3’d4)beginif(add)score4=score4+1;//当主持人判定选手的回答正确时,按下add键进行加分操作elseif(stu)score4=score4-1;//当主持人判定选手的回答错误时,按下stu键进行减分操作score=score4;end//-----------------倒计时模块--------------------beginif(EnFlat==1'b1)beginif(cnt!=32'd4*******)//计时实现1HZ分频cnt=cnt+32'd1;elsebegincnt=32'd0;Led1=8'b11111111<<1'b1;//Led1左移一个单位,实现一秒的倒计时endendif(Led1==8'b0)//倒计时结束还没有按键按下,则抢答停止且蜂鸣器响EnFlat=1'b0;BuClk=1'b1;end//----------蜂鸣器模块-----------------//当蜂鸣器标志位置1时//进入此蜂鸣器处理程序beginif(BuClk==1'b1)begin//蜂鸣器发声Buzzer=1'b0;//延时变量加1BuL = BuL + 8'd1;//当到达延时的时间时关掉蜂鸣器if(BuL==8'd255)begin//延时变量复位BuL=8'd0;//蜂鸣器标志位复位BuClk=1'b0;//蜂鸣器停掉Buzzer=1'b1;endendend//-------------重置模块----------------//按下clr键以后各组参数重置,整个比赛重新开始if(clr)begin//重置各个标志位和参数EnFlat=1'b1;//重置时8个Led灯全亮Led1=8'b11111111;//选手号静态数码管的控制端,有8位Led2=8'b11111111;//选手分数显示数码管重置Led3=8'b11111111;//蜂鸣器标志位重置BuClk=1'b0;//蜂鸣器的控制管脚重置,低电平为发声音Buzzer=1'b1;//各组分数重置score1=4’d5;score2=4’d5;score3=4’d5;score4=4’d5;//分数显示寄存器重置answer=8’hff;end//-----------数码显示模块------------begincase(score)4'h0: Led3 = 8'hc0; //显示04'h1: Led3 = 8'hf9; //显示14'h2: Led3 = 8'ha4; //显示24'h3: Led3 = 8'hb0; //显示34'h4: Led3 = 8'h99; //显示44'h5: Led3 = 8'h92; //显示54'h6: Led3 = 8'h82; //显示64'h7: Led3 = 8'hf8; //显示74'h8: Led3 = 8'h80; //显示84'h9: Led3 = 8'h90; //显示94'ha: Led3 = 8'hbf; //显示-default:Led3 = 8'hff; //不显示endcaseendendendmodule。