EDA实验(3)计数器设计

发布时间:2025-12-09 19:47:22 浏览次数:4

EDA实验(3)计数器设计

前两次实验都是在学校实验室的实验箱上完成,做完这两次试验后,我自己购买了FPGA开发板,后面的实验都是在这块板子上完成。学校的实验箱中unuesd pins是接地的,我的板子unuesd pins则是接高电平。

实验要求
1.采用verilog HDL设计8421BCD码十进制计数器并生成元件符号
2.采用verilog HDL设计七段译码器并生成元件符号
3.采用verilog HDL设计分频器并生成元件符号
4.建立顶层原理图文件

思路与代码 
1.分频器的设计
板子上自带的时钟是50MHz,需要将50MHz分频为1Hz

module fp219(clk,a);input clk;output reg a;reg[25:0] q;always@(posedge clk)begin if(q==24999999)beginq<=0;a<=~a;endelse q<=q+1;endendmodule

2.计数器的设计

module jishu219(CLK,RST,Q);input CLK,RST;output[3:0] Q;reg[3:0] Q;always@(posedge CLK or negedge RST)begin if(!RST)Q<=4'd0000;else if(Q==4'd1001)Q<=4'd0000;elseQ<=Q+1'b1;endendmodule

3.七段译码器的设计

module ym219(A,B,LED7S);input[3:0] A;output B;output[6:0] LED7S;reg[6:0] LED7S;assign B=1'b0;always @(A)case(A)4'b0000 : LED7S <= 7'b1000000; //04'b0001 : LED7S <= 7'b1111001; //14'b0010 : LED7S <= 7'b0100100; //24'b0011 : LED7S <= 7'b0110000; //34'b0100 : LED7S <= 7'b0011001; //44'b0101 : LED7S <= 7'b0010010; //54'b0110 : LED7S <= 7'b0000010; //64'b0111 : LED7S <= 7'b1111000; //74'b1000 : LED7S <= 7'b0000000; //84'b1001 : LED7S <= 7'b0010000; //9 endcaseendmodule

4.顶层原理图


实验现象:数码管会一直从0到9计数,每1秒钟计数一次

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477