第八天uart正确连接到vga多字符显示,问题总结

本文记录了在FPGA开发过程中遇到的UART接口问题及解决办法,强调了电路图检查的重要性。同时,分享了关于初始化信号、数据稳定性的理解,并展示了如何在FPGA中实现字符的接收与显示。通过Python学习,提醒注意中文括号的使用错误,强调了持续学习和练习的必要性。
摘要由CSDN通过智能技术生成

今天对于uart正确认识,对于安路的板子uart_rx,uart_tx端口反了,以及led灯是低电平有效。以后需要仔细观看板子的电路图,这次分模块进行的测试以及对于仿真图的好好使用。
今天学习到,凡事都有有rst的引入,让它有初始值,如果没有初始值,对于一些位宽很长的数据,会在之后数据分赋值导致不可预估的后果。数据不稳定。所以需要我们很好的设计信号开始时候的数据。
但是还有的一点是一些位数没有对齐,需要自己对其中条件修正。
发送你好王鑫鑫FPGA!
收到这样。
在这里插入图片描述

module vga_display(
		clk,
		data,
		vga_clk,
		rst_n,
		byte,
		done,
		state,
		x_pixel,
		y_pixel,
		pixel_data,
		add
 );
input					clk		;
input		[15:0]		data	;
input    			  vga_clk	;
input 					rst_n	;
input 		[9:0]	  x_pixel	;
input 		[9:0]	  y_pixel	;
input	[7:0]		byte		;
input				done		;
input				state		;

//---------------------------------
output 	reg	[23:0]	  pixel_data;
output	reg	[7:0]		add			;	
//---------------------------------
//---------------------------------
parameter white = 24'b1111_1111__1111_1111__1111_1111;
parameter black = 24'b0000_0000__0000_0000__0000_0000;
parameter red   = 24'b1111_1111__0000_0000__0000_0000;
parameter green = 24'b0000_0000__1111_1111__0000_0000;
parameter bule  = 24'b0000_0000__0000_0000__1111_1111;
//---------------------------------
//28*63
reg [79:0] char [15:0];
reg [79:0] char1 [15:0];
reg		[7:0]	cnt	;
reg		[8:0]	cnt2;
reg		[7:0]	cnt3;
reg		[3:0]	cnt4;
wire	[7:0]	max;
reg	[3:0]		a;


reg		[7:0]	rcnt	;
reg		[8:0]	rcnt2;
reg		[7:0]	rcnt3;
reg		[3:0]	rcnt4;
wire	[7:0]	rmax;
reg	[3:0]		ra;

