zoukankan      html  css  js  c++  java
  • [笔记]VGA建模之二(Display a photo pika.bmp)

    一、RTL视图

    二、

    sync_module

    module vga_module(
    input CLOCK_50,
    input[3:0] KEY,
    output VGA_CLK,
    output[7:0] VGA_R,VGA_G,VGA_B,
    output VGA_HS,VGA_VS,
    output VGA_BLANK_N,
    output VGA_SYNC_N
    );
    
    assign VGA_SYNC_N=1'b0;	//If not SOG,Sync input should be tied to 0;
    assign VGA_BLANK_N=VGA_HS&&VGA_VS;
    
    pll_module u1(
    				.inclk0 ( CLOCK_50 ),
    				.c0 ( VGA_CLK )
    				);
    
    wire[10:0] X,Y;
    wire valid;
    
    wire RST_N;
    assign RST_N=KEY[0];
    sync_module u2(
    				.VGA_CLK(VGA_CLK),
    				.RST_N(RST_N),
    				.VGA_HS(VGA_HS),
    				.VGA_VS(VGA_VS),
    				.X(X),
    				.Y(Y),
    				.valid(valid)
    				);
    				
    wire[63:0] Rom_Data;
    wire[5:0] Rom_Addr;
    rom_module u4(
    				.clock(VGA_CLK),
    				.address(Rom_Addr),
    				.q(Rom_Data)
    				);
    				
    vga_control_module u3(
    						.VGA_CLK(VGA_CLK),
    						.RST_N(RST_N),
    						.VGA_R(VGA_R),
    						.VGA_G(VGA_G),
    						.VGA_B(VGA_B),
    						.X(X),
    						.Y(Y),
    						.valid(valid),
    						.Rom_Addr(Rom_Addr),
    						.Rom_Data(Rom_Data)
    						);
    endmodule
    

    vga_control_module

    module vga_control_module(
    input VGA_CLK,
    input RST_N,
    input[10:0] X,Y,
    input valid,
    input[63:0] Rom_Data,
    output[5:0] Rom_Addr,
    output[7:0] VGA_R,VGA_G,VGA_B
    );
    
    reg[5:0] m;
    always@(posedge VGA_CLK or negedge RST_N)
    	if(!RST_N)
    		m<=6'b0;
    	else if(valid && Y<64)
    		m<=Y[5:0];
    		
    reg[5:0] n;
    always@(posedge VGA_CLK or negedge RST_N)
    	if(!RST_N)
    		n<=6'b0;
    	else if(valid && X<64)
    		n<=X[5:0];
    
    assign Rom_Addr=m;
    
    assign VGA_R=valid ? {Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n]} : 8'b0;
    assign VGA_G=valid ? {Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n]} : 8'b0;
    assign VGA_B=valid ? {Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n],Rom_Data[6'd63-n]} : 8'b0;
    		
    endmodule
    
    vga_module
    //* Display a photo pika.bmp(64x64)
    module vga_module(
    input CLOCK_50,
    input[3:0] KEY,
    output VGA_CLK,
    output[7:0] VGA_R,VGA_G,VGA_B,
    output VGA_HS,VGA_VS,
    output VGA_BLANK_N,
    output VGA_SYNC_N
    );
    
    assign VGA_SYNC_N=1'b0;	//If not SOG,Sync input should be tied to 0;
    assign VGA_BLANK_N=VGA_HS&&VGA_VS;
    
    pll_module u1(
    				.inclk0 ( CLOCK_50 ),
    				.c0 ( VGA_CLK )
    				);
    
    wire[10:0] X,Y;
    wire valid;
    
    wire RST_N;
    assign RST_N=KEY[0];
    sync_module u2(
    				.VGA_CLK(VGA_CLK),
    				.RST_N(RST_N),
    				.VGA_HS(VGA_HS),
    				.VGA_VS(VGA_VS),
    				.X(X),
    				.Y(Y),
    				.valid(valid)
    				);
    				
    wire[63:0] Rom_Data;
    wire[5:0] Rom_Addr;
    rom_module u4(
    				.clock(VGA_CLK),
    				.address(Rom_Addr),
    				.q(Rom_Data)
    				);
    				
    vga_control_module u3(
    						.VGA_CLK(VGA_CLK),
    						.RST_N(RST_N),
    						.VGA_R(VGA_R),
    						.VGA_G(VGA_G),
    						.VGA_B(VGA_B),
    						.X(X),
    						.Y(Y),
    						.valid(valid),
    						.Rom_Addr(Rom_Addr),
    						.Rom_Data(Rom_Data)
    						);
    endmodule
    

  • 相关阅读:
    UVA 11174 Stand in a Line,UVA 1436 Counting heaps —— (组合数的好题)
    UVA 1393 Highways,UVA 12075 Counting Triangles —— (组合数,dp)
    【Same Tree】cpp
    【Recover Binary Search Tree】cpp
    【Binary Tree Zigzag Level Order Traversal】cpp
    【Binary Tree Level Order Traversal II 】cpp
    【Binary Tree Level Order Traversal】cpp
    【Binary Tree Post order Traversal】cpp
    【Binary Tree Inorder Traversal】cpp
    【Binary Tree Preorder Traversal】cpp
  • 原文地址:https://www.cnblogs.com/spartan/p/2141502.html
Copyright © 2011-2022 走看看