EDA设计技术课程设计报告.docx

上传人:b****1 文档编号:14605037 上传时间:2023-06-24 格式:DOCX 页数:28 大小:44.83KB
下载 相关 举报
EDA设计技术课程设计报告.docx_第1页
第1页 / 共28页
EDA设计技术课程设计报告.docx_第2页
第2页 / 共28页
EDA设计技术课程设计报告.docx_第3页
第3页 / 共28页
EDA设计技术课程设计报告.docx_第4页
第4页 / 共28页
EDA设计技术课程设计报告.docx_第5页
第5页 / 共28页
EDA设计技术课程设计报告.docx_第6页
第6页 / 共28页
EDA设计技术课程设计报告.docx_第7页
第7页 / 共28页
EDA设计技术课程设计报告.docx_第8页
第8页 / 共28页
EDA设计技术课程设计报告.docx_第9页
第9页 / 共28页
EDA设计技术课程设计报告.docx_第10页
第10页 / 共28页
EDA设计技术课程设计报告.docx_第11页
第11页 / 共28页
EDA设计技术课程设计报告.docx_第12页
第12页 / 共28页
EDA设计技术课程设计报告.docx_第13页
第13页 / 共28页
EDA设计技术课程设计报告.docx_第14页
第14页 / 共28页
EDA设计技术课程设计报告.docx_第15页
第15页 / 共28页
EDA设计技术课程设计报告.docx_第16页
第16页 / 共28页
EDA设计技术课程设计报告.docx_第17页
第17页 / 共28页
EDA设计技术课程设计报告.docx_第18页
第18页 / 共28页
EDA设计技术课程设计报告.docx_第19页
第19页 / 共28页
EDA设计技术课程设计报告.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

EDA设计技术课程设计报告.docx

《EDA设计技术课程设计报告.docx》由会员分享,可在线阅读,更多相关《EDA设计技术课程设计报告.docx(28页珍藏版)》请在冰点文库上搜索。

EDA设计技术课程设计报告.docx

EDA设计技术课程设计报告

EDA设计技术课程设计报告

电子科学与技术12级潘蕾娜学号50

1设计思路

1.1设计原理框图

由实验目的,思考出以下原理框图:

(1)功能键模块用于根据要求来显示学号或首字母;

(2)计数器1模块用来控制每个数字显示的时间长短;

(3)定时器用于产生足够高的刷新率,以至于可以动态显示及选择要显示的数字,当

(2)中设定的计数值达到后,就可以换一数字;

(4)通过LED的行选择计数器及列选,在显示屏上显示出要显示的数字,以实现学号的循环显示;

1.2硬件的选择

选择实验板为EPM240T100C5,开发环境采用QuartusII9.0,仿真软件采用QuartusII9.0的静态波形仿真和QuestaSim10.0。

时钟输入选12MHZ,I/O14;

其拨键开关,按键开关均为按下为低电平;

蜂鸣器低电平发出叫声,若不使用就设置为高电平;

1.3设计步骤及过程

1.功能键模块

(1)设计两个按键key_1,key_2,用来根据选择实现循环。

(2)对两个按键输入异步信号用本地clk时钟寄存2拍后再用于判断电平状态,以避免亚稳态;

(3)key_1,显示学号:

2,0,1,2,5,0,4,4,0,5,0……;key_2,显示姓名首字母缩写:

P,L,N……。

2.定时器模块

(1)首先选择刷新率:

应满足人眼无闪烁的效果,以实现动态显示;

(2)构建一个定时14位模16384计数器cnt_14bit实现数码管动态刷新,刷新率f=12000000/2^14/8=91Hz,可满足无闪烁需要。

3.计数器模块

(1)构建模8计数器led_No用于表明当前哪一行亮,cnt_14bit计满时led_No+1;

(2)构建模24计数器cnt_24bit用于控制每个数字显示的时间,显示时间为0.7s,

N=12000000*0.7=8400000.长度为[0:

8399999];当cnt_24bit计满时,显示下一个数字;

(3)最后根据模8计数器的值送到显示屏上合适的显示值;

2源代码设计及分析

由以上的分析,编写出下列源代码:

modulenum(clk,rst,key_1,key_2,dataout,led_bit,bell_out);//定义输入输出的端口名

inputclk,rst;//系统时钟clk12MHz,

inputkey_1,key_2;//循环控制按键key_1,key_2

output[7:

0]dataout;//LED的列选dataout,定义为输出变量

reg[7:

0]dataout;//出现在always@()中,列选dataout定义成寄存器类型

output[7:

0]led_bit;//行选输出led_bit

reg[7:

0]led_bit;//出现在always@()中,行选输出led_bit定义成寄存器类型

outputbell_out;//蜂鸣器输出bell_out

