彩色环显示

项目名称

彩色环显示

具体要求

先显示圆,半径为100,然后在圆外面有圆环,依次形成彩色环

设计说明

     设计架构 与VGA驱动显示相同,不再多说,先将显示区域左上角像素点同步到以(0,0)坐标为起点,确定圆的半径、及中心坐标(320,240),将圆显示区里面的像素点看成是变量(v_x,v_y)。

  根据公式计算出显示区域(v_x-320)^2+(v_y-240)^2<=半径,就可以进行显示。

                                     

代码设计

主要代码设计,需要注意的是对变量进行赋值时,赋值不是常数,必须在assign和always块中进行


//圆的中心点坐标(320,240)
parameter ox=10'd320;
parameter oy=10'd240;

// 计算圆的显示区域,屏幕显示区域同步到以0开始的坐标上                                                                     
reg [10:0] cy;
reg [10:0] cx;
always@(*)
	begin
		cx=cnt1-10'd144;
		cy=cnt2-10'd35;
	end
integer v_x;//有符号寄存器类型
integer v_y;
always@(*)
	begin
		v_x=cx-ox;
		v_y=cy-oy;
	end

always@(*)
if(!rst_n)
	vga_rgb<=0;
else	begin
		if((v_x*v_x+v_y*v_y)<=10000)
			vga_rgb<=white;
		else if((v_x*v_x+v_y*v_y)<=16384)
			vga_rgb<=blue;
		else if((v_x*v_x+v_y*v_y)<=24336)
			vga_rgb<=green;
		else if((v_x*v_x+v_y*v_y)<=33856)
			vga_rgb<=red;
		else if((v_x*v_x+v_y*v_y)<=24336)
			vga_rgb<=yellow;
		else if((v_x*v_x+v_y*v_y)<=57600)
			vga_rgb<=cyan;
		else 
			vga_rgb<=royal;
	end	

 显示结果

猜你喜欢

转载自blog.csdn.net/weixin_43533751/article/details/106993512