一种在FPGA中实现梯形图填充的方法技术

技术编号:6528350 阅读:363 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种在FPGA中实现梯形图填充的方法,首先画梯形的四个边,并在画边的同时以边上每个像素点的行坐标为索引将该点的列坐标存储到存储器A,每行只存储经过该行的最小列坐标和最大列坐标。建立一个存储器区域B。根据存储器A存储的列坐标按行以每次N列的数据填充填充存储器B,按行填充与画边长是同时进行,且整个梯形填充的过程也是并行的。本发明专利技术方法与利用CPU进行的填充比较具有可并行处理的优点,从而可以使填充速度与使用相同频率的CPU填充的速度相比成倍增加。

【技术实现步骤摘要】

本专利技术涉及直写式光刻机图形数据处理领域,具体为一种在FPGA中实现梯形图填充的方法
技术介绍
直写式光刻机设备是半导体生产过程中的必需设施,直写式光刻机设备是利用图形发生器取代传统光刻机的掩模板,从而可以直接将计算机的图形数据曝光到晶圆上,节省掩模板的费用,并且自身可用做掩模板的制作。对计算机图形数据的处理是指将计算机上的各种图形数据处理成图形发生器可接受的数据,梯形图填充是数据处理中的重要一步,该步骤的速度与直写式光刻机的产能紧密相关。
技术实现思路
本专利技术的目的是提供一种在FPGA中实现梯形图填充的方法,根据FPGA的可编程特性,利用数字逻辑电路实现了梯形图的填充,以实现提高填充速度,进而提高直写式光刻机产能。为了达到上述目的,本专利技术所采用的技术方案为一种在FPGA中实现梯形图填充的方法,其特征在于包括以下步骤(1)首先在FPGA中利用BRESENHAM算法画梯形的四个边;(2)其次在步骤(1)画边的同时,将画边生成的像素点的行列坐标按规则存储到存储器 A,其中存储到存储器A的规则是指将画边生成的像素点行列坐标以行坐标为索引值并将列坐标存储到存储器A,并且只存储同一行坐标上的最小列坐标和最大列坐标,如果某行只有一个像素点也即只有一个列,则最小列坐标和最大列坐标均是这个列;(3)最后根据步骤(2)得到的存储器A的内容按行填充梯形,建立一个与帧大小相等的存储器区域B用于存放填充出的图形数据,填充过程为从最小行坐标开始逐行进行填充, 根据存储器A存储的列坐标按行以每次N列的数据填充填充存储器B,每行的填充规则是 N个像素点同时进行填充,如果落在改行最小列坐标和最大列坐标范围内则填充1,否则填充0。所述的一种在FPGA中实现梯形图填充的方法,其特征在于选用FPGA进行梯形图的填充,使上述的按行填充与画边长是同时进行,即画一个梯形的边长时,同时进行着上一个梯形的按行填充,且整个梯形填充的过程也是并行的。本专利技术方法利用BRESENHAM算法画梯形的四个边,并在画边的同时以边上每个像素点的行坐标为索引将该点的列坐标存储到存储器A,每行只存储经过该行的最小列坐标和最大列坐标。建立一个与帧大小相等的存储器区域B用于存放填充出的图形数据。根据存储器A存储的列坐标按行以每次N列的数据填充填充存储器B,规则是落在存储器A两个列坐标范围内的像素点全部填充1,,该行的其他像素点填充0。按行填充与画边长是同时进行的,即画一个梯形的边长时,同时进行着上一个梯形的按行填充。且整个梯形填充的过程也是并行的。与现有技术相比,本专利技术的优点是(1)采用了具有高速性能和内部逻辑资源丰富的现场可编程逻辑门阵列FPGA芯片,具有集成度高,电路结构简单的特点;(2)使用FPGA 的数字逻辑电路实现梯形图的填充,从而使很多处理步骤在一个时钟周期内完成;(3)本专利技术应用在直写式光刻机处理领域可替代图形处理卡,实现与数据处理其他步骤的简单高效接口 ;(4)本专利技术可实现各步骤的并行处理,且具备可编程特性,(5)本专利技术方法与利用 CPU进行的填充比较具有可并行处理的优点,从而可以使填充速度与使用相同频率的CPU 填充的速度相比成倍增加。附图说明图1是梯形图填充示意图。图2列坐标存储到Al,A2寄存器的流程图。图3 Bresenham模块的输出信号时序图。图4存储器Al,A2和C的读取和写入时序图。图5当C寄存器组中的元素值为0时的写入操作。图6当C寄存器组中的元素值为1时的写入操作。图7按行填充的示意图。图8按行填充查找表。图9并行处理的过程。具体实施例方式如图1所示。图1是一个梯形图填充的例子,给定梯形图的四个顶点坐标,根据 bresenham画四边,然后再进行填充。在画边的同时以边上每个像素点的行编号为索引将该点的列编号存储到寄存器组Al,A2,每行只存储经过该行的最小列编号和最大列编号,分布存储到Al和A2。建立一个与帧大小相等的存储器区域B用于存放填充出的图形数据。根据存储器A1,A2存储的列编号按行以每次N(N=8,16,32,64,128)列的数据填充填充存储器B,规则是落在存储器A两个列编号范围内的像素点全部填充1,该行的其他像素点填充0。如图2所示。图2是将列坐标存储到Al,A2寄存器的流程图,图中,Al为由N个元素组成的寄存器组,用于保存每行的第一个像素的列坐标,A2为由N个元素组成的寄存器组,用于保存每行的第二个像素的列坐标,C为由N个元素组成的寄存器组,用于保存Al是否已经保存,N是梯形图的最大列数,x、y为由画线模块生成的线上像素点坐标。图中列出了 Al,A2和C寄存器的示意图,C寄存器用于存储是否已经写了第一个坐标到Al寄存器。 流程图中表示了可能的各种情况下,写入Al,A2的坐标数据。如图3所示。图3是bresenham模块的输出信号时序图。LineValid信号与输出的线上像素点坐标同步,每个LineValid信号有效的周期输出一个像素点坐标,直到该边长的所有线上像素点输出结束。如图4所示。图4是存储器Al,A2和C的读取和写入时序图,这三个寄存器组都为双口访问RAM,写入和读出分两个独立的端口。每个时钟的上升沿写入数据,地址变化立即输出数据。如图5所示。图5是当C寄存器组中的元素值为0(0为初始值,表示该行还没有写入第一个列坐标到Al寄存器)时的写入操作,有三种情况1、C寄存器的y (行坐标)索引的值为0,但这是一个边画线的第一个周期。则往Al写入χ。2、C寄存器的y (行坐标) 索引的值为0,但上一个周期的y坐标与本次y —样,这是因为上一个周期写入C寄存器的值还没有完成,这个周期读出的值依然是0,因此不能直接往Al寄存器写X,此时应该往A2 寄存器写入X。3、C寄存器的y (行坐标)索引的值为0,上一个周期的y坐标与本次y不一样,则往Al写入χ。如图6所示。图6是当C寄存器组中的元素值为1(表示Al中已经写入χ坐标) 时的写入操作,有七种情况1、A2寄存器当前y索引元素的值为空(用超过有效数字的一个数表示,初始值为空); 则给出往A2寄存器写入列坐标Xl的信号(到下个时钟上升沿后才会真正写入);2、当前的y值与上一周期的y值相同;虽然上一时钟周期已经给出了往A2[yl]写xl 的信号但是在此时钟沿时刻并没有实际写入,A2寄存器当前y索引元素的值仍然为空,此时应该以A2[y2]= A2[yl]中已经有了 xl为条件。Al [y2] < xl, xl>x2>Al[y2];故不做任何写入操作;3、以下以mDx表示当前周期的Al寄存器y索引的输出值,nDx表示当前周期的Al寄存器y索引的输出值.mD3 <= nD3,x3 > nD3;因此A2[y3] = x3;4、mD4<=nD4,x4 <mD4;因此Al[y4]=x4;5、mD5> nD5,x5 >mD5;因此A2[y5]=x5;6、mD6> nD6,x6 <nD6;因此Al[y6]=x6 ;7、mD7> nD7,mD7> x7> nD7;因此不操作如图7所示。图7所示是四个边全部画完后,按行填充的示意图。图中N 的数值可能是8,16,32,64,128,A为第一个点,B为最后一本文档来自技高网...

