电子电路EDA技术课程实践试验考试报告书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

[第页]课程实践实验考试设计报告设计课题:7段数码显示分钟与秒钟设计自考专业:电子信息技术(B080738)考生姓名:xxx指导教师:xxx设计时间:2016-03-11电子电路EDA技术实践考试设计任务书姓名:xxx专业:电子信息技术专业代码:B080738指导教师:xxx职称:课程名称电子电路EDA技术课程设计题目:7段数码显示分钟与秒钟设计设计要求:1.设计一个1分钟计时器,并显示秒数,显示采用七段数码管。2.模块划分;3.HDL代码编写;4.仿真并验证设计结果。所需仪器设备:计算机及相关开发设计软件、EDA实箱、示波器成果验收形式:需求分析;概要设计;详细设计;调试与分析;试验报告参考文献:1.《基于FPGA的现代数字系统设计》西安电子科技大学出版社2011年版2.华清远见嵌入式培训中心编FPGA应用开发入门与典型实例时间安排2016-3-11[第页]目录一、总体设计分析.....................................................................................41.1设计论证..................................................................................................错误!未定义书签。1.2模块划分.................................................................................................................................41.3输入输出端口分配.................................................................................................................5二、各模详细块设计与仿真......................................................................52.1分频器设计.............................................................................................................................52.2分钟与秒钟计数设计.............................................................................................................62.3动态扫描模块设计.................................................................................................................72.4数码管译码器设计.................................................................................................................82.5顶层模块设计.........................................................................................................................9三、综合仿真测试...................................................................................10四、分析与总结......................................................................................11五、附件..................................................................................................12一、总体设计分析1.1原理分析分计数器和秒计数器为60进制计数器,采用10进制计数器与6进制计数器组合而成,便于数码管显示设计。若采用静态扫描显示方式,则4个数码管段选线是独立的,则需要I/O端口较多,占有资源大,且此功耗大。因此,采用动态扫描显示方式输出。1.2模块划分该设计主要由分频器、计数器、动态扫描显示模块、共阴7段数码管译码器组成。其中分频器设计中,采用有PLL锁相环分频后的200Hz的时钟源,经200分频后为1HZ的秒计数时钟;另外200Hz作为数码管动态扫描等其他所用时钟源;采用太快得时钟动态扫描,数码管显示会有些昏暗;频率太慢人眼睛会看到闪烁。2个60进制计数器分别作为分计数器和秒计数器。一个60进制计数器由一个6进制计数器和一个10进制计数器组成,便于四个数码管的显示。另外,使用一个接口作为数码管复位按键接口;由于是共共阴7段数码管,因此,FPGA输出接口与数码管间需接数码管驱动电路,增强FPGA输出信号的驱动能力。图1总体设计框图60进制计数器6进制计数器10进制计数器分计数器秒计数器四只共阴数码管译码器数码管动态扫描电路200分频器lHz200Hz[第页]1.3输入输出端口分配FPGA分配的与外围电路的接口管脚信号,其中各引脚的功能如下:引脚符号功能说明1Rst_n数码管复位按键接口2disp_select外接数码管阴极动态扫描接口(四根信号)3disp_data译码器输出端,接数码管的阳极(a~g7根信号口,中间需驱动器,四个数码管并联)二、各模块详细设计与仿真2.1分频器设计VerilogHDL代码如下:(200HZ的动态扫描时钟进行200分频为1HZ计时时钟信号)moduleClk_Div200(Clk_in,Rst_n,Clk_out);inputClk_in,Rst_n;outputregClk_out;reg[7:0]Cnt;always@(posedgeClk_in)beginif(!Rst_n)Cnt=0;elseif(Cnt==8'd199)Cnt=0;elseCnt=Cnt+1'b1;endalways@(posedgeClk_in)beginif(!Rst_n)Clk_out=0;elseif(Cnt==8'd199)Clk_out=~Clk_out;endendmodule功能仿真结果如下图:2.2分钟与秒钟计数设计采用与十进制计数器与六进制计数器组合而成,一个60进制的计数器。VerilogHDL代码如下:moduletime_counter//分钟秒钟计数(Rst_n,Clk_out,time_bit_high,time_bit_low,EO);inputClk_out,Rst_n;outputEO;output[3:0]time_bit_high,time_bit_low;reg[3:0]time_bit_high,time_bit_low;regEO;reglow_to_high;wireClk_out;always@(posedgeClk_out)begin//低位计数,到9清零,高位计数使能开启if(!Rst_n)begintime_bit_low=4'b0;low_to_high=1'b0;endelseif(time_bit_low4'b1001)begintime_bit_low=time_bit_low+4'b1;low_to_high=1'b0;endelseif(time_bit_low==4'b1001)beginlow_to_high=1'b1;time_bit_low=4'b0;endendalways@(low_to_high)beginif(!Rst_n)begintime_bit_high=4'b0;EO=1'b0;endelseif(time_bit_high4'b0101&&low_to_high==1'b1)begin//高位计数,到5清零,高位计数使能开启time_bit_high=time_bit_high+4'b1;EO=1'b0;endelseif(time_bit_high==4'b0101&&low_to_high==1'b1)begintime_bit_high=1'b0;[第页]EO=1'b1;endendendmodule功能仿真结果如下图:(输入Rst_n复位信号,分秒计数清零。秒钟计数,低温到9清零后产生高位计数信号low_to_high,高位计数到5后。对于秒钟计数产生分钟低位开始计数的使能信号EO)2.3动态扫描模块设计采用与200Hz的时钟不断刷新显示,利用人眼睛视觉延时特性,动态显示计数结果。四位共阴数码管动态扫描。VerilogHDL代码如下:moduledynamic_scanning//四位共阴数码管动态扫描(Rst_n,Clk_in,disp_select,minute_bit_high,minute_bit_low,second_bit_high,second_bit_low);inputRst_n,Clk_in;input[3:0]minute_bit_high,minute_bit_low,second_bit_high,second_bit_low;output[3:0]disp_select;reg[3:0]disp_select;wire[3:0]minute_bit_high,minute_bit_low,second_bit_high,second_bit_low;reg[1:0]Cnt;always@(posedgeClk_in)beginif(!Rst_n)Cnt=0;elseif(Cnt==2'b11)Cnt=0;elseCnt=Cnt+1'b1;endalways@(posedgeClk_in)begincase(Cnt)2'b00:disp_select=second_bit_low;2'b01:disp_select=second_bit_high;2'b10:disp_select=minute_bit_low;2'b11:disp_select=minute_bit_high;default:disp_select=4'b1111;endcaseendendmodule2.4数码管译码器设计对计数器输出的数据,进行译码,生成在七段共阴数码管上能显示0~9的二进制信号。VerilogHDL代码如下:moduledisp_decode4_7(Rst_n,Clk_in,minute_bit_high,minute_bit_low,second_bit_high,second_bit_low,select_data,disp_data);inputRst_n,Clk_in;input[3:0]minute_bit_high,minute_bit_low,second_bit_high,second_bit_low;input[3:0]select_data;output[7:0]disp_data;wire[3:0]minute_bit_high,minute_bit_low,second_bit_high,second_bit_low;reg[7:0]disp_data;reg[3:0]data;always@(posedgeClk_in)beginif(Rst_n==1'b1)begincase(select_data)4'b1110

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功