抢答器(-Verilog-HDL实现)
用Verilog HDL编写的四路抢答器

module count20(a,clr,q1,q2); //计数器,从20计到0 input wire a; input wire clr; output reg [3:0]q1; output reg [3:0]q2; always@(posedge a or negedge clr) begin if(clr==0) begin q1<=4'b0000; q2<=4'b0010; end else if(q1==0) begin q2<=q2-1; q1<=9; end else q1<=q1-1; end endmodule
在BASYS 2 开发板的管脚配置: NET "A_TO_D[3]" LOC = F12; NET "A_TO_D[2]" LOC = J12; NET "A_TO_D[1]" LOC = M13; NET "A_TO_D[0]" LOC = K14; NET "a_to_g[6]" LOC = L14; NET "a_to_g[5]" LOC = H12; NET "a_to_g[4]" LOC = N14; NET "a_to_g[3]" LOC = N11; NET "a_to_g[2]" LOC = P12; NET "a_to_g[1]" LOC = L13; NET "a_to_g[0]" LOC = M12; NET "qiang_da[3]" LOC = A7; NET "qiang_da[2]" LOC = M4; NET "qiang_da[0]" LOC = G12; NET "qiang_da[1]" LOC = C11; NET "clk" LOC = B8; NET "button" LOC = P11; NET "button" CLOCK_DEDICATED_ROUTE = FALSE; NET "xuan" LOC = G1;
基于Verilog HDL的数字竞赛抢答器

欽件打夜场宗用2021年第2期售廉与电atChina Computer & Communication 基于Verilog HDL 的数字竞赛抢答器孙阔王颖*(大连理工大学城市学院电子与自动化学院,辽宁大连116024)摘 要:数字抢答器拥有广阔的市场前景,在电视节目、各类高校的比赛中都可以使用数字抢答器。
本文基于 Verilong HDL 设计了一种数字抢答器,该数字抢答器以6个参赛组为基础实现其他功能,具有一定的审场价值.关键词:Verilog HDL;数字抢答器;FPGA中图分类号:TP311.52 文献标识码:A 文章编号:1003-9767 (2021) 02-112-02Digital Competition Answerer Based on Verilog HDLSUN Kuo, WANG Ying*(School of Electronics and Automation, City College, Dalian University of Technology, Dalian Liaoning 116024, China)Abstract : Digital answering devices have broad market prospects, and digital answering devices can be used in TV programs and competitions in various colleges and universities. This paper designs a digital answering device based, on Verilong HDL ・ The digital answering device implements other functions based on 6 participating groups and has a certain market value.Keywords : Verilog HDL; digital answerer; FPGA0引言近年来,随着科学技术的不断发展,抢答器的功能以及实现方法也越来越多,在竞赛中使用抢答器是一种很流行的 比赛方式,深受比赛各方的青睐冋。
数字竞赛抢答器课程设计Verilog语言实现

数字竞赛抢答器课程设计V e r i l o g语言实现可编程器件与应用课程设计报告姓名: XXX学号: XXXXXXXXXX专业班级:信息XXX题目:数字式竞赛抢答器指导老师:一、绪论背景:随着电子技术的发展,可编程逻辑器件(PLD)的出现,使得电子系统的设计者利用EDA(电子设计自动化)软件,就可以独立设计自己的专用集成电路(ASIC)器件。
可编程逻辑器件是一种半导体集成器件的半成品。
在可编程逻辑器件的芯片中按一定方式(阵列形式或单元阵列形式)制作了大量的门、触发器等基本逻辑器件,对这些基本器件适当地连接,就可以完成某个电路或系统的功能。
数字式竞赛抢答器控制系统是工厂、学校和电视台等单位举办各种智力竞赛等娱乐活动中经常使用的重要基础设备之一。
目前设计抢答器的方法很多,例如用传统的PCB板设计、用PIC设计或者用单片机设计。
而用Verilog可以更加快速、灵活地设计出符合各种要求的抢答器,优于其他设计方法,使设计过程达到高度自动化。
本文介绍的4路数字式竞赛抢答器基于Verilog语言、以EDA技术作为开发手段、采用CPLD(复杂的可编程逻辑器件)作为控制核心设计而成。
与传统设计相比较,不仅简化了接口和控制,也提高了系统的整体性能和工作可靠性,具有电路简单、成本低廉、操作方便、灵敏可靠等优点。
意义:数字式竞赛抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器存在分立元件使用较多,造成每路的成本偏高,而现代电子技术的发展要求电子电路朝数字化、集成化方向发展,因此设计出数字化全集成电路的多路抢答器是现代电子技术发展的要求。
二、实现方案设计要求:1、设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使用。
2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
3、设置一个主持人“复位”按钮。
4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出2~3秒的音响。
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 工具之间的界面。
智能抢答器的Verilog设计及Quartus_仿真

