好文档 - 专业文书写作范文服务资料分享网站

青岛农业大学----电子设计自动化及专用集成电路---课程设计报告汇总

天下 分享 时间: 加入收藏 我要投稿 点赞

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

青 岛 农 业 大 学 理学与信息科学学院

电子设计自动化及专用集成电路

课程设计报告

设 计 题 目 一、设计一个二人抢答器 二、密码锁 学生专业班级 学生姓名(学号) 指 导 教 师 完 成 时 间 实 习(设计)地点 信息楼121

年 11 月 1 日

一、课程设计目的和任务

课程设计目的:本次课程设计是在学生学习完数字电路、模拟电路、电子设计自动化的相关课程之后进行的。通过对数字集成电路或模拟集成电路的模拟与仿真等,熟练使用相关软件设计具有较强功能的电路,提高实际动手,为将来设计大规模集成电路打下基础。

课程设计任务:

一、设计一个二人抢答器。要求:

(1) 两人抢答,先抢有效,用发光二极管显示是否抢到答题权。 (2) 每人两位计分显示,打错不加分,答对可加10、20、30分。 (3) 每题结束后,裁判按复位,重新抢答。 (4) 累积加分,裁判可随时清除。

二、密码锁

设计四位十进制密码锁,输入密码正确,绿灯亮,开锁;不正确,红灯亮,不能开锁。密码可由用户自行设置。

二、分析与设计

1、设计任务分析

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

(1)二人抢答器用Verilog硬件描述语言设计抢答器,实现:

1、二人通过按键抢答,最先按下按键的人抢答成功,此后其他人抢答无效。 2、每次只有一人可获得抢答资格,一次抢答完后主持人通过复位按键复位,选手再从新抢答。

3、有从新开始游戏按键,游戏从新开始时每位选手初始分为零分,答对可选择加10分、20分,30分,最高九十分。

4、选手抢答成功时其对应的分数显示。 (2)密码锁

1、第一个数字控制键用来进行密码的输入

2、第二个按键控制数字位数的移动及调用密码判断程序。当确认后如果显示数据与预置密码相同,则LED 亮;如不相等,则无反应。按下复位键,计数等均复位

2、设计方案论证详细设计

(1)抢答器的主要利用D触发器的反馈,当检测到第一个上升沿时将按键(未按下时接低电平)接入的与门锁住,以保证与门只有一个上升沿输出,从而实现“最先按下按键的人抢答成功,此后其他人抢答无效”。在与门输出上升沿的同时检测按键,以确定是哪位选手抢答,用寄存器存下抢答选手的信息,最后确定哪个led灯亮以及那位选手对应的分数闪烁。

将各模块代码写好并测试后,在主模块中调用并分配引脚,引脚分配好后,从新编译、下载就可实验了。分别验证上述的各种功能,看是否达到预期的效果。

(2)根据密码输入信号控制I/0 口的输出,第一个按键控制数字的递加,第二个按键控

制数字位数的移动及调用密码判断程序。当确认后如果显示数据与预置密码相同,则LED 亮;如不相等,则无反应。按下复位键,计数等均复位。系统流程如下:

3、详细设计

(1)二人抢答器。顶层模块部分在在quartusII下的仿真原理图如下所示:

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

抢答部分的仿真图:

加分模块部分(对应snatch模块)在quartusII下的仿真原理图如下所示: 数码管显示模块部分(对应snatch模块)在quartusII下的仿真原理图如下所示:

(2)密码锁

密码锁模块部分(对应snatch模块)在quartusII下的仿真原理图如下所示: 4、源代码分析

(1)二人抢答器代码 module

top(reset,key,score,clr,led,opin);//顶层模块部分

input reset;//开始抢答按钮 input[1:0] key;//双人抢答按键 input[2:0] score;//加分按钮 input clr;//清零按钮 output[1:0] led;//显示灯

output[31:0] opin;//数码管引脚控制 wire[1:0] m;

wire[7:0] q;

snatch snatch(reset,key,led,m);//调用抢答模块

store store(score,clr,m,q);//调用加分模块

deled deled(q,opin);//调用显示模块 endmodule

module snatch(reset,key,led,m);//抢答模块部分

input reset; input[1:0] key; output[1:0] led;

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

output[1:0] m; reg q; reg[1:0] s;

wire out=key[0]|key[1]; wire clk=(!q)&out; assign m=s;

always@(posedge clk or posedge reset)//判断是否清零 if(reset) begin q<=1'b0;

end

else q<=1'b1;

always@(posedge clk)//当开始抢答

时,判断是否有人抢答,并将抢答的选手记录下

case(key) 2'b01:s<=2'b01; 2'b10:s<=2'b10; default:s<=2'b??; endcase

assign led=s;//对应选手的灯亮 endmodule

module store(score,clr,s,q);//加分模

input clr; input[2:0] score; input[1:0] s; output[7:0] q; reg[7:0] q;

wire clk=score[0]|score[1]|score[2];//判断是否进行加分

always@(posedge clr or posedge clk)//判断是清零还是加分

begin

if(clr) q<=8'h00; else 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

begin

case(s)//判断那位选手加分 2'b01:begin if(q[3:0]<4'h9)

begin

if(score==3'b001)q[3:0]<=q[3:0]+4'

b0001;//选手一加10分

else

if(score==3'b010)q[3:0]<=q[3:0]+4'b0010; //选手一加20分

else

q[3:0]<=q[3:0]+4'b0011; //选手一加30分

end

end

2'b10:begin if(q[7:4]<4'h9)

begin

if(score==2'b001)q[7:4]<=q[7:4]+4'

b0001; //选手二加10分

else

if(score==2'b010)q[7:4]<=q[7:4]+4'b0010; //选手二加20分

else

q[7:4]<=q[7:4]+4'b0011; //选手二加30分

end

end

endcase end end endmodule

module deled(pin,opin);//数码管显示模块

input[7:0] pin; output[31:0] opin;

reg[31:0] opin;

always@(pin[0] or pin[1] or pin[2] or pin[3] or pin[4] or pin[5] or pin[6] or pin[7])//判断是否有加分显示部分

begin

case(pin[3:0])//判断一号选手的分

4'b0000:opin[15:0]<=16'h3f3f;//显示零分

4'b0001:opin[15:0]<=16'h063f; //显

示十分

青岛农业大学----电子设计自动化及专用集成电路---课程设计报告汇总

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.青岛农业大学理学与信息科学学院电子设计自动化及专用集成电路课程设计报告设计题目一、设计一个二人抢答器二、密码锁学生专业班级学生姓名(学号)
推荐度:
点击下载文档文档为doc格式
8mizt4gmpn4n7xz5eecp3x5if1klmb00b1g
领取福利

微信扫码领取福利

微信扫码分享