EDA实验(3)计数器设计

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)
   		begin
    			q<=0;
    			a<=~a;
   		end
   		else 
    		q<=q+1;
	end
endmodule

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;
		else
   		Q<=Q+1'b1;
 	end
endmodule

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; //0
 		4'b0001 : LED7S <= 7'b1111001; //1
 		4'b0010 : LED7S <= 7'b0100100; //2
		4'b0011 : LED7S <= 7'b0110000; //3
 		4'b0100 : LED7S <= 7'b0011001; //4
 		4'b0101 : LED7S <= 7'b0010010; //5
 		4'b0110 : LED7S <= 7'b0000010; //6
		4'b0111 : LED7S <= 7'b1111000; //7
		4'b1000 : LED7S <= 7'b0000000; //8
 		4'b1001 : LED7S <= 7'b0010000; //9  
	endcase
endmodule

4.顶层原理图

在这里插入图片描述
实验现象:数码管会一直从0到9计数,每1秒钟计数一次

  • 5
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值