本文用 Verilog HDL 设计实现一个具有四组输入的, 能够显示抢 答倒计时时间和抢答组数等信息,并且对抢答后各组的成绩进行处理 并显示的抢答器。利用 Verilog HDL 硬件描述语言设计抢答器,使抢答 器 硬 件 电 路 更 加 简 单 ,抢 答 器 时 序 控 制 灵 活 ;利 用 FPGA I / O 端 口 可 自定义特点,在本文设计智能抢答器基础上,增加抢答器的按键阵列,
1 系统设计
1.1 抢答器系统的功能 抢答器具体功能如下:(1)可同时进行四组人的抢答。 (2)设置一个
抢答控制开关,只有按下开 始 按 钮 才 能 抢 答 ;(3)抢 答 器 具 有 抢 答 倒 计 时功能,一次抢答的倒计时时间为 60s。 (4)抢 答 器 具 有 锁 存 与 显 示 功 能。 即选手按动按钮 ,锁存相应的组号 ,显示组号 。 抢答实行优先锁存 , 优先抢答选手的相应组号和成绩一直保持到下一轮抢答开始 。(5)参赛 选手在设定的抢答有效时间内进行抢答,抢答有效,如果抢答延迟时 间已到,无人抢答,本次抢答无效,系统回到开始前的等待状态。 (6)当 抢答有效后,可以根据抢答选手回答问题正确与否对选手相应组数的 成绩进行加分操作。
中央空调系统是按天气最热、负荷最大设计的,并留有 10%-20% 的余量,根据负载变化随之增减,但冷冻水泵和冷却水泵不能随负载 变化作出相应的调节,冷冻水、冷却水几乎长期在大流量、小温差的状 态下运行,造成能量的极大浪费。
3 节能改造的可行性分析
变频调速性能好,调速范围大,静态稳定性好,运行效率高。 根据 冷却水温选择冷却塔开启的台数,容易造成能源浪费,冷却水的温度 由温度传感器传送信号至 PLC,由 PLC 计算后,对冷却塔风机开启,以 28℃为基数,温度每上 升 2℃开 启 两 台 散 热 风 机 ,每 下 降 2℃延 时 5 分 钟后停止 2 台风机,以达到节能效果。
基于Verilog HDL语言的新型抢答器设计

基于Verilog HDL语言的新型抢答器设计
周奇;王晓春;王立伟;王延群
【期刊名称】《现代仪器与医疗》
【年(卷),期】2008(014)005
【摘要】本文提出一种基于Verilog HDL语言的抢答器设计方法.该设计实现有三组输入,具有抢答倒计时功能,对各抢答小组成绩进行加减操作并显示的抢答器.文中介绍抢答器设计架构、硬件电路和控制程序的设计方法.该抢答器采用Verilog HDL语言模块化和层次化的思想,使设计十分简单,能够广泛应用于各种竞赛中.【总页数】4页(P43-46)
【作者】周奇;王晓春;王立伟;王延群
【作者单位】中国医学科学院生物医学工程研究所,天津,300192;中国医学科学院生物医学工程研究所,天津,300192;中国医学科学院生物医学工程研究所,天
津,300192;中国医学科学院生物医学工程研究所,天津,300192
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于Verilog HDL语言的全自动洗衣机控制器的设计与仿真 [J], 陈飞云
2.基于Verilog HDL语言的全自动洗衣机控制器的设计与仿真 [J], 陈飞云;
3.基于Verilog HDL语言的CAN总线控制器设计及验证 [J], 许莉娅;段帅君;李传南
4.基于Verilog HDL语言的复杂交通指标灯设计与实现 [J], 杨杨
5.基于Verilog HDL语言的一种奇偶校验码与极化码级联的编码器设计与仿真 [J], 彭逸飞
因版权原因,仅展示原文概要,查看原文内容请购买。
抢答器verilog版

