📄 top_zoumigong.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 + -