reg sta;
reg [19:0] tim;
always @(posedge clk)
	if(!rst_n)
		sta <= 'd0;
	else if(done == 'd1)
		sta <= 'd1;
always @(posedge clk)
	if (sta == 0) begin
		tim <= 'd0;
		
	end
else	if(sta == 'd1)
	begin
	if(tim == 'd750_000)
		tim <= tim;
	else
		tim <= tim + 1'b1;
	end

//--------------------------------------
reg		[15:0]	china [4:0];
reg		[7:0]	english [4:0];
reg		[3:0]	dccnt;
reg			dccnt1;
reg		[3:0]	decnt;
reg		[7:0]	dadd1[4:0];
reg		[7:0]	dadd2[4:0];		
always @(posedge clk or negedge rst_n)
	if(!rst_n)
		begin		
		dccnt <= 'd0;
		dccnt1 <= 'd0;
		decnt <= 'd0;
		end
	else if(done == 1'b1 && byte[7] == 1'b1)
		begin			
			
				if( dccnt1 == 'd0)
					begin
						china[dccnt][15:8] <= byte;
						dccnt1 <= 'd1;
					end
				else if( dccnt1 == 'd1)
					begin
						china[dccnt][7:0] <= byte;
						dccnt <= dccnt + 1'b1;
						dccnt1 <= 'd0;
					end

		end	
	else if(done == 1'b1 && byte[7] == 1'b0)
		begin
			english[decnt][7:0] <= byte;
			decnt <= decnt + 1'b1;
		end
reg	[3:0]	drcnt;		
always @(posedge clk or negedge rst_n)
	if(!rst_n)
		begin
		drcnt <= 'd0;
		dadd1[0][7:0]<= 'd0;
		dadd1[1][7:0]<= 'd0;
		dadd1[2][7:0]<= 'd0;
		dadd1[3][7:0]<= 'd0;
		dadd1[4][7:0]<= 'd0;
		end
	else if(drcnt < dccnt)
		begin		
		if(china[drcnt][15:0] == 16'hC4E3)
			dadd1[drcnt][7:0]<= 'd0;
		else if(china[drcnt][15:0] == 16'hBAC3)
			dadd1[drcnt][7:0]<= 'd16;
		else if(china[drcnt][15:0] == 16'hCDF5)
			dadd1[drcnt][7:0]<= 'd32;
		else if(china[drcnt][15:0] == 16'hF6CE)
			dadd1[drcnt][7:0]<= 'd48;
		else if(china[drcnt][15:0] == 16'hD5DC)
			dadd1[drcnt][7:0]<= 'd64;
		else
			begin			
			end
			drcnt <= drcnt + 1'b1;
		end
reg	[3:0]	dlcnt;		
always @(posedge clk or negedge rst_n)
	if(!rst_n)
		begin
		dlcnt <= 'd0;
		dadd2[0][7:0]<= 'd0;
		dadd2[1][7:0]<= 'd0;
		dadd2[2][7:0]<= 'd0;
		dadd2[3][7:0]<= 'd0;
		dadd2[4][7:0]<= 'd0;
		end
	else if(dlcnt < decnt)
		begin		
		if(english[dlcnt][7:0] == "F")
			dadd2[dlcnt][7:0]<= 'd80;
		else if(english[dlcnt][7:0] == "P")
			dadd2[dlcnt][7:0]<= 'd96;
		else if(english[dlcnt][7:0] == "G")
			dadd2[dlcnt][7:0]<= 'd112;
		else if(english[dlcnt][7:0] == "A")
			dadd2[dlcnt][7:0]<= 'd128;
		else if(english[dlcnt][7:0] == "!")
			dadd2[dlcnt][7:0]<= 'd144;
		else
			begin			
			end
			dlcnt <= dlcnt + 1'b1;
		end

//------------------------------------------

assign max = (dccnt >'d0)?(dccnt * 'd16 - 'd1):'d0;
assign rmax = (decnt >'d0)?(decnt * 'd16 - 'd1):'d0;

always@(posedge vga_clk or negedge rst_n)
	if(!rst_n )
		begin
		cnt2 <= 'd0;
		end
	else if(tim > 'd749_999)
		begin		
		if(cnt2 == max + 1'b1)
			begin
				cnt2 <= cnt2;
		end
		else
			begin		
				cnt2 <= cnt2 + 1'b1;

			end
		end
always@(posedge vga_clk or negedge rst_n)
	if(!rst_n)
		begin
		rcnt2 <= 'd0;
		end
	else if(tim > 'd749_999)
		begin
		if(cnt2 == max + 1'b1)
		begin		
			if(rcnt2 == rmax + 1'b1)
				begin
					rcnt2 <= rcnt2;
				end
			else
				begin		
					rcnt2 <= rcnt2 + 1'b1;
				end
		end
		else
			rcnt2 <= rcnt2;
		end
always@(posedge vga_clk or negedge rst_n)
	if(!rst_n)
		begin
		add[7:0]  <= 'd0;
		cnt3 <= 'd0;
		cnt4 <= 'd0;
		rcnt3 <= 'd0;
		rcnt4 <= 'd0;
		a <= 'd0;
		ra <='d0;
		end
	else if(tim > 'd749_999)
		begin		
		if(cnt3 == max)
			begin
				cnt3 <= cnt3;			
				cnt4 <= cnt4;
					if(rcnt3 == rmax)
						begin	
							rcnt3 <= rcnt3;
							add <= add;
						end
					else
						if(ra == 'd0)
						begin
							add[7:0] <= dadd2[0][7:0];
							ra <= ra +1'b1;
							rcnt4 <= 'd0;
						end
						else if(ra == 'd1 && rcnt4 == 'd15)
						begin
							add[7:0] <= dadd2[1][7:0];
							ra <= ra +1'b1;
							rcnt4 <= 'd0;
						end
						else if(ra == 'd2 && rcnt4 == 'd15)
						begin
							add[7:0] <= dadd2[2][7:0];
							ra <= ra +1'b1;
							rcnt4 <= 'd0;
						end
						else if(ra == 'd3 && rcnt4 == 'd15)
						begin
							add[7:0] <= dadd2[3][7:0];
							ra <= ra +1'b1;
							rcnt4 <= 'd0;
						end
						else if(ra == 'd4 && rcnt4 == 'd15)
						begin
							add[7:0] <= dadd2[4][7:0];
							ra <= ra +1'b1;
							rcnt4 <= 'd0;
						end						
						else						
						begin
							add[7:0] <= add[7:0] + 1'b1;
							rcnt3 <= rcnt3 + 1'b1;
							rcnt4 <= rcnt4 + 1'b1;
						end
			end
		else
			if(a == 'd0 )
			begin				
				add[7:0] <= dadd1[0][7:0];
				a <= a + 1'b1;
				cnt4 <= 'd0;
			end
			else if(a == 'd1 && cnt4 == 'd15)
			begin				
				add[7:0] <= dadd1[1][7:0];
				a <= a + 1'b1;
				cnt4 <= 'd0;
			end
			else if(a == 'd2 && cnt4 == 'd15)
			begin				
				add[7:0] <= dadd1[2][7:0];
				a <= a + 1'b1;
				cnt4 <= 'd0;
			end
			else if(a == 'd3 && cnt4 == 'd15)
			begin				
				add[7:0] <= dadd1[3][7:0];
				a <= a + 1'b1;
				cnt4 <= 'd0;
			end
			else if(a == 'd4 && cnt4 == 'd15)
			begin				
				add[7:0] <= dadd1[4][7:0];
				a <= a + 1'b1;
				cnt4 <= 'd0;
			end						
			else			
			begin		
				cnt3 <= cnt3 + 1'b1;
				add[7:0] <= add[7:0] + 1'b1;
				cnt4 <= cnt4 +1'b1;
			end
		end
always@(posedge vga_clk or negedge rst_n)
if(!rst_n)
	cnt <= 'd0;
else
case(cnt)
	0:if(cnt2 == 'd1)
		begin		
			char[0 ][79:64] <= data;
			cnt <= 'd1;		
		end	
	
	1:if(cnt2 == 'd2)	
		begin		
			char[1 ][79:64] <= data;
			cnt <='d2;
		end
	2:if(cnt2 == 'd3)
		begin		
			char[2 ][79:64] <= data;
			cnt<='d3;
		end
	3:if(cnt2 == 'd4)
		begin
			char[3 ][79:64] <= data;
			cnt <= 'd4;
		end
	4:if(cnt2 == 'd5)
		begin	
			char[4 ][79:64] <= data;
			cnt <= 'd5;
		end
	5:if(cnt2 == 'd6)
		begin
			char[5 ][79:64] <= data;
			cnt <= 'd6;
		end
	6:if(cnt2 == 'd7)
		begin
			char[6 ][79:64] <= data;
			cnt <= 'd7;
		end
	7:if(cnt2 == 'd8)
		begin
			char[7 ][79:64] <= data;
			cnt <= 'd8;
		end
	8:if(cnt2 == 'd9)
		begin
			char[8 ][79:64] <= data;
			cnt <= 'd9;
		end
	9:if(cnt2 == 'd10)
		begin	
			char[9 ][79:64] <= data;
			cnt <= 'd10;
		end
	10:if(cnt2 == 'd11)
		begin	
			char[10][79:64] <= data;
			cnt <= 'd11;
		end
	11:if(cnt2 == 'd12)
		begin
			char[11][79:64] <= data;
			cnt <= 'd12;
		end
	12:if(cnt2 == 'd13)
		begin
			char[12][79:64] <= data;
			cnt <= 'd13;
		end
	13:if(cnt2 == 'd14)
		begin	
			char[13][79:64] <= data;
			cnt <= 'd14;
		end
	14:if(cnt2 == 'd15)
		begin
			char[14][79:64] <= data;
			cnt <= 'd15;
		end
	15:if(cnt2 == 'd16)
		begin
			char[15][79:64] <= data;
				if(cnt3 == max)
					cnt <= 'd0;
				else
					cnt <='d16;
		end
	16:if(cnt2 == 'd17)
		begin
			char[0][63:48] <= data;
			cnt <= 'd17;
		end
	17:if(cnt2 == 'd18)
		begin
			char[1][63:48] <= data;
			cnt <= 'd18;
		end
	18:if(cnt2 == 'd19)
		begin
			char[2][63:48] <= data;
			cnt <= 'd19;
		end
	19:if(cnt2 == 'd20)
		begin
			char[3][63:48] <= data;
			cnt <= 'd20;
		end
	20:if(cnt2 == 'd21)
		begin
			char[4][63:48] <= data;
			cnt <= 'd21;
		end
	21:if(cnt2 == 'd22)
		begin
			char[5][63:48] <= data;
			cnt <= 'd22;
		end
	22:if(cnt2 == 'd23)
		begin
			char[6][63:48] <= data;
			cnt <= 'd23;
		end
	23:if(cnt2 == 'd24)
		begin
			char[7][63:48] <= data;
			cnt <= 'd24;
		end
	24:if(cnt2 == 'd25)
		begin
			char[8][63:48] <= data;
			cnt <= 'd25;
		end
	25:if(cnt2 == 'd26)
		begin
			char[9][63:48] <= data;
			cnt <= 'd26;
		end
	26:if(cnt2 == 'd27)
		begin
			char[10][63:48] <= data;
			cnt <= 'd27;
		end
	27:if(cnt2 == 'd28)
		begin
			char[11][63:48] <= data;
			cnt <= 'd28;
		end
	28:if(cnt2 == 'd29)
		begin
			char[12][63:48] <= data;
			cnt <= 'd29;
		end
	29:if(cnt2 == 'd30)
		begin
			char[13][63:48] <= data;
			cnt <= 'd30;
		end
	30:if(cnt2 == 'd31)
		begin
			char[14][63:48] <= data;
			cnt <= 'd31;
		end
	31:if(cnt2 == 'd32)
		begin
			char[15][63:48] <= data;
				if(cnt3 == max)
					cnt <= 'd0;
				else
					cnt <='d32;
		end
	32:if(cnt2 == 'd33)
		begin
			char[0][47:32] <= data;
			cnt <= 'd33;
		end
	33:if(cnt2 == 'd34)
		begin
			char[1][47:32] <= data;
			cnt <= 'd34;
		end
	34:if(cnt2 == 'd35)
		begin
			char[2][47:32] <= data;
			cnt <= 'd35;
		end
	35:if(cnt2 == 'd36)
		begin
			char[3][47:32] <= data;
			cnt <= 'd36;
		end
	36:if(cnt2 == 'd37)
		begin
			char[4][47:32] <= data;
			cnt <= 'd37;
		end
	37:if(cnt2 == 'd38)
		begin
			char[5][47:32] <= data;
			cnt <= 'd38;
		end
	38:if(cnt2 == 'd39)
		begin
			char[6][47:32] <= data;
			cnt <= 'd39;
		end
	39:if(cnt2 == 'd40)
		begin
			char[7][47:32] <= data;
			cnt <= 'd40;
		end
	40:if(cnt2 == 'd41)
		begin
			char[8][47:32] <= data;
			cnt <= 'd41;
		end
	41:if(cnt2 == 'd42)
		begin
			char[9][47:32] <= data;
			cnt <= 'd42;
		end
	42:if(cnt2 == 'd43)
		begin
			char[10][47:32] <= data;
			cnt <= 'd43;
		end
	43:if(cnt2 == 'd44)
		begin
			char[11][47:32] <= data;
			cnt <= 'd44;
		end
	44:if(cnt2 == 'd45)
		begin
			char[12][47:32] <= data;
			cnt <= 'd45;
		end
	45:if(cnt2 == 'd46)
		begin
			char[13][47:32] <= data;
			cnt <= 'd46;
		end
	46:if(cnt2 == 'd47)
		begin
			char[14][47:32] <= data;
			cnt <= 'd47;
		end
	47:if(cnt2 == 'd48)
		begin
			char[15][47:32] <= data;
				if(cnt3 == max)
					cnt <= 'd0;
				else
					cnt <='d48;
		end
	48:if(cnt2 == 'd49)
		begin		
			char[0 ][31:16] <= data;
			cnt <= 'd49;		
		end	
	
	49:if(cnt2 == 'd50)	
		begin		
			char[1 ][31:16] <= data;
			cnt <='d50;
		end
	50:if(cnt2 == 'd51)
		begin		
			char[2 ][31:16] <= data;
			cnt<='d51;
		end
	51:if(cnt2 == 'd52)
		begin
			char[3 ][31:16] <= data;
			cnt <= 'd52;
		end
	52:if(cnt2 == 'd53)
		begin	
			char[4 ][31:16] <= data;
			cnt <= 'd53;
		end
	53:if(cnt2 == 'd54)
		begin
			char[5 ][31:16] <= data;
			cnt <= 'd54;
		end
	54:if(cnt2 == 'd55)
		begin
			char[6 ][31:16] <= data;
			cnt <= 'd55;
		end
	55:if(cnt2 == 'd56)
		begin
			char[7 ][31:16] <= data;
			cnt <= 'd56;
		end
	56:if(cnt2 == 'd57)
		begin
			char[8 ][31:16] <= data;
			cnt <= 'd57;
		end
	57:if(cnt2 == 'd58)
		begin	
			char[9 ][31:16] <= data;
			cnt <= 'd58;
		end
	58:if(cnt2 == 'd59)
		begin	
			char[10][31:16] <= data;
			cnt <= 'd59;
		end
	59:if(cnt2 == 'd60)
		begin
			char[11][31:16] <= data;
			cnt <= 'd60;
		end
	60:if(cnt2 == 'd61)
		begin
			char[12][31:16] <= data;
			cnt <= 'd61;
		end
	61:if(cnt2 == 'd62)
		begin	
			char[13][31:16] <= data;
			cnt <= 'd62;
			end
	62:if(cnt2 == 'd63)
		begin
			char[14][31:16] <= data;
			cnt <= 'd63;
		end
	63:if(cnt2 == 'd64)
		begin
			char[15][31:16] <= data;
				if(cnt3 == max)
					cnt <= 'd0;
				else
					cnt <='d64;
		end
	64:if(cnt2 == 'd65)
		begin
			char[0][15:0] <= data;
			cnt <= 'd65;
		end
	65:if(cnt2 == 'd66)
		begin
			char[1][15:0] <= data;
			cnt <= 'd66;
		end
	66:if(cnt2 == 'd67)
		begin
			char[2][15:0] <= data;
			cnt <= 'd67;
		end
	67:if(cnt2 == 'd68)
		begin
			char[3][15:0] <= data;
			cnt <= 'd68;
		end
	68:if(cnt2 == 'd69)
		begin
			char[4][15:0] <= data;
			cnt <= 'd69;
		end
	69:if(cnt2 == 'd70)
		begin
			char[5][15:0] <= data;
			cnt <= 'd70;
		end
	70:if(cnt2 == 'd71)
		begin
			char[6][15:0] <= data;
			cnt <= 'd71;
		end
	71:if(cnt2 == 'd72)
		begin
			char[7][15:0] <= data;
			cnt <= 'd72;
		end
	72:if(cnt2 == 'd73)
		begin
			char[8][15:0] <= data;
			cnt <= 'd73;
		end
	73:if(cnt2 == 'd74)
		begin
			char[9][15:0] <= data;
			cnt <= 'd74;
		end
	74:if(cnt2 == 'd75)
		begin
			char[10][15:0] <= data;
			cnt <= 'd75;
		end
	75:if(cnt2 == 'd76)
		begin
			char[11][15:0] <= data;
			cnt <= 'd76;
		end
	76:if(cnt2 == 'd77)
		begin
			char[12][15:0] <= data;
			cnt <= 'd77;
		end
	77:if(cnt2 == 'd78)
		begin
			char[13][15:0] <= data;
			cnt <= 'd78;
		end
	78:if(cnt2 == 'd79)
		begin
			char[14][15:0] <= data;
			cnt <= 'd79;
		end
	79:if(cnt2 == 'd80)
		begin
			char[15][15:0] <= data;
				if(cnt3 == max)
					cnt <= 'd0;
				else
					cnt <='d80;
		end
endcase

always@(posedge vga_clk or negedge rst_n)
if(!rst_n)
	rcnt <= 'd0;
else
case(rcnt)
	0:if(rcnt2 == 'd1)
		begin		
			char1[0 ][79:64] <= data;
			rcnt <= 'd1;		
		end	
	
	1:if(rcnt2 == 'd2)	
		begin		
			char1[1 ][79:64] <= data;
			rcnt <='d2;
		end
	2:if(rcnt2 == 'd3)
		begin		
			char1[2 ][79:64] <= data;
			rcnt<='d3;
		end
	3:if(rcnt2 == 'd4)
		begin
			char1[3 ][79:64] <= data;
			rcnt <= 'd4;
		end
	4:if(rcnt2 == 'd5)
		begin	
			char1[4 ][79:64] <= data;
			rcnt <= 'd5;
		end
	5:if(rcnt2 == 'd6)
		begin
			char1[5 ][79:64] <= data;
			rcnt <= 'd6;
		end
	6:if(rcnt2 == 'd7)
		begin
			char1[6 ][79:64] <= data;
			rcnt <= 'd7;
		end
	7:if(rcnt2 == 'd8)
		begin
			char1[7 ][79:64] <= data;
			rcnt <= 'd8;
		end
	8:if(rcnt2 == 'd9)
		begin
			char1[8 ][79:64] <= data;
			rcnt <= 'd9;
		end
	9:if(rcnt2 == 'd10)
		begin	
			char1[9 ][79:64] <= data;
			rcnt <= 'd10;
		end
	10:if(rcnt2 == 'd11)
		begin	
			char1[10][79:64] <= data;
			rcnt <= 'd11;
		end
	11:if(rcnt2 == 'd12)
		begin
			char1[11][79:64] <= data;
			rcnt <= 'd12;
		end
	12:if(rcnt2 == 'd13)
		begin
			char1[12][79:64] <= data;
			rcnt <= 'd13;
		end
	13:if(rcnt2 == 'd14)
		begin	
			char1[13][79:64] <= data;
			rcnt <= 'd14;
		end
	14:if(rcnt2 == 'd15)
		begin
			char1[14][79:64] <= data;
			rcnt <= 'd15;
		end
	15:if(rcnt2 == 'd16)
		begin
			char1[15][79:64] <= data;
				if(rcnt3 == rmax)
					rcnt <= 'd0;
				else
					rcnt <='d16;
		end
	16:if(rcnt2 == 'd17)
		begin
			char1[0][63:48] <= data;
			rcnt <= 'd17;
		end
	17:if(rcnt2 == 'd18)
		begin
			char1[1][63:48] <= data;
			rcnt <= 'd18;
		end
	18:if(rcnt2 == 'd19)
		begin
			char1[2][63:48] <= data;
			rcnt <= 'd19;
		end
	19:if(rcnt2 == 'd20)
		begin
			char1[3][63:48] <= data;
			rcnt <= 'd20;
		end
	20:if(rcnt2 == 'd21)
		begin
			char1[4][63:48] <= data;
			rcnt <= 'd21;
		end
	21:if(rcnt2 == 'd22)
		begin
			char1[5][63:48] <= data;
			rcnt <= 'd22;
		end
	22:if(rcnt2 == 'd23)
		begin
			char1[6][63:48] <= data;
			rcnt <= 'd23;
		end
	23:if(rcnt2 == 'd24)
		begin
			char1[7][63:48] <= data;
			rcnt <= 'd24;
		end
	24:if(rcnt2 == 'd25)
		begin
			char1[8][63:48] <= data;
			rcnt <= 'd25;
		end
	25:if(rcnt2 == 'd26)
		begin
			char1[9][63:48] <= data;
			rcnt <= 'd26;
		end
	26:if(rcnt2 == 'd27)
		begin
			char1[10][63:48] <= data;
			rcnt <= 'd27;
		end
	27:if(rcnt2 == 'd28)
		begin
			char1[11][63:48] <= data;
			rcnt <= 'd28;
		end
	28:if(rcnt2 == 'd29)
		begin
			char1[12][63:48] <= data;
			rcnt <= 'd29;
		end
	29:if(rcnt2 == 'd30)
		begin
			char1[13][63:48] <= data;
			rcnt <= 'd30;
		end
	30:if(rcnt2 == 'd31)
		begin
			char1[14][63:48] <= data;
			rcnt <= 'd31;
		end
	31:if(rcnt2 == 'd32)
		begin
			char1[15][63:48] <= data;
				if(rcnt3 == rmax)
					rcnt <= 'd0;
				else
					rcnt <='d32;
		end
	32:if(rcnt2 == 'd33)
		begin
			char1[0][47:32] <= data;
			rcnt <= 'd33;
		end
	33:if(rcnt2 == 'd34)
		begin
			char1[1][47:32] <= data;
			rcnt <= 'd34;
		end
	34:if(rcnt2 == 'd35)
		begin
			char1[2][47:32] <= data;
			rcnt <= 'd35;
		end
	35:if(rcnt2 == 'd36)
		begin
			char1[3][47:32] <= data;
			rcnt <= 'd36;
		end
	36:if(rcnt2 == 'd37)
		begin
			char1[4][47:32] <= data;
			rcnt <= 'd37;
		end
	37:if(rcnt2 == 'd38)
		begin
			char1[5][47:32] <= data;
			rcnt <= 'd38;
		end
	38:if(rcnt2 == 'd39)
		begin
			char1[6][47:32] <= data;
			rcnt <= 'd39;
		end
	39:if(rcnt2 == 'd40)
		begin
			char1[7][47:32] <= data;
			rcnt <= 'd40;
		end
	40:if(rcnt2 == 'd41)
		begin
			char1[8][47:32] <= data;
			rcnt <= 'd41;
		end
	41:if(rcnt2 == 'd42)
		begin
			char1[9][47:32] <= data;
			rcnt <= 'd42;
		end
	42:if(rcnt2 == 'd43)
		begin
			char1[10][47:32] <= data;
			rcnt <= 'd43;
		end
	43:if(rcnt2 == 'd44)
		begin
			char1[11][47:32] <= data;
			rcnt <= 'd44;
		end
	44:if(rcnt2 == 'd45)
		begin
			char1[12][47:32] <= data;
			rcnt <= 'd45;
		end
	45:if(rcnt2 == 'd46)
		begin
			char1[13][47:32] <= data;
			rcnt <= 'd46;
		end
	46:if(rcnt2 == 'd47)
		begin
			char1[14][47:32] <= data;
			rcnt <= 'd47;
		end
	47:if(rcnt2 == 'd48)
		begin
			char1[15][47:32] <= data;
				if(rcnt3 == rmax)
					rcnt <= 'd0;
				else
					rcnt <='d48;
		end
	48:if(rcnt2 == 'd49)
		begin		
			char1[0 ][31:16] <= data;
			rcnt <= 'd49;		
		end	
	
	49:if(rcnt2 == 'd50)	
		begin		
			char1[1 ][31:16] <= data;
			rcnt <='d50;
		end
	50:if(rcnt2 == 'd51)
		begin		
			char1[2 ][31:16] <= data;
			rcnt<='d51;
		end
	51:if(rcnt2 == 'd52)
		begin
			char1[3 ][31:16] <= data;
			rcnt <= 'd52;
		end
	52:if(rcnt2 == 'd53)
		begin	
			char1[4 ][31:16] <= data;
			rcnt <= 'd53;
		end
	53:if(rcnt2 == 'd54)
		begin
			char1[5 ][31:16] <= data;
			rcnt <= 'd54;
		end
	54:if(rcnt2 == 'd55)
		begin
			char1[6 ][31:16] <= data;
			rcnt <= 'd55;
		end
	55:if(rcnt2 == 'd56)
		begin
			char1[7 ][31:16] <= data;
			rcnt <= 'd56;
		end
	56:if(rcnt2 == 'd57)
		begin
			char1[8 ][31:16] <= data;
			rcnt <= 'd57;
		end
	57:if(rcnt2 == 'd58)
		begin	
			char1[9 ][31:16] <= data;
			rcnt <= 'd58;
		end
	58:if(rcnt2 == 'd59)
		begin	
			char1[10][31:16] <= data;
			rcnt <= 'd59;
		end
	59:if(rcnt2 == 'd60)
		begin
			char1[11][31:16] <= data;
			rcnt <= 'd60;
		end
	60:if(rcnt2 == 'd61)
		begin
			char1[12][31:16] <= data;
			rcnt <= 'd61;
		end
	61:if(rcnt2 == 'd62)
		begin	
			char1[13][31:16] <= data;
			rcnt <= 'd62;
			end
	62:if(rcnt2 == 'd63)
		begin
			char1[14][31:16] <= data;
			rcnt <= 'd63;
		end
	63:if(rcnt2 == 'd64)
		begin
			char1[15][31:16] <= data;
				if(rcnt3 == rmax)
					rcnt <= 'd0;
				else
					rcnt <='d64;
		end
	64:if(rcnt2 == 'd65)
		begin
			char1[0][15:0] <= data;
			rcnt <= 'd65;
		end
	65:if(rcnt2 == 'd66)
		begin
			char1[1][15:0] <= data;
			rcnt <= 'd66;
		end
	66:if(rcnt2 == 'd67)
		begin
			char1[2][15:0] <= data;
			rcnt <= 'd67;
		end
	67:if(rcnt2 == 'd68)
		begin
			char1[3][15:0] <= data;
			rcnt <= 'd68;
		end
	68:if(rcnt2 == 'd69)
		begin
			char1[4][15:0] <= data;
			rcnt <= 'd69;
		end
	69:if(rcnt2 == 'd70)
		begin
			char1[5][15:0] <= data;
			rcnt <= 'd70;
		end
	70:if(rcnt2 == 'd71)
		begin
			char1[6][15:0] <= data;
			rcnt <= 'd71;
		end
	71:if(rcnt2 == 'd72)
		begin
			char1[7][15:0] <= data;
			rcnt <= 'd72;
		end
	72:if(rcnt2 == 'd73)
		begin
			char1[8][15:0] <= data;
			rcnt <= 'd73;
		end
	73:if(rcnt2 == 'd74)
		begin
			char1[9][15:0] <= data;
			rcnt <= 'd74;
		end
	74:if(rcnt2 == 'd75)
		begin
			char1[10][15:0] <= data;
			rcnt <= 'd75;
		end
	75:if(rcnt2 == 'd76)
		begin
			char1[11][15:0] <= data;
			rcnt <= 'd76;
		end
	76:if(rcnt2 == 'd77)
		begin
			char1[12][15:0] <= data;
			rcnt <= 'd77;
		end
	77:if(rcnt2 == 'd78)
		begin
			char1[13][15:0] <= data;
			rcnt <= 'd78;
		end
	78:if(rcnt2 == 'd79)
		begin
			char1[14][15:0] <= data;
			rcnt <= 'd79;
		end
	79:if(rcnt2 == 'd80)
		begin
			char1[15][15:0] <= data;
				if(rcnt3 == rmax)
					rcnt <= 'd0;
				else
					rcnt <='d80;
		end
endcase
 
//开一个绿色方框,为320*240的大小,其余部分为蓝色
/*字为白底黑字,这里可以将很多字看成一个通过子模显示,所以这个方法也是可以用来显示多个字符的*/
always@(posedge vga_clk or negedge rst_n)
begin
	if(!rst_n)
		pixel_data <= black;
	else 
		if(x_pixel <= 320 && y_pixel <= 480)
			if(x_pixel <= 80 && y_pixel <= 16)
				if(char1[y_pixel-1][80-x_pixel])
					pixel_data <= black;
				else 
					pixel_data <= white;
			else 
				pixel_data <= green;
		else 
			if(x_pixel >= 320 && x_pixel <= 400 && y_pixel <= 16)
				if(char[y_pixel-1][400-x_pixel])
					pixel_data <= black;
				else
					pixel_data <= white;	
			else				
				pixel_data <= bule;
end



endmodule

python,学习字符串的转换,int(),str(),float(),对于这些使用,练习使用。犯的错误,就是使用了中文(),导致错误,最近很少学习,python很差劲,许多多多练习。
最近的效益很低,但是每天必须要坚持下来。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值