verilog抢答器(最经典)
用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实现)

抢答器(-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。
verilog抢答器设计报告

湖北师范学院电工电子实验教学省级示范中心电子版实验报告抢答器一•任务解析用VerilOg硬件描述语言设计抢答器,实现:1、四人通过按键抢答,最先按下按键的人抢答成功,此后其他人抢答无效。
2、每次只有一人可获得抢答资格,一次抢答完后主持人通过复位按键复位,选手再从新抢答。
3、有从新开始游戏按键,游戏从新开始时每位选手有5分的初始分,答对加1分,答错扣1分,最高分不能超过9分,当选手得分减为0时取消该选手抢答资格。
4、选手抢答成功时其对应的分数闪烁。
•方案论证(画框图并分析)抢答部分(对应SnatCh模块)在quartusll下的仿真原理图如下所示:第2页,共6页抢答部分的代码如下:InOdUIe SnatCh(CLr F key,data j led,m) ;/∕≠⅛答慎块input clr;//主持人复J f立按键input[3:0] key;//四个技犍对应四竝选手input [15 :0] data^∕⅛i⅛手的分数反銀进来以取消0分选手抢答资格OUtPUt [3 : 0] Ied√ //四位选手抢答指示灯QUtPUt [2:0]町"存储抢答结果〔有没有人抢答及谁抢答:>reg C I q;reg[1:0] ≡;Wire out={key[0]fc{data[S:0]!=0))∣(key[l]&(data[7;4]1=0))Ifk已y[2]&(data[11:0]!=0}) I (⅛ey[3]盂{data [15 :12]1=0) };"选手分数减为零时取消其抢答资格Wire CIk=OUt⅛(Jq);assign In-{c,s};//⅛lways(⅛ {posedge Clk Or negedge CIr)if (!clr}begin q<=O;c<=O;end"主持人复位else begin c<=l;q<=J q;end//有i⅛手抢答时匸直1, q为D触发:器输出端Ialway≡&(p□≤edge CIk)case(key)rb0001zs<=2l b00r77检测到有人抢答时立即将选手抢答信息存入s4 ・b0010:s<=2'b01;4 ・b0100ιs<=2,b!0;4,blOOO≈3<=2t bll;default: s<=2,b??;//其他情况^为高阻值.endcaseassign l≡d- U-τ ≡ } --3 ' blOO ) ^4 ,b3301: 「矩答亍空芋J⅛τ⅛<Γ亮t{c f s}≡=3'blθl),b0010:f {c,s}=3,bllθ) ?4I bolO0: l(c13}=3,blll) 74τbiα00: 4τb0000;e JTidmodu Ie计分模块的代码如下:InQdUle StQre {star t小PrdowmSr q);"计分模圳input start J up r down;input [2:0] s;"通过S可以判断有没有人抢答21哪位选手抢答ClUtPUtr15-0] q;reg[15:0] q;/∕q[3: Ob q[7:41 J q[ll:81,q[15H21分别存放四位选手的分数LCELL aa (UP f CieIaylIP) , bb (down^ de laydown) ; ''∕i^ 用系统延时模块Wire clk=delayupIdelaydo⅛m;always0(posedge CIk Or POSedge start)if {start)q<=161h5555;//给抢答的四人毎人一个初始分数5分else if (up)//加按键按下时加1分case (S)3'blOO:if (q[3^J<⅛τh9)q[3 = 0]<=q[3r01+lτbl;//最高分不能超过93τbl01∑if (q[7z41<4τh9)q[7z4]<=q[7z4]+l l bl;//3*bllO:if (q[llιB]<4t h9)q∣[llι8]<=q[llι8]+l t bl;//3,blllzif(q[15:12]<4'h9)q(15:12]<=q[15:12]+1t bl;//endcaseelsecase (s)3τblOO=if(q[3=O]>O)q[3r{)]<^ι[3:Ol-I l b1;//最低分不能小于03,bl01=if (q[7 = 4]>0)q[7 = 4]<=q[7 = 4]-l l bl;//S1DllOiif(q[llzB]>O)q[11:0]<=q[11;B]-l'bl;//3l blllzif(q[15:12]>0)q[15:12]<=q[15:12]-l1bl;//endcase endmodule顶层模块的代码如下:module top (StaEt J Clr f CLkJ UPJ Idowlb key f⅛f b f c, Cb S l E 内*SeI J led}主槟块input start,clr f亡IlGUpr down;input[3:0] key;OUtPUt a f b f亡de,frg;OUtPUt[2:0] sei;OUtPUt[3:0] led;wire f lash f wup j WdDWr L;∏内部节点〔连线】Wire [2:0]fuck;Wire [3:0]out; Wire [15:0]Whore; deboυnced⅞bl(.clk(s) J-key_In (υp}…key_OUt (WUP))「"按⅛⅛⅛4⅛τd⅞⅛2(.clk(s) J-Ifey in{mod)…key-αut (WdOWn));"按键去抖动SCaIn SCan (.clk(s) J.q(sel)} J∕∕⅛⅛mux9 mux LaI (VhOre(S: 0]} r r a2 (4 ,ha} j r a3 (WhOre [7 : 4])…訥K ,ha) J+a5(w⅛0R[11:3]I,.a6{4rħa)I r,a7(Whore[15:12]) r,aS{4τha),-Bel{≤el)「”DdfuCk) J r clk{flash}. ”OUt{out});//4 rħa在CIeIed里定文为全熄deled CieIeelL in (out) t.a (a), ,b (b), .c (c) f.d(d) f.e (e) j. f (f) ,r.g{g)}数码管驱动Store SitOre (. Start (st⅛rt} f-UP (VrUP) f- CIawn (IJaoWn) f . 5 (fuck) ,r,q{wħαre)); //分⅛fc控制SnatCh Snatcħ {r clr (dr) J key {⅛ey) F -Cia t⅛ (WhOre) I- Ied (ISdI Z p jn(fυck)); /丿抢答控制div_cIk divclkl(.cifi(clk), .f (15,d4θθθ) Ir,cko(≤) H "分频CliVCI⅛2(. Cki (Clk)5.f (21d2), T C)co (flash));endιπodule•重难点解析抢答器的核心部分为巧妙地利用D触发器的反馈,在检测到第一个上升沿时将按键(未按下时接低电平)接入的与门锁住,以保证与门只有一个上升沿输出,从而实现“最先按下按键的人抢答成功,此后其他人抢答无效”。
Verilog数字抢答器

数字抢答器设计与制作一、设计任务设计并制作一个数字抢答器。
二、设计要求1.抢答器同时供9名选手或9个代表队比赛,分别用9个按钮SW1 ~ SW9表示。
2.设置一个系统清除和抢答控制开关S,该开关由主持人控制。
3.抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LCD数码管上显示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
三、方案论证与总体设计1、提出方案。
本设计是一个数字电路设计题,可提出两种方案。
方案Ι由COMS系列数字集成电路:CD4543、CD4071、CD4069及少数外围电路组成。
方案Π由TTL系列数字集成电路:74LS248、74LS04、74LS32、74LS116及少数外围电路组成。
两种电路原理方框图一样(见图一),其工作原理为:接通电源后,主持人将开关拨到”清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置于“开始”状态,抢答器开始工作。
选手在抢答时,抢答器完成:优先判断、编号锁存、编号显示。
当一轮抢答之后,如果再次抢答必须由主持人再次操作”清除”和”开始”状态开关。
图一、电路原理方框图2、方案比较。
两种方案的设计原理相同,只是用的集成电路不同。
TTL 双极器件、电源电压5V、速度快数ns、功耗大mA级、负载力大,负载以mA计,不用端多半可不做处理。
CMOS 单级器件、电源电压可到15V、速度慢几百nS,功耗低省电uA级、负载力小以容性负载计,不用端必须处理。
设计便携式和电池供电的设备多用CMOS芯片,对速度要求较高的最好选用TTL中的74SXXX系列。
本电路对速度要求不大,选用CMOS型数字集成块来组成抢答器。
四、单元电路设计1.图中左上方所示为9路开关阵列电路,从图上可以看出其结构非常简单。
电路中,R1为下拉和限流电阻。
R2、R3、R4、R5用于分压,其中R1的阻值必须比R2~R5都小,当任一开关按下时,相应的输出为高电平,否则为低电平。
数字电子技术实验报告范文-基于FGPA的4位智能抢答器(verilogHDL)

数字电子技术实验报告范文-基于FGPA的4位智能抢答器(verilogHDL)基于FPGA的4位智能抢答器一、设计任务要求基于EDA/SOPC系统开发平台,运用QuartuⅡ可编程逻辑器件开发软件,设计一个4位智能抢答器,在开发箱上,本系统使用频率为1000赫兹的时钟脉冲。
要求如下:2、系统上电和按下“复位”按键后4位数码管显示“0000”,此时只有“开始”按键有效,其他按键不起作用;4、抢答的有效时间为10秒,如果定时抢答的时间已到而没有选手抢答,本次抢答无效,封锁输入电路,禁止抢答,数码管左边显示“10”,右边显示“00”;此状态一直保持到主持人将系统复位为止;二、设计步骤本次设计主要采用VerilogHDL语言,总体编程思路采用模块化设计方式,主要分为3个模块,一个主控制及按键输入模块,一个计时显示模块,一个抢答组号显示模块,分别对这3个子模块进行独立编程设计,编译仿真通过并生成元件,在顶层使用原理图或者VerilogHDL语言的方式将3个模块连接起来三、模块设计思路对于这个任务来说,计时显示模块和抢答组号显示模块的模块并不复杂,复杂的模块是主控制及按键输入模块,所以我决定再将主控制模块拆分成两个小的模块——按键输入模块、按键输入判断输出模块。
后者使用4个D触发器来实现,当游戏开始的时候4个D触发器都会接收按键按下的信息,并且判断是否出现问题,下面我就真实的程序来进行说明。
1、主控制模块的按键输入模块LED3=how0;LED4=how0;endendEndmodule总体的电路图如下:(有些模糊,是因为电路图的连线过长,截图的时候不得不截成一个明显的长方形图形)四、实验总结:通过这次的实验任务,学习了一些verilogHDL语言的知识,也复习了数字电子技术相关的知识。
以前只是在纸上画过一些原理图,如果需要改动某一个点的时候就会出现牵一发而动全身的现象,对于比较复杂的电路设计,纸上的勾勾画画很显然会很浪费时间,所以对于程序设计电路的方式我相信大多数人是持欢迎态度的。
基于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--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 工具之间的界面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
抢答器设计题目:智能电子抢答器专业:电子信息工程2011 年 1 月7 日摘要抢答器是在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答者的机器。
电子抢答器的中心构造一般都是由抢答器由单片机以及外围电路组成。
本设计是以四路抢答为基本概念。
从实际应用出发,利用电子设计自动化( EDA)技术,用可编程逻辑器件设计具有扩充功能的抢答器。
它以Verilog HDL 硬件描述语言作为平台,结合动手实验而完成的。
它的特点是电路简单、制作方便、操作简单、方便、性能可靠,实用于多种智力竞赛活动。
本抢答器的电路主要有四部分组成:鉴别锁存电路、FPGA主芯片EP1C3T144C8电路、计分电路以及扫描显示模块的电路,并利用Quartus II工具软件完成了Verilog HDL源程序编写和硬件下载。
这个抢答器设计基本上满足了实际比赛应用中的各种需要。
在实际中有很大的用途。
关键词:抢答器 Quartus II Verilog HDL EP1C3T144C81引言硬件描述语言 Hardware Description Language 是硬件设计人员和电子设计自动化 EDA 工具之间的界面。
其主要目的是用来编写设计文件,建立电子系统行为级的仿真模型。
即利用计算机的巨大能力对用 Verilog HDL 或 VHDL 建模的复杂数字逻辑进行仿真,然后再自动综合以生成符合要求且在电路结构上可以实现的数字逻辑网表 Netlist,根据型仿真验证无误后用于制造ASIC芯片或写入 EPLD 和 FPGA 器件中。
Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。
1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。
1989年CADENCE公司收购了GDA公司,使得Verilog HDL成为了该公司的独家专利。
1990年CADENCE公司公开发表了Verilog HDL,并成立LVI 组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995.Verilog HDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把Verilog HDL内容安排在与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。
2 关于课程设计2.1 课程设计目的理论联系实际,巩固和运用所学课程,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个智力抢答器的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。
巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。
为了进一步了解计算机组成原理与系统结构,深入学习EDA技术,用Verilog HDL语言去控制将会使我们对本专业知识可以更好地掌握。
2.2 课程设计的内容加1分,错一次减1分。
3 开发工具简介3.1 EDA技术EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
3.2 硬件描述语言—Verilog HDLVerilog HDL 是硬件描述语言的一种,用于数字电子系统设计。
该语言是 1983 年由 GDA ( GateWay Design Automation )公司的 Phil Moorby 首创的。
Phil Moorby 后来成为 Verilog - XL 的主要设计者和 Cadence 公司( Cadence Design System )的第一个合伙人。
在 1984-1985 年间, Phil Moorby 设计出第一个名为 Verilog-XL 的仿真器; 1986 年,他对 Verilog HDL 的发展又一次作出了巨大贡献——提出了用于快速门级仿真的 XL 算法。
随着 Verilog-XL 算法的成功, Verilog HD 语言得到迅速发展。
1989 年,Cadence 公司收购 GDA 公司, Verilog HDL 语言成为了 Cadence 公司的私有财产。
1990 年, Cadence 公司决定公开 Verilog HDL 语言,并成立了 OVI ( Open Verilog International )组织,并负责促进 Verilog HDL 语言的发展。
基于 Verilog HDL 的优越性, IEEE 于 1995 年制定了 Verilog HDL 的IEEE 标准,即 Verilog HDL1364-1995 ; 2001 年发布了 Verilog HDL1364-2001 标准。
3.3 Verilog HDL 的设计流程一般是:1 .文本编辑:用任何文本编辑器都可以进行,也可以用专用的 HDL 编辑环境。
通常 Verilog HDL 文件保存为 .v 文件。
2 .功能仿真:将文件调入 HDL 仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只有在布线完成之后,才进行时序仿真)。
3 .逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。
逻辑综合软件会生成 .edf ( EDIF )的 EDA 工业标准文件。
(最好不用 MAX+PLUS II 进行综合,因为只支持 VHDL/Verilog HDL 的子集)4 .布局布线:将 .edf 文件调入 PLD 厂家提供的软件中进行布线,即把设计好的逻辑安放到 CPLD/FPGA 内。
5 .时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序(也叫后仿真)。
3.4 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有:1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
--2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
目前FPGA的品种很多,有XILINX公司的Virtex系列、TI公司的TPC系列、ALTERA公司的Stratix系列等。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA 进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA 的使用非常灵活。
FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
4 设计过程4.1 系统设计要求本设计的具体要求是:(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮。
(2) 电路具有第一抢答信号的鉴别和锁存功能。
在主持人按下复位按钮后,若参加者按抢答开关,则该组指示灯亮。
此时,电路应具备自锁功能,使别组的抢答开关不起作用。
(3)自锁后,用八段数码管显示抢答者的序号,同时扬声器发出“嘟嘟”并且持续3秒。
(4) 设置计分电路。
每组在开始时预置成6,抢答后由主持人计分,答对一次加1,否则减1分。
4.2 系统设计方案根据系统设计要求可知,系统的输入信号有:各组的抢答按钮1、2、3、4,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LEDA、LEDB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。
本系统应具有的功能有:第一抢答信号的鉴别和锁存功能;数码管显示;计分控制。
根据以上的分析,我们可将整个系统分为四个主要模块:抢答鉴别模块;抢答计分模块;显示译码模块;EP1C3T144C8 接口模块。