專利名稱:用于制造印制電路板的補償模型和配準仿真器裝置及方法
版權(quán)說明本專利文獻中的一部分包括受到版權(quán)保護的內(nèi)容。版權(quán)所有人并不反對任何人對專利文獻的內(nèi)容進行傳真復制,只要是在專利和商標局的文件和記錄中出現(xiàn)就行;除此以外,版權(quán)所有人保留一切版權(quán)。發(fā)明背景1.發(fā)明領域本發(fā)明涉及多層印制電路板,更加具體地說,涉及在層壓成型之前多層印制電路板(MLB)的配準方法。
2.相關技術(shù)在印制電路板行業(yè),很少有問題能夠象配準這個問題一樣富有挑戰(zhàn)性,也很少能夠象它這樣重要。在鉆孔的時候或者進行電測試的時候?qū)Χ鄬佑≈齐娐钒鍙U品堆進行檢查會使人迷惑不解并且非常懊惱。在許多電路板中或者一個底板上有一個電路可能是完美無缺的,而下一個電路則是亂七八糟,到處都是錯誤。如果廢品量很大,就有必要立即修改電路板設計。用來解決配準問題的修正方案常常不是看一眼就能夠找到的,因此實際進行的修正常常無法給出令人滿意的結(jié)果。
多層印制電路板出現(xiàn)配準誤差的原因有許多,它們包括(1)偏移誤差;(2)角度誤差;(3)隨機噪聲;(4)補償誤差。補償誤差來源于對芯板和電介質(zhì)層進行多層層壓成型以后,對多層印制電路板由于材料移動導致的收縮和膨脹的錯誤估計。
可惜的是,在估計需要多大補償?shù)臅r候,現(xiàn)有技術(shù)只是建議考慮每個芯板上有多少銅,以及芯板的厚度,而根本沒有考慮整個多層印制電路板的設計和結(jié)構(gòu)。在現(xiàn)有技術(shù)中用于產(chǎn)生矩陣的數(shù)據(jù)是在以往生產(chǎn)信息的基礎之上獲得的?,F(xiàn)有技術(shù)中的這些模型沒有能夠精確地估計到底需要多少補償,甚至有時候,在模型和實際產(chǎn)品之間會出現(xiàn)高達正負15個密爾的誤差。在圖1中給出了現(xiàn)有技術(shù)中補償矩陣的一個實例。這個矩陣是大小是24英寸乘以18英寸的底板的一個補償矩陣,其中在經(jīng)線方向(X方向)是18英寸,在緯線方向(Y方向)是24英寸?,F(xiàn)有技術(shù)中的這個矩陣只是根據(jù)芯板上有多少銅和這個芯板的厚度來確定的,在減小補償誤差的過程中,這一點使得這一矩陣的有效性大打折扣。
實際上,使用現(xiàn)有技術(shù)中的補償矩陣會打斷多層印制電路板的生產(chǎn)過程。圖2給出了一個大型印制電路板車間中補償工藝簡化工藝流程的一個流程圖。圖2中的箭頭30說明非常不穩(wěn)定的工藝所在的區(qū)域。在圖2所描述的反饋過程中,錯誤信息會差之毫厘,繆以千里,引發(fā)極大的配準誤差。這種現(xiàn)象發(fā)生在反饋信息是錯誤的或者反饋發(fā)生在很長的延遲周期以后的情況下。不巧的是,印制電路板車間在生產(chǎn)過程中需要做大量的工作這一事實極大地限制了去掉有害的滯后時間的能力。信息不完整和輸入延遲也會限制對生產(chǎn)過程中的產(chǎn)品進行補償改正的能力。在完整的生產(chǎn)批量已經(jīng)完成以后才進行補償修改無異于修改工藝流程,這樣做常常會導致廢品率直線上升。減小補償誤差的一條途徑是提高在生產(chǎn)之前對生產(chǎn)誤差補償?shù)念A測精度?,F(xiàn)有技術(shù)中基于以往生產(chǎn)數(shù)據(jù)組的策略缺乏所需要的設計組合來檢測控制材料移動的重要變量和相互作用。因此,現(xiàn)有技術(shù)中的補償矩陣不能夠在生產(chǎn)之前精確地預測誤差,從而需要在生產(chǎn)過程中采用成本高昂的改進方法。
在圖2所示的方框32中,初始補償值是從圖1所示的尺寸矩陣中選擇出來的。在方框34中,測試樣品(它通常是10塊或者更多的多層印制電路板疊放在一起)和第一批產(chǎn)品被“投入”(開始)生產(chǎn)。由于時間緊迫,通常都不可能首先進行測試來確定是否存在生產(chǎn)問題(也就是說沒有時間來檢查預測出來的補償值實際上是否正確),然后再進行實際生產(chǎn)。相反,必須為生產(chǎn)同時準備好測試樣品和生產(chǎn)批量。在方框36中,對測試樣品進行測量有沒有誤差,而同時還在進行生產(chǎn)。在那以后,在方框38中,將多出的芯板(它們是上面腐蝕出了電路的多余芯板)收集起來。因為有一些印制電路板會成為廢品,所以多生產(chǎn)了一些芯板。這些多出來的產(chǎn)品被儲存起來以便在需要它們的時候拿出來使用。
在方框42中對測試樣品所進行的測量的基礎之上,在圖2所示的方框40中修改布線圖,以便能夠減小補償誤差。但是,由于老一批產(chǎn)品仍然在生產(chǎn)線上,這些老一批產(chǎn)品仍然在使用,如同方框44所示,這一點導致了在解決生產(chǎn)中存在的問題的過程中出現(xiàn)不穩(wěn)定的滯后。還有,由于時間有限,在生成過程中仍然在使用老的芯板,如同方框46所示。
目前確定和修正多層印制電路板配準誤差的方法效率很低,而且無法預測,導致出現(xiàn)大量的廢品。因此需要在生產(chǎn)開始以前而不是在生產(chǎn)過程中確定配準誤差,特別是補償誤差。
除此以外,現(xiàn)有技術(shù)還沒有能夠很好地搞清楚不同配準誤差源之間是如何相互作用的。通常情況下,現(xiàn)有技術(shù)只是將所有配準誤差源的方差加起來,以此嘗試計算出總的配準誤差。例如,布線圖中的補償誤差,腐蝕后打孔機引起的偏移誤差和角度誤差,以及鉆床的隨機噪聲,不能通過計算它們的平方和來合并。這種一維分析無法搞清楚這些誤差如何在底板表面流動,同樣無法搞清楚這些配準誤差源是否互相獨立,這些誤差組合在一起,產(chǎn)生非常復雜,看起來無法解釋的配準誤差模式。正因為如此,需要考慮各種類型誤差之間的相互作用,才能夠更好地實現(xiàn)多層印制電路板的配準。
發(fā)明簡述一方面,本發(fā)明提供了一種方法,用來模擬在印制電路板的配準過程中所進行的補償。這種方法包括提供多個印制電路板的步驟,這多個印制電路板有多個芯板,它們在這些芯板之間采用至少一層電介質(zhì)。這種方法還包括測量每個印制電路板的至少一個芯板在生產(chǎn)過程中出現(xiàn)的移動。還有,這個方法還包括在這個芯板移動測量結(jié)果的基礎之上以及在至少一個電介質(zhì)層的基礎之上形成一個補償模型的步驟。
第二方面,本發(fā)明提供了一種方法,用來模擬在印制電路板的配準過程中所進行的補償。這個方法包括提供多個印制電路板的步驟,這多個印制電路板有多個芯板,在芯板之間具有電介質(zhì)層,這些芯板位于印制電路板中。這個方法還包括測量這些芯板在印制電路板生產(chǎn)過程中發(fā)生的移動的步驟。還有,這個方法還包括在芯板移動測量結(jié)果的基礎之上以及在印制電路板中芯板位置的基礎之上產(chǎn)生一個補償模型的步驟。
第三方面,本發(fā)明提供一種方法,用來模擬在印制電路板的配準過程中所進行的補償。這個方法包括提供帶有至少第一個芯板和第二個芯板的印制電路板的步驟,在第一個芯板的至少一面以及在第二個芯板的至少一面有電路布局。這個方法還包括在生產(chǎn)過程結(jié)束以后測量印制電路板的芯板,以便搞清楚每個芯板移動程度的步驟。還有,這個方法還包括在印制電路板芯板測量結(jié)果的基礎之上,以及在第一個芯板至少一面以及第二個芯板至少一面上的電路布局的基礎之上產(chǎn)生一個補償模型的步驟。
第四方面,本發(fā)明提供一種方法,用于在加工具有多個芯板、電路在這個芯板上、電介質(zhì)層在這些電路之間的多層印制電路板的過程中,減小補償誤差。這個方法包括確定多層印制電路板從一組特征中挑選出來的至少一個特征的步驟,這一組特征包括芯板在多層印制電路板中的位置、電介質(zhì)層和相鄰芯板上的電路。這個方法還包括在來自補償模型至少一個特征的基礎之上產(chǎn)生至少一個補償系數(shù)的步驟。還有,這個方法還包括在至少一個補償系數(shù)的基礎之上修改電路的步驟。
第五方面,本發(fā)明提供一種仿真器,用于確定多層印制電路板中的補償誤差,這個多層印制電路板具有至少一個電介質(zhì)層、多個芯板以及多個芯板上的電路結(jié)構(gòu)。這個仿真器包括一個處理器以及跟這個處理器有電連接的一個存儲器裝置,這個存儲器裝置包括誤差數(shù)據(jù)的一個補償矩陣,其中包括在這個多層印制電路板至少一個特征基礎之上的X誤差和Y誤差測量結(jié)果,這個多層印制電路板的至少一個特征是從一組特征中選擇出來的,這一組特征至少包括一個電介質(zhì)層、芯板在這一疊層中的位置、多個芯板上的電路結(jié)構(gòu)、這個多層印制電路板的組合以及芯板跟電介質(zhì)層之間的相互作用。
第六方面,本發(fā)明提供一種方法,用于在印制電路板的配準過程中對誤差進行仿真。這個方法包括在多層印制電路板的一層上匯集至少多個點的步驟。這個方法還包括在一個偏移模型、一個角度模型、一個補償模型和一個隨機噪聲模型的基礎之上修改多個點的位置,以便產(chǎn)生這多個點的一個修改位置的步驟。還有,這個方法還包括輸出多個點的位置被修改了的這多個點的位置的一個補償措施的步驟。
第七方面,本發(fā)明提供了一種方法,用于對印制電路板配準過程中出現(xiàn)的誤差進行仿真。這個方法包括確定進行精確配準所必需的真實位置的步驟。這個方法還包括確定在配準過程中出現(xiàn)的誤差的至少兩個誤差源的步驟。這個方法還包括以一種相互獨立的方式合并在配準過程中出現(xiàn)的誤差的至少兩個源的步驟。還有,這個方法包括將合并了的至少兩個誤差源跟真實位置進行比較的步驟。
本發(fā)明的一個目的是提供一種方法和裝置,用于正確地估計印制電路板層壓成型以后所需要的補償。
本發(fā)明的另外一個目的是提供一種方法和裝置,用于對配準誤差進行仿真,以便更好地設計印制電路板的布局,并且更好地理解所需要的生產(chǎn)工藝控制。
圖1是現(xiàn)有技術(shù)中的一個補償矩陣;圖2是一個大型印制電路板車間里補償工藝一個簡化工藝流程的流程圖;圖3是多層印制電路板的一個實例;圖4a是設計規(guī)則配置(DRA)和真實位置半徑(TPR)的一個圖形表示;圖4b是說明通用計算機、輸入裝置和輸出裝置的一個方框圖;圖5是配準仿真器的一個X(水平)和Y(垂直)偏移誤差輸出結(jié)果;圖6a是配準仿真器的一個角度誤差輸出結(jié)果;圖6b是配準仿真器的一個偏移誤差和角度誤差輸出結(jié)果;圖7是底板表面上配準仿真器的一個隨機噪聲輸出結(jié)果;圖8a是配準仿真器的一個X補償誤差和Y補償誤差輸出結(jié)果;圖8b是圖8a的一個等高線圖;圖8c是配準仿真器的一個補償誤差矢量圖;圖9是本發(fā)明的一個實施方案中模擬補償誤差的一個流程圖;圖10a~c是分別為厚度為4個密爾、5個密爾和8個密爾的芯板產(chǎn)生補償矩陣的試驗結(jié)果的表格;圖11a~f分別是厚度為4個密爾經(jīng)線和緯線、5個密爾經(jīng)線和緯線以及8個密爾經(jīng)線和緯線的外層芯板補償模型的等式系數(shù);圖11g~l分別是厚度為4個密爾經(jīng)線和緯線、5個密爾經(jīng)線和緯線以及8個密爾經(jīng)線和緯線的內(nèi)層芯板補償模型的等式系數(shù);
圖12是多層印制電路板各種結(jié)構(gòu)經(jīng)線和緯線的補償誤差圖;圖13是在生產(chǎn)之前和生產(chǎn)過程中使用補償模型的一個實例的流程圖;圖14a和14b分別是改變樹脂百分比和固化百分比的時候6個密爾芯板的經(jīng)線和緯線移動的試驗結(jié)果的示意圖;圖14c和14d是改變樹脂百分比和固化度的時候6個密爾芯板的經(jīng)線和緯線中補償誤差的示意圖;圖15a是本發(fā)明一個實施方案中對配準誤差進行計算和仿真的一個流程圖;圖15b是在生產(chǎn)之前和生產(chǎn)過程中使用配準仿真器的一個實例的一個流程圖;圖16是基線測量結(jié)果的一個直方圖;圖17是說明試驗結(jié)果的一個直方圖,它同時說明最差情況下TPR的歷史;圖18是腐蝕后打孔機上故障模式和影響分析(FMEA,)的一個表;圖19是單獨一臺腐蝕后打孔機(PEP)上25內(nèi)層底板上的生產(chǎn)數(shù)據(jù);圖20是配準仿真器輸出的一個等高線圖,它說明一個實例中配準誤差組合的底板表面上的結(jié)果;圖21是配準仿真器輸出的一個等高線圖,它說明第二個實例中配準誤差組合的底板表面上的結(jié)果;圖22是利用配準仿真器從試驗設計(DOE)獲得的結(jié)果;圖23是從1000次仿真得到的最大TPR結(jié)果的一個直方圖;和圖24是在修改了印制電路板工藝以后,1000次仿真嘗試的最大TPR結(jié)果的一個直方圖。
發(fā)明詳述多層印制電路板(MLB)包括多層電路。在一個芯板上腐蝕出來由導體材料或者銅這樣的金屬組成的電路作為一層。這個芯板可以是任意形狀的。通常情況下,芯板的形狀是矩形,它的寬度是18英寸(x方向),高度是24英寸(y方向)。另外,芯板具有各種各樣的厚度(z方向),包括4個密爾、5個密爾和8個密爾。為了縮小電路的尺寸,電路板正在小型化。為了縮小電路板的尺寸和厚度,至少要做兩件事情(1)在一個芯板的兩面腐蝕電路形成兩層和(2)將這些電路疊放在一起。這樣,典型的多層印制電路板會有3、4、5、10或者更多疊放起來的芯板。
為了組裝多層印制電路板,需要一個分界層,它將各個芯板上的電路圖結(jié)合起來,同時作為一個絕緣層,防止兩邊的電路層互相影響。典型情況下,分界層是一種電介質(zhì)層,比方說半固化片。半固化片通常都是用玻璃纖維通過浸滿一種樹脂形成的。半固化片被看成一種b級材料,其中的樹脂被部分地固化。具有腐蝕好的電路對兒的芯板通常都是一種c級材料,這種材料是完全固化的。在處理過程中,半固化片放在一層一層的芯板之間,通過壓力和加熱而固化。這樣,半固化片夾在芯板之間,作為粘接劑和電介質(zhì)絕緣體。
除了半固化片,也可以將其他電介質(zhì)層用于芯板層之間??梢赃x擇的電介質(zhì)層包括涂滿了樹脂的箔,或者是任何其它樹脂或者是涂滿了環(huán)氧樹脂的材料,或者是用于將芯板層疊起來的層。
為了在不同的層上將電路連接起來,需要通過不同的芯板層垂直地鉆上過孔或者洞。這些過孔在芯板電路上精確地預先確定的位置(例如觸點)上將電路層連接起來。因此,這些過孔必須在一定的公差范圍內(nèi)將多層上的多層電路排列整齊;否則,這些過孔就不能正確地連接電路,而且它們會影響其它電路,導致發(fā)生電路故障。設計好多層印制電路板,從而使這些過孔跟電路對準,這種工藝過程被叫做配準。然而,印制電路板的生產(chǎn)或者制造過程中有多種因素會導致配準誤差,這些配準誤差使過孔不能正確地跟觸點對齊,從而影響已經(jīng)有的電路。配準故障不是一眼就能看出來的,除非在多層印制電路板生產(chǎn)完以后進行電路測試。
圖3是說明一個總共有8層的多層印制電路板的一個示意圖。圖3只是用于進行討論,并不代表印制電路板各層的相對厚度。如同后面所討論的一樣,電介質(zhì)層(圖3中的50、58、66、74)可以是半固化片(包括一個電介質(zhì)層中的多個半固化片層,具有不同樹脂百分比的半固化片和具有不同固化程度的半固化片)。第2層到第7層(圖3中的52、56、60、64、68、72)可以包括信號線、接地線或者信號線和接地線組合的不同電路結(jié)構(gòu)。這些芯板(圖3中的54、62、70)可以具有各種厚度,包括4個密爾、5個密爾和8個密爾。第1層和第8層(圖3中的48和76)是外層箔材導電材料,在印制電路板層壓成型之前放在電介質(zhì)層上。外層允許在印制電路板上形成電路圖形。這些外層箔材電路圖形不會產(chǎn)生配準誤差,因為它們在生產(chǎn)好以后不會發(fā)生明顯的移動。
多層印制電路板的配準誤差用設計規(guī)則配置(DRA)和真實位置半徑(TPR)來表征。DRA指的是真實位置那里(需要進行精確配準)的過孔邊緣到這一層中相鄰部分電路邊緣之間的距離。TPR指的是真實位置的徑向誤差,因此是配準誤差的一個度量。參考圖4a,其中原理性的說明了什么是DRA和TPR。
DRA包括所有層之間元件之間的距離。通常情況下,這個信息可以從計算機輔助設計(CAD)文件中獲得,其中的程序查找多層印制電路板每一層上的元件,并且計算DRA。對于有些電路板,有環(huán)形圈要求,以防止鉆好的洞或者過孔到達電路板的邊緣。但不是說對于所有的印制電路板都是這樣的。DRA代表公差極限,因為違反DRA會導致電路短路。通常情況下,DRA在6.5個密爾到16個密爾之間,其中6.5個密爾被看成最小的配準公差。
如圖4a所示,TPR是配準誤差的度量。利用平方和的平方根將X方向和Y方向上的誤差合并起來得到TPR。通常都要比較TPR和DRA,并且TPR必須小于DRA,以避免配準廢品(也就是印制電路板報廢)。
對TPR有影響的配準誤差源包括(1)偏移誤差;(2)角度誤差;(3)隨機噪聲;(4)補償誤差。用來配準印制電路板的機器和印制電路板本身對配準誤差都有影響。偏移誤差通常都是跟多層印制電路板加工過程有關的誤差,比方說穿孔、固定、印制和鉆孔。參考圖5,其中畫出了本發(fā)明中配準仿真器的一個輸出結(jié)果,其中的配準誤差是以X方向(水平方向)和Y方向(垂直方向)偏移誤差為基礎的。X偏移誤差和Y偏移誤差可以通過經(jīng)驗獲得,并且分別在方框69和71中輸入配準仿真器。在圖5中,以及隨后的圖中,加號(+)表示需要精確配準的元件真實位置。圖中的星號(*)說明考慮了配準誤差以后元件的位置。圖5畫出的是一個18英寸乘以24英寸的底板,其中有130個圖點,說明底板上每兩個英寸的間隔上的真實位置和配準誤差。這個圖中每個角落上的方框(79,80,81和82)都說明誤差量,用關于真實位置的半徑(TPR)表示。這個TPR是通過計算X方向的偏移誤差(3個密爾)和Y方向的偏移誤差(-3個密爾)的平方和,然后計算它的平方根(4.24個密爾)來獲得的。這個圖上所有點的平均TPR在圖5中的頂部中心部分方框78中給出。從圖5可以看見,在這個底板表面偏移誤差是一致的。偏移誤差一致的原因的一個實例是腐蝕后打孔機沒有對準。在準備壓這些印制電路板層的時候,腐蝕后打孔機在芯板上打孔。如果機器沒有很好地對準,就會發(fā)生偏移誤差。偏移誤差的另外一個實例是芯板周圍的層沒有對準。如圖3所示,在芯板2上腐蝕出第四層和第五層。然而,如果在腐蝕過程之前的印制過程中有一個誤差,第四層就會跟第五層發(fā)生偏移,導致偏移誤差。
第二種配準誤差是角度誤差。跟偏移誤差一樣,角度誤差也跟多層印制電路板加工過程有關,比方說打孔、固定和鉆孔。角度誤差有一個角度旋轉(zhuǎn)中心,還有一個角度誤差度數(shù)。為了進行分析,假設角度旋轉(zhuǎn)的中心在底部24英寸邊緣的中心。這樣來選擇角度旋轉(zhuǎn)中心只是為了方便,可以在修改偏移誤差的基礎上移動它。例如,如圖6b所示,旋轉(zhuǎn)的角度中心通過修改x偏移誤差移動到這一層的近似中心。角度誤差是比例誤差的一個實例。在印制電路板車間常常不考慮角度誤差,因為它們很難測量,而且人們認為很小的角度不會對整個配準誤差有多大影響。為了了解為什么很小的旋轉(zhuǎn)角度會帶來問題,讓我們來看12英寸長9個密爾高的一個三角形。得到的角度只是大約0.04度,這個角度常常會被忽略掉,而實際上它會帶來很大的誤差。參考表1,其中將TPR作為底部底板邊緣上角度的函數(shù)??紤]整個底板表面的時候(例如18英寸乘以24英寸),離得比較遠的角落會產(chǎn)生更大的誤差,如同表1中的TPR所示。
表1作為角度的函數(shù)的TPR
參考圖6a,其中說明了本發(fā)明中配準仿真器的一個角度誤差輸出結(jié)果。這個角度誤差可以通過檢查在多層印制電路板的制造過程中使用的機器的輸出來獲得,它包括腐蝕后打孔機的輸出。在方框67中將角度誤差輸入配準仿真器。如圖6a所示,繞著長度是24英寸的底邊的中心稍微轉(zhuǎn)動0.02度(角(度))就會導致平均的TPR等于4.21個密爾,左下角和右下角的TPR是4.19個密爾,左上角和右上角的TPR是7.55個密爾。在優(yōu)化過程中,比方說在腐蝕以后給芯板進行打孔的過程中,會因為很小的校準誤差而對目標產(chǎn)生角度誤差?,F(xiàn)有技術(shù)中的腐蝕后打孔機把目標定位在靠近底板的中心線上。一種改進的打孔(或者過孔)方法是將目標定位在四個角上,從而使很小的校準誤差對角度誤差影響很小。
現(xiàn)在來看圖6a,僅僅是角度誤差也會產(chǎn)生一些潛在的難以理解的配準誤差。例如,底板下半部分的底板比上半部分配準得更好。右上角的配準誤差是朝向左和上的,左上角的配準誤差是朝向左和下的。從130個點構(gòu)成的陣列可以清楚地看到圖6中發(fā)生了旋轉(zhuǎn)。但是,檢查產(chǎn)品底板的時候,角度誤差不是那么明顯,常常會將角度誤差當作補償誤差。如果只看底板左半部分或者右半部分這一點就更加明顯。對角度誤差進行補償會產(chǎn)生更大的補償誤差,而角度誤差不會有任何明顯的改善。錯誤的補償變化導致TPR的增大會非常驚人。因此,本發(fā)明的模型和仿真器提供一種測量系統(tǒng),它能夠?qū)⒔嵌日`差和偏移誤差跟補償誤差分離開來,以避免引起成品率下降的修正錯誤。
第三個配準誤差源是隨機噪聲,它的原因可能有許多。隨機噪聲的一個實例是打過孔的過程中出現(xiàn)的現(xiàn)象。鉆頭可能會隨機地晃動,產(chǎn)生大量的點分布在真實位置周圍。隨機噪聲的其它實例包括在層壓成型以后底板移動距離的差、隨機加工誤差和隨機測量噪聲。
參考圖7,其中給出了本發(fā)明中配準仿真器的輸出,它以圖形方式說明在底板平面上的隨機噪聲誤差。配準仿真器假設隨機噪聲分量具有正態(tài)分布,在X方向和Y方向上具有相等的標準偏差。圖7中的標準偏差是1.5個密爾,如同方框77所示。典型情況下,隨機噪聲常常被認為是非常嚴重的誤差,并且在一些工序中經(jīng)常有許多試圖減小隨機噪聲的印制電路板制造設備。但是,因為其它三個誤差模式的數(shù)量巨大,所以減小隨機噪聲誤差的努力并不總是成功的。尤其,人們總是忽視的是當偏移誤差、補償誤差和角度誤差被減小了以后,則能夠承受更大的隨機噪聲。但是,電路密度越高,層數(shù)越多銅也越多的時候,以及對提高多層印制電路板生產(chǎn)率的需要,這些都會導致不利于減小隨機噪聲的情況出現(xiàn)。
另外一種誤差是補償誤差。補償誤差是由多層印制電路板材料的移動造成的,比方說在多層印制電路板的生產(chǎn)過程中芯板材料的移動、電路布局的移動和電介質(zhì)層的移動。多層印制電路板制造的實例可以包括用電介質(zhì)板將芯板夾起來,并且給它們加熱加壓。材料移動指的是在多層印制電路板的生產(chǎn)過程中所見到的各種多層印制電路板層的相對膨脹和收縮。所有的材料移動都會導致電路布局出現(xiàn)扭曲,或者相對于它們預期的X、Y位置發(fā)生變化。由于存在扭曲和移動,在芯板上腐蝕出來的電路的設計無法配準,必須進行修正。為了修正扭曲和移動導致的配準誤差,具有緊設計公差的印制電路板被拉伸或者收縮以便補償在層壓成型以后能夠看見的材料移動。例如,如果某一層由于補償誤差預計要成比例地收縮10.0個密爾,就可以按比例地擴大電路板10.0密爾來修正電路。因此,擴大電路能夠補償由于補償誤差引起的收縮。
參考圖8a,其中給出了本發(fā)明中配準仿真器的一個輸出,它們說明X補償誤差和Y補償誤差。在方框73和75中,分別將X補償誤差和Y補償誤差輸入配準仿真器。配準誤差是成比例的,如圖8a所示。0.5個密爾每英寸誤差的X分量在角落上產(chǎn)生6個密爾的誤差(0.5×24/2)。-0.5個密爾每英寸誤差的Y分量在角落上產(chǎn)生4.5個密爾的誤差。X和Y分量合起來得到7.5密爾的TPR角落誤差。在某些部分成比例的誤差可以被集中或被優(yōu)化。例如,腐蝕后打孔機是加工設備的一個實例,它被設計成努力縮小從底板中心向外成比例的誤差。在底板表面有一些目標,腐蝕后打孔機在打孔之前確定它們。如果這些目標由于收縮發(fā)生了移動,腐蝕后打孔機就對它加以調(diào)整以便縮小誤差。圖8a說明在底板表面已經(jīng)非常理想地優(yōu)化了的補償誤差。
對于成比例的誤差,多層印制電路板角落TPR會比平均的多層印制電路板的TPR大。這一點在圖8b中的等高線圖和圖8c中的矢量圖里能夠更加清楚地看出來,它們中的每一個都是用本發(fā)明的仿真過程產(chǎn)生的。在圖8b中,深色區(qū)域代表配準得非常良好,明亮區(qū)域代表配準得非常不好。在圖8c中,具有較短長度的矢量表示配準得非常好,較大的長度表示配準得非常差。
將成比例的誤差錯誤地當成在加壓的過程中材料的移動、滑動或者旋轉(zhuǎn)并不罕見的。因此,為了使移動穩(wěn)定,有人可能會想到應當在層壓成型的過程中在角落上安裝銷釘。在特定的情形中角落不穩(wěn)定性是由于移動還是由于滑動引起的這個問題是可以用本發(fā)明的仿真方法來回答的一個問題,這個仿真方法產(chǎn)生圖8a~c所示的圖,在這種情況下,這些圖說明由于補償誤差使得角落沒有很好地配準。仿真誤差的模擬角度誤差、偏移誤差和隨機噪聲都是人們非常了解的機械配準誤差源。人們了解得最少的配準誤差是補償誤差,它同時源于機械和材料。由于需要對補償誤差的多層印制電路板CAD設計文件數(shù)據(jù)進行補償,以及無法在生產(chǎn)之前預測補償值,使得非常復雜的補償過程必不可少。當印制電路板車間要設計很多電路板的時候,補償過程的復雜性以及管理多個補償變化的負擔變得更加復雜,它們會導致制造周期出現(xiàn)不穩(wěn)定性,產(chǎn)生大量的廢品,極大地降低生產(chǎn)率。
為了在多層印制電路板生產(chǎn)之前以及在多層印制電路板生產(chǎn)過程中使補償誤差最小,本發(fā)明的補償模型提供了一種精確全面的補償誤差預測方法。本發(fā)明的這個補償模型對現(xiàn)有技術(shù)中沒有考慮到的多個變量進行評估,它們包括(1)導電電路層的組合(例如相鄰芯板上的電路層);(2)芯板周圍電介質(zhì)材料的類型(例如不同類型的半固化片);(3)芯板周圍各種類型電介質(zhì)材料的組合(例如一種芯板在兩種不同的半固化片之間);(4)電介質(zhì)層、芯板和芯板上導體材料之間的相互作用;(5)多層中芯板的位置(例如芯板是在多層印制電路板中一疊芯板的內(nèi)部位置還是外部位置);(6)電介質(zhì)中粘合材料的量(例如半固化片中樹脂的百分比);(7)電介質(zhì)材料的層數(shù);(8)多層印制電路板中芯板的層數(shù);(9)芯板上采用的不同導電材料厚度;(10)在多層印制電路板中多個芯板厚度的組合;(11)多層印制電路板的組裝;和(12)這塊板的固化度。
在本發(fā)明的一個實施方案中,提供了一種方法,用于制作多層印制電路板,利用一個補償模型使補償誤差最小,這個補償模型考慮了上面列出的11個特征中的一個或者多個。在本發(fā)明的這個實施方案中,這個方法按照圖9所示的流程來進行,其中利用試驗板進行了試驗,它們具有上面11個特征中的一個或者多個。通過這些試驗,可以產(chǎn)生一個補償模型。除此以外,通過外推,這個模型可以用來預測多個多層印制電路板結(jié)構(gòu)的補償誤差。
在圖9中的方框83中,選擇至少一個芯板厚度。在一個優(yōu)選實施方案中采用多個芯板厚度。如同下面將描述的一樣,圖10a、10b、10c所示的補償模型是為三個芯板產(chǎn)生的4個密爾;5個密爾和8個密爾。
至少選擇電介質(zhì)層的一個特征用于模擬,如圖9中的方框84所示。示例性的電介質(zhì)層特征包括電介質(zhì)類型(也就是半固化片的不同類型)、粘合材料的類型(也就是不同的樹脂百分比)和固化百分比的類型(是較高或者較低的固化百分比)。圖10a~c中所示的“電介質(zhì)”變量90代表所使用的電介質(zhì)層材料中的變量。例如,可以將不同類型的半固化片用作電介質(zhì)層。在圖10a~c所示的實施方案中,使用了4種類型的“半固化片”102(電介質(zhì)等于1,2,3和4,它們分別對應于半固化片1080,半固化片2113,半固化片2116和半固化片7628)。也可以結(jié)合其它的半固化片特征。例如,電介質(zhì)等于1表示具有標準樹脂的半固化片材料1080。電介質(zhì)等于5可以代表具有較高樹脂的半固化片材料1080。除此以外,象固化率、高或者低的固化程度等等這樣的電介質(zhì)特性都可以結(jié)合進采用的電介質(zhì)設計。這樣,在“電介質(zhì)”這一欄90中列出的每個數(shù)字都是指具有電介質(zhì)層的一個或者多個特性的一種材料。
除此以外,通常情況下可以將電路板作成具有一層或者兩層或者更多層的半固化片。這里建議對于半固化片106、1080、2113和2116這樣的薄玻璃,在每個芯板周圍采用兩層半固化片。對于半固化片7628,這里建議采用一層半固化片。建議的這些層數(shù)反映了標準的工業(yè)實踐情況。
如圖9中的方框85所示,可以選擇不同的電路布局結(jié)構(gòu)。在一個優(yōu)選實施方案中,圖10a~c中的“結(jié)構(gòu)”欄89中,代表芯板上電路層組合里的變化。在印制電路板芯板上可能有各種電路布局。在一個實施方案中,電路布局的模擬是在芯板上不同百分比導電材料(比方說銅)的基礎之上進行的。在這種情況下,有3種可能的電路布局信號、接地或者混合(同一層上有一些信號線還有一些接地線)。包括電路布局的導電材料的量取決于電路布局類型。對于被設計成“信號”布局(S)的一個電路布局,估計有百分之二十的芯板是導電材料,比方說銅。對于被設計成“接地”(g)布局的一個電路布局,估計有百分之八十的芯板是導電材料。還有,對于被設計成“混合”布局(m)的電路布局,估計導電材料的量在20%和80%之間。在其它的實施方案中,可以采用不同的變量來描述印制電路板中一層上的導體材料的量,或者用不同的電路結(jié)構(gòu)來描述。
除此以外,如圖10a~c所示,“結(jié)構(gòu)”代表不同的電路結(jié)構(gòu)組合。例如,結(jié)構(gòu)等于1對應于ss/gg/ss,其中在頂部外層芯板周圍的層中有信號電路布局,在內(nèi)層芯板周圍的層中有接地電路布局,在底部外層芯板周圍的層中有信號電路布局。在圖3所示的實例中,第二層和第三層是信號電路,第四層和第五層是接地電路,第六層和第七層是信號電路。為了完整地模擬多數(shù)電路結(jié)構(gòu),只需要在試驗多層印制電路板中結(jié)合進少部分電路布局(或者“結(jié)構(gòu)”變量)。例如,只需要使用“結(jié)構(gòu)”變量的4種組合,包括ss/gg/ss;gg/ss/gg;gs/ss/sg;和gs/gg/sg。其余的布局都可以在這個模型的基礎之上外推出來。
除此以外,除了“結(jié)構(gòu)”和“電介質(zhì)”以外,還可以使用其它的因子來建立這個補償模型,但并不要求這樣做。例如,“時間”91和“機器”93可以通過試驗來確定,并且在補償仿真中使用。現(xiàn)有技術(shù)中的補償模型沒有考慮跟多層印制電路板的組裝有關的補償誤差。但是,組裝這些印制電路板的機器在性能上會各不相同,這一次加壓和下一次加壓不同,并且隨著時間改變而改變。為了將這些生產(chǎn)性能變化考慮進去,可以讓這個模型將“機器”類型作為一個修正因子包括進去。還可以在補償模型中包括“時間”。例如,時間等于1(93)可以是這些多層印制電路板的第一個生產(chǎn)日,時間等于2(94)可以是生產(chǎn)這些多層印制電路板的第二天。比較時間等于1、時間等于2、時間等于3或者時間等于4的輸出可以搞清楚這個補償模型是不是跟時間有關。還有,分析不同機器的補償模型(也就是機器等于1跟機器等于2是不同的一次加壓)可以確定補償模型是否依賴于所使用的具體機器。這樣,印制電路板的組裝方式就可以作為一個因素而被考慮入補償模型中。
選擇好所需要的因子以后,就為所需要的每個芯板厚度準備好試驗用的印制電路板,如同方框86所示。為了獲得有價值的試驗結(jié)果,最好是使用的每個印制電路板都包括至少一個一致的特性。需要的一致性的實例包括使用單一類型的電介質(zhì)層(例如半固化片1080、標準樹脂、低固化度),使用單一厚度的芯板(例如4個密爾厚的芯板),使用一疊10塊或者更多的八層印制電路板,或者它們的組合。最好是選擇使用一疊10塊或者更多的八層印制電路板,其在由于熱傳導而使電路移動方面具有一致性,從而使混合疊層或具有大量仿真(dummy)底板的疊層不反映真實的處理條件。
為獲得有關層移動情況的信息,在印制電路板層壓成型以后鉆孔之前測量在其上放置了的層的芯板。應當應用精度在0.1到0.3個密爾之間的儀器來測量這些芯板。這樣的精度可以通過高質(zhì)量的X射線設備來獲得。每一層最好有多個目標,用作移動測量點。這些目標最好位于印制電路板的四個角落上。例如,對于芯板1,如圖3所示,將在第二層的經(jīng)線方向上進行兩次測量,在第三層的經(jīng)線方向上進行兩次測量。對于10個底板(它們最后包括一個試驗底板),在一個方向每個芯板會有40個讀數(shù)。將這些讀數(shù)平均,在試驗結(jié)果表中給出一個數(shù)據(jù)輸入點。例如,在圖10a中,對于結(jié)構(gòu)等于1、電介質(zhì)等于1、時間等于1和機器等于1,m23x(95)的值(第二層和第三層周圍的芯板(也就是芯板1)的移動)是-16.90。它代表了讀數(shù)的平均值(在m23x中用“m”表示)。還有,這意味著用于在這個層上對電路進行布局的布線圖應當增大,以便補償x方向上16.9個密爾的收縮。同樣,m45y欄的值是y方向上第四層和第五層周圍芯板(也就是芯板2)的移動。還有,m67x欄是x方向上第六層和第七層(也就是芯板3)周圍芯板的移動。
為選擇出來的每個條件和條件組合制作試驗用印制電路板。得到的數(shù)據(jù)被平均,并且按照圖10a~c制成表格。完后產(chǎn)生所述模型,如同方框88所示。圖10a~c說明分別為芯板4個密爾、5個密爾和8個密爾產(chǎn)生補償矩陣的試驗結(jié)果。數(shù)據(jù)是從試驗用印制電路板獲得的,它們中間的某些工藝特征被精確地改變。圖10a~c中的每一行都說明了如何設置變量,以及每一個芯板和芯板方向上的平均結(jié)果。在“試驗結(jié)果”下面的欄中的T數(shù)據(jù)代表了這個印制電路板各個層在x方向和y方向上的移動。
將說明現(xiàn)有技術(shù)中模擬方法的圖1跟圖10a~c比較就能夠揭示現(xiàn)有技術(shù)中的方法沒有能夠揭示的補償誤差的主要來源。例如,圖1中經(jīng)線方向上一個信號/信號4個密爾芯板具有17.982個密爾的補償。如圖10a(96)所示,一個信號/信號內(nèi)部4個密爾芯板具有8.65個密爾的補償(結(jié)構(gòu)單元等于2,電介質(zhì)等于4)。這兩個值之間的差是9.3個密爾或者0.518個密爾每英寸或者518 PPM的補償誤差。這一個補償誤差自己只會在24英寸乘以18英寸的底板上,在進行了理想優(yōu)化的每個角落上產(chǎn)生2.6個密爾和4.7個密爾的平均TPR。當Y方向上的誤差增加到這個實例中來的時候,我們得到的誤差就是1.056個密爾減去9.76個密爾或者10.82個密爾或者450 PPM。X方向和Y方向補償誤差的合并結(jié)果是4.21個密爾的平均補償TPR,在角落上是7.13個密爾。
這個模型的統(tǒng)計有效性在圖10a中用Rsquare標簽說明。這些Rsquare值接近1.0,它說明很大一部分補償誤差可以用這個補償模型來解釋。對于2-3芯板和4-5芯板,具有高度的統(tǒng)計有效性。如同后面將詳細描述的一樣,芯板3被看作芯板1的一個鏡像。因此,沒有將來源于芯板3的數(shù)據(jù)用于構(gòu)造這個補償模型;然而,芯板3的數(shù)據(jù)給出了一致性程度的一種度量(也就是說,將來自芯板3的數(shù)據(jù)跟來自芯板1的數(shù)據(jù)進行比較,以便確定這些數(shù)據(jù)是不是一致的)。
圖10a說明圖1所示的現(xiàn)有技術(shù)中的補償矩陣過于簡單,很難進行精確的補償誤差預測。圖10a中能夠看到的最大范圍是(21.75個密爾~3.70個密爾)X(經(jīng)線)方向18.05個密爾和Y(緯線)方向15.63個密爾。4個密爾芯板的這些范圍遠遠超過了圖1所列出的所有芯板中可以看到的范圍。
除此以外,本發(fā)明中準備出來的補償模型可以用許多種格式表示,對于4個密爾、5個密爾和8個密爾的芯板,分別包括表格形式,如圖10a~c所示,用等式形式,如圖11a~l所示,用修正因子格式,如同后面將討論的一樣,或者用圖形格式表示,如圖8a和8b所示。從圖10a~c可以看出,可以產(chǎn)生多項式等式的系數(shù),如圖11a~l所示。參考圖11a~l,其中分別為厚度是4個密爾的經(jīng)線和緯線,厚度是5個密爾的經(jīng)線和緯線以及厚度是8個密爾的經(jīng)線和緯線的外層芯板畫出了這個補償模型的等式的系數(shù)。參考圖11g~l,其中分別為厚度是4個密爾的經(jīng)線和緯線、厚度是5個密爾的經(jīng)線和緯線以及厚度是8個密爾的經(jīng)線和緯線的內(nèi)層芯板說明了這個補償模型的等式的系數(shù)。這些系數(shù)是利用圖10a~c中的數(shù)據(jù)采用最小二乘回歸分析產(chǎn)生的。最小二乘回歸分析具有預測器變量(例如電介質(zhì)、結(jié)構(gòu)、時間機器等等),它們是無條件的,其中的變量取離散值,這些值沒有任何特別的順序。例如,對于圖11a中的系數(shù),這些系數(shù)是一個外層4個密爾經(jīng)線補償模型的,在圖10a中檢查m23x這一欄。同樣,對于圖11b中的系數(shù),這些系數(shù)是一個外部4個密爾緯線補償模型的系數(shù),在圖10中查看m23y這一列。對于這些系數(shù),很明顯這個補償模型是基于電介質(zhì)層、電路布局和電介質(zhì)層跟這個電路布局之間的相互關系的,如圖1中的97欄所示,其中的系數(shù)跟結(jié)構(gòu)、電介質(zhì)和結(jié)構(gòu)*電介質(zhì)有關。
下面給出利用圖11a~l所示的等式估計補償誤差的一個實例。圖11g畫出了一個內(nèi)層芯板在經(jīng)線方向上4個密爾芯板的系數(shù)。根據(jù)這個結(jié)構(gòu)和電介質(zhì)的類型,考慮不同的系數(shù)。對于圖11g所示的實例,結(jié)構(gòu)等于2(gg/ss/gg),采用了4層電介質(zhì)。被標為pp1的第一層電介質(zhì)是半固化片(2),如同99欄所示,它是半固化片2113。由于有一層半固化片(2),所以欄99a等于1,從而使欄99b中的總和等于1*0.5966518。如同欄100所示,被標為pp2的第二層電介質(zhì)是半固化片(4),也就是半固化片7628。如同欄101所示,被標為pp3的第三層電介質(zhì)是半固化片(1),也就是半固化片1080。如同欄102所示,被標為pp4的第四層電介質(zhì)是半固化片(2),也就是半固化片2113。除此以外,必須將結(jié)構(gòu)*電介質(zhì)的系數(shù)考慮在內(nèi)。在這個實例中,對于兩層半固化片(2)、一層半固化片(1)和一層半固化片(4),必須將結(jié)構(gòu)等于2考慮在內(nèi)。計算補償誤差的方法如下。首先,將這些欄中的總和加在一起。例如,計算欄99b的總和。其次,對這些欄中的總和進行加權(quán)平均。例如,在圖11g中,這些欄中的每個總數(shù)都用25%乘。之后,通過將這個加權(quán)平均除以經(jīng)線方向上的總的英寸數(shù)(在這種情況下是18英寸)來計算這個密爾每英寸。
圖11a~g中的每一個圖都確定了外層芯板的補償誤差,其中結(jié)構(gòu)等于1和2層結(jié)構(gòu)等于2,1層電介質(zhì)等于1和1層電介質(zhì)等于3。圖11a說明了經(jīng)線方向上4個密爾芯板的補償誤差-0.601個密爾每英寸。圖11b確定了緯線方向上4個密爾芯板的補償誤差-0.274個密爾每英寸。圖11c確定了經(jīng)線方向上5個密爾芯板的補償誤差-0.272個密爾每英寸。圖11d確定了緯線方向上5個密爾芯板的補償誤差-0.334個密爾每英寸。圖11e確定了經(jīng)線方向上8個密爾芯板的補償誤差-0.315個密爾每英寸。圖11f確定了緯線方向上8個密爾芯板的補償誤差-0.420個密爾每英寸。
補償模型的外推用于準備圖10a~c和11a~f所示模型的試驗多層印制電路板數(shù)據(jù)是可能的無數(shù)個印制電路板結(jié)構(gòu)的一個子集。但是在以下基礎之上本發(fā)明中的補償仿真可以用于許許多多的印制電路板結(jié)構(gòu)(1)不同的電路結(jié)構(gòu);(2)不同的電介質(zhì)層;(3)不同的芯板厚度;(4)疊層中芯板的位置;(5)電路中導電材料的厚度;(6)補償誤差對時間的依賴性;和(7)補償誤差對機器的依賴性。因此,一方面本發(fā)明提供一種仿真器,它能夠模擬所有可能的印制電路板結(jié)構(gòu)。在另外一個實施方案中,可以模擬所有可能的印制電路板結(jié)構(gòu),從而不需要外推。
1.電路結(jié)構(gòu)可以修改本發(fā)明的模型用來估計多種電路結(jié)構(gòu)的補償誤差。在一個優(yōu)選實施方案中,如圖10a~c所示,只制作和測量其中電路結(jié)構(gòu)的一個子集。模擬所有可能的電路結(jié)構(gòu)是不切實際的,因為它們的組合實在是太多了。參考附錄A,其中畫出了不同多層印制電路板結(jié)構(gòu)和不同電介質(zhì)層的各種組合。其中說明的可能組合總個數(shù)是147456,很難用一個一個地試驗來對它們進行模擬。但是,對這些組合的一個子集作試驗,并且將結(jié)果進行外推來模擬其余組合的翹曲、膨脹和收縮行為使得這個補償模型變得切實可行。
如圖10a~c所示,對于每一次試驗,會產(chǎn)生一個平均結(jié)果,如同其中的m23x、m23y、m45x、m45y、m67x和m67y欄所示。如前所述,制作并且測試這些電路結(jié)構(gòu)的一個子集。為了獲得其它電路結(jié)構(gòu)的結(jié)果,可以從表中的試驗電路結(jié)構(gòu)數(shù)據(jù)進行外推。例如,下表說明如何在電路結(jié)構(gòu)1~4的基礎之上計算沒有計算過的電路結(jié)構(gòu)。
表2電路結(jié)構(gòu)的外推
如表2所示,沒有計算出來的電路結(jié)構(gòu)誤差可以從原始試驗結(jié)果利用本發(fā)明的仿真器確定出來。例如,結(jié)構(gòu)等于5的外層是ss。這個外層跟結(jié)構(gòu)等于1的外層結(jié)構(gòu)相似。這樣,m23x和m23y的結(jié)果可以用于結(jié)構(gòu)等于5的外層。在另外一個實施方案中,通過更加復雜的分析可以獲得額外的精度。例如,在結(jié)構(gòu)等于5的外層中的補償誤差部分地取決于內(nèi)存布局(例如ss/ss/ss)。但是,針對結(jié)構(gòu)等于1利用這個外層測量結(jié)果不能完整地模擬補償誤差,因為結(jié)構(gòu)等于1的布局是ss/gg/ss。如果能夠獲得額外的精度,就可以在一個相似的結(jié)構(gòu)上進行額外的試驗。或者,可以對已有的試驗結(jié)果進行更加復雜的外推。
除此以外,可以對兩個結(jié)構(gòu)進行平均,以便獲得第三個結(jié)構(gòu)。例如,對于結(jié)構(gòu)等于7的內(nèi)層(gs),結(jié)構(gòu)等于3(ss)和結(jié)構(gòu)等于4(gg)的內(nèi)層被平均。在其它的實施方案中,可以進行更加復雜的數(shù)學運算,以便獲得沒有計算過的電路結(jié)構(gòu)更加精確的結(jié)果。
2.電介質(zhì)層除了對試驗電路布局進行外推來獲得其它電路布局的補償結(jié)果以外,還可以從這個模型外推出來不同的電介質(zhì)層。如圖10a~c所示,半固化片有四個值,它們是這些試驗的對象。例如,在圖10a中,結(jié)構(gòu)等于1,電介質(zhì)等于2,時間等于2和機器等4,在整個多層印制電路板中使用的電介質(zhì)是半固化片2113。實際上,在印制電路板中需要的半固化片材料有許多不同的種類。例如,可以在一個芯板周圍使用不同的電介質(zhì)層。作為一個實例,考慮5個密爾的一個內(nèi)層芯板(它的結(jié)構(gòu)等于1),其中芯板的一面有半固化片1080(電介質(zhì)等于1),其中芯板的另外一面有半固化片2116(電介質(zhì)等于3)。根據(jù)圖10b,結(jié)構(gòu)等于1和電介質(zhì)等于1的X方向上的移動(不依賴于時間和機器)是13.316個密爾的收縮。同樣,結(jié)構(gòu)等于1和電介質(zhì)等于3的移動(不依賴于時間和機器)是15.322個密爾的收縮。為了在這個實例中混合電介質(zhì)層的基礎之上計算一個補償誤差,計算出補償誤差的平均值,于是這個補償誤差是-14.319。
此外,可以對一個芯板周圍多層半固化片的補償誤差進行估計。作為前面的實例的改進,考慮在它的芯板的一面有2個電介質(zhì)層的5個密爾的一個內(nèi)層芯板中(它的結(jié)構(gòu)等于1)一片半固化片1080(電介質(zhì)等于1)和一片半固化片2113(電介質(zhì)等于2),這個芯板的其它面有兩個電介質(zhì)層一片半固化片2116(電介質(zhì)等于3)和一片半固化片7628(電介質(zhì)等于4)。為了在補償模型的基礎之上估計芯板周圍多層半固化片的補償誤差,可以進行加權(quán)平均。在一個優(yōu)選實施方案中,采用加權(quán)平均,其中芯板周圍每個半固化片的“權(quán)”是建立在使用的半固化片片數(shù)的基礎之上的。在上面的實例中,每個半固化片都用一片,從而使每個半固化片的權(quán)是25%。因此采用加權(quán)平均,從而使補償誤差等于(-13.316*.25)+(-11.4265*.25)+(-15.322*.25)+(-8.5175*.25)=-12.15另外,可以針對不同的半固化片樹脂百分比來估計補償誤差。如同前面所討論的一樣,圖10a~c說明具有標準含量或者較高樹脂含量的電介質(zhì)層。如果這個模型沒能具體地說明具有相同樹脂百分比的電介質(zhì)層,就可以在前面的試驗結(jié)果的基礎上進行外推。參考圖14a和14b,其中畫出了一個圖,它是改變樹脂百分比和固化百分比的時候,6個密爾的芯板的經(jīng)線和緯線的移動的試驗結(jié)果。這個多層印制電路板有6層電路板,在芯板和每個芯板周圍的2疊半固化片1080上都有信號/信號結(jié)構(gòu)。實際上,在圖14a和14b中,(++)代表較高的樹脂百分比,較高的固化百分比;(+-)代表較高樹脂百分比,較低的固化百分比;(-+)代表較低的樹脂百分比,較高的固化百分比;(--)代表較低的樹脂百分比,較低的固化百分比。高樹脂百分比和低樹脂百分比之間的百分比差別是10%。在這些試驗結(jié)果的基礎之上,可以獲得一個修正因子。例如,我們來看圖14b,可以發(fā)現(xiàn)對于(++)試驗,平均緯線移動是-4個密爾。同樣,對于(-+),平均緯線移動大約是+5個密爾。這樣,通過在樹脂百分比變化的基礎之上計算修正因子,可以計算出以下結(jié)果(高百分比樹脂的移動-低百分比樹脂的移動)/(百分比偏差)(-4個密爾-5個密爾)/10%=-.9個密爾/%這樣,對于兩個芯板和每個芯板周圍2疊1080個半固化片的信號/信號結(jié)構(gòu)的6個密爾的電路板,不同于這個模型的一個樹脂百分比在緯線方向上的修正因子是-.9個密爾/%。
最后,通過查看圖14a和圖14b,可以明顯地看出固化百分比中的變化帶來的效果小于樹脂百分比的變化的效果。如同前面所討論的一樣,將半固化片看成一種b級材料,因為它沒有完全固化。固化百分比說明了半固化片的固化程度。如圖14a所示,經(jīng)線方向的移動在固化百分比的基礎之上改變。特別是,對于(++)試驗(高固化百分比),平均移動大約是-12.2個密爾,而(+-)試驗的平均移動(低固化百分比)大約是-10.1個密爾。除此以外,對于(-+)試驗(高固化百分比),平均移動大約是-15.0個密爾,而(--)試驗(低固化百分比)的平均移動大約是-18.5個密爾。在這一信息的基礎之上,就可以在固化百分比的基礎之上產(chǎn)生一個修正因子。
參考圖14c和14d,其中畫出了改變樹脂百分比和固化程度的時候經(jīng)線和緯線的補償誤差。畫出其它的圖是為了確定是否有其它因素對這個補償誤差有影響。例如,考慮了內(nèi)部和外層芯板(也就是芯板圖的2/3(外層芯板)和4/5(內(nèi)層芯板))說明芯板位置在計算補償誤差的時候?qū)τ跇渲俜直鹊淖兓蛘吖袒俜直鹊淖兓?,沒有明顯的影響。同樣,檢驗了其中不同的底板。如同前面所討論的一樣,在試驗模型中,將10個或者更多的多層印制電路板互相疊放在一起用于測試。從圖中可以看出,這一迭中多層印制電路板的位置的影響似乎不太明顯。但是,對于60.7%到70%的樹脂變化,經(jīng)線和緯線的補償誤差范圍分別是-13到-8和8到-7個密爾。除此以外,對于從35%到46%的固化百分比的變化,經(jīng)線和緯線的補償誤差的范圍分別是-17到-12和-8到-7個密爾。從這些結(jié)果可以清楚地看出,在經(jīng)線方向和緯線方向上,樹脂百分比都是非常重要的影響因素。在低得多的程度上,固化百分比有可能對經(jīng)線方向上的補償誤差有影響。
3.芯板的厚度圖10a~c是全部具有相同芯板厚度的印制電路板的補償模型(例如圖10a中具有相同芯板厚度的整個疊層使用的4個密爾的芯板)。但是,會出現(xiàn)這樣的情況,其中在多層印制電路板中采用具有不同厚度的芯板。印制電路板結(jié)構(gòu)的一個實例在圖3中說明。采用不同的芯板厚度,在外層芯板中采用四個密爾的芯板,在內(nèi)層芯板中采用5個密爾的芯板。在一個優(yōu)選實施方案中,尋找外層芯板或者內(nèi)層芯板的移動量的時候,只檢查對應于芯板的厚度的那一些表格(也就是在這個實例中檢查圖10a,看外層4個密爾的芯板有沒有移動,同時檢查圖10b,看5個密爾的內(nèi)層芯板有沒有移動)。在另外一個實施方案中,利用這些表中的結(jié)果進行外推。例如,內(nèi)層5個密爾的芯板的移動可以是5個密爾的芯板和四個密爾的芯板的補償模型的加權(quán)平均。
4.疊層中芯板的位置如圖10a~c所示,這個疊層中芯板的位置是確定補償誤差的一個因素。這個位置信息影響由于補償誤差而導致的移動,其中給出了不同的補償誤差值,例如,m23x,m45x,m23y和m45y。在一個優(yōu)選實施方案中,用于這個模型中的芯板被指定為內(nèi)層芯板或者外層芯板。內(nèi)層芯板位于多層印制電路板內(nèi),比方說圖3中的芯板2,內(nèi)層芯板跟外層芯板相鄰。如圖10a~c所示,內(nèi)層芯板的補償模型是m45x和m45y。外層芯板的實例,如圖3所示,是芯板1和芯板3。在一個優(yōu)選實施方案中,外層芯板的補償模型用m23x和m23y表示,如圖10a~c所示。芯板3移動的結(jié)果(m67x和m67y)被用于確定m23x和m23y的結(jié)果是否能夠令人接受。
當試驗多層印制電路板具有8層和三個芯板的時候,這個補償仿真器能夠應用于具有更多或者更少的層和芯板的多層印制電路板。例如,在一個實施方案中,對于具有四個芯板(和總共10層的)的多層印制電路板,根本沒有必要進行外推。例如,對于厚度是四個密爾的芯板,可以直接用圖10a來估計補償誤差。外層芯板[芯板1(第二層和第三層)和芯板4(第八層和第九層)]的估計對應于m23x和m23y欄。由于這個10層板的內(nèi)層芯板(芯板2和3)中的每一個都跟一個外層芯板(分別是芯板1和4)相鄰,所以這個10層板的內(nèi)層芯板的補償移動跟八層板(其中的內(nèi)層芯板也跟一個外層芯板相鄰)的內(nèi)層芯板的補償移動相同。這樣,內(nèi)層芯板[芯板2(第四層和第五層)和芯板3(第六層和第七層)]的估計對應于m45x和m45y。欄對于具有5個芯板的一個多層印制電路板,具有兩個外層芯板[芯板1(第二層和第三層)和芯板5(第十層和第十一層)]。這些外層芯板的補償誤差的估計是m23x和m23y。跟一個外層芯板相鄰的這些內(nèi)層芯板[芯板2(第四層和第五層)和芯板4(第八層和第九層)]的補償誤差的估計是m45x和m45y。跟另外一個內(nèi)層芯板相鄰的一個內(nèi)層芯板的估計應當從這個模型進行外推來獲得。
5.電路中導電材料的厚度電路中導電材料的厚度可能不同。例如,當導體是銅的時候,它的厚度常常是1.2個密爾或者0.5個密爾。厚度很有可能是對補償誤差有影響的一個因素,它的影響可以通過經(jīng)驗方式來確定,這一點類似于在樹脂百分比的基礎之上確定修正因子。
6.時間變量補償誤差如圖10a~c所示,試驗性的設計給出的矩陣具有多達四個的變量,其中的兩個變量(時間和機器)跟系統(tǒng)中的噪聲有關。四個時間中每一個時間和四個機器中每一個機器的補償誤差都能用一個標準偏差計算出來。從這一點可以看出,能夠確定平均值之間的統(tǒng)計差。如果這些平均值具有差別,就需要進一步分析。例如,如果在時間等于1和時間等于4的結(jié)果之間有一個統(tǒng)計差,那么這一點就說明這個補償誤差是跟時間有關的。利用這一信息,就能夠繼續(xù)努力檢查印制電路板工藝,以確定跟時間有關的變量的源?;蛘?,也可以接受補償誤差對時間的依賴性,從而使這個模型中包括一個跟時間有關的變量。
7.機器變量補償誤差類似于補償誤差對時間的潛在依賴性,如果在機器等于1和機器等于3之間有一個統(tǒng)計差,就應該檢查這個機器,看這個機器是否發(fā)生了故障(比方說層壓故障、操作員錯誤或者測量機器故障)?;蛘呖梢栽谟≈齐娐钒鍣C工車間為每臺機器確定補償誤差。
補償模型的應用這個補償模型可以用圖4b所示的通用計算機來實現(xiàn)。參考圖4b,其中畫出了通用計算機、輸入裝置和輸出裝置的一個方框圖。這臺計算機140包括一個處理器142,這個處理器142跟一個存儲器144連接。這個存儲器144包括一個只讀存儲器(ROM)146和一個隨機存取存儲器(RAM)148。這個隨機存取存儲器包括一些表150,比方說圖10a~c所示的那一些表格。處理器142還跟輸入/輸出驅(qū)動器152連接,這個輸入/輸出驅(qū)動器152跟一個輸出裝置154連接,比方說跟一個打印機或者一個監(jiān)視器連接,還跟一個輸出裝置156連接,比方說小鍵盤或者鼠標器。駐留在存儲器144中的是用來實現(xiàn)補償模型的軟件。在存儲器144中還駐留著CAD文件,它們包括各層上電路的布局。在位于存儲器144中的這個補償模型的基礎之上,處理器142計算出用于補償誤差導致的收縮或者膨脹的大小。然后處理器142就能夠修改CAD文件。例如,處理器可以縮放這個CAD文件(例如通過乘以或者除以這個CAD文件中的分量),以便改變電路布局。除此以外,處理器還可以為補償模型進行外推,比方說對這個模型的不同方面進行平均或者合并。
這個補償模型可以用于多種情形,不管是在生產(chǎn)之前還是在生產(chǎn)過程中。例如,這個補償模型可以用于在生產(chǎn)之前確定多層印制電路板配準過程中的潛在誤差。如圖2所示,配準誤差最好是在開始生產(chǎn)之前就進行修正。這樣,為了盡可能少地中斷生產(chǎn)過程,這個補償模型在生產(chǎn)開始之前就能夠使配準誤差最小。
通常情況下,印制電路板制造商收到制造有特定因素的多層印制電路板的訂單(比方說芯板數(shù)、電路布局、電介質(zhì)類型等等)。利用這個補償模型,制造商可以在開始生產(chǎn)之前就確定這些多層印制電路板的配準是否在公差范圍之內(nèi)。如果這一配準不在公差范圍之內(nèi),就可以按照上面討論的方式改變電路布局(通過收縮或者擴展電路布局來消除材料移動的影響和減小補償誤差)。
例如,如圖12所示,可以修改其中的因子并且確定經(jīng)線和緯線移動。如同圖12所示,用7種不同的結(jié)構(gòu)(見其中的x軸)和不同的補償誤差(見其中的y軸)來修改半固化片。除此以外,如圖2所示,在生產(chǎn)過程中改變工藝圖上的一些點,以便使補償誤差最小,見圖2中的方框40。
參考圖13,其中畫出了在生產(chǎn)過程之前以及在生產(chǎn)過程中,使用補償模型的一個實例的一個流程圖。如同方框103所示,為這個補償模型確定其中的因子。在這些因子的基礎之上,從這個補償模型確定補償誤差,如同方框104所示。隨著這些因子和補償模型的不同,外推有可能是必不可少的,如同方框105和106所示。修改這個CAD文件中的布線圖。之后進行生產(chǎn),如同方框108所示。
在生產(chǎn)過程中,可以檢查補償誤差,如同方框109所示。例如,這可以通過在層壓成型以后通過檢查這些層來實現(xiàn)。除此以外,如果需要就周期性地更新這個補償模型,如同方框110所示。例如,周期性地檢查這個補償模型,以確保這個模型仍然是有效的。更進一步,這個模型可以在新產(chǎn)品的基礎之上輔以額外的電路結(jié)構(gòu)、電介質(zhì)類型等等。例如,如果這一生產(chǎn)過程包括這個模型中沒有考慮到的結(jié)構(gòu),就可以檢查最終的生產(chǎn)結(jié)果,并且用于更新這個模型。
在生產(chǎn)過程中補償誤差大小的基礎之上,修改電路布線圖,如同方框11 1所示。跟生產(chǎn)之前修改電路布線圖一樣,從更新過的補償模型確定補償誤差,如同方框1 12所示。這些因子和更新過的補償模型的不同,外推可能是必不可少的,如同方框113和方框114所示。修改CAD文件中的布線圖,如同方框115所示,以便克服補償誤差的影響。之后,修改這一生產(chǎn)過程,如同方框116所示。模擬配準誤差單層印制電路板和多層印制電路板中都會出現(xiàn)配準誤差。出現(xiàn)配準誤差有多種原因,包括但不限于偏移誤差、角度誤差、隨機噪聲誤差和補償誤差。當這些誤差模式組合在一起的時候,它們會以一種互相依賴互相影響的方式起作用。因此,將這些方差加在一起是不正確的,因為這些誤差不是獨立的。例如,來源于布線圖的補償誤差,來源于腐蝕后打孔機的偏移誤差和角度誤差,以及來源于例如鉆孔的隨機噪聲,就不能用它們的平方和來合并,而現(xiàn)有技術(shù)中就是這樣做的。除此以外,給總的配準誤差產(chǎn)生一個數(shù)的這種一維分析方法不能很好地揭示底板表面上的誤差傳播。為了全面地揭示這些誤差如何在單層印制電路板和多層印制電路板的表面上傳播,一種圖形配準模型是必不可少的。
在一個實施方案中,所有的配準誤差源,包括偏移、角度、補償和隨機噪聲誤差,都被考慮進這個配準仿真器。在其它的實施方案中,可以單獨考慮所有配準誤差源的子集。例如,這個配準仿真器可以考慮進一個誤差源,比方說偏移誤差(如圖5所示)、角度誤差(如圖6a所示)、隨機噪聲誤差(如圖7所示)和補償誤差(如圖8a和8b所示)。另外,這個配準仿真器還可以考慮進誤差的組合,比方說偏移誤差和角度誤差(如圖6b所示);角度誤差和補償誤差;偏移誤差和補償誤差;偏移、角度和補償誤差等等。于是就可以通過檢查這些配準誤差的源的這些子集來分析每一個誤差源和誤差源之間的相互作用。
配準仿真器的計算附錄B是用Matlab語言代碼(以M函數(shù)文件格式)編寫的配準仿真器的軟件代碼,用于個人計算機上的Matlab程序。在一個優(yōu)選實施方案中,對多層印制電路板上各種芯板上不同位置的移動進行了仿真。用矩陣來代表印制電路板上的離散位置。Xp=真實x位置,Xe1=將偏移誤差X加到Xp上面去獲得的矩陣位置,Xe2=將補償誤差X加到Xe1上面去以后得到的矩陣位置,Xe3=將角度分量X加到Xe3上面去以后得到的矩陣位置,以及Xe4=加到每個Xe3分量上去的隨機噪聲。在其它的實施方案中,可以對芯板區(qū)的移動或者多層印制電路板的整個芯板的移動進行仿真。
在一個優(yōu)選實施方案中,采用本發(fā)明中的配準仿真器的一種方法在圖15a中用流程圖說明。如同方框116所示,將配準仿真器的陣列初始化。在一個實施方案中,印制電路板的形狀是一個18英寸高和24英寸長的矩形。這個矩形被130個元素劃分,其中的13列和10行(x,y)對如下(0,18)... ...(24,18)...
...
(0,6) (2,6)(0,4) (2,4) ...
(0,2) (2,2) (4,2) (6,2) ...
(0,0) (2,0) (4,0) (6,0) (8,0) (10,0) (12,0) ... (24,0)在一個優(yōu)選實施方案中,將左下角標為(0,0),右下角標為(24,0),左上角標為(0,18),將右上角標為(24,18)。上面的那些值代表真實的配準位置(也就是完全對準的位置)。x和y位置初始陣列被劃分成兩個矩陣(1)包括所有x值的Xp;和(2)包括所有y值的Yp。例如,Xp被表示為Xp=0 2 4 6...2 40 2 4 6...2 4...
...
0 2 4 6...2 4其中Xp有13列和11行。類似地,Yp用以下表達式表示Yp=0 0 0 0...0
2 2 2 2...218 18 18 18...18Yp有13列和11行。將Yp作為Xp的函數(shù)畫出來,得到仿真器上最初的130個測點網(wǎng)(例如圖3中的“+”)。這些Xp和Yp矩陣儲存在程序中,從而能夠計算誤差,畫出真實的配準位置。將(x,y)對分成兩個不同的矩陣,就能夠?qū)方向和Y方向上不同的誤差加起來。另外,Xp和Yp中的行和列代表從真實位置的初始陣列垂直地翻轉(zhuǎn)過來的底板。例如,作為一個(x,y)對的Xp(1,1){Xp的第一行第一列}和Yp(1,1)代表右下角。同樣,作為一個(x,y)對的Xp(13,10)和Yp(13,10)代表右上角。
如同前面所討論的一樣,配準誤差可能來源于各種源,比方說角度、偏移、補償和隨機噪聲誤差。配準仿真器排列這些誤差的順序并不重要。在一個實施方案中,按順序?qū)ζ?、補償、角度和隨機噪聲誤差進行分析,以便確定不同位置的移動。例如,如同后面將描述的一樣,用4個矩陣來計算不同位置的誤差移動Xe1和Ye1(因子偏移誤差);Xe2和Ye2(因子偏移和補償誤差);Xe3和Ye3(因子偏移、補償和角度誤差);以及Xe4和Ye4(因子偏移、補償、角度和隨機噪聲誤差)?;蛘?,可以按照操作員喜歡的順序來分析這些誤差。
如同圖15a中的方框117所示,在陣列中考慮偏移誤差。在一個實施方案中,由用戶指定X偏移誤差和Y偏移誤差。在另外一個實施方案中,可以按照經(jīng)驗來確定X偏移誤差和Y偏移誤差,下面將對此進行詳細描述。將X偏移誤差加到Xp矩陣的每個分量上去,形成第一個X誤差矩陣,將它叫做Xe1。同樣,將Y偏移誤差加到Y(jié)p矩陣的每個分量上去,形成第一個Y誤差矩陣Ye1。
作為在偏移誤差的基礎之上確定不同位置的移動的一個實例,令Cx=10行13列指定X偏移誤差的一個常數(shù)矩陣。于是Xe1=Xp+Cx這些Xe1和Ye1矩陣被隨后用于其它誤差計算,得到最后的配準誤差。為了產(chǎn)生這一效果的圖,將偏移誤差矩陣的“矩陣圖”標定為100。例如,如果只有一個X偏移誤差,并且這個偏移誤差是兩個密爾,那么就能夠畫出下面的Xe1矩陣隨Yp的變化Xe1(圖)=0+.002×100 2+.002×100...24+.002×100等等對于這個矩陣圖,將所有的誤差以一個因子100來調(diào)整,以便用圖形方式來查看誤差。
如同方框118所示,將補償誤差分解成陣列。具體地說,將補償誤差跟偏移誤差計算得到的結(jié)果加起來。可以給偏移數(shù)據(jù)陣列中130個元素中的每一個作上標記,用行號和列號來識別,這些行號和列號也叫做下標。為了將補償誤差加起來,利用這些下標值將Xe1矩陣分成左半部分和右半部分,將Ye1矩陣分成上半部分和下放部分。Xe1lh(左半部分)由Xe1第一行到第13行(所有的行)和第一列到第6列構(gòu)成。Xe1rh(右半部分)由Xe1的第一行到第13行和第一列到第13列構(gòu)成。補償誤差不會影響底板的中心(也就是說在中心下標沒有任何收縮或者膨脹,如圖8a和8b所示)。由于補償誤差來自中心下標(X的第7列和第五行跟第6行之間),因此Xe1的第7列沒有改變。Xe2rh元素被計算出來,其中d=2英寸(元素之間的間隔),1=從第7列開始數(shù)的元素個數(shù),xce=以密爾每英寸為單位的補償誤差(它可以是正的也可以是負的,分別代表過補償或者欠補償),以及xe1=X方向上的偏移誤差)Xe2rh=(2+xe1)+2*1*xce
對于第1~6列和第一行到第10行。Xe1rh的第一行最好是這個樣子2(1+1*xce)+xe1 2(1+2*xce)+xe1...2(1+12*sce)+xe1左半部分用同樣的方式計算出來。為了獲得整個Xe2矩陣Xe2=[Xe21h,第7列,Xe2rh]針對Ye2矩陣執(zhí)行同樣的程序。對于Ye2bh(下半部分),計算第一行,作為間隔的一半,因為元素的中心位于Ye1矩陣的第5行和第6行之間。其它行將采用完整的2英寸+1英寸間隔。對于ye1等于Y偏移誤差,yce等于Y偏移誤差,這個等式如下Ye2bh(第一行)=1+yce+ye1...1+yce+ye1Ye2bh(第二行)=(2(1)+1)(1+yce)+ye1...
Ye2bh(第五行)=(2(4)+1)(1+yce)+ye1...
將下半部分和右半部分合并起來得到Y(jié)e2矩陣Ye2=[Ye2uhYe2bh]如同方框119所示,將角度誤差分解成陣列。從Xe2和Ye2矩陣計算出角度誤差。在一個實施方案中,角度誤差旋轉(zhuǎn)軸的中心是這個底板的底邊的中心。如同前面所討論的一樣,是否這樣選擇旋轉(zhuǎn)軸的中心是操作員的事情。
為了使仿真器能夠利用Matlab程序正確地工作,將以角度表示的角度誤差轉(zhuǎn)換成弧度。要加到Xe2和Ye2上面去的分量從旋臂的給定長度、角度計算出來,并且用cos(角度)表示X,用sin(角度)表示Y。例如,定義Xe3rh跟Xe2rh相似,就能計算出Xe3rh的第一行Xe3rh(第一行)=xe2(1,8)*(1+cos(角度))...xe2(1,13)*(1+cos(角度))為了計算第二行,必須考慮垂直軸的旋轉(zhuǎn)。通過以下方式,就會在旋轉(zhuǎn)方向上產(chǎn)生x值的一個交錯
xadd(第二行)=(y距離)*sin(角度)其中對于第二行,y距離=2英寸,對于第三行,y距離=4英寸,等等。這樣,對于Xe3rh的第二行,有Xe3rh(第2行)=xadd(第2行)+xe2(2,8)*(1+cos(角度))...
左半部分將用相同的方式計算出來,只有角度的符號(+,-)要反過來。第7列也將從第二行開始偏移。偏移量將是列的當前位置加上指定行的xadd。于是這個Xe3矩陣是[Xe31h,第7列用Xadd,Xe3rh加以調(diào)整]由于旋轉(zhuǎn)產(chǎn)生的Y的偏移可以從角度的正弦計算出來。為了計算Y旋轉(zhuǎn)誤差,應該考慮旋轉(zhuǎn)中心的位置,它在24英寸底邊上。由于將旋轉(zhuǎn)中心選擇在底邊上,Ye3矩陣沒有因為計算的目的而分裂成上半部分和下半部分。這些Y位置可以從Ye2計算出來。例如,Ye3的第一行將是Ye2(0,0)+2*6*sin(-1*角度); Ye2(0,1)+2*5*sin(-1*角度);...Ye2(0,7);...
Ye2(0,13)+2*6*sin(角度)Ye3接下來的行用同樣的方式計算出來。
如同方框120所示,將隨機噪聲考慮進上述矩陣。這個隨機噪聲被加到Xe3和Ye3矩陣上去。在一個實施方案中,選擇一個正態(tài)分布的隨機數(shù),這個正態(tài)分布的平均值是0,標準偏差由操作員指定。這個隨機數(shù)可以從一個隨機數(shù)發(fā)生器選擇出來,比方說Matlab中的(normrand)函數(shù)。這個程序為Xe3中130個元素中的每一個和Ye3中的130個元素中的每一個計算出一個噪聲值。然后將這些噪聲值加到Xe3和Ye3上面去。具體地說,為Xe3和Ye3構(gòu)造一個噪聲矩陣,其中Nx=X噪聲,Ny=Y(jié)噪聲。于是Xe4=Xe3+Nx;Ye4=Y(jié)e3+Ny這樣,Xe4和Ye4中包括130個元素的誤差位置,稍后將它們跟真實位置(完全配準的時候的位置)進行比較。
如同圖15a中的方框121所示,計算出誤差。計算出幾個誤差,包括平均TPR(如同圖5~8b中的方框78所示),右上角的TPR(如同方框的79所示),右下角的TPR(如同方框80所示),左下角的TPR(如同方框81所示),和左上角的TPR(如同方框82所示)。其中的TPR是跟真實位置的徑向誤差,定義為TPR=(xerror^2+yerror^2)的平方根為了獲得整個130元素陣列的平均TPR,計算以下值ErrorX=Xp-Xe4;ErrorY=Y(jié)p-Ye4平均TPR=(ErrorX的平方和+ErrorY的平方和)的平方根/130角落上的TPR(如同圖5~8b中的方框79~82所示)計算起來更加直接,它們是4個角落上的TPR。例如,右下角的TPR是TPRllc=(Xe4(0,0)^2+Ye4(0,0)^2)的平方根如同方框122所示,畫出配準仿真器的圖。在一個優(yōu)選實施方案中,總共畫出4個圖(1)說明新位置相對于原始位置的標記,用“+”表示完全配準的位置,用“*”表示新的位置(例如圖5、6、7和8a);(2)說明誤差幅度(相對TPR)和誤差方向的矢量(例如圖8c);(3)說明TPR的幅度的等高線圖,其中的線條表示相似的值,非常象山脈的海拔高度圖(例如圖8b);和(4)在等高線圖上疊加矢量圖的組合圖(例如圖6b)。每個圖都能夠用于檢查配準模式。例如,標記圖有一點象鉆孔以后用X射線看到的圖。等高線圖說明電路板上配準得比較差的區(qū)域,它能幫助確定制造能力,并且說明這些電路應該如何放在底板上。矢量圖說明這些誤差如何在底板上流動。還有,組合圖和能夠用來同時檢查這些流動和誤差等高線。
標記圖是(Xe4,Ye4)的圖并且將它疊加在(Xp,Yp)圖上面。矢量圖用于檢查130個位置點上每一個上的每一對(x,y)。例如,左下角的矢量的矢量幅度是矢量幅度(llc)=(Xe4(0,0)^2+Ye4(0,0)^2)的平方根它的方向是矢量角度(llc)=arctan(Xe4(0,0)/Ye4(0,0))等高線圖是具有相同TPR的點的連線。
配準仿真器的應用本發(fā)明中的配準仿真器合并了配準誤差模式,并且在底板表面上畫出誤差分布。通過合并誤差模式,就能對不同的配準效應進行量化和顯示,從而解釋在配準過程中出現(xiàn)的看起來無法解釋的誤差現(xiàn)象。這樣,配準仿真器可以用于(1)獲得對配準誤差的來源的一般性的理解;(2)在生產(chǎn)之前或者在生產(chǎn)過程中預測配準誤差、廢品率等等;和(3)通過利用試驗設計(DOE),分析配準誤差的每一個源或者幾個源,努力減小總的配準誤差。
這個配準仿真器可以用圖4b所示的通用計算機來實現(xiàn)。駐留在存儲器144中的是用來實現(xiàn)配準仿真器的軟件,如同附錄B所示。除此以外,這個處理器還執(zhí)行存儲器144中的軟件指令,以便在輸出裝置154上產(chǎn)生一個輸出。
1.對配準誤差的來源獲得一般性的了解通過檢查配準仿真器的實例,就能了解跟配準誤差的一些來源有關的幾個趨勢,包括(1)在所有4個角落上都沒能配準可能是因為X補償誤差和Y補償誤差造成的;(2)在所有4個角落上都沒能配準可能是由旋轉(zhuǎn)誤差和X或者Y偏移誤差同時引起的;(3)有一半底板沒能很好地配準,但是在這個底板的另外一半?yún)s配準得非常好,這有可能是由偏移誤差跟補償誤差一起造成的;(4)有一半底板沒有能夠很好地配準可能是因為角度誤差和X偏移誤差和Y偏移誤差造成的;(5)在2個角落上沒有能夠很好地配準有可能是由角度誤差引起的;和(6)在一個角落上沒有能夠很好地配準有可能是由角度誤差、偏移誤差和補償誤差造成的。
從這些趨勢可以看出,4個角落最容易出現(xiàn)配準問題。除此以外,操作員還可以在生產(chǎn)的過程中分析完成了的底板或者電路,并且作出配準誤差來源的假設。
2.在生產(chǎn)之前和生產(chǎn)過程中預測配準誤差、廢品率等等利用這個配準仿真器,就能夠在生產(chǎn)過程之前和生產(chǎn)過程中預測配準誤差,這個配準仿真器是一個非常有用的工具。在生產(chǎn)之前預測配準誤差使得制造商能夠據(jù)此確定多層印制電路板的生產(chǎn)價格,因為這樣做生產(chǎn)商就能夠?qū)@個訂單的難度有一定的了解。更進一步,利用這個配準仿真器使得制造商能夠在生產(chǎn)之前通過提出印制電路板制造工藝的改進建議來減小配準誤差。
另外,這個配準仿真器能夠在生產(chǎn)過程中通過許多種方式來減小誤差。首先,這個配準仿真器能夠用于監(jiān)視生產(chǎn)過程中配準誤差的大小。其次,這個配準仿真器能夠通過在生產(chǎn)過程中提出配準工藝的改進建議來減小誤差。
參考圖15b,其中畫出了在生產(chǎn)過程以前以及在生產(chǎn)過程中應用這個配準仿真器的一個實例的一個流程圖。如同方框123所示,對配準誤差源進行估計。通常情況下,制造多層印制電路板的訂單包括許多因素,比方說芯板塊數(shù),電路布局,電介質(zhì)層,以及確定補償誤差必不可少的其它因素,就像前面所討論的一樣。另外,印制電路板的制造商可以在生產(chǎn)之前根據(jù)經(jīng)驗來確定可能對配準誤差有影響的其它誤差,比方說偏移誤差、角度誤差和隨機噪聲誤差。制造商可以針對特定的工藝條件在以前的誤差的歷史的基礎之上估計偏移誤差、角度誤差和隨機噪聲誤差。例如,特定工藝條件下的特定機器(比方說使用特定的機器;每次鉆一個底板、兩個底板或者多個底板;用新的鉆頭;用新的布線圖等等)具有以前測量出來的偏移誤差、角度誤差和隨機噪聲誤差的測量結(jié)果。
如同圖15中的方框124b所示,在配準誤差的源的估計的基礎之上,運行這個配準仿真器。利用配準仿真器的輸出,包括圖形和TPR的計算結(jié)果,制造商能夠估計在最佳情形和最差情形下的成品率。
如同圖15b的方框125所示,制造商還可以在這個配準仿真器上進行試驗設計(DOE),以便減小配準誤差。如同前面所討論的一樣,可能有幾個源會對配準誤差有影響。這樣制造商就能夠利用試驗設計檢查配準誤差的所有源、一些源或者一個源,以便確定工藝變化對配準誤差的影響。如同方框126所示,確定配準誤差的源的范圍。不同的誤差,比方說偏移誤差、角度誤差、補償誤差和隨機噪聲誤差,它們的范圍取決于最好情形和最差情形。例如,隨著生產(chǎn)條件的不同,比方說使用特定的機器、一次鉆一個底板、兩個底板或者多個底板或者使用新的鉆頭,隨機噪聲誤差的值都有一個范圍。在這些范圍的的基礎之上,可以確定誤差的源對整個配準誤差的影響。例如,可以檢查隨機噪聲誤差值的范圍,以確定隨機噪聲誤差對總的配準誤差的影響。還有,通過分析試驗設計,可以通過劃分對總的配準誤差有影響的誤差的重要程度確定誤差的源的效果,如同方框126所示。例如,在試驗設計的基礎之上,可以確定隨機噪聲誤差對總配準誤差的影響必補償誤差對總的配準誤差的影響要小。
如同方框128所示,可以在確定的誤差的源的影響的基礎之上提出改進建議。這些改進選擇包括改變多個誤差或者一個誤差。例如,可以選擇減小多個誤差,包括角度誤差和補償誤差,而不改變隨機噪聲誤差的源。在這些改進選擇的基礎之上進行生產(chǎn),如同方框129所示?;蛘?,制造商可以通過改變工藝條件和多層印制電路板的因子以迭代方式確定成品率。通過這些迭代,制造商能夠在生產(chǎn)之前確定在特定的生產(chǎn)工藝條件下生產(chǎn)多層印制電路板獲得特定成品率所需要的成本。
在生產(chǎn)過程中,可以估計配準誤差的來源,如同方框130所示。這些配準誤差的來源可以在生產(chǎn)過程中的測量的基礎之上搞清楚。還有,這些生產(chǎn)的測量可以是隨機的,它們也可以是周期性地進行的。例如,如果主要的角度誤差和偏移誤差的來源是腐蝕后打孔機,就可以檢查這個機器的輸出(以隨機的方式或者預先確定的時間)以確定角度誤差和偏移誤差。除此以外,可以在層壓成型以后通過檢查電路板來估計補償誤差。還有,如果隨機噪聲的主要來源是鉆孔機,就可以檢查這個鉆孔機的輸出,以確定隨機噪聲誤差。在這些測量結(jié)果的基礎之上,可以估計配準誤差的來源。這些估計可以具有各種形式,包括具有平均值和標準偏差的一個分布。
在對配準誤差的來源的測量結(jié)果的基礎之上,可以運行配準仿真器,如同方框131所示。通過在這個配準仿真器上做“如果這樣會怎樣”分析或者試驗設計,就能夠分析改進途徑和跟它們有關的成本,以及能夠減小總的配準誤差的最佳措施。除此以外,通過跟生產(chǎn)過程進行直接比較還能夠找到其它的誤差。例如,這個配準仿真器還可以預測針對特定DRA的廢品率。這一估計能夠為制造商提供這一生產(chǎn)潛力的有關信息。例如,如果估計出來的廢品率跟實際的廢品率相差很遠,那么除了輸入給配準仿真器的那些誤差源以外,還存在其它的誤差源。這個配準仿真器能夠最終為生產(chǎn)過程預測配準誤差的分布。如同前面所討論的一樣,誤差的來源可能采取的一種格式是具有一個平均值和一個標準偏差的一個分布。這樣,對于每個誤差源(偏移誤差、角度誤差、補償誤差和隨機噪聲誤差),都有一個分布。利用蒙特卡羅(Monte Carlo)方法,比方說在McQuarrie,Gray的“制作無法制作的板子”,印制電路板制造1998年7月第70~79頁中公布的方法,這里將它引入作參考,可以在生產(chǎn)過程中獲得配準誤差的一個分布??梢詮恼`差分布的每一個來源隨機地選擇數(shù)據(jù),輸入配準仿真器,在這個配準仿真器的基礎之上獲得一個輸出(或者是一個平均TPR,或者是一個最大的TPR,等等)。這些輸出形成生產(chǎn)過程中配準誤差的分布,可以將它們跟生產(chǎn)過程中配準誤差的實際分布進行比較。如果這兩個分布(估計出來的分布和實際分布)相似,那么對誤差的來源的估計就是有效的。如果這兩個分布(估計出來的分布和實際分布)不相似,那就還有其它的誤差來源沒有包括在這個配準仿真器中。
如同方框132所示,制造商還可以進行試驗設計(DOE),以便減小配準誤差。跟生產(chǎn)之前進行試驗設計相似,確定這些誤差的來源的范圍,如同方框133所示,確定這些誤差的來源的效果,如同方框134所示,并且提出改進建議,如同方框135所示。這些改進建議被用于修改生產(chǎn)工藝,如同方框136所示。
實例1應用補償模型的一個實例在圖16和圖17中給出。圖16用直方圖說明基線測量結(jié)果。首先,良好的測量(t)對于確定改進措施非常重要。補償精度的度量被定義成在分辨率為0.1個密爾的Fein Focus X射線機上測量得到的多層印制電路板的層之間的最大補償TPR。參考圖16,基線是兩個月時間內(nèi)對16,000個底板進行的測量結(jié)果(這是實際生產(chǎn)的一個代表)。規(guī)格上限(USL)等于10.3個密爾,這意味著大于它的所有測量結(jié)果都被認為是發(fā)生了故障。為了將這一個目標作為補償誤差的目標,對于24英寸乘以18英寸的電路板,300ppm的X補償誤差和400ppm的Y補償誤差會在角落上產(chǎn)生5.1個密爾的補償誤差,或者產(chǎn)生10.2個密爾的總的補償TPR,這是一個未經(jīng)優(yōu)化的補償誤差。
一個目標實例可以是減小直方圖面積中定義的變化的25%。為了進行改進,采用可變的CPK。CPK被按照以下公式定義成一個穩(wěn)定過程的性能指數(shù)
Cpk=(USL-μ)/(3*δ)其中μ=平均TPRδ=標準偏差目標是給定10.3個密爾的規(guī)格上限的時候,獲得最大的TPR,而Cpk不小于1。
參考圖17,其中給出了補償改進程序的一個記錄。在這個記錄中給出了最差情況下TPR的歷史。圖16所示的結(jié)果在圖17中用前面的條形圖和線條說明,在X軸上用“基線”標簽說明。在左邊的Y軸上是TPR的尺寸誤差,在右邊的尺寸是Cpk。其中給出了平均的TPR(μ),等于平均的TPR加上3倍標準偏差(δ)的工藝上限(UPL,),等于10.3個密爾以下的最大TPR的目標線,以及從上面描述的公式計算出來的Cpk。降低條形的高度意味著改進,增大Cpk的正斜率也有可能同樣意味著改進。
圖17中說明了三個階段。第一個階段包括建立基線以及分析使用尺寸矩陣的補償工藝組合工作。第二階段包括實現(xiàn)在第一階段中找到的某些項目,并且進行試驗設計(DOE)模擬和對試驗設計模擬進行分析。第三階段是通過實現(xiàn)在第二階段建立的模型來做到的改進階段。圖17所示的改進值得注意的是這一改進來源于只在三種芯板類型上減小補償誤差。其它的改進可以通過分析其它芯板以便補充這一模型來獲得。
圖17說明采用六西格瑪(6 sigma)方法的改進是一步一步完成的。6 sigma工藝的本質(zhì)一測量、分析、改進、控制一意味著不會立即獲得結(jié)果。事實上,有可能需要幾個星期或者幾個月,直到時間和資源投資都被耗費掉。圖17說明總共用了26個星期才得到明顯的改進,但是采取了正確措施的時候改方案是立桿見影的。特殊的救火方法看起來會在較短的時間內(nèi)獲得結(jié)果,但是從很長的一段時間來看它們很難獲得真正的改進。6sigma方法不能保證找到成功的捷徑,但如果做的工作正確,就會找到真正的改進途徑。
實例2在6 sigma理論寶庫中的另外一個工具是故障模式和影響分析(FMEA)。這一工藝分析給了我們某些目標.利用圍繞中心的一個旋轉(zhuǎn)軸,將角度誤差縮小到芯板之間最大0.0084度。
·將X方向和Y方向上的補償誤差縮小到最大0.2個密爾每英寸。
·在X方向和Y方向上將偏移誤差保持在最大正負一個密爾。
·在已經(jīng)采取了其它措施以后,就考慮將鉆孔疊層板高度縮小到每次一個底板。
上面列出的幾項對于任何印制電路板制造商們來說都是挑戰(zhàn)。例如,將角度和偏移保持在6.5個密爾的DRA所需要的程度就是一個巨大的挑戰(zhàn)。僅僅是在腐蝕后打孔領域內(nèi),這可能需要進行幾次改進,包括重新拋光或者替換成套模具、精確的臺面配準,攝像機的標校、清洗或者替換馬達和驅(qū)動軸、更新PM方案、簽訂維修合同、購買特殊的測量設備、制定打孔機測試計劃以及控制重要參數(shù)的圖。腦子里能夠想到的任務的個數(shù)令人望而卻步,不進行良好的計劃管理和支持是很難做到的。
為了使改進能夠成功,需要一班人馬,包括工廠工作人員、工程師和一線管理員,制定一個共同的目標,為表4中列出的那些目標一樣的目標而奮斗。要準備好一個工藝圖以及原因和影響圖。這樣會將所有的問題提到日程上來,確定它們在工藝過程中的位置,它們會帶來什么影響,以及它們對配準誤差的影響。
在這項工作完成以后,可以進行故障模式和影響分析(FMEA)。腐蝕后打孔項目的一個故障模式和影響分析的實例在圖18中給出。這個故障模式和影響分析考慮了每個工藝輸入的嚴重程度,這一故障出現(xiàn)的概率以及檢測這一輸入并且將這一輸入控制在規(guī)范內(nèi)的能力。通過故障模式和影響分析計算出風險級別(RPN,)。劃定風險級別使得這一班人馬能夠注意到必須立即采取的措施。這一班人馬然后回到故障模式和影響分析中去,記錄下來什么時候什么人要采取的措施。更進一步,輸入嚴重性、出現(xiàn)次數(shù)和/或可檢測性的改進方案,并且計算出計劃中的風險級別。故障模式和影響分析是上層管理人員為了確定進程和項目是否成功以及是否有適當?shù)馁Y源支持這些措施,要關注的改進努力的關鍵點。
實例3配準誤差的來源,包括補償誤差、角度誤差、偏移誤差和隨機噪聲誤差,應當在生產(chǎn)過程中進行估計,以便使用配準仿真器。為了弄清楚怎么做,考慮一個真實的實例。圖19是腐蝕后打孔機上(PEP)25個內(nèi)層底板上的實際生產(chǎn)數(shù)據(jù)。這個底板布局是每個底板三個電路。這塊電路板有6.5個密爾DRA的緊配準公差。在這個圖中打過孔的芯板是四個密爾的芯板圖上面有一個盎司的銅和信號圖形。用一個光學檢查系統(tǒng)來測量這個芯板打孔后的結(jié)果。虛線的交點給出了正確的最佳位置,這個PEP機器能夠跟它配準,可以對實際的線進行分析來確定角度誤差和偏移誤差。例如,這些線條的斜率跟角度誤差有關,這些線條的長度跟材料移動的距離的大小有關。
最差的底板的參數(shù)如下·0.014度的角度誤差。
·-3個密爾的X方向偏移誤差。
·-2.5個密爾的Y方向偏移誤差。
對于角度誤差,假設旋轉(zhuǎn)軸是這個18英寸乘以24英寸底板的中心。圖20說明這些誤差組合起來在這個底板表面上的結(jié)果。圖中-1個密爾的偏移對于說明角度誤差是必不可少的,它導致了兩個密爾的X方向上的偏移。
圖20說明相對于真實位置的誤差的大小。這個圖說明,對于6.5個密爾的DRA,至少有66%(每3個電路中有兩個好電路)的產(chǎn)品會具有最差情形),只要沒有任何其它誤差。除了其它誤差以外,還有另外一個挑戰(zhàn)。圖19中的誤差說明了芯板的隨機噪聲、偏移誤差和角度誤差。這意味著在芯板與芯板之間將存在誤差,芯板之間的誤差有時會比芯板偏離真實位置的誤差大得多。
參考圖19和圖20中給出的實例,可以用所有生產(chǎn)誤差的一個估計來估計最終的成品率。例如,考慮從圖19獲得的這些輸入·平均來講,這些芯板之間的角度是0.012度。
·平均X偏移誤差是-2個密爾。
·平均Y偏移誤差是-1.5個密爾。
·平均的X補償誤差和Y補償誤差是0.33個密爾每英寸。
·小直徑鉆頭帶來的隨機鉆孔噪聲具有一個密爾的標準偏差(每次鉆兩個底板,新的鉆頭)。
圖21用一個等高線圖說明最終結(jié)果。黑色的區(qū)域表示配準得很好,比較光亮的區(qū)域表示配準得不好。在這個底板表面上配準誤差的范圍是從0個密爾到8.4個密爾以上。圖21說明對于6.5個密爾的DRA,三個電路板中平均有2個電路板會很好,或者說平均有33%的廢品率。這一估計充分地向制造商表明這一生產(chǎn)的生產(chǎn)潛力。
對于40塊底板的批量,這項工作的實際廢品率是從25%到50%。顯然能夠假設廢品率的變化說明有特殊的原因。例如,當廢品率是百分之二十五的時候,可以認為這一工藝正在得到改進,當廢品率是百分之五十的時候,顯然存在其它的問題。知道了平均廢品率是百分之三十三以及批量是40塊底板,在二項式分布的基礎之上廢品率95%的置信間隔(confidenceinterval)是從18%到56%。廢品率信息本身并不足以預測這一過程是在變得更好還是更壞。這樣,從一個批量分析看起來非常大的廢品率變化是沒有意義的。
在配準仿真器的基礎之上,制造商能夠找出方法來減小配準誤差。例如,圖21說明成品率極大地依賴于底板尺寸。如果底板的布局是在一個更小尺寸的底板上或者是在相同尺寸的底板上每個底板兩個電路,成品率就會大幅度地上升(額外的材料碎片會增加額外的成本)。為了補償這一增加的成本,配準誤差的縮小會允許每一次鉆兩個底板,如果對于較大尺寸的底板每次只是鉆一個底板。如果底板的尺寸不能改變,那么影響配準的誤差模式就需要改進。
實例4用6 sigma工具的一個系統(tǒng)方法能夠幫助全面地理解長期應該做什么以及短期能夠做什么。這個方法是·工藝測量·工藝分析·工藝改進·工藝控制這個方法是建立在能夠找到變化的源并且能夠進行并且控制永久性的改進這樣一個假設的基礎之上的。通過試驗設計(DOE),生產(chǎn)車間能夠分析配準誤差的來源,然后從長期角度和短期角度,最大程度地減小配準誤差。
如圖19所示,工藝測量在確定配準誤差模式,以及確定配準誤差是否是隨機的,是否是跟機器、偏移、操作員、一天中的時間、哪個星期、哪個月或者哪一年有關這些方面是非常重要的。工藝變量的測量為工藝分析提供所需要的數(shù)據(jù)。如果沒有仔細地測量得到的數(shù)據(jù),分析結(jié)果就是有爭議的,采取措施就不能真正得到改進。
考慮前面每個底板上有三個電路,DRA是6.5個密爾的18英寸乘以24英寸的多層板的實例。通過收集數(shù)據(jù)、工藝分析和應用這個配準仿真器,就能夠?qū)ふ夜に嚫倪M選擇。這個仿真器的一種使用方法是每次改變一個變量,研究不同高設置和低設置的影響。在6 sigma理論庫中最強有力的一個工具是試驗設計(DOE)。研究這些可能性的一種更好的方式是用包括所有兩個因素相互作用的32次運行。表3給出了用于這個試驗中的設置,圖2說明它的結(jié)果。
表3試驗設計的變量設置
參考圖22,其中給出了這個DOE中使用配準仿真器得到的結(jié)果。在圖22中,一行一行地從上到下分別是平均(avg)TPR、左上角(ulc)TPR、左下角(llc)TPR、右上角(urc)TPR和右下角(lrc)TPR的輸出。從左到右一列一列的分別是角度、X偏移、Y偏移、X收縮、Y收縮和噪聲的輸入。從圖22中可以看出,向上的斜線說明低設置更好,向下的斜線說明高設置更好,水平線說明沒有任何影響。這條線的誤差帶是回歸(regression)的95%的置信間隔。
在計算機上,圖22中的圖是動態(tài)的,由于兩個因子相互作用,其中線條的斜率隨著變量設置的不同而變化。
通過對試驗設計的分析,可以為對整個配準誤差有影響的誤差劃分級別。例如,看圖22中的當前設置,而影響程度劃分依次是角度、X收縮、Y收縮和噪聲。1個密爾以上的偏移改進對于配準來說沒有任何好處。
在這一信息的基礎之上,可以確定如何選擇要減小的誤差。這些選擇包括改變一些誤差或者一個誤差。例如,可以選擇減小一些誤差,包括角度誤差和補償誤差。
另外,在這個實例中,隨機噪聲不是減小誤差的主要方向,因為跟角度誤差和補償誤差相比,它不那么重要。因此,隨機噪聲的公差更大(也就是說,可能要求每次只鉆一塊電路板從而達到0.4個密爾的隨機噪聲誤差標準偏差的處理是不需要的;目前,用來鉆孔的電路板保持在每次鉆兩塊底板,將造成提高到一個密爾的標準偏差)。允許由于鉆孔噪聲而產(chǎn)生的隨機誤差是對這一特殊批量情形中控制每個變量方法的背離。6 sigma方法強調(diào)減小影響最大的誤差。實際上,不可能在所有時間總是控制住每一個變量。
相反,注意力集中在對于改進最有意義的步驟上。建議的改進措施在表4中給出表4建議的改進措施
配準仿真器的結(jié)果是2.67個密爾平均TPR,4.4個密爾的左上角TPR,3.2個密爾的左下角TPR,5.0個密爾右上角TPR和4.03個密爾的右下角TPR。即使所有的TPR都小于6.5個密爾的DRA,這個配準仿真器也只能給出一個底板的結(jié)果。因為有隨機噪聲,所以每次(一個底板跟另外一個底板)的結(jié)果都不相同。
實例5還可以這樣,如果試驗設計的主要目的是改變一個誤差源。作為一個實例,可以通過這個配準仿真器分析隨機噪聲誤差的來源。圖23是1000次仿真運算中最大TPR的結(jié)果。每一次運算都包括考慮底板表面上130個位置上的最大TPR值。即使有14.7%的底板最大值超過了6.5個密爾的DRA,仍然不能說明會有14.7%的電路廢品。如果用圖21中的設置進行1000次仿真試驗,100%的底板的最大TPR值會超過6.5個密爾。廢品率的更好估計是14.7%/3=4.5%的計劃廢品率,因為14.7%是底板的成品率,但是對于每個底板三個電路,電路的成品率是4.5%。
可以減小隨機噪聲,分析對總的配準誤差的影響。例如,如果這塊板是每次鉆一個底板,那么鉆頭的偏移就會下降到0.4個密爾的標準偏差。圖24說明在這種情況下1000次仿真試驗得到的最大TPR。圖24說明當疊層的高度下降的時候廢品率會下降。在這些結(jié)果的基礎之上,操作員可以分析每次鉆一塊底板導致的成本增加是否被配準誤差的下降所補償。另外,通常情況下通過降低疊層高度來改進鉆孔質(zhì)量是提高配準成品率的第一步;但是這一步驟無法帶來實際的好處,除非其它的配準模式誤差很小。
本發(fā)明前面詳細描述不是為了對本發(fā)明加以限制,而僅僅是對本發(fā)明加以說明,下面的權(quán)利要求,包括所有的等價條款,都是用來給出本發(fā)明的范圍。
附錄A考慮四個不同的半固化片類型(1080,2113,2116,7628)上一個八層板,每個芯板之間有兩疊半固化片,3個不同的芯板厚度(4個密爾、5個密爾和8個密爾)以及兩種不同的圖型類型(信號,接地)的以下設計變量。此外,只使用平衡的芯板厚度和半固化片組合。具體地說,對于一個八層板,芯板1的厚度等于芯板2的厚度,半固化片關于多層結(jié)構(gòu)的中心線必須采用相同的類型和順序。這一點跟標準的制造實踐相同。除此以外,電路圖形的不平衡性質(zhì)也是標準的制造實踐。
外層銅箔半固化片1(1080,2113,2116,7628)半固化片2第二層(S,G)芯板1(4,5,8)第三層半固化片3半固化片4第四層芯板2第五層半固化片4半固化片3第六層芯板3第七層半固化片2半固化片1外層銅箔可以使用許多的電介質(zhì)層。在以上實例中,電介質(zhì)層包括上述層之間的兩個不同的半固化片。在這些條件下,有64種不同的圖形組合(26),256種不同的半固化片組合(28),以及9種不同的芯板厚度組合??赡艿慕M合總數(shù)是147456(256×64×9)。
64種圖形組合如下。
模式 lyr2 lyr3 lyr4 lyr5 lyr6 lyr7 結(jié)構(gòu)111111s s s s s s 5111112s s s s s g 10111121s s s s g s 10111122s s s s g g 11111211s s s g s s 8111212s s s g s g 12.
111221s s s g g s 12111222s s s g g g 13112111s s g s s s 8112112s s g s s g 12112121s s g s g s 12112122s s g s g g 13112211s s g g s s 1112212s s g g s g 14112221s s g g g s 14112222s s g g g g 15121111s g s s s s 10121112s g s s s g 3121121s g s s g s 3121122s g s s g g 16121211s g s g s s 17121212s g s g s g 7121221s g s g g s 7121222s g s g g g 16122111s g g s s s 17122112s g g s s g 7122121s g g s g s 7122122s g g s g g 18122211s g g g s s 19122212s g g g s g 4122221s g g g g s 4122222s g g g g g 20
211111g s s s s s 10211112g s s s s g 3211121g s s s g s 3211122g s s s g g 16211211g s s g s s 17211212g s s g s g 7211221g s s g g s 7211222g s s g g g 18212111g s g s s s 17212112g s g s s g 7212121g s g s g s 7212122g s g s g g 18212211g s g g s s 14212212g s g g s g 4212221g s g g g s 4212222g s g g g g 20221111g g s s s s 11221112g g s s s g 16221121g g s s g s 16221122g g s s g g 2221211g g s g s s 13221212g g s g s g 18221221g g s g g s 18221222g g s g g g 21222111g g g s s s 13222112g g g s s g 18222121g g g s g s 18222122g g g s g g 21222211g g g g s s 15222212g g g g s g 20222221g g g g g g 20222222g g g g g g 6如果芯板的順序s/g無關緊要,而且23芯板和67芯板可以交換,那么這些組合就減小到21種結(jié)構(gòu)。一些實例是sg/sg/gs跟gs/gs/gs和gs/sg/sg相同;gs/gg/gg跟gg/gg/sg和gg/gg/gs相同。
在試驗設計中可以從4種結(jié)構(gòu)獲得21種結(jié)構(gòu)。這4種結(jié)構(gòu)是Core1Core2Core3config1ss/gg/ss ss gg ssconfig2gg/ss/gg gs ss ggconfigSgs/ss/sg gs ss sgconfig4gs/gg/sg gs gg sgconfigSss/ss/ssconfig1 config3 config1configegg/gg/ggconfig2 config4 config2config7gs/gs/sg avg(c3,c4) avg(c3,c4) avg(c3,c4)configSss/gs/ssconfig1 avg(c3,c4)config1config9gs/gs/ggconfig2 avg(c2,c4)config2config10gs/ss/ssconfig1 config3 config3config11gg/ss/ssconfig1 config2 config2config112 gs/gs/ss avg(c3,c4) avg(c3,c4)config1config113 ss/gs/ggconfig1 avg(c3,c4)config2config114 ss/gg/sg.config1 config4 config4config115 ss/gg/ggconfig1 config4 config4config16gs/ss/sgconfigS config2 config2config17ss/gs/gsconfig1 avg(c3,c4) avg(c3,c4)config18gs/gs/gg avg(c3,c4)avg(c3,c4)config2config19gs/gg/ssconfig4 config4 config1config20gs/gg/ggconfig4 config4 config2config21gg/sg/ggconfig2 config4 config2<pre listing-type="program-listing"><![CDATA[附錄B function[MeanTPR,TPR_UL,TPR_UR,TPR_LL,TPR_LR]=misreg(a,xo,yo,xs,ys,ns,tplot) ?。ミ@個程序為以下參量產(chǎn)生柵格; ?。? -偏移 ?。? -尺寸( % -隨機偏差 ?。? -旋轉(zhuǎn) ?。ァ 。? 初始化xstep=2;ystep=2;xdim=12;ydim=9;scale=100;%圖形初始化xoffset=xo;yoffset=y(tǒng)o;xshrink=xs;yshrink=y(tǒng)s;notse_x=ns;noise_y=ns;angle=a*scale;%坐標軸初始化%初始陣列xstep=2;xdim=12;for i=1;xdim+1; xp(i)=xstep*i-xstep;endystep=2;ydim=9;for i=1ydim+1; yp(i)=y(tǒng)step*i-ystep;end[Xp,Yp]=meshgrid(xp,yp);%Plot=1將畫出藍色目標標記if tplot==1 ?。リP閉顏色棒 h=findobj(′Tag′,′Axes2′); axes(h) cla axis off %重新設置圖形藍色目標上的軸 h=findobj(′Tag′,′Axes1′); axes(h) cla plot(Xp,Yp,′+b′) set(gca,′Tag′,′Axes1′) axis off end %在x尺度上加上偏移誤差for i=1xdim+1; x(i)=xstep*i-xstep+xoffset;end%底板右半部分收縮shrink=0;n=0;for i=813; n=n+1; shrink=n*xstep*xshrink; x(i)=x(i)+shrink;end%底板作半部分收縮shrink=0;n=0;for i=6-11; n=n+1; shrink=n*xstep*xshrink; x(i)=x(i)-shrink;end%在y方向上加上偏移誤差for i=lydim+1; y(i)=y(tǒng)step*i-ystep+yoffet;end%底板上半部分收縮shrink=0;n=0;y(6)=y(tǒng)(6)+.5*ystep*yshrink;for i=710; n=n+1; shrink=(n+.5)*ystep*yshrink; y(i)=y(tǒng)(i)+shrink;end%底板下半部分收縮shrink=0;n=0;y(5)=y(tǒng)(5)-.5*ystep*yshrink;for i=4-11;n=n+1; shrink=(n+.5)*ystep*yshrink; y(i)=y(tǒng)(i)-shrink;end%構(gòu)造網(wǎng)格[X,Y]=meshgrid(x,y);%旋轉(zhuǎn)網(wǎng)格for i=110;for j=113; xadd=Y(jié)(i,j)*sin(angle); X(i,j)=X(1,j)*cos(angle)+(24-24*cos(angie))/2-xadd; endendyadd=(X*sin(angle)-24*sin(angle)/2);Y=Y(jié)+yadd;for i=11 %將噪聲加到網(wǎng)格-X方向上去 ifnoise_x-=0 for i=110; for j=113; noise=noiTnmd(0,noise_x); X(ij)=X(i,j)+noise; end end end ?。⒃肼暭拥骄W(wǎng)格-Y方向上去. ifnoise_y-=0for i=110; for j=113; noise s normmd(0,noise_y); Y(i,j)=Y(jié)(i,j)+noise; end end end end %如果plot=1,就用紅星畫出沒有對準的地方( iftplot==1 hold on; plot(X,Y,‘*r′); axis on end ?。ビ嬎悴⑶耶嫵鯰PR和平均TPR和角落上的TPR TPR=sqrt((Xp-X).^2+(Yp-Y).^2).*1000/scale; TPRv=reshape(TPR,130,1); MeanTPR=mean(TPRv); TPR_UL=sqrt((Xp(10,1)-X(10.1)).^2+(Yp(10,1) -Y(10,1)).^2).*1000/scale; TPR_UR=sqrt((Xp(10.13)-X(10,13)).^2+(Yp(10,13)-Y(10,13)).^2).*1000/scale; TPRJ.L=sqrt((Xp(1,1)-X(1,1)).^2+(Yp(1,1) -Y(1,1)).^2).*1000/scale; TPR_LR=sqrt((Xp(1,13)-X(1,13))^2+(Yp(1,13) -Y(1,13)).^2).*1000/scale; ?。PR誤差的等高線圖%if or(angle-=0,yshrink^2+xshrink^2-=0)iftplot==2 h=findobj(‘Tag′,′Axes1′); axes(h) hold off da reset axis on [C H]=contourf(TPR,15);%C=round(10.*C)./10;%dabel(C,H); shading flat colormap jet%brighten(.5) h=findobj(‘Tag′,′Axes1′); set(h,′XLimMode′,′manual′) set(h,′Xtim′,
) set(gca,′XTickLabel′,(2610141822]); set(gca,′YTickLabel′,
); holcLon piot([5,5],[1,10].′w-′) plot([9,9],[1,10],′,‘) plot([1,13],[4,4],′w-′) plot([1,13],[7,7],′w-′) hold off set(gca,Tag′,′Axes1′) h=findobj(‘Tag′,′Axes2′); colorbar(h) axes(h)axis on set(gca,Tag′,′Axes2′)end%畫出矢量.iftplot==3 %關閉顏色棒 h=findobj(‘Tag′,′Axes2′); axes(h) da axis off %重新設置藍色目標的州( h=findobj(‘Tag′,′Axes1′); axes(h) da quiver(Xp,Yp,X-Xp,Y-Yp)end%畫出矢量和等高線iftplot==4 %關閉顏色棒 h=findobj(‘Tag′,′Axes2′); axes(h) da axis off %重新設置軸和等高線和矢量( h=findobj(‘Tag′,‘Axes1′); axes(h) dacontour(Xp,Yp,TPR,15) hold on quiver(Xp,Yp,X-Xp,Y-Yp) h=findobj(‘Tag′,′Axes1′); set(gca,Tag′,′Axes1′);endfunction regentry%這個程序跟regmod一起使用%用于手工輸入文本字段%%獲取文本字段中的值h=findobj(‘Tag′,‘a(chǎn)ngle′);degstr=get(h,′String′);deg=str2num(degstr);a=pi*deg/180;h=findobj(‘Tag′,′xoffset′);xostr=get(h,′String′);xo‘-str2num(xostr)/10;h=findobj(‘Tag′,′yoffset′);yostr=get(h,′String′);yo=str2num(yostr)/10;h=findobj(′Tag′,′xshrink′);xsstr=get(h,′String′);xs=str2nurn(xsstryi0;h=findobj(‘Tag′,′yshrink′);ysstr=get(h,′String′);ys=str2num(ysstryi0; h=findobj(‘Tag′,′noise′); nsstr=get(h,′String′); ns=str2num(nsstr)/10; h=findobj(‘Tag′,′graphtype′); gt=get(h,′Value′); ?。ピO置滑動棒 h=findobj(‘Tag′,‘a(chǎn)slider′); set(h,′Value′,a) h=findobj(‘Tag′,′xoslider′); set(h,Value′,xo) h=findobj(‘Tag′,′yoslider′); set(h,′Value′,yo) h=findobj(‘Tag′,′xsslider′); set(h,′Value′,xs) h=findobj(′Tag′,′ysslider′); se′h,Value′,ys) h=findobj(‘Tag′,′nsslider′); set(h,′Value′,ns) %將結(jié)果列表( ifgt==1 axis equal end [mtpr ultpr urtpr Illpr trtpr]=misreg(a,xo,yo,xs,ys,ns,gt); mtpr=round(100*mtpr)/100; ultpr=round(100*ultpr)/100; urtpr=round(100*urtpr)/100;lltpr=round(100*iltpr)/100;Irtpr=round(100*lrtpr)/100;ifgt==1 axis equalend%輸出設置(h=findobj(‘Tag′,′AvgTPR′);set(h,′String′,mtpr)h=findobj(‘Tag′,′ulTPR′);set(h,′String′,ultpr)h=findobj(′Tag′,′urTPR′);set(h,′String′,urtpr)h=findobj(‘Tag′,′IITPR′);set(h,′String′,lltpr)h=findobj(‘Tag′,‘lrTPR′);set(h,′String′,mtpr)function fig=regrnod%這個程序用于為配準仿真器產(chǎn)生滑動棒和對象(load regmodh0=figure(′Color′,
.... ′Colormap′,mat0,... ‘Position′,[439 228 652 533],... ‘Tag′,‘Figl′);h1=uicontrol(′Parenf,h0,... ′Units′,‘points′,... ′Callback′,′regsbar′.... ‘Max′,0.0008,...′Mir′-0.0008,... ‘Position′,[33 48 96 16].... ‘SliderStepM5e-05 0.0002],... ′Style′,′slide″,... ‘ Tag′,′aslider′);h1=uicontroK′Parenf, h0,... ′Linits′,‘points′,... ′BackgroundColo″,[1113,... ′Callback′,′regent′y′,... ‘Position′,(50 17 58 22],... ′String′,‘0′,... ′Style′,‘edit’,... ‘ Tag′,‘a(chǎn)ngle′);h1=uicontrol(′Pafent′,h0,... ‘Units′,points′,... ′Position′,[39 70 65 16],... ′String′,′Angle(deg)′,... ‘Style′,‘text’,... ‘Tag′,StaticText1′);h1=uicontrol(′Parent′,h0,... ′Unite′,‘points′,... ′BackgroundColor′,[111],... ‘Position′,132 485 60 20],... ‘ String′,‘0′,... ′Style′,‘ text’,... ‘Tag′,‘ulTPR′);hlt=uicontToK′Parent′,h0,... ′Units′,‘points′,...′BackgroundColor′,[111],... ′Position′,[547 487 60 20],... ‘String′,′0′,... ‘Style′,‘text’,... ‘ Tag′,‘urTPR′);III=uicontrol(′Parent′,h0,... ′Units′,‘pointe′,... ′BackgroundCotor′,[111],... ′Position′,[32 98 60 20],... ′String′,′0′,... ′Style′,‘text’,... ‘ Tag′,′IITPR′);h1=uicontrol(′Parent′,h0,... ′Units′,‘points′,... ′BackgroundColor′,[111],... ′Position′,(548 97 60 20],... ′String′,′0′,... ′Style′,‘text’,... ‘ Tag′,′lrTPR′); h1=uicontrol(′Parent′,h0,... ′Units′/points′,... ′BackgroundColor′,[111],... ′Position′,[284 484 60 203,... ′String′,′0′,... ′Style′,’text’,... ′Tag′,‘AvgTPR′); h1=uicontrol(′Parent′,h0,...′Units′/points′,... ′Position′.[283 505 61 16],... ′String′,‘a(chǎn)vg.TPR′,... ′Style′,’text’,... ‘ ‘ Tag′,′StaticText2′) ;h1=uicontrol(′Parenf,h0,... ′Units′/points′.... ‘Callback′/′egsbar′,... ‘Min′,-1,... ′Position′.U 33 47 96 18],... ‘Style′/slider-.... ‘ Tag′,′xoslide″);h1=uicontrol(′Parenf,h0,... ′Units′/points′,... ′Callback′,“egsbar′,... ′Min′,-1,... ′Position′,(232 47 95 17],... ′Style′/slide″.... ‘ Tag′,′yostide0;h1=uicontrol(′Parent′,h0,... ′Units′/points ′,... ′Callback′,′regsbar′,... ′Max′,0.1,... ′Min′,-0.1,... ‘Position′,[332 48 9516],... ′SliderStep′,
.... ′Style′,′slide″,... ‘ Tag′,′xsslidei′;h1=uiconfrol(′Parenf,h0,... ‘Units′/points′,... ′Callbacl<′/regsbar′,... ′Max′,0.1,... ′Min′.-0.1,... ′Position′,[430 47 96 18],... ′SliderStep′,t0.001 0.01],... ′Sty′e′,′slider′,... ‘ Tag′,′ysslider′);) h1=uicontrol(′Parenf,h0,... ′Units′,‘points′,... ′Callback′,‘regsbar′,... ′Max′,0.5,... ′Position′,[529 48 96 16],... ′SliderStep′.10.001 0.01],... ′Style′,′slider′.... ‘ Tag′/nsslider′); h1=uicontrot(′Parent′,h0,... ′Units′/points′,... ′Positional 40 69 77 16],... ′String′,‘X offset(mils)′,... ′Style′,‘text’,... ‘Tag′,‘ StaticText1′); h1=uicontroK′Parent′,h0,... ′Units′,‘points′,... ‘Pasition′.[241 68 75 17],... ′5′0′,′offse′mils)′,... ′Style′,‘text’,...‘ Tag′,‘ StaticText1′); h1=uicontroK′Parenf,h0,... ′Units′,‘points′,... ‘Position′,{329 69 96 16],... ‘String′,‘X shrink(miir)′,... ′Style′,′text′.. ‘ Tag′,‘ StaticText1′); h1=uicontrol(′Parent′,h0,... ′Units′,‘points′,... ′Position′,(430 69 94 16],... ′String′,‘Y shrink(mil′)′.... ′Style′,text,... ‘ Tag′,‘StaticText1′);h-1==uicontroK′Parenf,h0,... ‘Units′,‘points′,... ‘Position′,[526 71 93 16],... ′String′,′Noise(mils std)′,... ‘Style′,‘text′,... ‘ Tag′,‘StaticText1′);h1=uicontrol(′Parent′,h0,... ‘Unite′,‘pointe′,... ′BackgroundColor′,[111],... ‘Callback′,′regentry′,... ′Position′,[143 18 60 20],... ′String′,′0′,... ‘Style′,‘edit′,... ‘ Tag′,‘offsef);h1=uicontrol(′Parent′,h0,...′Units′,‘points′,... ′BackgroundColor′,[111],... ′Callback′,′regentry′,... ′Position′,(2471860 20],... ′String′,′0′,... ‘Style′,‘edit’,... ‘Tag′,′yoffsef’);h1=uicontrol(′Parenf,h0,... ′Units′,‘points′,... ′BackgroundCo′or′,[111],... ′Callback′,‘regentry′,... ′Position′,[346 18 60 20],... ′String′,′0′,... ′Style′,‘edit’,... ‘Tag′,‘xshrink′);h1=uicontrol(′Parent′,h0,... ′Units′,‘points′,... ′BackgroundColor′,[111],... ′Callback′,‘regentry′,... ‘Position′,(440 19 60 20],... ′String′,′0′,... ‘Style′,‘edit’,... ‘Tag′,‘yshrink′); h1=uicontroK′Parent′, h0,... ′Units′,‘points′,... ′BackgroundColo″,[111],... ′Callback′,‘regentry′,... ‘Position′,[54219 60 20],...′String′,′0′,... ′Style′,‘edit’,... ‘Tag′,‘noise′);h1=uicontroK′Parenf,h0,... ′Units′,‘points′,... ′Callback′,′‘egsbar′,... ′Position′.[393 486 89 21],... ′String′.mati,... ′Style′,′popupmenu′,... ‘ Tag′,‘ graphtype′,... ‘Value′,1);.h1=uicontrol(′Parenf,h0,... ′Units′,‘points′,... ‘Position′,tOS 484 30 19],... ′String′,‘mils′,... ‘Style′,‘ text’,... ‘ Tag′,‘StaticTe′);h1=uicontroK′Parent′,h0,... ′Units′,‘pointe′,... ′Position′,[344 485 30 19],... ′String′,‘mils′,... ′Style′,’text’,... ‘ Tag′,‘ StaticTextS′) ;h1=uicontroK′Parenf,h0,... ‘Units′,‘points′,... ′Position′,[606 488 30 19],... ′String′,‘mils′,...‘Style′,text′.... ‘Tag′,‘StaticTe″);h1=uicontrol(′Parenf,h0,... ′Units′,‘points′,... ′Position′,(92 99 30 19],... ′String′,‘mils′,...‘’ ′Style′,’text’,... ′Tag′,′StaticText3′);h1==uicontroK′Parent′,h0,... ′Units′,‘points′,... ′Position′,[608 98 30 19],... ′String′,‘mils′,... ′Style′,text′.... ‘ Tag′,‘StaticTextS′);h1=uicontrol(′Parent′,h0,...′Units′,‘points′,... ′Callback′,‘resetreg′,... ′Position′,‘ 66 486 60 20],... ′String′,‘Resef,... ‘ Tag′,‘PushbuttonI′);h1=uicontrol(′Parent′,h0,... ′Unfts′,‘points′,... ′FontSize′.S,... ′Position′,[293 101 63 16],... ′String′,‘inches′,... ‘Style′,‘ text’,... ‘Tag′,′StaticText4′);h1=uicontrol(′Parent′,h0,... ′Units′/points′.... ′FontSize′,9,... ′Position′,[15 31134 19],... ′String′,‘inches′,... ′Style′,‘text′,... ‘Tag′,‘StaticTextS′) ;h1=axes(′Parent′,h0,... ′Units′,‘pixels′,... *Rr′Y*′fin* ‘CameraUpVector′,
,... ′CameraUpVectotMode′,‘manual′,... ‘Color′,[1111.... ′Colo′Order′,nr′at2,... ′DataAspectRatioMode′/manual′,... ′DeleteFcn′,‘cotorbarC′delete’)′,... ‘Layer′,top′.... ′PlotBoxAspectRatio′,[2234111],... ′PlotBoxAspectRatioMode′,‘manual′,... ‘Posilion′,1613 136 22 341],... ‘ Tag′,′Axes2′,... ′UserData′.matS,... Visible′,‘off,... ′Wa′pToFi′l′,′of′,... ′Wa′pToFillMode′,′manual′,... ‘XColor′,
,... ‘XLim′,[-11],... ′XLimMode′,‘manual′,...′XTickMode′,‘manual′,... ‘YAxisLocation′,‘righf.... ′YColor′,(0 0 0],... ‘ZOolor-.tO 0 0]); h2=text(‘Parenf,h1,... ‘Color′,
,... ‘HandleVisIbility′,‘ofT,... ′HorizontalAlignment′,‘center′,... ′Position′,mat4,... ‘ Tag′,′Axes2Text4′,... ′VerticatAlignmenf.′cap′,... Visible′,‘off); set(get(h2,′Parent′),′XLabel′,h2); h2=‘text(′Parent′,h1,... ‘Color′,tOO 0].... ‘HandleVisibility′,‘ofT,... ′HorizontalAlignment′,‘center′,... ′Position′.P0.4047619047619051155.9027026792005]. ′Rotation′,90,... ′Tag′,′Axes2Text3′,... VerticalAlignment′,‘cap′,... ′‘/isible′,′off); set(get(h2.′Parent′).′YLabel′,h2); h2=text(′Parent′,h1,... ′Color′,
,... ′HandleVisibility′,‘off,... ′HorizontalAlignment′,‘right′,...′Position′,[-59.3809523809523822.02380952380952155.9027026792005],... ‘ Tag′,′Axes2Text2′,... Visible′,‘off); set(9et(h2,′Parent′),′ZLabel′,h2); h2=text(′Parent′.h1,... ‘Cdo″,
,... ‘HandleVisibility′,′off,... ′HorizontalAlignment′,‘center′,...′Position′,[-0.047619047619043916.4047619047619155.9027026792005],... ‘Tag′,′Axes2Text1′,... ′Ve′ticalAlignment′,′bottom′); set(get(h2,′Parenf),′Title′.h2); h1=axes(′Parenf, h0,... ′Box′,‘on′,... ′Came′aUpVector′,
,... ′CameraU′VectorMode′,‘manual′,... ′Colo′U11],... ′Color0′der′.rnat5,... ‘NextPlof.′add′,... ′Position′,mat6.... ‘ Tag′/AxesI′,... ′XColor′,(0 0 0],... ′YColor′,tO 0 0],... ′ZColor′,
); h2=text(‘Pa′enf.hi,...‘Color′,
,... ′HandleVisibility′,′off′,... ′Hori2ontalAlignmenf,′centel″,...′Position′.[12.4517374517374518.2123893805309817.32050807568877],... ‘ Tag′,‘AxesITe″,... ′VerticalAlignmenf,′bottom′) ; set(get(h2,′Pa′enr),′Title′,h2); h2=text(′Parenf,h1,... ‘Color′,(0 0 0],... ‘HandleVisibility′,‘off,... ′Ho′izontalAtignmenf,′center′,... ′Positional 2.45173745173745 -0.902654867256636417.32050807568877].... ‘Tag′,′Axes1 Text3′,... VerticalAlignmenf.′cap′); set(get(h2,′Parenf).′XLabel′,h2); h2=text(′Parenf, h1,... ‘0010′,10 0 0],... ‘HandleVisibility′,‘off,... ′HorizontalAlignment′,‘center′,...′Position′,[-0.96525096525096518.92035398230088817.32050807568877],... *Rotation′.90,... ‘Tag′,′Axes1Text2′,... ′VerticalAlignmenf,′baseline′);set(get(h2.′Parent′),′YLabel′,h2); h2=text(′Parent′.h1.... ‘Color′,tO 0 0],... ‘HandleVisibility′,‘off,... ′HorizontalAlignment′,‘righf,... ′Position′,[-3.37837837837837921.0796460176991217.32050807568877],... ‘Tag′,‘AxesIText1′,... ′Visible′,‘off); se′(Qet(h2,′Parent′).′ZLQbe\′,h2)′, h2=line(′Parent′,h1,... ′Color′,
,... ′LineStyle′,′none′,... ‘Marker′.v,.., ‘ Tag′,′Axes1Line26′,... ′XData′,mat7,...‘ ‘YData′.mat8); h2=line(′Parent′,h1,... ‘Color′,
,... ′LineStyle′,‘none′,... ′Ma′ke″,′+′,... ‘ Tag′,′Axes1Line25′,... ‘XData′,mat9,... ‘ YData′.mat10); h2=line(′Parenf, h1,... ‘Co′or′,
,... ‘lineStyle′,‘none′,... ‘Marker′,′+ ′,...‘ Tag′,′Axes1Line24′,... ‘Data′.mati1,... ′YData′,mat′12);h2=line(′Parent′.h1,... ′Colo,
.... ′UneStyle′,‘none′,... ′Ma′ker′,′+ ′,... ‘ Tag′,′Axes1Line23′,... ‘XData′,mat13,... ′YData′,mat14);h2=line(′Parenf,h1,... ‘Color′,
,... ′UneStyle′,‘none′,... ′Marke″,‘ + ′.... ‘ Tag′,‘Axes1Line22′,... ′XData′,mat15,... ‘YData′.matie);h2=line(′Parenf, h1,... ‘Color′,
;... ′UneStyle′,‘none′,... ‘Marker′,′+ ′,... ‘ Tag′,′Axes1Une21 ′,... ′XData′,mat17,... ′YData′,mat18);h2=line(′Parent′,h1,... ′Color′,
,... ′LineStyle′,‘none′,...‘Marker′,′+ ′,... ‘ Tag′,′Axes1Une20′,... ′XData′,mat19 ‘YData′,mat20); h2=line(′Parenf,h1 ‘Color′,[0 01).... ‘LineStyle′,‘none′,... ′Marker′,′+ ′.... ‘ Tag′,′Axes1Une19′,... ‘XData′,mat21,... ′YData′,mat22); h2=line(′Parent′,h1,... ‘Color′,
,... ′LineStyle′,‘none′,... ‘Marker′,′+ ′,... ‘ Tag′,‘AxesILine1S′,... ′XData′,mat23,... ‘YData′mat24); h2=line(′Parent′,h1,... ‘Coior′.
,... ′LineStyle′/none′,... ′Marker′,′+ ′,... ‘ Tag′,′Axes1Line17′,... ′XData′,mat25,... ′YData′,mat26); h2=line(′Parent′,h1,... ‘0010′001],...′UneStyle′,‘none′,... ′Marker′,′ + ′,... ‘ Tag′,‘AxesIUne16′,..- ′XData′,mat27,... ′YData′,mat28);h2=line(′Parent′,h1 ′0010′(0 01],... ′UneStyle′,‘none′,... ‘Marker′,′ + ′, ... ‘ Tag′,′Axes1Une15′,... ′XData′,mat29,... ‘YData′.matSO);h2=line(′Parent′,h1.... ′Color-.p01],... ′UneStyle′,‘none′,... ′Marker′,′ + ′,... ‘ Tag′,′Axes1Llne14′,... ′XData′.mat31,... ′YData′,mat32);h2=line(′Parenf,h1,... ‘Color′,[10 0],... ′UneStyle′,‘none′,... ‘Marker′,′,...′ ‘Tag′,‘Axes1Une1S′,... ‘XData′,mat33,... ′YData′,mat34);h2=line(‘ Parent′,h1,...‘‘Color-.t1 0 0],... ′UneStyle′,‘none′,... ‘Marker′,′,... ‘ Tag′,′Axes1Line12′,... ′XData′,mat35,... ′YData′,mat36);h2=line(′Parenf, h1,... ‘Co′or′,[10 0),... ′LineStyle′,‘none′,... ′Marker′.,... ‘ Tag′,‘Axes-IUnell′,... ′XData′,mat37,... ′YData′,mat38);h2==line(′Parent′,h1,... ′Color′,[10 0].... ′LineStyle′,‘none′,... ′Marker′,′*′,... ‘ Tag′,‘AxesILine1O′,... ‘XData′,iTiat39,... ‘YData′.mat40);h2=line(′Parent′,h1,... ‘Color′,[10 0],... - ′LineStyle′,‘none′,... ′Marker′,′*′,... ‘ Tag′,′Axes1Line9′,... ′XData′,mat41,... ′YData′,mat42),h2=lineCParent′.h1,...′Color′,[ 10 0],... ′LineStyle′,‘none′,... ′Marker′,′*′,... ‘ Tag′,‘AxesILine8′,... ′XData′mat43,... ′YDate′,mat44);h2=line(′Parent′,h-1.... ′Color′,[10 0],... ′LineStyle′,‘none′,... ′Marker′,′*′,... ‘ Tag′,‘AxesI Line?′,... ′XData′,mat45,... ′YData′,mat46),h2=line(′Parent′,h1,... ′Color′,[10 0],... ′LineStyle′,‘none′,... ′Marker′,′*′,... ‘ Tag′,′Axes1Une6′,... ′XData′,mat47,... ′YData′,mat48);h2=line(′Parenf, h1,... ′Color′,[10 0],... ′LineStyle′,‘none′,... ′Marker′,‘*′,... ‘ Tag′,‘AxesILine5′,... ′XData′.mat49,... ′YData′,mat50);h2=line(′Parent′,h1,...′ColorMI 0 0],... ′LineStyle′,‘none′,... ′Marker′,′*′,... ‘ Tag′,′Axes1Une4′,... ′XData′,mat51,... ′YData′,mat52);h2=line(′Parent′,h1.... ′Color′,[10 0],... ′UneStyle′,‘none′,... ′Marker′,,... ‘Tag′,‘AxesILines′,... ′XData′.matSS,... ‘YData′,mat54);h2=line(′Parent′,h1,... ′Color′,[10 0],... ′LineStyie′,‘none′,... ′Marker′,′*′,... ‘ Tag′,′Axes1Une2′,... ′XData′,mat55,... ‘YData′,mat56);h2=line(′Parent′,h-1,... ′Color′,(10 0],... ′LineStyle′,‘none′,... ′Marker′,′*′,.″ ‘ Tag′,‘AxesILinel′,-. ′XData′,mat57,... ′YData′,mat58);ifnargout>0,fig=h0;endfunction regsbarQ%這個程序跟regmod程序一起使用。%它應該跟角度唯一控制滑動棒一起使用。%獲得值h=findobj(‘Tag′,′aslider′);a=get(h,Value′);h=flndobj(Tag′,′xoslider′);xo=06′,′106′);h=findobj(‘Tag′,′yoslider′);yo=get(h,Value′),h=flndobJ′(Tag′,′xsslide″)L_xs=06′,′106′);h=findobj(Tag′,′ysslide″);ys=get(h,Value′);h=findobj(Tag′,′nsslider′);ns=get(h,Value′);h=findobj(‘Tag′,′graphtype′);gt=ge′h.Value′);%滑出一種圖形并且獲得平均的和角落TPRifgt==1 axis equalend[mtpr ultpr urtpr lltpr Irtpr]=misreg(a,xo,yo,xs,ys,ns,gt);mtpr=round(100*mtpr)/100;ultpr=round(100*ultpr)/100; urtpr=round(100*urtpr)/100; 1ltpr=round(100*lltpr)/100; Irtpr=round(100*lrtpr)/100; tfgt==1 axis equal end ?。閳D形類型正確地設置軸 ?。ゴ_定值供選擇 deg=a*180/pi; deg=round(10000*deg)/10000; h=findob)′(Tag′,′angle′); set(h,′String′,deg) h=findobKTag′,‘xoffset′); set(h,′String′,10*xo) h=findobj(‘Tag′,′yoffset′); set(h,′String′,10*yo) h=findobj(‘Tag′,′xshrink′); set(h,′String′,10*xs) h=findobj(Tag′,′yshrink′); set(h,′String′,10*ys) h=findobj(‘Tag′,′noise′); set(h,′String′,10*ns) ?。lace output settings. h=findobj(‘Tag′,′AvgTPR′); set(h;′String′,mtpr) h=findobj(‘Tag′,′ulTPR′);set(h,′String′,ultpr)h=findobj(‘Tag′,′urTPR′);set(h,′String′,urtpr)h=findobj(‘Tag′,′IITPR′);set(h,′String′,lltpr)h=findobjCTag′,‘IrTPR′);set(h,′String′,lrtpr) ;]]></pre>
權(quán)利要求
1.一種在印制電路板的配準過程中用來模擬補償?shù)姆椒?,這種方法包括以下步驟提供具有多個芯板的多個印制電路板,這些印制電路板在它們的芯板之間至少采用一個電介質(zhì)層;測量每個印制電路板至少一個芯板在生產(chǎn)過程中發(fā)生的移動;和在芯板移動距離和至少一個電介質(zhì)層的基礎之上產(chǎn)生一個補償模型。
2.如權(quán)利要求1所述的用于模擬補償?shù)姆椒?,其中的芯板有一個x方向和一個y方向,其中測量至少一個芯板的移動距離的步驟包括測量在x方向和y方向上的移動距離的步驟。
3.如權(quán)利要求2所述的模擬補償?shù)姆椒?,其中的印制電路板有?nèi)層和外層芯板,其中測量至少一個芯板的移動距離的步驟包括測量內(nèi)層芯板和外層芯板上x方向和y方向上移動距離的步驟。
4.如權(quán)利要求2所述的模擬補償?shù)姆椒?,其中產(chǎn)生一個補償模型的步驟包括計算x方向和y方向上移動距離測量結(jié)果平均值的步驟。
5.如權(quán)利要求1所述的模擬補償?shù)姆椒?,其中的至少一個電介質(zhì)層包括多個半固化片,其中的補償模型是建立在對印制電路板的至少一個芯板移動距離測量結(jié)果的基礎之上以及在半固化片的基礎之上。
6.如權(quán)利要求1所述的模擬補償?shù)姆椒?,其中的至少一個電介質(zhì)層包括具有不同樹脂百分比的多個半固化片,其中的補償模型是建立在對印制電路板至少一個芯板的移動距離的測量結(jié)果以及具有不同樹脂百分比半固化片的基礎之上的。
7.如權(quán)利要求1所述的模擬補償?shù)姆椒?,其中的芯板形狀是具?個角落的矩形,其中測量至少一個芯板的移動距離的步驟包括測量這個芯板4個角落的移動距離的步驟。
8.如權(quán)利要求1所述的模擬補償?shù)姆椒?,其中產(chǎn)生一個補償模型的步驟包括在試驗的基礎之上產(chǎn)生一個表。
9.如權(quán)利要求1所述的模擬補償?shù)姆椒?,其中產(chǎn)生一個補償模型的步驟包括產(chǎn)生具有一系列因子的一個等式。
10.如權(quán)利要求1所述的模擬補償?shù)姆椒?,其中產(chǎn)生一個補償模型的步驟包括產(chǎn)生所述芯板移動距離的一個圖的步驟。
11.如權(quán)利要求1所述的模擬補償?shù)姆椒ǎ渲械挠≈齐娐钒逶谛景迳嫌幸粚右粚拥碾娐?,其中的補償模型是建立在對這些印制電路板的芯板、電介質(zhì)層和電路進行測量的基礎之上的。
12.權(quán)利要求11中模擬補償?shù)姆椒?,其中的電路是從一組電路中選擇出來的,這一組電路包括信號線、接地線以及信號線和接地線的混合。
13.如權(quán)利要求1所述的模擬補償?shù)姆椒?,其中測量芯板的步驟是在預先確定的時刻進行的,其中產(chǎn)生補償模型的步驟是建立在芯板移動距離、所述至少一個電介質(zhì)層和預先確定的時刻的基礎之上的。
14.一種在配準印制電路板的過程中模擬補償?shù)姆椒?,這種方法包括以下步驟為印制電路板提供在芯板之間有許多電介質(zhì)層的多個芯板,這些芯板在印制電路板上具有位置;測量這些芯板在印制電路板的生產(chǎn)過程中產(chǎn)生的移動;和在芯板移動距離的基礎之上,以及在印制電路板中芯板位置的基礎之上,產(chǎn)生一個補償模型。
15.如權(quán)利要求14所述的模擬補償?shù)姆椒?,其中的位置包括外層芯板和?nèi)層芯板,其中產(chǎn)生一個補償模型的步驟包括在這個芯板是一個外層芯板還是一個內(nèi)層芯板的基礎之上產(chǎn)生補償模型。
16.一種在配準印制電路板的過程中模擬補償?shù)姆椒?,這種方法包括以下步驟使印制電路板具有至少第一個芯板和第二個芯板,在第一個芯板的至少一面上以及在第二個芯板的至少一面上具有電路布局;在生產(chǎn)完成以后測量這些印制電路板的芯板以便測量每個芯板的移動距離;和在對印制電路板芯板進行測量的基礎之上,以及在第一個芯板至少一面上的電路布局和第二個芯板至少一面上的電路布局的基礎之上,產(chǎn)生一個補償模型。
17.如權(quán)利要求16所述的模擬補償?shù)姆椒?,其中的電路布局是從一組電路布局中選擇出來的,這一組電路布局包括信號線、接地線以及信號線跟接地線的組合。
18.一種在處理多層印制電路板的過程中減小補償誤差的方法,其中的多層印制電路板有多個芯板,這些芯板上具有電路,在電路之間有電介質(zhì)層,該方法包括以下步驟確定多層印制電路板的至少一個特性,這個特性是從一組特性中選擇出來的,這一組特性包括多層印制電路板、電介質(zhì)層中芯板的位置,以及相鄰芯板上的電路;在補償模型至少一個特性的基礎之上產(chǎn)生至少一個補償系數(shù);和在所述至少一個補償系數(shù)的基礎之上修改電路。
19.一種確定多層印制電路板中補償誤差的仿真器,所述多層印制電路板至少有一個電介質(zhì)層、多個芯板以及多個芯板上的電路結(jié)構(gòu),這個仿真器包括一個處理器;和跟這個處理器有電連接的一個存儲器裝置,這個存儲器裝置包括補償誤差數(shù)據(jù)的一個矩陣,這些誤差數(shù)據(jù)包括在多層印制電路板的至少一個特性基礎之上的X誤差和Y誤差測量結(jié)果,這個特性是從一組圖形中選擇出來的,這一組特性包括至少一個電介質(zhì)層、在這個疊層中芯板的位置、多個芯板上電路的結(jié)構(gòu)、多個印制電路板的組合以及芯板跟電介質(zhì)層之間的相互作用。
20.一種在配準印制電路板的過程中模擬誤差的方法,這種方法包括以下步驟至少將多個點放在多層印制電路板的一層上;在偏移模型、角度模型、補償模型和隨機噪聲模型的基礎之上修改多個點的位置,以便產(chǎn)生多個點的修正位置;和輸出多個點的位置跟多個點的修正位置的比較結(jié)果。
21.如權(quán)利要求20所述在配準的過程中模擬誤差的方法,其中輸出比較結(jié)果的步驟包括將多個點的位置和多個點的修正位置畫成圖的步驟。
22.一種在配準印制電路板的過程中模擬誤差的方法,這種方法包括以下步驟確定精確地配準必不可少的真實位置;確定在配準的過程中出現(xiàn)的誤差的至少兩個源;以互相獨立的方式合并在配準過程中出現(xiàn)的誤差的至少兩個源;和將至少兩個誤差源的組合跟真實位置進行比較。
23.如權(quán)利要求22所述的模擬配準過程中誤差的方法,其中將組合跟真實位置進行比較的步驟包括將對應于至少兩個誤差源的組合的位置畫成圖以及將真實位置畫成圖的步驟。
全文摘要
提供了用來對多層印制電路板的補償誤差進行模擬以及對多層印制電路板的配準誤差進行仿真的方法和裝置。進行了一些試驗,以便模擬補償誤差,模擬補償誤差的時候考慮進了以下因素中的一個或者多個的組合:電介質(zhì)層、疊層中芯板的位置、電路結(jié)構(gòu)、印制電路板的組合以及芯板跟電介質(zhì)層之間的相互作用。這個配準仿真器用一種相互關聯(lián)的方式將配準誤差的源合并起來,以便模擬在底板表面上總的配準誤差。
文檔編號H05K3/46GK1351816SQ00807599
公開日2002年5月29日 申請日期2000年2月25日 優(yōu)先權(quán)日1999年3月15日
發(fā)明者W·格雷·麥柯里, 布萊德里·A·瓊斯 申請人:依索拉層壓系統(tǒng)公司