reg[13:

0]cnt_14bit;//定义14位的寄存器变量cnt_14bit

reg[23:

0]cnt_24bit;//定义24位的寄存器变量cnt_24bit

reg[10:

0]M8_cnt;//定义11位的寄存器变量M8_cnt

reg[2:

0]led_No;//定义3位中间寄存量用以控制8位列值

regkey_1_d1,key_2_d1;//定义中间寄存变量一位

regkey_1_d2,key_2_d2;

assignbell_out=1'b1;//关闭蜂鸣器

always@(posedgeclk)//按下按键key_1,key_2,先打两拍,以避免亚稳态

begin

key_1_d1<=key_1;

key_2_d1<=key_2;

key_1_d2<=key_1_d1;

key_2_d2<=key_2_d1;

end

always@(posedgeclkornegedgerst)//构建模14的计数器

begin

if(!

rst)

cnt_14bit<=14'd0;

else

begin

if(cnt_14bit<14'd16383)

cnt_14bit<=cnt_14bit+1'b1;

else

cnt_14bit<=14'd0;

end

end

always@(posedgeclkornegedgerst)//计满,led_No加1

begin

if(!

rst)

led_No<=3'd0;

elseif(cnt_14bit==14'h16383)

led_No<=led_No+1'b1;

end

always@(posedgeclkornegedgerst)//根据led_No,给led_bit赋不同的值,以实现动态显示

begin

if(!

rst)

led_bit<=8'b11111111;

else

begin

case(led_No)

3'd0:

led_bit<=8'b11111110;

3'd1:

led_bit<=8'b11111101;

3'd2:

led_bit<=8'b11111011;

3'd3:

led_bit<=8'b11110111;

3'd4:

led_bit<=8'b11101111;

3'd5:

led_bit<=8'b11011111;

3'd6:

led_bit<=8'b10111111;

3'd7:

led_bit<=8'b01111111;

endcase

end

end

always@(posedgeclkornegedgerst)//构建0.7s的计数器

begin

if(!

rst)

cnt_24bit<=24'd0;

else

begin

if(cnt_24bit<24'd8399999)

cnt_24bit<=cnt_24bit+24'b1;

else

cnt_24bit<=24'd0;

end

end

always@(posedgeclkornegedgerst)//计满,M8_cnt+1以实现数字的变换

begin

if(!

rst)

M8_cnt<=0;

elseif(cnt_24bit==24'd8399999)

M8_cnt<=M8_cnt+1'b1;

end

always@(posedgeclkornegedgerst)//循环显示数字

begin

if(!

rst)

dataout<=8'b11111111;

elseif(!

key_1_d2)//按下key_1(pin27),循环显示11位的学号20125044050

begin

case(M8_cnt)

4'd0:

begin

case(led_No)//显示‘2’

3'd0:

dataout<=8'b11000011;

3'd1:

dataout<=8'b10111101;

3'd2:

dataout<=8'b11111011;

3'd3:

dataout<=8'b11110111;

3'd4:

dataout<=8'b11101111;

3'd5:

dataout<=8'b11011111;

3'd6:

dataout<=8'b10111111;

3'd7:

dataout<=8'b10000001;

endcase

end

4'd1:

begin

case(led_No)//显示‘0’

3'd0:

dataout<=8'b11000011;

3'd1:

dataout<=8'b10111101;

3'd2:

dataout<=8'b10111101;

3'd3:

dataout<=8'b10111101;

3'd4:

dataout<=8'b10111101;

3'd5:

dataout<=8'b10111101;

3'd6:

dataout<=8'b10111101;

3'd7:

dataout<=8'b11000011;

endcase

end

4'd2:

begin

case(led_No)//显示‘1’

3'd0:

dataout<=8'b11110111;

3'd1:

dataout<=8'b11100111;

3'd2:

dataout<=8'b11110111;

3'd3:

dataout<=8'b11110111;

3'd4:

dataout<=8'b11110111;

3'd5:

dataout<=8'b11110111;

3'd6:

dataout<=8'b11110111;

3'd7:

dataout<=8'b11100011;

endcase

end

4'd3:

begin

case(led_No)//显示‘2’

3'd0:

dataout<=8'b11000011;

3'd1:

dataout<=8'b10111101;

3'd2:

dataout<=8'b11111011;

3'd3:

dataout<=8'b11110111;

3'd4:

dataout<=8'b11101111;

3'd5:

dataout<=8'b11011111;

3'd6:

dataout<=8'b10111111;

3'd7:

dataout<=8'b10000001;

endcase

end

4'd4:

begin

case(led_No)//显示‘5’

3'd0:

dataout<=8'b00000001;

3'd1:

dataout<=8'b01111111;

3'd2:

dataout<=8'b01111111;

3'd3:

dataout<=8'b00000111;

3'd4:

dataout<=8'b11111011;

3'd5:

dataout<=8'b11111101;

3'd6:

dataout<=8'b10111101;

3'd7:

dataout<=8'b10000011;

endcase

end

4'd5:

begin

case(led_No)//显示‘0’

3'd0:

dataout<=8'b11000011;

3'd1:

dataout<=8'b10111101;

3'd2:

dataout<=8'b10111101;

3'd3:

dataout<=8'b10111101;

3'd4:

dataout<=8'b10111101;

3'd5:

dataout<=8'b10111101;

3'd6:

dataout<=8'b10111101;

3'd7:

dataout<=8'b11000011;

endcase

end

4'd6:

begin

case(led_No)//显示‘4’

3'd0:

dataout<=8'b11100111;

3'd1:

dataout<=8'b11010111;

3'd2:

dataout<=8'b10110111;

3'd3:

dataout<=8'b01110111;

3'd4:

dataout<=8'b00000001;

3'd5:

dataout<=8'b11110111;

3'd6:

dataout<=8'b11110111;

3'd7:

dataout<=8'b11100011;

endcase

end

4'd7:

begin

case(led_No)//显示‘4’

3'd0:

dataout<=8'b11100111;

3'd1:

dataout<=8'b11010111;

3'd2:

dataout<=8'b10110111;

3'd3:

dataout<=8'b01110111;

3'd4:

dataout<=8'b00000001;

3'd5:

dataout<=8'b11110111;

3'd6:

dataout<=8'b11110111;

3'd7:

dataout<=8'b11100011;

endcase

end

4'd8:

begin

case(led_No)//显示‘0’

3'd0:

dataout<=8'b11000011;

3'd1:

dataout<=8'b10111101;

3'd2:

dataout<=8'b10111101;

3'd3:

dataout<=8'b10111101;

3'd4:

dataout<=8'b10111101;

3'd5:

dataout<=8'b10111101;

3'd6:

dataout<=8'b10111101;

3'd7:

dataout<=8'b11000011;

endcase

end

4'd9:

begin

case(led_No)//显示‘5’

3'd0:

dataout<=8'b00000001;

3'd1:

dataout<=8'b01111111;

3'd2:

dataout<=8'b01111111;

3'd3:

dataout<=8'b00000111;

3'd4:

dataout<=8'b11111011;

3'd5:

dataout<=8'b11111101;

3'd6:

dataout<=8'b10111101;

3'd7:

dataout<=8'b10000011;

endcase

end

4'd10:

begin

case(led_No)//显示‘0’

3'd0:

dataout<=8'b11000011;

3'd1:

dataout<=8'b10111101;

3'd2:

dataout<=8'b10111101;

3'd3:

dataout<=8'b10111101;

3'd4:

dataout<=8'b10111101;

3'd5:

dataout<=8'b10111101;

3'd6:

dataout<=8'b10111101;

3'd7:

dataout<=8'b11000011;

endcase

end

endcase

end

elseif(!

key_2_d2)//按下key_2(pin29),循环显示PLN,PLN……

begin

case(M8_cnt)

4'd0:

begin

case(led_No)//显示‘P’

3'd0:

dataout<=8'b10000111;

3'd1:

dataout<=8'b10111011;

3'd2:

dataout<=8'b10111101;

3'd3:

dataout<=8'b100000111;

3'd4:

dataout<=8'b10111111;

3'd5:

dataout<=8'b10111111;

3'd6:

dataout<=8'b10111111;

3'd7:

dataout<=8'b10111111;

endcase

end

4'd1:

begin

case(led_No)//显示‘L’

3'd0:

dataout<=8'b10111111;

3'd1:

dataout<=8'b10111111;

3'd2:

dataout<=8'b10111111;

3'd3:

dataout<=8'b10111111;

3'd4:

dataout<=8'b10111111;

3'd5:

dataout<=8'b10111111;

3'd6:

dataout<=8'b10111111;

3'd7:

dataout<=8'b10000001;

endcase

end

4'd2:

begin

case(led_No)//显示‘N’

3'd0:

dataout<=8'b10111110;

3'd1:

dataout<=8'b10011110;

3'd2:

dataout<=8'b10101110;

3'd3:

dataout<=8'b10110110;

3'd4:

dataout<=8'b10111010;

3'd5:

dataout<=8'b10111100;

3'd6:

dataout<=8'b10111110;

3'd7:

dataout<=8'b10111110;

endcase

end

4'd3:

begin

case(led_No)//显示‘P’

3'd0:

dataout<=8'b10000111;

3'd1:

dataout<=8'b10111011;

3'd2:

dataout<=8'b10111101;

3'd3:

dataout<=8'b100000111;

3'd4:

dataout<=8'b10111111;

3

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2