半導體裝置的制造方法
【專利說明】
[0001] 本發明專利申請是發明名稱為"半導體裝置"、國際申請日為2011年6月13日、國 際申請號為"PCT/JP2011/063461"、國家申請號為"201180028965. 6"的發明專利申請的分 案申請。
技術領域
[0002] 本發明涉及半導體裝置。
【背景技術】
[0003] PLD (Programmable Logic Device,可編程邏輯器件)廣為人知。PLD為可對所構 成的邏輯電路進行變更的半導體裝置,并具有多個邏輯部件以及多個連接部件。
[0004] 邏輯部件作為組合電路或順序電路工作。邏輯部件例如為由構成真值表的多個存 儲元件構成的存儲元件塊。多個存儲元件例如為SRAM (Static Random Access Memory,靜 態隨機存取存儲器)。
[0005] 連接部件對邏輯部件間的連接進行切換。連接部件例如為晶體管開關元件。因此, PLD例如對SRAM進行改寫,并通過開關元件的導通/截止對所構成的邏輯電路進行改寫。
[0006] 使存儲元件塊作為連接部件工作的半導體裝置已被公開。
[0007] 現有技術文獻
[0008] 專利文獻
[0009] 專利文獻1:日本特開2003 - 224468號公報
[0010] 專利文獻2:日本特開2003 - 149300號公報
[0011] 專利文獻3:國際公開第07/060763號小冊子
[0012] 專利文獻4:國際公開第09/001426號小冊子
[0013] 專利文獻5:國際公開第07/060738號小冊子
[0014] 專利文獻6:日本特開2009 - 194676號公報
【發明內容】
[0015] 發明要解決的課題
[0016] 在使存儲元件塊作為連接部件工作的半導體裝置中,通過提高作為邏輯部件工作 的存儲元件的比率,能夠減少構成所希望的邏輯電路的存儲元件塊的總量。
[0017] 用于解決課題的手段
[0018] 作為 PLD 之一有 MPLD(Memory - based Programmable Logic Device,基于存儲 器的可編程邏輯器件)。與基于LUT的PLD同樣地,MPLD通過存儲單元裝置實現電路構成。 MPLD在寫入真值表數據的存儲單元裝置作為邏輯部件發揮作用這一點上,與上述基于LUT 的PLD相同,而在也作為LUT之間的連接部件發揮作用這一點上,與具有專用于存儲單元裝 置間的連接的切換電路的基于LUT的PLD不同。但是,由于MPLD將存儲單元裝置作為對邏 輯部件以及/或邏輯部件之間的連接進行切換的連接部件使用,所以,為了改變數據總線, 與基于LUT的PLD同樣地,需要對保存于存儲單元的真值表數據進行改寫。因此,若通過MPLD執行動態的重構,則產生向存儲單元裝置寫入數據的處理,所以處理將延遲。
[0019] 本發明的目的是縮短具有MPLD的半導體裝置的重構時間。
[0020] 用于解決上述課題的實施方式如下所述。
[0021] 本發明的半導體裝置具有:多個可編程邏輯部,該多個可編程邏輯部分別具有多 個存儲單元裝置,且當向所述存儲單元裝置寫入真值表數據時,該多個可編程邏輯部作為 邏輯部件或連接部件工作;高速緩存部,該高速緩存部分別保持作為多個所述真值表數據 的多個構成信息;構成控制部,在所述多個可編程邏輯部中的第一可編程邏輯部通過構成 分支邏輯的第一構成信息而被重構的情況下,該構成控制部通過構成所述分支邏輯的分支 目的地電路的所述第二構成信息對所述多個可編程邏輯部中的第二可編程邏輯部進行重 構,所述構成控制部讀出來自所述高速緩存部的所述多個構成信息,并將其寫入到所述多 個可編程邏輯部。
[0022] 優選的是,所述高速緩存部將表示運算器的真值表數據亦即運算器數據和表示狀 態迀移的真值表數據亦即控制數據分開保持,所述構成控制部從所述高速緩存部分別讀入 所述控制數據和包含通過所述控制數據的狀態迀移表示的運算器的所述運算器數據,并對 所述可編程邏輯部進行重構。
[0023] 優選的是,所述半導體裝置還具有包含所述高速緩存部所保持的控制數據的存儲 部,所述構成控制部從所述存儲部讀出所述高速緩存部保持的控制數據,并將該控制數據 存儲至所述高速緩存部之后,從所述存儲部讀出用于重構所述可編程邏輯部的控制數據, 并將該控制數據存儲至所述高速緩存部。
[0024] 優選的是,存儲于所述存儲部的所述控制數據的真值表數據被壓縮,所述高速緩 存部保持已壓縮的真值表數據,所述構成控制部對所述已壓縮的真值表數據進行解壓縮, 利用該解壓縮后的真值表數據來重構所述可編程邏輯部。
[0025] 優選的是,在所述多個可編程邏輯部中的第一可編程邏輯部通過構成分支邏輯的 第三構成信息被重構,根據利用已預測為所述第三構成信息的分支邏輯的分支目的地電路 的第四構成信息所構成的第二可編程邏輯部的運算結果,所述第四構成信息未構成所述第 三構成信息的分支邏輯的分支目的地電路的情況下,所述構成控制部利用包含所述分支邏 輯的分支目的地的第五構成信息來重構所述第二可編程邏輯部以外的可編程邏輯部。
[0026] 發明效果
[0027] 本發明能夠縮短具有MPLD的半導體裝置的重構時間。
【附圖說明】
[0028] 圖1為表示MPLD的一例的圖。
[0029] 圖2為表示MPLD的存儲動作的一例的圖。
[0030] 圖3為表示MLUT的邏輯動作的一例的圖。
[0031] 圖4為表示MLUT的第一例的圖。
[0032] 圖5為表示單端口存儲元件的一例的圖。
[0033] 圖6為表示作為邏輯部件工作的MLUT的一例的圖。
[0034] 圖7為表示作為邏輯電路工作的MLUT的一例的圖。
[0035] 圖8為表示圖7所示的邏輯電路的真值表的圖。
[0036] 圖9為表示作為連接部件工作的MLUT的一例的圖。
[0037] 圖10為表示圖9所示的連接部件的真值表的圖。
[0038] 圖11為表示通過具有4個AD對的MLUT實現的連接部件的一例的圖。
[0039] 圖12為表示1個MLUT作為邏輯部件以及連接部件工作的一例的圖。
[0040] 圖13為表示圖12所示的邏輯部件以及連接部件的真值表的圖。
[0041] 圖14為表示通過具有4個AD對的MLUT實現的邏輯動作以及連接部件的一例的 圖。
[0042] 圖15為表示由MLUT構成的2位加法器的電路構成的一例的圖。
[0043] 圖16為表示2位加法器動作的真值表的圖。
[0044] 圖17為表示具有7個AD對的MLUT的一例的圖。
[0045] 圖18A為表示具有7個AD對的MLUT的一例的圖。
[0046] 圖18B為表示具有7個AD對的MLUT的平面構造的一例的圖。
[0047] 圖19為表示MLUT的第二例的圖。
[0048] 圖20為表示2端口存儲元件的一例的圖。
[0049] 圖21為表示MLUT的第三例的圖。
[0050] 圖22為表示MLUT的配置的第一例的俯視圖。
[0051] 圖23為表示MLUT的配置的第二例的俯視圖。
[0052] 圖24為表示MLUT間的連線的一例的圖。
[0053] 圖25為表示借助于相鄰的MLUT來連接間隔配置的MLUT的例子的圖。
[0054] 圖26A為表示構成所希望的邏輯電路所需的MLUT數的一例的圖。
[0055] 圖26B為表示構成所希望的邏輯電路所需的MLUT數的一例的圖。
[0056] 圖26C為表示構成所希望的邏輯電路所需的MLUT數的一例的圖。
[0057] 圖26D為表示構成所希望的邏輯電路所需的MLUT數的一例的圖。
[0058] 圖27為表示密排配置構造和非密排配置構造的圖。
[0059] 圖28為表示密排配置構造中的AD對的數量的一例的圖。
[0060] 圖29為表示MLUT的AD對的連線構造的一例的圖。
[0061] 圖30為表示MLUT的AD對的連線構造的另一例的圖。
[0062] 圖31為表示MLUT的AD對的連線構造的其他例子的圖。
[0063] 圖32為表示MLUT的AD對的連線構造的其他例子的圖。
[0064] 圖33為表示MLUT的AD對的連線構造的其他例子的圖。
[0065] 圖34為表示具有MLUT的MLUT塊的一例的圖。
[0066] 圖35為表示具有15行X 30列的MLUT的MLUT區域中的近距離布線圖案的配置 的一例的圖。
[0067] 圖36為表示具有15行X 30列的MLUT的MLUT區域中的第一間隔布線圖案的配 置的圖。
[0068] 圖37為表示具有15行X30列的MLUT的MLUT區域中的第二間隔布線圖案的配 置的圖。
[0069] 圖38為表示具有15行X 30列的MLUT的MLUT區域中的第三間隔布線圖案的配 置的圖。
[0070] 圖39為表示具有15行X 30列的MLUT的MLUT區域中的第四間隔布線圖案的配 置的圖。
[0071] 圖40為表示具有15行X 30列的MLUT的MLUT區域中的第五間隔布線圖案的配 置的圖。
[0072] 圖41為表示搭載了MPLD的半導體裝置的布局塊的一例的圖。
[0073] 圖42為表示執行MPLD的布局/布線的信息處理裝置的一例的圖。
[0074] 圖43為表示信息處理裝置生成用于對MPLD進行布局/布線的位流數據的流程的 一例的圖。
[0075] 圖44為表示對搭載于圖41所示的半導體裝置的MPLD進行部分重構的流程的一 例的圖。
[0076] 圖45表示通過蝶形運算進行8點離散傅立葉變換時的算法的一例。
[0077] 圖46為表不搭載了MPLD的半導體裝置的一例的圖。
[0078] 圖47為概略地表示進行運算處理部與MPLD之間的數據輸入輸出的輸入輸出部的 一例的圖。
[0079] 圖48為表示進行運算處理部與MPLD之間的數據輸入輸出的輸入輸出部的另一例 的圖。
[0080] 圖49為表示同時進行邏輯動作和存儲動作的MPLD以及運算處理部的一例的圖。
[0081] 圖50為表示多個MPLD以及運算處理部的一例的圖。
[0082] 圖51為表示搭載了MPLD的半導體裝置的其他例子中的布局塊的一例的圖。
[0083] 圖52為表示搭載了MPLD的半導體裝置的其他例子中的布局構造的一例的圖。
[0084] 圖53為表不動作合成的一例的圖。
[0085] 圖54為表示構成邏輯電路x=(a+b)*(b+c)的⑶FG的例子的圖。
[0086] 圖55為表示通過速度優先調度對圖54所示的⑶FG進行調度后的結果的圖。
[0087] 圖56為表示通過硬件數量優先調度對圖54所示的CDFG進行調度后的結果的圖。
[0088] 圖57表示執行被區域劃分成第一邏輯塊和第二邏輯塊這兩個邏輯塊的邏輯電路 的一例。
[0089] 圖58為表示進行資源分配時對邏輯電路進行區域劃分的一例的圖。
[0090] 圖59為表示向MLUT寫入邏輯電路信息等信息的順序的流程圖的一例。
[0091] 圖60為表示搭載了MPLD的半導體裝置的其他例子中的布局構造的圖。
[0092] 圖61為表示搭載了MPLD的半導體裝置的其他例子中的布局構造的圖。
[0093] 圖62為表示半導體裝置的布線層的一例的剖面圖。
[0094] 圖63為表示對搭載于半導體裝置的MPLD進行部分重構的流程的一例的圖。
[0095] 圖64為表示DES的計算算法的流程的一例的圖。
[0096] 圖65為表示F函數的算法的流程的圖。
[0097] 圖66為表不半導體裝置的一例的框圖。
[0098] 圖67為表示主存儲器的存儲器映射的一例的圖。
[0099] 圖68為構成控制部的詳細框圖。
[0100] 圖69為表示由MPLD構成的數據總線塊以及狀態機的一例的圖。
[0101] 圖70為表示關于半導體裝置的預測執行的處理流程的一例的圖。
[0102] 圖71為關于半導體裝置的高速緩存控制的處理流程。
【具體實施方式】
[0103] 以下,依次分別說明〔1〕MPLD、〔2〕MLUT、〔3〕MLUT的構造、〔4〕搭載了 1個MPLD 的半導體裝置、〔5〕搭載了 1個MPLD和運算處理部的半導體裝置、〔6〕搭載了 2個MPLD和 運算處理部的半導體裝置、〔7〕適于動態重構的半導體裝置的實施例。以下說明的MPLD〔 1〕具有多個MLUT〔2〕,MPLD〔1〕與運算處理部組合構成半導體裝置〔4〕或〔5〕或〔6〕或〔 7〕。
[0104] (1) MPLD
[0105] 圖1為表示半導體裝置的一例的圖。圖1所示的20為作為半導體裝置的 MPLD(Memory - based Programmable Logic Device,基于存儲器的可編程邏輯器件)。 MPLD20具有多個作為存儲元件塊的MLUT (Multi Look - Up - Table,多查找表)30,并具有 MLUT譯碼器12。此外,如后面所述,MPLD20作為與運算處理裝置連接的邏輯部工作。
[0106] MPLD20包含多個存儲元件。通過在存儲元件中分別存儲構成真值表的數據, MPLD20進行作為邏輯部件、或連接部件、或邏輯部件及連接部件而工作的邏輯動作。
[0107] MPLD20還進行存儲動作。所謂存儲動作是指向包含于MLUT30的存儲元件寫入數 據或從中讀出數據。由此,MPLD20能夠作為主存儲裝置或高速緩沖存儲器而工作。
[0108] 向MLUT30寫入數據也是改寫真值表數據,因此,存儲動作使得真值表數據發生重 構。另外,將重構中的、改寫存儲于MPLD內的特定的1個或多個MLUT、或構成MLUT的特定 的1個或多個存儲元件的真值表數據的情況稱為"部分重構"。
[0109] 在存儲動作中使用MPLD地址、存儲動作用地址MA、寫入數據WD以及讀出數據RD 的任一個信號,圖1中示出這些信號和使這些信號通過的連線。此外,在邏輯動作中使用邏 輯動作用地址LA以及邏輯動作用數據LD,圖1中示出這些信號和使這些信號通過的連線。 另外,存儲動作用地址MA為提供給包含于MPLD20的各MLUT的存儲動作用的地址。MPLD 地址為確定包含于MPLD20內的1個MLUT的地址,且為確定要提供其存儲動作用地址MA的 MLUT的地址信號。
[0110] 〔 1. 1〕MPLD的存儲動作
[0111] 圖2為表示MPLD的存儲動作的一例的圖。MPLD20在存儲動作中使用由實線表示 的存儲動作用地址、MLUT地址、寫入數據WD以及讀出數據RD的任一個信號,而不使用由虛 線表示的邏輯動作用地址LA以及邏輯動作用數據LD。另外,存儲動作用地址、MLUT地址以 及寫入數據WD例如由位于MPLD20外部的運算處理裝置輸出,讀出數據WD向運算處理裝置 輸出。
[0112] 在存儲動作中,MPLD20接收作為確定存儲元件的地址的存儲動作用地址及MLUT 地址,并在寫入時接收寫入數據WD,在讀出時輸出讀出數據LD。
[0113] MLUT地址為確定包含于MPLD20內的1個MLUT的地址。MLUT地址經由m根信號 線被輸出至MPLD20。另外,m為用于確定MLUT的選擇地址信號線的數量。通過m根信號線 能夠確定2的m次方的MLUT。MLUT譯碼器12借助于m根信號線接收MLUT地址,并對MLUT 地址進行譯碼,選擇并確定作為存儲動作對象的MLUT30。存儲動作用地址經由n根信號線, 通過后面使用圖10記述的地址譯碼器而被譯碼,從而選擇作為存儲動作對象的存儲單元。
[0114] 另外,MPLD20例如借助于所有n根信號線接收MLUT地址、寫入數據WD以及讀出 數據LD。另外,如后面使用圖4所述那樣,n為MLUT的存儲動作用或邏輯動作用的選擇地 址信號線的數量。MPLD20借助于n根信號線,向各MLUT提供MLUT地址、寫入數據以及讀出 數據。另外,存儲動作用地址MA、寫入數據WD以及讀出數據RD的詳細內容將和MLUT的例 子一同,在后面使用圖4、圖19以及圖21加以記述。
[0115] 〔1. 2〕MPLD的邏輯動作
[0116] 圖3為表示MPLD20的邏輯動作的一例的圖。圖3中,在MPLD20的邏輯動作中,使 用由實線表示的邏輯動作用地址LA以及邏輯動作用數據LD。
[0117] 在MPLD20的邏輯動作中,邏輯動作用地址LA由外部裝置輸出,并被作為由MLUT30 的真值表構成的邏輯電路的輸入信號使用。而且,邏輯動作用數據LD為上述邏輯電路的輸 出信號,并作為邏輯電路的輸出信號被輸出至外部裝置。
[0118] 多個MLUT中的、配置于MPLD20的外延的MLUT作為從MPLD20的外部的裝置接收 作為邏輯動作用的數據的邏輯動作用地址LA并輸出邏輯動作用數據LD的MLUT工作。例 如,例如,圖1所示的MLUT30a、30b從半導體裝置100的外部接收邏輯動作用地址LA,并向 位于周圍的其他MLUT30d輸出邏輯動作用數據LD。此外,圖1所示的MLUT30e、30f從其他 MLUT30c、30d接收邏輯動作用地址LA,并向MPLD20的外部輸出邏輯動作用數據LD。
[0119]MLUT的邏輯動作用地址LA的地址線與相鄰的MLUT的邏輯動作用數據LD的數據 線連接,例如,MLUT30C將從MLUT30a輸出的邏輯動作用數據作為邏輯動作用地址接收。這 樣,MLUT的邏輯動作用地址或邏輯動作用數據是通過與位于周圍的MLUT之間的輸入輸出 獲得的,這一點與各個MLUT單獨進行連接的MLUT地址不同。
[0120] 通過MPLD20的邏輯動作實現的邏輯通過存儲于MLUT30的真值表數據實現。一些 MLUT30作為身為AND電路、加法器等組合電路的邏輯部件工作。其他的MLUT作為將實現組 合電路的MLUT30間進行連接的連接部件工作。用于實現邏輯部件以及連接部件的真值表 數據的改寫由通過上述存儲動作進行的重構來完成。
[0121] 〔2〕MLUT
[0122] 以下,對MLUT加以說明。
[0123] 〔2. 1〕MLUT 的第一例
[0124] 圖4為表示MLUT的第一例的圖。圖4所示的MLUT30具有地址切換電路10a、地址 譯碼器9、存儲元件40、輸出數據切換電路10b。在動作切換信號表示邏輯動作的情況下,圖 10所示的MLUT30以根據邏輯動作用地址LA來輸出邏輯動作用數據LD的方式工作。此外, 在動作切換信號表示存儲動作的情況下,MLUT30以根據存儲動作用地址來接收寫入數據或 輸出讀出數據的方式工作。
[0125] 地址切換電路10a將輸入存儲動作用地址MA的n根存儲動作用地址信號線、輸入 邏輯動作用地址LA的n根邏輯動作用地址輸入信號線和輸入動作切換信號的動作切換信 號線連接起來。地址切換電路l〇a以基于動作切換信號來向n根選擇地址信號線輸出存儲 動作用地址MA或邏輯動作用地址LA的任一個的方式工作。像這樣,地址切換電路10a選 擇地址信號線是因為存儲元件40為接受讀出動作和寫入動作的任一個動作的單端口型存 儲元件。
[0126] 圖4所示的地址譯碼器9對由地址切換電路10a提供的從n根地址信號線接收的 選擇地址信號進行譯碼,并向2的n次方根的字線輸出譯碼信號。
[0127] nX 2n個存儲元件配置于2的n次方根字線、n根寫入數據線和n個輸出位線的連 接部分。存儲元件的詳細例將在后面使用圖5加以記述。
[0128] 當從n根輸出位線接收到信號時,輸出數據切換電路10b以根據所輸入的動作切 換信號來向n根讀出數據信號線輸出從存儲元件讀出的數據,或向邏輯動作用信號線輸出 讀出數據的方式工作。
[0129] 〔2. 2〕MLUT的存儲元件
[0130] 圖5為表示單端口型存儲元件的一例的圖。圖5所示的單端口型存儲元件為 SRAM,其能夠作為圖4所示的存儲元件使用。圖5所示的單端口 SRAM40具有第一以及第二 pMOS (positive channel Metal Oxide Semiconductor,p 溝道金屬氧化物半導體場效應) 晶體管 161、162 和第一?第四 nMOS (negative channel MOS,n溝道M0S)晶體管 163 ?166〇
[0131] 第一 pMOS晶體管161的源極和第二pMOS晶體管162的源極與VDD (電源電壓端) 連接。第一 pMOS晶體管161的漏極與第一 nMOS晶體管163的源極、第二pMOS晶體管的柵 極162、第二nMOS晶體管的柵極504、第三nMOS晶體管505的源極連接。第一 pMOS晶體管 161的柵極與第一 nMOS晶體管163的柵極、第二pMOS晶體管162的漏極、第二nMOS晶體管 504的漏極、第四nMOS晶體管506的源極連接。第一 nMOS晶體管163的漏極和第二nMOS 晶體管504的漏極與VSS (接地電壓端)連接。
[0132] 第三nMOS晶體管165的漏極與第一位線BL連接。第三nMOS晶體管165的柵極 與字線WL連接。第四nMOS晶體管16