抢答器-verilog一.实验要求设计一个可容纳四组参赛的数字式抢答器,每组设一个按钮供抢答使用。
抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用;设置一个主持人“复位”按钮,主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,用指示灯显示抢答组别,扬声器发出2—3s的音响。
设置犯规电路,对提前抢答和超时答题(例如3min)的组别鸣笛示警,并由组别显示电路显示出犯规组别。
设置一个计分电路,每组开始预置10分,由主持人记分,答对一次加1分,答错一次减1分。
二.实验方框图三.答题规则(本实验均采用脉冲按键模式)四.本次实验的verilog源程序module answer(clk,k1,k2,k3,k4,o1,o2,o3,o4,out1,out2,start,reset1, save); //抢答信号鉴别,保持模块input clk,k1,k2,k3,k4,start,reset1;//k1~k2是选手按键output o1,o2,o3,o4,out1,out2;//o1~o2是抢答信号显示灯output[2:0] save; //用于保存选手的抢答信号reg o1,o2,o3,o4,out1,out2,ok;reg[7:0] counter;reg[2:0] save;integer i;always@(posedge clk)if(reset1)//当reset1为1时复位清零begin{o1,o2,o3,o4,out1,out2,ok}<=7'b0000000;counter<=0;i=0;endelsebegin////if(start)beginok<=1;save<=0;endif(!ok)//reset1和ok为0时,有人按键表示犯规begin //一旦有人按键,他的输出信号将屏蔽其他人的按键if(k1&&!o2&&!o3&&!o4)begino1<=1;save<=1;endif(k2&&!o1&&!o3&&!o4)begino2<=1;save<=2;endif(k3&&!o1&&!o2&&!o4)begino3<=1;save<=3;endif(k4&&!o1&&!o2&&!o3)begino4<=1;save<=4;endif(o1 || o2 || o3 || o4)//提前按键扬声器响out1<=1;endelse//reset1为0,ok为1时,有人按键为正常抢答begin//if(k1 || k2 || k3 || k4)begin //一旦有人按键,他的输出信号将屏蔽其他人的按键if(k1&&!o2&&!o3&&!o4)begino1<=1;save<=1;endif(k2&&!o1&&!o3&&!o4)begino2<=1;save<=2;endif(k3&&!o1&&!o2&&!o4)begino3<=1;save<=3;endif(k4&&!o1&&!o2&&!o3)begino4<=1;save<=4;endendif(o1 || o2 || o3 || o4)begini=i+1;if(i<2)out2<=1;//有人抢到题,响几下铃。
数字电子技术实验报告——基于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个模块连接起来完成整个设计。
锁定管脚并编译仿真通过,下载到开发箱进行测试。
三、模块设计思路对于这个任务来说,计时显示模块和抢答组号显示模块的模块并不复杂,复杂的模块是主控制及按键输入模块,所以我决定再将主控制模块拆分成两个小的模块——按键输入模块、按键输入判断输出模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
抢答器(-Verilog-HDL实现)桂林电子科技大学信息科技学院《EDA技术与应用》实训报告学号0952100110姓名赵万里指导教师:江国强杨艺敏2011年04月20日实训题目:智能电子抢答器1.系统设计1.1 设计要求1.1.1 设计任务设计并制作一台智能电子抢答器。
1.1.2 技术要求①用EDA实训仪的I/O设备和PLD芯片实现智能电子抢答器的设计。
②智能电子抢答器可容纳4组参赛者抢答,每组设一个抢答钮。
③电路具有第一抢答信号的鉴别和锁存功能。
在主持人将复位按钮按下后开始抢答,并用EDA实训仪上的八段数码管显示抢答者的序号,同时扬声器发出“嘟嘟”的响声,并维持3秒钟,此时电路自锁,不再接受其他选手的抢答信号。
④设计一个计分电路,每组在开始时设置为100分,抢答后由主持人计分,答对一次加10分,答错一次减10分。
⑤设计一个犯规电路,对提前抢答和超时抢答者鸣喇叭示警,并显示犯规的组别序号。
1.2 方案比较(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮。
(2) 电路具有第一抢答信号的鉴别和锁存功能。
在主持人按下复位按钮后,若参加者按抢答开关,则该组指示灯亮。
此时,电路应具备自锁功能,使别组的抢答开关不起作用。
(3)自锁后,用八段数码管显示抢答者的序号,同时指示灯亮。
(4) 设置计分电路。
每组在开始时预置成100,抢答后由主持人计分,答对一次加10,否则减10分。
(5)电路具有淘汰功能,当每组的100分减少到0时,该组被淘汰,以后每次抢答,该组抢答按钮都无效。
1.3 方案论证1.3.1 总体思路总体分为四部分:倒计时模块、计分模块、抢答模块和分屏显示模块。
倒计时模块用一个20000000分频。
产生一个进位,连接一个30的减法计数器构成。
计分模块中分为两部分,一部分用于计分,另一部分用于处理计数器的进制问题,当加到A时自动向前进位,并且把A变为0。
当减少到F时,向前借位,并且把F变为9。
这就实现了把十六进制变成一般用的十进制。
抢答模块分两部分,复位模块和抢答模块,每次抢答都要初始化按键。
抢答模块又分为误抢,无人抢答和正确抢答。
每次抢答,当有一组按下抢答,立即锁定,亮相应的分数和组号,并且亮起各种抢答所对应的灯信号。
(即所要求的蜂鸣器)分屏显示模块中用每次抢答的组号作为输入,当抢答后立即换屏显示其组号分数。
1.3.2 设计方案(1)根据设计要求需要一个时钟的接入端clk,清除端clrn,使倒计时复位,count进位端当倒计时到0时进位,进位端返回到j,使倒计时停止。
当佣人抢答时,输入一个低电平,在取反输入到i,使倒计时停止。
(图1)(2)电路的计分模块,d位组号的输入端,是s1位计数按键,p位加减的控制端,高电平是s1位加分,低电平s1位减分,t1、t2、t3、t4位各组的分数输出端,cnn1、cnn2、cnn3、cnn4分别为第一组、第二组、第三组、第四组的减分进位端,当分数减少到0的时候,产生进位,使该组不能再次抢答,使其淘汰。
(图2)(3)抢答模块,clk位时钟的输入端,再程序的开始捕捉时钟的上升沿,qd是抢答初始化,每次抢答开始首先初始化,使抢答就位,准备开始抢答。
qd1、qd2、qd3、qd4为四组的抢答按键,每次有一组抢答后程序立即锁定,使别的组不能再抢答。
K为抢答开的的控制键,k高电平时开始抢答,低电平时抢答即为误抢。
cnn1、cnn2、cnn3、cnn4位减数进位端,sig、sig1、sig2为各种抢的标志的输出,即亮灯(蜂鸣器)。
d位抢答者的组号输出端。
(图3)(4)分屏显示模块mux_1,d,t1、t2、t3、t4分别为组号和各组分数的输入端,w换屏信号的输入端,qs位输出。
(图4)(5)全局电路2.各个模块程序的设计(1)倒计时模块,20000000分频产生进位,输入到计数器模块,完成30秒计数。
(2)计分模块,用一个按键和一个拨动开关,拨动开关高点平时按键每按一次加十分,低电平时每按一次减十分。
(3)抢答模块A、一个复位键,四个抢答键,当按下复位键后,如果有选手抢答,则电路立即锁定,使其他组不能再次抢答。
B、在没有开始抢答之前,如果用人抢答即为误抢,显示其组号,分数。
C、30秒倒计时开始,抢答者都不抢答,则表示无人抢答,亮起相应的灯。
(4)分屏显示模块,此模块完全由输入的组号控制。
3.制作与调试过程(1)30秒倒计时的调试,管脚锁定clk,使每秒产生一个进位,送到减数器模块。
(2)计分模块,锁定两组的管脚,进行操作,组号的输入用拨动开关控制。
(3)抢答模块,锁定相应的管脚,进行抢答,误抢和无人抢答操作,测试是否能够锁定,以及亮灯,显示正确的组号分数。
4.结论本次实训为期三周,确定下题目后,首先就是方案的确定。
经过老师的辅导、同学的帮助、翻阅相关资料,综合各方面的考虑。
了解EP1C3T144C8芯片的构造,需要查看大量的英文资料,我并没有气馁,一个管脚一个管脚的对比,终于弄清楚了实现功能的大体思路。
然后就是再次学习Verilog HDL语言,虽然以前学过,但是差不多都忘了,用了几天时间熟悉了Verilog HDL 源程序的编写。
最后是硬件的调试,这是个漫长的过程,EP1C3T144C8芯片的接口也非常的繁杂,最后我坚持了下来。
5.实训心得体会通过这次实训,我对Verilog HDL有了深入的认识。
同时也对EDA 产生了更加浓厚的兴趣。
本次实训,也检验了自己的能力,加强了逻辑思维的能力,不过我也发现了自身存在的一些问题,比如在quartus软件的应用上还有很多不成熟不理解的地方,但是相信在以后的学习生活中我可以很好的与予改正,取得更好的成绩,也希望日后老师能不厌其烦的指导我,给予我更大的支持。
6.参考文献1 江国强EDA技术与应用第三版电子工业出版社20102 谭会生,张昌凡. EDA技术及应用.第二版.西安电子科技大学出版社,2009附录:①仿真波形图(部分模块)(图1 30秒倒计时)②程序清单(1)倒计时模块A.20000000分频程序module cnt60(clk,cout,i,j,m);input clk,i,j,m;reg [24:0] q;output reg cout;always @(posedge clk&(~i)&(~j)&(~m))beginif(q<20000000-1) q=q+1;else q=0;if(q==20000000-1) cout=1;else cout=0;endendmoduleB、30秒倒计时程序module cntdj(clrn,clk,q,count);input clk,clrn;output reg [7:0] q;output reg count;always @(posedge clk or negedge clrn)if(~clrn) begin q='h30;count='h0; endelse beginif(q==0) q='h30;else q=q-1;if(q[3:0]=='hf)begin q[3:0]=9;endif(q=='h0) count=1;else count=0;endendmodule(2)计分模块程序module jiajianjishu(t1,t2,t3,t4,s1,d,count,cnn1,cnn2,cnn3,cnn4,p); input s1,p;input [3:0]d;output reg count,cnn1,cnn2,cnn3,cnn4;output reg[11:0]t1,t2,t3,t4;initial begin t1='h100;t2='h100;t3='h100;t4='h100; endalways @(posedge s1 )beginif(p)beginif(d=='h1) begin t1=t1+'h10;if(t1[7:4]=='ha)begint1[7:4]=0;t1[11:8]=t1[11:8]+1;endelse if(t1=='h1000) count=1;else count=0;endelse if(d=='h2) begin t2=t2+'h10;if(t2[7:4]=='ha)begint2[7:4]=0;t2[11:8]=t2[11:8]+1;endelse if(t2=='h1000) count=1;else count=0;endelse if(d=='h3) begin t3=t3+'h10;if(t3[7:4]=='ha)begint3[7:4]=0;t3[11:8]=t3[11:8]+1;endelse if(t3=='h1000) count=1;else count=0;endelse if(d=='h4) begin t4=t4+'h10;if(t4[7:4]=='ha)begint4[7:4]=0;t4[11:8]=t4[11:8]+1;endelse if(t4=='h1000) count=1;else count=0;endelse begin t1='h100;t2='h100;t3='h100;t4='h100; endendelse if(~p)beginif(d=='h1) begin t1=t1-'h10;if(t1[7:4]=='hf)begin t1[7:4]=9;t1[11:8]=t1[11:8]-1;if(t1[11:8]=='hf)begint1[11:8]=0;end/*else t1[11:8]=t1[11:8];*/endelse if(t1[11:4]=='h0) begin cnn1=1;t1[11:0]='h0; endelse cnn1=0;endelse if(d=='h2) begin t2=t2-'h10;if(t2[7:4]=='hf)begint2[7:4]=9;t2[11:8]=t2[11:8]-1;if(t2[11:8]=='hf)begin t2[11:8]=0;end/* elset2[11:8]=t2[11:8];*/endelse if(t2[11:4]=='h0)begin cnn2=1;t2[11:0]='h0; endelse cnn2=0;endelse if(d=='h3) begin t3=t3-'h10;if(t3[7:4]=='hf)begint3[7:4]=9;t3[11:8]=t3[11:8]-1;if(t3[11:8]=='hf)begin t3[11:8]=0;end/*elset3[11:8]=t3[11:8]; */endelse if(t3[11:4]=='h0) begin cnn3=1;t3[11:0]='h0; endelse cnn3=0;endelse if(d=='h4) begin t4=t4-'h10;if(t4[7:4]=='hf)begint4[7:4]=9;t4[11:8]=t4[11:8]-1;if(t4[11:8]=='hf)begin t4[11:8]=0;end/*elset4[11:8]=t4[11:8]; */endelse if(t4[11:4]=='h0) begin cnn4=1;t4[11:0]='h0 ;endelse cnn4=0;endelse begin t1=100;t2=100;t3=100;t4=100; endendendendmodule(3)抢答模块程序moduleqdq(clk,qd,qd1,qd2,qd3,qd4,Sig,Sig1,Sig2,d,k,g,cnn1,cnn2,cnn3,cnn4 );input clk,qd,qd1,qd2,qd3,qd4,k,g,cnn1,cnn2,cnn3,cnn4;output Sig,Sig1,Sig2;output [3:0]d;reg Sig='h0,Sig1='h0,Sig2='h0; reg [3:0]d;reg zd=1'b0;always @ (posedge clk)beginif(qd==1'b0)beginzd=1'b1;Sig='h0;Sig1='h0;Sig2='h0;d='h0;endif(k)beginif(zd==1'b1)beginif((qd1==1'b0)&(~cnn1))beginzd=1'b0;Sig='h1;d=1;endelse if((qd2==1'b0)&(~cnn2))beginzd=1'b0;Sig='h1;d=2;endelse if((qd3==1'b0)&(~cnn3))beginzd=1'b0;Sig='h1;d=3;endelse if((qd4==1'b0)&(~cnn4))beginzd=1'b0;Sig='h1;d=4;endelse if(g)begin zd=1'b0;Sig2='h1; end endendelse if(~k)beginif(zd==1'b1)beginif((qd1==1'b0)&(~cnn1))beginzd=1'b0;Sig1='h1;d=1;endelse if((qd2==1'b0)&(~cnn2))beginzd=1'b0;Sig1='h1;d=2;endelse if((qd3==1'b0)&(~cnn3))beginzd=1'b0;Sig1='h1;d=3;endelse if((qd4==1'b0)&(~cnn4))beginzd=1'b0;Sig1='h1;d=4;endendendendendmodule(4)分屏显示模块程序module mux_1(d,t1,t2,t3,t4,w,qs);input w;input [3:0] d;input [11:0] t1,t2,t3,t4;output reg[15:0] qs;alwaysbeginif(w)beginqs[15:12]=d;if(d==1)begin qs[11:0]=t1;endelse if(d==2)begin qs[11:0]=t2;endelse if(d==3)begin qs[11:0]=t3;endelse if(d==4)begin qs[11:0]=t4;endelse qs[11:0]=0;endelse qs[15:0]=0;endendmodule。