乒乓球游戏电路设计

1.实验目的:
使用verilog HDL硬件描述语言乒乓球游戏电路设计

2.实验内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.实验原理:按照视书上的内容,书写和运行代码,完成仿真操作
实验代码:
(1)

module pingp(clk, reset, push1, push0, led, decode1, decode2, decode3, decode4, clk_out);
	input clk, reset;
	input push1, push0;
	output [6:0] led, decode1, decode2, decode3, decode4;
	output clk_out;
	
	fenpin hz(clk, reset, clk_out);
	ctl ctll(.clk(clk),.reset(reset),.push1(push1),.push0(push0),.led(led),
	.decode1(decode1),.decode2(decode2),.decode3(decode3),.decode4(decode4));
	
endmodule

module ctl(clk, reset, push1, push0, led, decode1, decode2, decode3, decode4);
	input clk, reset;
	input push1, push0;
	output [6:0] led, decode1, decode2, decode3, decode4;
	reg [3:0] M,N;
	reg [6:0] led, decode1, decode2, decode3, decode4;
	reg [2:0] state;
	parameter s0=3'b000,
			s1=3'b001,
			s2=3'b010,
			s3=3'b011,
			s4=3'b100;
	always@(posedge clk)
	begin
		if(reset)
			begin
				led<=7'b0000000;
				M<=4'b0000;
				N<=4'b0000;
			end
		else
			begin
				case(state)
					s0:					//初始发球
					begin
						led<=7'b0000000;
				
						if(push0)
							begin
								state<=s1;
								led<=7'b1000000;
							end
						else if(push1)
							begin
								state<=s3;
								led<=7'b0000001;
							end
					end
					s1:								//甲发球或甲接球后,球的移动
					begin
						if(push1)
							begin
								state<=s0;
								M<=M+4'b0001;
							end
						else if(led==7'b0000001)
							begin
								state<=s2;
							end
						else
							begin
								state<=s1;
								led[6:0]<=led[6:0]>>1;
							end
					end
					s2:if(push1)			//乙接球
							begin
								state<=s3;
								led
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值