文档详情

实验_基于HDL十进制计数器设计.doc

发布:2017-03-27约4.08千字共8页下载文档
文本预览下载声明
西南科技大学 实验报告 课程名称: 基于FPGA的现代数字系统设计 实验名称: 基于HDL十进制计数、显示系统设计 姓 名: 袁谋 学 号: 班 级: 通信1204 指导教师: 龙惠民 西南科技大学信息工程学院 实验目的 1、掌握基于语言的ISE设计全流程; 2、熟悉、应用Verilog HDL描述数字电路; 3、掌握基于Verilog的组合和时序逻辑电路的设计方法。 实验原理 具有数显输出的十进制计数器的设计 图2.1 原理框图 本设计包括3个模块:一个是十进制计数器,一个是驱动七段数码管的模块,一个消抖模块。 输入信号: CLK_50M-------消抖基准延时 clk -------待计数的时钟 clr ---------异步清零信号,当clr=1,输出复位为0,当clr=0,正常计数 E---------使能控制信号,当ce=1,电路正常累加计数,否则电路不工作 输出信号: data_out[6:0]---------驱动数码管,显示计数值的个位 C-----------驱动发光二极管,显示计数值向十位的进位 1、 数码管显示驱动模块 输入:data_in[3:0] -------待显示的数值 输出:data_out[6:0] -------驱动数码管的七位数值(注意表中out的对应位)表2-1 七段字符显示真值表 2、十进制计数器模块 输入信号: clk -------待计数的时钟 clr ---------异步清零信号,当clr =1,输出复位为0,当clr =0,正常计数 E---------使能控制信号,当E=1,电路正常累加计数,否则电路不工作 输出信号: data_in[3:0]----------计数值的个位。即,在clk上升沿检测到data_in=9时,data_in将被置0,开始新一轮的计数。 C ------------计数值的十位进位,即:只有在时钟clk上升沿检测到data_in=9时,C将被置1,其余情况下C=0; 3. 消抖模块 (1)按键抖动产生原因: 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。 图2.2 按键抖动波形图 本次试验的消抖模块 图2.3 消抖模块框图 电平检查模块:检测输入的按键是否被按下或者释放,并分别将H2L_Sig,L2H_Sig拉高,并随后拉低,给出按键的操作信息。 延时模块:对输入的信号变化时刻进行计时并观察信号的变换情况,对输出端口进行恰当地赋值。 4、顶层模块设计 实验步骤 数码管显示驱动模块的设计 建立工程:file-New Project,并注意器件、EDA工具的正确选择。 图3.1 工程建立及工具选择 建立新Verilog HDL模块编辑窗口,选择资源类型为Verilog Module,并输入合法文件名,在文本编辑窗口输入代码。 图3.2 文本编辑 执行综合得到综合后的电路,并进行功能仿真。 计数器模块的设计 设计步骤同数码管的设计,并完成模块的设计输入、综合、功能仿真。 数码管和计数器组合为一个系统 图3.3 综合原理框图 用Verilog HDL将counter.v和seg7.v组合为一个模块,完成综合、功能仿真,分析波形,修正设计。 module counter_seg7(clk,clr,E,C,data_out); input clk,clr,E; output C; output [6:0] data_out; wire [3:0] data_in; //两个模块之间的连接数据 counter u1(clk,clr,E,C,data_in); //调用前面写好的计数器函数 seg7 u2(data_in,data_out); //调用前面写好的数码管函数 endmodule 图3.4 综合电路逻辑结构 图3.5 仿真结果 4、消抖模块设计 了解消抖模块的功能,拷贝相关代码,拟采用实验
显示全部
相似文档