桂林电子科技大学信息科技学院EDA实训报告 - 图文

发布时间 : 星期三 文章桂林电子科技大学信息科技学院EDA实训报告 - 图文更新完毕开始阅读

桂林电子科技大学信息科技学院

《EDA技术与应用》实训报告

指导教师:江国强 窦文淼

2013年5 月9日

一个4路智能抢答器的设计

1.系统设计:设计一个四路智能抢答器

1.1 设计要求

主持人开始 是否有人提前按下? 是 显示 否 停 抢答 组输出 输出结果 加分减分 重来 1.1.1 设计任务

要求使用cyclone EP1器件制作一个简单的智能抢答器 1.1.2 技术要求

抢答器能实现初始计分,主持人控制抢答开始,抢答结果清零,记录每组分数的功能,在答对或打错的情况下对每组进行加分或减分,在提前和超时抢答时实现扣分加分的功能。 1.2 方案比较

与以往的硬件连接和单片机的方案作比较,用试验箱的cyclone芯片有反应快,编程简单,功能可靠性好的优点。与同样使用cyclone芯片的作品比较此抢答器增加灯闪烁三秒,超时抢答和提前抢答的惩罚功能,加分范围更宽。 1.3 方案论证

1.3.1 总体思路

先使用Quartus9.0软件模块化设计,再在原理图中将模块连线即可完成功能!

1.3.2 设计方案

1.通过:倒计时,加减计数(jiajianjishu),数码管控制模块(mux1),

抢答器(qdq),闪三秒(ZHSM)模块,实现功能,其中mux1模块是对数码管进行控制的,四位(16脚)从这里输出,还有两位8个脚从daojishi模块输出;加减计数模块是将每一组的分数保存下来,再通过mux1输出,抢

答时通过一个拨动开关,一个防抖动按键控制加分减分;或门

让当输出有一个为1时,mux1可以打开,超时和提前抢答结果可以进去,输出到数码管;倒计时模块是输出一个秒脉冲的从30减到0的信号的,ZHSM模块是控制数码管闪3秒的。

2.各个模块程序的设计 倒计时(daojishi)

里面的:

1:分频器

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)) begin

if(q<20000000-1) q=q+1; else q=0;

if(q==20000000-1) cout=1; else cout=0; end

endmodule 2. 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; end else begin

if(q==0) q='h30; else q=q-1;

if(q[3:0]=='hf)begin q[3:0]=9;end if(q=='h0) count=1; else count=0; end endmodule

3.抢答器组数输出模块:

module qdq(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) begin

if(qd==1'b0) begin zd=1;

Sig='h0; Sig1='h0; Sig2='h0; d='h0; end if(k)begin if(zd==1'b1) begin if(g) begin //if((qd1==1'b0)&(~cnn1)) if(qd1==1'b0) begin zd=1'b0; Sig2='h1; d=1; end

联系合同范文客服:xxxxx#qq.com(#替换为@)