【技术保护点】
1.一种在FPGA中实现梯形图填充的方法,其特征在于:包括以下步骤:(1)首先在FPGA中利用BRESENHAM算法画梯形的四个边;(2)其次将步骤(1)画边的同时,将画边生成的像素点的行列坐标按规则存储到存储器A,其中存储到存储器A的规则是指:将画边生成的像素点行列坐标以行坐标为索引值并将列坐标存储到存储器A,并且只存储同一行坐标上的最小列坐标和最大列坐标,如果某行只有一个像素点也即只有一个列,则最小列坐标和最大列坐标均是这个列;(3)最后根据步骤(2)得到的存储器A的内容按行填充梯形,建立一个与帧大小相等的存储器区域B用于存放填充出的图形数据,填充过程为:从最小行坐标开始逐行进行填充,根据存储器A存储的列坐标按行以每次N列的数据填充填充存储器B,每行的填充规则是:N个像素点同时进行填充,如果落在改行最小列坐标和最大列坐标范围内则填充1,否则填充0。

【技术特征摘要】
1.一种在FPGA中实现梯形图填充的方法,其特征在于包括以下步骤(1)首先在FPGA中利用BRESENHAM算法画梯形的四个边;(2)其次将步骤(1)画边的同时,将画边生成的像素点的行列坐标按规则存储到存储器 A,其中存储到存储器A的规则是指将画边生成的像素点行列坐标以行坐标为索引值并将列坐标存储到存储器A,并且只存储同一行坐标上的最小列坐标和最大列坐标,如果某行只有一个像素点也即只有一个列,则最小列坐标和最大列坐标均是这个列;(3)最后根据步骤(2)得到的存储器A的内容按行填充梯形,建...

【专利技术属性】
技术研发人员:丁建飞谢睿文
申请(专利权)人:合肥芯硕半导体有限公司
类型:发明
国别省市:34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1