⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 top_zoumigong.v

📁 游戏玩家通过控制PS/2键盘上的方向键
💻 V
字号:
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer:
//
// Create Date:    10:23:35 04/30/09
// Design Name:    
// Module Name:    top_zoumigong
// Project Name:   
// Target Device:  
// Tool versions:  
// Description:
//
// Dependencies:
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
////////////////////////////////////////////////////////////////////////////////
module top_zoumigong(clock_50Mhz,reset,KD,KC,
							led1,led2,led3,led4,led5,led6,led7,led8,
							ldg,
							red_out, green_out, blue_out,
							horiz_sync_out, vert_sync_out,
							an1,an2,an3,an4,
							ca,cb,cc,cd,ce,cf,cg,ch);
input 	clock_50Mhz,reset,KD,KC ;
output 	led1,led2,led3,led4,led5,led6,led7,led8  ;
output   ldg ;
output   red_out, green_out, blue_out ;
output   horiz_sync_out, vert_sync_out ;
output   an1,an2,an3,an4 ;//数码管位选
output   ca,cb,cc,cd,ce,cf,cg,ch ;

assign ldg=1 ;
wire clk25 ;
wire tenable,clk23,done,RDY,Sout,new_c ;
wire [9:0]	p_r,p_c ;
wire [2:0] 	RGB,char1,char2,char ;
wire [5:0]  div8Out_r,div8Out_c ;
wire [5:0]  NposR,NposC,posR,posC ;
wire [5:0]  mem_r,mem_c ;
wire [7:0]  key ;
wire [3:0] 	d1_out,d2_out,d3_out,d4_out ;
wire sel ;

div_clk_25Mhz  divClk_50(.clock_50Mhz(clock_50Mhz),.clk25(clk25)) ;

vga				v(.clock_25Mhz(clk25),.red(RGB[2]),.green(RGB[1]),.blue(RGB[0]),
					  .red_out(red_out),.green_out(green_out),.blue_out(blue_out),
					  .horiz_sync_out(horiz_sync_out),.vert_sync_out(vert_sync_out),
					  .pixel_row(p_r),.pixel_column(p_c)) ;
div16				div(.pixel_row(p_r),.pixel_col(p_c),
						.p_r(div8Out_r),.p_c(div8Out_c)) ;

mux2_1_6bits	muxR(.a(div8Out_r),.b(NposR),
						  .s(new_c),.c(mem_r)) ;

mux2_1_6bits	muxC(.a(div8Out_c),.b(NposC),
						  .s(new_c),.c(mem_c)) ;

rom_labirint   men1(.line(mem_r),.col(mem_c),
						 .char(char1)) ;

rom2_labirint  men2(.row(mem_r),.col(mem_c),
					.char(char2) );

select_rom		select(.done(done),.sel(sel));

mux2_3bits		mux2(.sel(sel),.a(char1),.b(char2),.c(char));

reg_6bits	   Reg7bitsRow(.clk(clock_50Mhz),
									.reset(reset),.load(Sout),.a(NposR),.y(posR)) ;

reg_6bits		Reg7bitsCol(.clk(clock_50Mhz),
									.reset(reset),.load(Sout),.a(NposC),.y(posC)) ;
char_generator	generator(.char(char),
								.pixel_row(p_r),.pixel_col(p_c),
								.posR(posR),.posC(posC),.RGB(RGB)) ;

keyboard			ps2(.CLK(clock_50Mhz),
						.KD(KD),.KC(KC),.RDY(RDY),.scancode(key)) ;

newPositions  new_pos(.clk(clock_50Mhz),
							  .R(posR),.C(posC),.key(key),.RDY(RDY),
							  .new_c(new_c),.NR(NposR),.NC(NposC)) ;

validate_positions validate_position(.clk(clock_50Mhz),.reset(reset),
												.new_c(new_c),.char(char),
												.done(done),.S(Sout)) ;

div_clk_6hz		div23p(.clock_50Mhz(clock_50Mhz),
							 .clk23b(clk23)) ;
light			lights(.clk(clk23),.reset(reset),.done(done),
						.led1(led1),.led2(led2),.led3(led3),.led4(led4),
						.led5(led5),.led6(led6),.led7(led7),.led8(led8)) ;

seg7_display	display(.d1(d4_out),.d2(d3_out),.d3(d2_out),.d4(d1_out),
							 .clk(clock_50Mhz),.an1(an1),.an2(an2),.an3(an3),.an4(an4),
							 .ca(ca),.cb(cb),.cc(cc),.cd(cd),.ce(ce),.cf(cf),.cg(cg),.ch(ch)) ;

timer			t(.clk(clock_50Mhz),.reset(reset),
				  .enable(tenable),.d1(d1_out),.d2(d2_out),.d3(d3_out),.d4(d4_out)) ;

timer_enable te(.done(done),.RDY(RDY),.reset(reset),
					.enable(tenable)) ;

endmodule 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -