文档详情

FPGA课程设计(一百进制、数字钟-交通灯).doc

发布:2023-06-26约1.44万字共21页下载文档
文本预览下载声明
F P G A 课 程 设 计 报 告 专 业:12级电子信息工程 班 级: 一 班 姓 名: 李 威 学 号: 120101011109 指导老师: 祝 宏 制作日期:2014年11月20号 1、任务书: 第九周(10月27号至11月2号):一百进制可逆计数器的模块原理设计,代码编写,波形仿真,代码调试,模块封装以及管脚分配任务。 第十周(11月3号至11月9号):完成第二道设计课题(交通灯)和第三道设计课题(多功能数字钟)模块原理设计,代码编写,波形仿真,代码调试,模块封装以及管脚分配任务。 第十一周(11月10号至11月16号):在实验室使用ED2-115开发板进行功能模块实际演示。 第十二周(11月17号至11月23号):完成对FPGA课程设计报告的书写。 2、报告内容: 设计课题一、一百进制可逆计数器 1)实验要求:设计一个可控的100进制可逆计数器,要求用DE2-115开发板下载。 计数器的时钟输入信号周期为1S。 以十进制形式显示。 有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用下,计数器具有复位、增或减计数、暂停功能。 clr plus minus 功能 0 × × 复位为0 1 1 0 递增计数 1 0 1 递减计数 1 1 1 暂停计数 图1-1 2)信号定义: 分频模块:ncR: 暂停?;?CLOCK_50:500Hz分频?;?? s:1000Hz分频; 译码模块:indec_0~7: 译码输入;?outdec_0~7: 译码输出;? 计数模块:clk?: 脉冲?;?clear 复位端;?plus:加计数使能端;?????????? minus:减计?数使能端?;?cin:计数使能端?; 3)主要模块verilog代码及注示:?? module count100(clk,clear,plus,minus,qout,cin); input clk,clear,plus,minus,cin; //输入由开关控制拨上为1,拨下为0 output [7:0] qout; reg[7:0] qout; always@ (posedge clk) begin if (clear) qout=0; //如果复位端为1则执行复位功能 else if ((plus)(!minus)) // 若plus为1且minus为0 时加计数 begin if (cin) //使能端为1时才进行计数 begin if (qout[3:0]==9) //模为100的计数 begin qout[3:0]=0; if (qout[7:4]==9) qout[7:4]=0; else qout[7:4]=qout[7:4]+1; end else qout[3:0]=qout[3:0]+1; end end else if((!plus)(minus)) //若plus为0且minus为1进行减计数 begin if(cin) if (qout[3:0]==0) begin qout[3:0]=9; if (qout[7:4]==0) qout[7:4]=9; else qout[7:4]=qout[7:4]-1; end else qout[3:0]=qout[3:0]-1; end Else //若plus和minus均为1则暂停 qout=qout; end endmodule 模块封装图: 5)对应各模块功能仿真波形(数据分析)分析及结论 图1-2 如图1-2所示当复位端clear为1时输出qout为0,当复位端clear为0时计数器开始正常计数 us 图1-3 如图
显示全部
相似文档