资源描述:
《基于HDL的十进制计数器的设计(FPGA)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二:基于HDL十进制计数、显示系统设计一、实验目的:1.掌握基于语言的ISE设计全流程;2.熟悉、应用VerilogHDL描述数字电路;3.掌握基于Verilog的组合和时序逻辑电路的设计方法;4.具有数显输出的十进制计数器的设计。二、实验原理:1.实验内容:设计具有异步复位,同步使能的十进制计数器,其计数结果可以通过七段数码,管发光二极管进行显示。其系统原理图如下:2.十进制计数器模块端口信号说明:① 输入信号:clk----计数器的时钟信号Clc——异步清零信号,当clc=1时,输出复位为0;当clc=0时,正常计数Ena——使能控制信号,当ena=1时,电路正常累加
2、计数,否则电路不工作输出信号。②输出信号:SUM[3:0]--------计数值的个位。即,在CLK上升沿检测到SUM=9时,SUM将被置0,开始新一轮的计数。COUT--------计数值的十位进位,即:只有在时钟CLK上升沿测到SUM=9时,COUT将被置1,其余情况下COUT=0;3.自顶向下的设计思路进行模块划分:整个系统要求设计的模块:十进制计数模块和数码管驱动模块,由于实验按键为实现按键防抖,所以在实验时候需要加入消抖模块:电源按键消抖:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开
3、时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了产生这种现象而作的措施就是按键消抖。一、实验过程:按照实验原理的设计思想,做出了以下设计代码:十进制计数器部分:modulecnt10(clr,clk,ena,sum,cout);inputclr,clk,ena;output[3:0]sum;outputcout;reg[3:0]sum;regcout;always@(posedgeclkorposedgeclr)beginif(clr)beginsum<=4'b0000;cout<=0;endelseif(ena)beginif(sum==4'b1001)
4、beginsum<=4'b0000;cout<=1;endelseif(sum<4'b1001)beginsum<=sum+4'b0001;cout<=0;endendendEndmodule数码管驱动模块代码:moduleled(out_y,sum);output[6:0]out_y;input[3:0]sum;reg[6:0]out_y;always@(sum)begincase(sum)4'b0000:out_y=7'b0111111;4'b0001:out_y=7'b0000110;4'b0010:out_y=7'b1011011;4'b0011:out_y=7'b1
5、001111;4'b0100:out_y=7'b1100110;4'b0101:out_y=7'b1101101;4'b0110:out_y=7'b1111101;4'b0111:out_y=7'b0000111;4'b1000:out_y=7'b1111111;4'b1001:out_y=7'b1101111;default:out_y=7'b00000000;endcaseendendmodule消抖模块部分实验已经给出,最后综合模块代码:moduleint(clk_50,clk,rest,ena,out_y,cout);inputclk_50,clk,rest,ena;
6、output[6:0]out_y;outputcout;wire[3:0]out;wireclk_out;wire[6:0]out_y;debounce_moduleu1(clk_50,rest,clk,clk_out);cnt10u2(rest,clk_out,ena,out,cout);ledu3(out_y,out);Endmodule根据实验要求综合:1.2.相应的引脚约束文件为:NET"clk"LOC=“V16”
7、PULLDOWN;NET"clk_50"LOC="C9";NET"clr"LOC="N17";NET"cout"LOC="C11";NET"data_ou
8、t<0>"LOC="D5";NET"data_out<1>"LOC="C5";NET"data_out<2>"LOC="B6";NET"data_out<3>"LOC="E7";NET"data_out<4>"LOC="F7";NET"data_out<5>"LOC="A4";NET"data_out<6>"LOC="B4";NET"ena"LOC="H18";NET"clk"CLOCK_DEDICATED_ROUTE=FALSE;3.时序仿真为:十进制计数器仿真如下:最后例化后的结果为:思考题比较实验