欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

半導(dǎo)體裝置的制作方法

文檔序號:7525247閱讀:168來源:國知局
專利名稱:半導(dǎo)體裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及半導(dǎo)體裝置。
背景技術(shù)
PLD (Programmable Logic Device,可編程邏輯器件)廣為人知。PLD為可對所構(gòu)成的邏輯電路進(jìn)行變更的半導(dǎo)體裝置,并具有多個邏輯部件以及多個連接部件。
邏輯部件作為組合電路或順序電路工作。邏輯部件例如為由構(gòu)成真值表的多個存儲元件構(gòu)成的存儲元件塊。多個存儲元件例如為SRAM (Static Random AccessMemory,靜態(tài)隨機(jī)存取存儲器)。
連接部件對邏輯部件間的連接進(jìn)行切換。連接部件例如為晶體管開關(guān)元件。因此, PLD例如對SRAM進(jìn)行改寫,并通過開關(guān)元件的導(dǎo)通/截止對所構(gòu)成的邏輯電路進(jìn)行改寫。
使存儲元件塊作為連接部件工作的半導(dǎo)體裝置已被公開。
現(xiàn)有技術(shù)文獻(xiàn)
專利文獻(xiàn)
專利文獻(xiàn)I日本特開2003—224468號公報(bào)
專利文獻(xiàn)2日本特開2003—149300號公報(bào)·
專利文獻(xiàn)3國際公開第07/060763號小冊子
專利文獻(xiàn)4國際公開第09/001426號小冊子
專利文獻(xiàn)5國際公開第07/060738號小冊子
專利文獻(xiàn)6日本特開2009—194676號公報(bào)發(fā)明內(nèi)容
發(fā)明要解決的課題
在使存儲元件塊作為連接部件工作的半導(dǎo)體裝置中,通過提高作為邏輯部件工作的存儲元件的比率,能夠減少構(gòu)成所希望的邏輯電路的存儲元件塊的總量。
用于解決課題的手段
一方面,本發(fā)明的目的在于減少構(gòu)成所希望的邏輯電路的存儲元件塊的總量。
用于解決上述課題的實(shí)施方式如下述的第一組的(I) (15)中所述。
(I) 一種半導(dǎo)體裝置,其特征在于,包括N (N為2以上的整數(shù))根地址線、N根數(shù)據(jù)線和多個存儲部,
各存儲部具有地址譯碼器和多個存儲元件,
該地址譯碼器對從上述N根地址線輸入的地址進(jìn)行譯碼并向字線輸出字選擇信號,
該多個存儲元件與上述字線和數(shù)據(jù)線連接,分別存儲構(gòu)成真值表的數(shù)據(jù),并根據(jù)從上述字線輸入的上述字選擇信號,向上述數(shù)據(jù)線輸出上述數(shù)據(jù)或從上述數(shù)據(jù)線輸入上述數(shù)據(jù),7
上述存儲部的N根地址線分別與上述存儲部的其他N個存儲部的數(shù)據(jù)線連接,并且上述存儲部的N根數(shù)據(jù)線分別與上述存儲部的其他N個存儲部的地址線連接。
(2)根據(jù)(I)中所述的半導(dǎo)體裝置,其中,上述N根地址線和上述N根數(shù)據(jù)線分別通過I根地址線和I根數(shù)據(jù)線形成一對。
(3)根據(jù)(I)或(2)中所述的半導(dǎo)體裝置,其中,還具有對上述多個存儲部進(jìn)行選擇的存儲部譯碼器。
(4)根據(jù)(I) (3)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,具有順序電路,上述多個存儲部將上述N根數(shù)據(jù)線中的至少I根數(shù)據(jù)線與上述順序電路的信號輸入線連接,并將上述 N根地址線中的至少I根地址線與上述順序電路的信號輸出線連接。
(5)根據(jù)(I) (4)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,上述N為6 8的整數(shù)。
(6)根據(jù)(I) (5)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述多個存儲部將上述N根數(shù)據(jù)線中的6根數(shù)據(jù)線分別與相鄰的其他6個存儲部的I根數(shù)據(jù)線連接,并將上述N根地址線中的6根地址線分別與上述相鄰的其他6個存儲部的I根數(shù)據(jù)線連接。
(7)根據(jù)權(quán)利要求(I) (6)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述地址譯碼器分為行譯碼器和列譯碼器,
上述行譯碼器對從M (M為5以下的整數(shù),L為N — 5的整數(shù))根地址線輸入的地址進(jìn)行譯碼,并向上述字線輸出字選擇信號,
上述列譯碼器對從L根地址線輸入的地址進(jìn)行譯碼,并輸出對從上述多個存儲元件輸出的N根數(shù)據(jù)線進(jìn)行選擇的數(shù)據(jù)選擇信號。
(8)根據(jù)(I) (7)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
與上述多個存儲部中的至少I個存儲部相鄰的其他N個存儲部中的2個存儲部自上述至少I個存儲部沿著第一方向隔開第一距離而配置,
上述相鄰的其他N個存儲部中的2個存儲部自上述至少I個存儲部,沿著與上述第一方向交差的第二方向隔開第二距離而配置,
上述相鄰的其他N個存儲部中的2個存儲部自上述至少I個存儲部,沿著與上述第一方向和上述第二方向交差的第三方向隔開第三距離而配置,
上述第一 第三距離以第一距離、第二距離、第三距離的順序變長。
(9)根據(jù)(I) (8)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述第一方向與上述第二方向彼此正交。
(10)根據(jù)(I) (9)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述多個存儲部的至少I個存儲部將I根地址線與相鄰的其他存儲部以外的存儲部的數(shù)據(jù)線連接。
(11)根據(jù)(6) (10)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述多個存儲部的任一個自上述多個存儲部中的至少I個存儲部,沿著上述第一 第三方向的任一方向配置,
上述多個存儲部的至少I個存儲部將I根地址線連接到配置于上述第一 第三距離的任一個的5倍的位置上的存儲部的數(shù)據(jù)線。
(12)根據(jù)(I) (11)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述多個存儲部被作為可重構(gòu)的邏輯部件以及/或連接部件來使用。
(13)根據(jù)(I) (12)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
還具有與存儲構(gòu)成上述真值表的數(shù)據(jù)的存儲裝置連接的輸入輸出部。
( 14)根據(jù)(13)所述的半導(dǎo)體裝置,其中,
還具有存儲構(gòu)成上述真值表的數(shù)據(jù)的存儲裝置。
(15)根據(jù)(I) (14)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
物理布線層數(shù)為4層以下。
此外,使存儲元件塊作為連接部件工作的半導(dǎo)體裝置可與其他裝置進(jìn)行數(shù)據(jù)的輸入輸出。但是,當(dāng)與其他裝置之間的數(shù)據(jù)輸入輸出方式未定時,上述半導(dǎo)體裝置不能與其他裝置進(jìn)行數(shù)據(jù)的輸入輸出。
在另一側(cè)面,本發(fā)明的目的在于進(jìn)行半導(dǎo)體裝置與運(yùn)算處理裝置之間的數(shù)據(jù)輸入輸出。
用于解決上述課題的實(shí)施方式如下述的第二組的(I) (11)中所述。
(I) 一種半導(dǎo)體裝置,其特征在于,包括
分別具有多個存儲部的第一以及第二邏輯部,各存儲部具有地址譯碼器和多個存儲元件,該地址譯碼器對從第一地址線輸入的存儲動作用地址或從第二地址線輸入的邏輯動作用地址進(jìn)行譯碼,并向字線輸出字選擇信號,該多個存儲元件與上述字線和數(shù)據(jù)線連接,分別存儲構(gòu)成對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表的數(shù)據(jù),并根據(jù)從上述字線輸入的上述字選擇信號與輸入輸出上述數(shù)據(jù)的數(shù)據(jù)線連接;和
運(yùn)算處理部,該運(yùn)算處理部具有與上述第一邏輯部所具有的存儲部的第一地址線及數(shù)據(jù)線連接的第一輸入輸出部;與上述第二邏輯部所具有的存儲部的第二地址線及數(shù)據(jù)線連接的第二輸入輸出部;以及對上述第一輸入輸出部進(jìn)行輸出存儲動作用地址以及數(shù)據(jù)的控制,并對上述第二輸入輸出部進(jìn)行輸出邏輯動作用地址且接收數(shù)據(jù)的控制的控制部。
(2)根據(jù)(I)所述的半導(dǎo)體裝置,其中,
包含于第一邏輯部或第二邏輯部的上述存儲部的邏輯動作用地址線分別與上述存儲部的其他存儲部的數(shù)據(jù)線連接,并且上述存儲部的數(shù)據(jù)線分別與上述存儲部的其他存儲部的邏輯動作用地址線連接。
(3)根據(jù)(I)或(2)所述的半導(dǎo)體裝置,其中,
包含于上述第一邏輯部以及上述第二邏輯部的上述多個存儲部是可重構(gòu)的。
(4)根據(jù)(I) (3)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述第一邏輯部以及上述第二邏輯部分別具有對上述多個存儲部進(jìn)行選擇的存儲部譯碼器。
(5)根據(jù)(I) (4)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
還具有與存儲構(gòu)成上述真值表的數(shù)據(jù)的存儲裝置連接的輸入輸出部。
(6)根據(jù)(I) (5)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
還具有存儲構(gòu)成上述真值表的數(shù)據(jù)的存儲裝置。
(7)根據(jù)(I) (6)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
物理布線層數(shù)為4層以下。
(8)根據(jù)(I) (7)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述第一邏輯部所具有的上述存儲部的數(shù)量與上述第二邏輯部所具有的上述存儲部的數(shù)量是相同的。
(9)根據(jù)(I) (8)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述地址譯碼器分為行譯碼器和列譯碼器,
上述行譯碼器對從M (M為5以下的整數(shù),L為N — 5的整數(shù))根地址線輸入的地址進(jìn)行譯碼,并向上述字線輸出字選擇信號,
上述列譯碼器對從L根地址線輸入的地址進(jìn)行譯碼,并輸出對從上述多個存儲元件輸出的N根數(shù)據(jù)線進(jìn)行選擇的數(shù)據(jù)選擇信號。
(10) 一種使用了運(yùn)算處理部的半導(dǎo)體裝置的控制方法,其特征在于,包括
上述運(yùn)算處理部向第一邏輯部輸出對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表數(shù)據(jù)的步驟,其中上述第一邏輯部具有多個存儲部,各存儲部具有多個存儲元件;
將上述對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表數(shù)據(jù)存儲于上述第一邏輯部的存儲部的步驟;
上述運(yùn)算處理部向第二邏輯部輸出邏輯動作用地址的步驟,其中上述第一邏輯部具有多個存儲部,各存儲部具有多個存儲元件;
上述第二邏輯部的存儲部從由上述邏輯動作用地址確定的存儲元件輸出數(shù)據(jù)的步驟;
上述運(yùn)算處理裝置從上述第二邏輯部接收數(shù)據(jù)的步驟。
( 11)根據(jù)(10 )所述的控制方法,其中,
上述運(yùn)算處理裝置包含于上述半導(dǎo)體裝置。
用于解決上述課題的實(shí)施方式如下述的第三組的(I) (11)中所述。
(I) 一種半導(dǎo)體裝置,其特征在于,包括
對數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算處理部;和
作為具有多個存儲部以及輸入輸出部的邏輯部的運(yùn)算處理部,各存儲部具有地址譯碼器和多個存儲元件,該地址譯碼器對從地址線輸入的地址進(jìn)行譯碼,并向上述字線輸出字選擇信號,該多個存儲元件與數(shù)據(jù)線和字線連接,分別存儲構(gòu)成對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表的數(shù)據(jù),并根據(jù)從上述字線輸入的上述字選擇信號與輸入輸出上述數(shù)據(jù)的數(shù)據(jù)線連接;
上述輸入輸出部將上述運(yùn)算處理部的至少I個輸出信號線和上述地址線的至少I 個進(jìn)行連接,并將上述運(yùn)算處理部的至少I個輸入信號線和上述數(shù)據(jù)線的至少I個進(jìn)行連接。
(2)根據(jù)(I)所述的半導(dǎo)體裝置,其中,
上述存儲部的地址線分別與上述存儲部的其他存儲部的數(shù)據(jù)線連接,并且上述存儲部的數(shù)據(jù)線分別與上述存儲部的其他存儲部的地址線連接。
(3)根據(jù)(I)或(2)所述的半導(dǎo)體裝置,其中,
上述多個存儲部是可重構(gòu)的。
(4)根據(jù)(I) (3)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述邏輯部還具有對上述多個存儲部進(jìn)行選擇的存儲部譯碼器。
(5)根據(jù)(I) (4)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
還具有與存儲構(gòu)成上述真值表的數(shù)據(jù)的存儲裝置連接的輸入輸出部。
(6)根據(jù)(I) (5)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
還具有存儲構(gòu)成上述真值表的數(shù)據(jù)的存儲裝置。
(7)根據(jù)(I) (6)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
物理布線層數(shù)為4層以下。
( 8 )根據(jù)(I) (7 )的任一項(xiàng)所述的半導(dǎo)體裝置,其中,
上述地址譯碼器分為行譯碼器和列譯碼器,
上述行譯碼器對從M (M為5以下的整數(shù),L為N — 5的整數(shù))根地址線輸入的地址進(jìn)行譯碼,并向上述字線輸出字選擇信號,
上述列譯碼器對從L根地址線輸入的地址進(jìn)行譯碼,并輸出對從上述多個存儲元件輸出的N根數(shù)據(jù)線進(jìn)行選擇的數(shù)據(jù)選擇信號。
(9) 一種使用了運(yùn)算處理部的半導(dǎo)體裝置的控制方法,其特征在于,包括
上述運(yùn)算處理部向包含于上述運(yùn)算處理部的邏輯部輸出地址的步驟,其中,上述邏輯部具有多個存儲元件,各存儲元件分別存儲構(gòu)成對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表的數(shù)據(jù);
上述邏輯部從與上述運(yùn)算處理部的至少I個輸出信號線連接的至少I個地址線接收上述地址的步驟;
上述邏輯部從由上述地址確定的存儲元件輸出數(shù)據(jù)的步驟;
上述邏輯部借助于與上述運(yùn)算處理部的至少I個輸入信號線連接的至少I個數(shù)據(jù)線,向上述運(yùn)算處理部輸出上述數(shù)據(jù)的步驟
(10)根據(jù)(9)所述的控制方法,其中,
上述邏輯部從與上述邏輯部內(nèi)的存儲部相連的至少I個數(shù)據(jù)線向上述運(yùn)算處理部的至少I個輸入信號線輸出上述讀出的數(shù)據(jù)。
(11)根據(jù)(9 )或(10 )所述的控制方法,其中,
上述運(yùn)算處理裝置包含于上述半導(dǎo)體裝置。
此外,作為PLD 之一有 MPUXMemory — based Programmable Logic Device,基于存儲器的可編程邏輯器件)。與基于LUT的PLD同樣地,MPLD通過存儲單元裝置實(shí)現(xiàn)電路構(gòu)成。MPLD在寫入真值表數(shù)據(jù)的存儲單元裝置作為邏輯部件發(fā)揮作用這一點(diǎn)上,與上述基于 LUT的PLD相同,而在也作為LUT之間的連接部件發(fā)揮作用這一點(diǎn)上,與具有專用于存儲單元裝置間的連接的切換電路的基于LUT的PLD不同。但是,由于MPLD將存儲單元裝置作為對邏輯部件以及/或邏輯部件之間的連接進(jìn)行切換的連接部件使用,所以,為了改變數(shù)據(jù)總線,與基于LUT的PLD同樣地,需要對保存于存儲單元的真值表數(shù)據(jù)進(jìn)行改寫。因此,若通過MPLD執(zhí)行動態(tài)的重構(gòu),則產(chǎn)生向存儲單元裝置寫入數(shù)據(jù)的處理,所以處理將延遲。
而且,在另一個側(cè)面,本發(fā)明的目的是縮短具有MPLD的半導(dǎo)體裝置的重構(gòu)時間。
用于解決上述課題的實(shí)施方式如下述的第四組的(I) (5)中所述。
(I) 一種半導(dǎo)體裝置,其特征在于,包括
多個可編程邏輯部,該多個可編程邏輯部分別具有多個存儲單元裝置,且當(dāng)向上述存儲單元裝置寫入真值表數(shù)據(jù)時,該多個可編程邏輯部作為邏輯部件或連接部件工作;
高速緩存部,該高速緩存部分別保持作為多個上述真值表數(shù)據(jù)的多個構(gòu)成信息;構(gòu)成控制部,在上述多個可編程邏輯部中的第一可編程邏輯部通過構(gòu)成分支邏輯 的第一構(gòu)成信息而被重構(gòu)的情況下,在執(zhí)行上述分支邏輯前,該構(gòu)成控制部通過構(gòu)成上述 分支邏輯的分支目的地電路的上述第二構(gòu)成信息,對上述多個可編程邏輯部中的第二可編 程邏輯部進(jìn)行預(yù)測重構(gòu)。(2)根據(jù)(1)所述的半導(dǎo)體裝置,其特征在于,上述高速緩存部將表示運(yùn)算器的真值表數(shù)據(jù)即運(yùn)算器數(shù)據(jù)和表示狀態(tài)遷移的真 值表數(shù)據(jù)即控制數(shù)據(jù)分開保持,上述構(gòu)成控制部從上述高速緩存部分別讀入上述控制數(shù)據(jù)和包含通過上述控制 數(shù)據(jù)的狀態(tài)遷移表示的運(yùn)算器的上述運(yùn)算器數(shù)據(jù),并對上述可編程邏輯部進(jìn)行重構(gòu)。( 3 )根據(jù)(1)或(2 )所述的半導(dǎo)體裝置,其特征在于,還具有包含上述高速緩存部所保持的控制數(shù)據(jù)的存儲部,上述構(gòu)成控制部接著上述高速緩存部所保持的控制數(shù)據(jù),從上述存儲部讀出用于 重構(gòu)上述可編程邏輯部的控制數(shù)據(jù),并將該控制數(shù)據(jù)存儲至上述高速緩存部。(4)根據(jù)(1) (3)的任一項(xiàng)所述的半導(dǎo)體裝置,其特征在于,存儲于上述存儲部的上述控制數(shù)據(jù)的真值表數(shù)據(jù)被壓縮,上述高速緩存部保持已壓縮的真值表數(shù)據(jù),上述構(gòu)成控制部對上述已壓縮的真值表數(shù)據(jù)進(jìn)行解壓縮,利用該解壓縮后的真值 表數(shù)據(jù)來重構(gòu)上述可編程邏輯部。( 5)根據(jù)(1) (4)的任一項(xiàng)所述的半導(dǎo)體裝置,其中,在由上述第二構(gòu)成信息構(gòu)成的第二可編程邏輯部的運(yùn)算結(jié)果表示上述第二構(gòu)成 信息不是上述第一構(gòu)成信息的分支邏輯的分支目的地電路的情況下,上述構(gòu)成控制部利用 包含上述分支邏輯的分支目的地的第三構(gòu)成信息重構(gòu)上述第二可編程邏輯部以外的可編 程邏輯部。發(fā)明效果第一方面,本發(fā)明能夠減少構(gòu)成所希望的邏輯電路的存儲元件塊的總量。第二方面,本發(fā)明能夠進(jìn)行半導(dǎo)體裝置與運(yùn)算處理裝置之間的數(shù)據(jù)的輸入輸出。第三方面,本發(fā)明能夠縮短具有MPLD的半導(dǎo)體裝置的重構(gòu)時間。


圖1為表示MPLD的一例的圖。圖2為表示MPLD的存儲動作的一例的圖。圖3為表示MLUT的邏輯動作的一例的圖。圖4為表示MLUT的第一例的圖。圖5為表示單端口存儲元件的一例的圖。圖6為表示作為邏輯部件工作的MLUT的一例的圖。圖7為表示作為邏輯電路工作的MLUT的一例的圖。圖8為表不圖7所不的邏輯電路的真值表的圖。圖9為表示作為連接部件工作的MLUT的一例的圖。
圖10為表示圖9所示的連接部件的真值表的圖。圖11為表示通過具有4個AD對的MLUT實(shí)現(xiàn)的連接部件的一例的圖。圖12為表示I個MLUT作為邏輯部件以及連接部件工作的一例的圖。圖13為表示圖12所示的邏輯部件以及連接部件的真值表的圖。圖14為表示通過具有4個AD對的MLUT實(shí)現(xiàn)的邏輯動作以及連接部件的一例的 圖。圖15為表示由MLUT構(gòu)成的2位加法器的電路構(gòu)成的一例的圖。圖16為表不2位加法器動作的真值表的圖。圖17為表示具有7個AD對的MLUT的一例的圖。圖18A為表示具有7個AD對的MLUT的一例的圖。圖18B為表示具有7個AD對的MLUT的平面構(gòu)造的一例的圖。圖19為表示MLUT的第二例的圖。圖20為表示2端口存儲元件的一例的圖。圖21為表示MLUT的第三例的圖。圖22為表不MLUT的配置的第一例的俯視圖。圖23為表示MLUT的配置的第二例的俯視圖。圖24為表示MLUT間的連線的一例的圖。圖25為表示借助于相鄰的MLUT來連接間隔配置的MLUT的例子的圖。圖26A為表示構(gòu)成所希望的邏輯電路所需的MLUT數(shù)的一例的圖。圖26B為表示構(gòu)成所希望的邏輯電路所需的MLUT數(shù)的一例的圖。圖26C為表示構(gòu)成所希望的邏輯電路所需的MLUT數(shù)的一例的圖。圖26D為表示構(gòu)成所希望的邏輯電路所需的MLUT數(shù)的一例的圖。圖27為表示密排配置構(gòu)造和非密排配置構(gòu)造的圖。圖28為表示密排配置構(gòu)造中的AD對的數(shù)量的一例的圖。圖29為表示MLUT的AD對的連線構(gòu)造的一例的圖。圖30為表示MLUT的AD對的連線構(gòu)造的另一例的圖。圖31為表示MLUT的AD對的連線構(gòu)造的其他例子的圖。圖32為表示MLUT的AD對的連線構(gòu)造的其他例子的圖。圖33為表示MLUT的AD對的連線構(gòu)造的其他例子的圖。圖34為表示具有MLUT的MLUT塊的一例的圖。圖35為表示具有15行X 30列的MLUT的MLUT區(qū)域中的近距離布線圖案的配置 的一例的圖。圖36為表示具有15行X30列的MLUT的MLUT區(qū)域中的第一間隔布線圖案的配 置的圖。圖37為表示具有15行X30列的MLUT的MLUT區(qū)域中的第二間隔布線圖案的配 置的圖。圖38為表示具有15行X30列的MLUT的MLUT區(qū)域中的第三間隔布線圖案的配 置的圖。圖39為表示具有15行X30列的MLUT的MLUT區(qū)域中的第四間隔布線圖案的配置的圖。
圖40為表示具有15行X30列的MLUT的MLUT區(qū)域中的第五間隔布線圖案的配置的圖。
圖41為表示搭載了 MPLD的半導(dǎo)體裝置的布局塊的一例的圖。
圖42為表示執(zhí)行MPLD的布局/布線的信息處理裝置的一例的圖。
圖43為表示信息處理裝置生成用于對MPLD進(jìn)行布局/布線的位流數(shù)據(jù)的流程的一例的圖。
圖44為表示對搭載于圖41所示的半導(dǎo)體裝置的MPLD進(jìn)行部分重構(gòu)的流程的一例的圖。
圖45表示通過蝶形運(yùn)算進(jìn)行8點(diǎn)離散傅立葉變換時的算法的一例。
圖46為表示搭載了 MPLD的半導(dǎo)體裝置的一例的圖。
圖47為概略地表示進(jìn)行運(yùn)算處理部與MPLD之間的數(shù)據(jù)輸入輸出的輸入輸出部的一例的圖。
圖48為表示進(jìn)行運(yùn)算處理部與MPLD之間的數(shù)據(jù)輸入輸出的輸入輸出部的另一例的圖。
圖49為表示同時進(jìn)行邏輯動作和存儲動作的MPLD以及運(yùn)算處理部的一例的圖。
圖50為表示多個MPLD以及運(yùn)算處理部的一例的圖。
圖51為表示搭載了 MPLD的半導(dǎo)體裝置的其他例子中的布局塊的一例的圖。
圖52為表示搭載了 MPLD的半導(dǎo)體裝置的其他例子中的布局構(gòu)造的一例的圖。
圖53為表示動作合成的一例的圖。
圖54為表示構(gòu)成邏輯電路X = (a + b) * (b + c)的⑶FG的例子的圖。
圖55為表示通過速度優(yōu)先調(diào)度對圖54所示的CDFG進(jìn)行調(diào)度后的結(jié)果的圖。
圖56為表示通過硬件數(shù)量優(yōu)先調(diào)度對圖54所示的CDFG進(jìn)行調(diào)度后的結(jié)果的圖。
圖57表示執(zhí)行被區(qū)域劃分成第一邏輯塊和第二邏輯塊這兩個邏輯塊的邏輯電路的一例。
圖58為表示進(jìn)行資源分配時對邏輯電路進(jìn)行區(qū)域劃分的一例的圖。
圖59為表示向MLUT寫入邏輯電路信息等信息的順序的流程圖的一例。
圖60為表示搭載了 MPLD的半導(dǎo)體裝置的其他例子中的布局構(gòu)造的圖。
圖61為表示搭載了 MPLD的半導(dǎo)體裝置的其他例子中的布局構(gòu)造的圖。
圖62為表示半導(dǎo)體裝置的布線層的一例的剖面圖。
圖63為表示對搭載于半導(dǎo)體裝置的MPLD進(jìn)行部分重構(gòu)的流程的一例的圖。
圖64為表示DES的計(jì)算算法的流程的一例的圖。
圖65為表示F函數(shù)的算法的流程的圖。
圖66為表示半導(dǎo)體裝置的一例的框圖。
圖67為表示主存儲器的存儲器映射的一例的圖。
圖68為構(gòu)成控制部的詳細(xì)框圖。
圖69為表示由MPLD構(gòu)成的數(shù)據(jù)總線塊以及狀態(tài)機(jī)的一例的圖。
圖70為表示關(guān)于半導(dǎo)體裝置的預(yù)測執(zhí)行的處理流程的一例的圖。
圖71為關(guān)于半導(dǎo)體裝置的高速緩存控制的處理流程。1具體實(shí)施方式
以下,依次分別說明〔I〕MPLD,〔2〕MLUT、〔3〕MLUT的構(gòu)造、〔4〕搭載了 I個MPLD 的半導(dǎo)體裝置、〔5〕搭載了 I個MPLD和運(yùn)算處理部的半導(dǎo)體裝置、〔6〕搭載了 2個MPLD和運(yùn)算處理部的半導(dǎo)體裝置、〔7〕適于動態(tài)重構(gòu)的半導(dǎo)體裝置的實(shí)施例。以下說明的MPLD〔 I〕具有多個MLUT (2), MPLD〔 I〕與運(yùn)算處理部組合構(gòu)成半導(dǎo)體裝置〔4〕或〔5〕或〔6〕或〔 7〕。
〔I〕MPLD
圖I為表示半導(dǎo)體裝置的一例的圖。圖I所示的20為作為半導(dǎo)體裝置的MPLD (Memory — based Programmable Logic Device,基于存儲器的可編程邏輯器件)。MPLD20 具有多個作為存儲元件塊的MLUT (Multi Look - Up - Table,多查找表)30,并具有MLUT 譯碼器12。此外,如后面所述,MPLD20作為與運(yùn)算處理裝置連接的邏輯部工作。
MPLD20包含多個存儲元件。通過在存儲元件中分別存儲構(gòu)成真值表的數(shù)據(jù), MPLD20進(jìn)行作為邏輯部件、或連接部件、或邏輯部件及連接部件而工作的邏輯動作。
MPLD20還進(jìn)行存儲動作。所謂存儲動作是指向包含于MLUT30的存儲元件寫入數(shù)據(jù)或從中讀出數(shù)據(jù)。由此,MPLD20能夠作為主存儲裝置或高速緩沖存儲器而工作。
向MLUT30寫入數(shù)據(jù)也是改寫真值表數(shù)據(jù),因此,存儲動作使得真值表數(shù)據(jù)發(fā)生重構(gòu)。另外,將重構(gòu)中的、改寫存儲于MPLD內(nèi)的特定的I個或多個MLUT、或構(gòu)成MLUT的特定的I個或多個存儲元件的真值表數(shù)據(jù)的情況稱為“部分重構(gòu)”。
在存儲動作中使用MPLD地址、存儲動作用地址MA、寫入數(shù)據(jù)WD以及讀出數(shù)據(jù)RD 的任一個信號,圖I中示出這些信號和使這些信號通過的連線。此外,在邏輯動作中使用邏輯動作用地址LA以及邏輯動作用數(shù)據(jù)LD,圖I中示出這些信號和使這些信號通過的連線。 另外,存儲動作用地址MA為提供給包含于MPLD20的各MLUT的存儲動作用的地址。MPLD 地址為確定包含于MPLD20內(nèi)的I個MLUT的地址,且為確定要提供其存儲動作用地址MA的 MLUT的地址信號。
〔I. I〕MPLD的存儲動作
圖2為表示MPLD的存儲動作的一例的圖。MPLD20在存儲動作中使用由實(shí)線表示的存儲動作用地址、MLUT地址、寫入數(shù)據(jù)WD以及讀出數(shù)據(jù)RD的任一個信號,而不使用由虛線表示的邏輯動作用地址LA以及邏輯動作用數(shù)據(jù)LD。另外,存儲動作用地址、MLUT地址以及寫入數(shù)據(jù)WD例如由位于MPLD20外部的運(yùn)算處理裝置輸出,讀出數(shù)據(jù)WD向運(yùn)算處理裝置輸出。
在存儲動作中,MPLD20接收作為確定存儲元件的地址的存儲動作用地址及MLUT 地址,并在寫入時接收寫入數(shù)據(jù)WD,在讀出時輸出讀出數(shù)據(jù)LD。
MLUT地址為確定包含于MPLD20內(nèi)的I個MLUT的地址。MLUT地址經(jīng)由m根信號線被輸出至MPLD20。另外,m為用于確定MLUT的選擇地址信號線的數(shù)量。通過m根信號線能夠確定2的m次方的MLUT。MLUT譯碼器12借助于m根信號線接收MLUT地址,并對MLUT 地址進(jìn)行譯碼,選擇并確定作為存儲動作對象的MLUT30。存儲動作用地址經(jīng)由η根信號線, 通過后面使用圖10記述的地址譯碼器而被譯碼,從而選擇作為存儲動作對象的存儲單元。
另外,MPLD20例如借助于所有η根信號線接收MLUT地址、寫入數(shù)據(jù)WD以及讀出數(shù)據(jù)LD。另外,如后面使用圖4所述那樣,η為MLUT的存儲動作用或邏輯動作用的選擇地址信號線的數(shù)量。MPLD20借助于η根信號線,向各MLUT提供MLUT地址、寫入數(shù)據(jù)以及讀出數(shù)據(jù)。另外,存儲動作用地址ΜΑ、寫入數(shù)據(jù)WD以及讀出數(shù)據(jù)RD的詳細(xì)內(nèi)容將和MLUT的例子一同,在后面使用圖4、圖19以及圖21加以記述。
〔I. 2〕MPLD的邏輯動作
圖3為表示MPLD20的邏輯動作的一例的圖。圖3中,在MPLD20的邏輯動作中,使用由實(shí)線表示的邏輯動作用地址LA以及邏輯動作用數(shù)據(jù)LD。
在MPLD20的邏輯動作中,邏輯動作用地址LA由外部裝置輸出,并被作為由MLUT30 的真值表構(gòu)成的邏輯電路的輸入信號使用。而且,邏輯動作用數(shù)據(jù)LD為上述邏輯電路的輸出信號,并作為邏輯電路的輸出信號被輸出至外部裝置。
多個MLUT中的、配置于MPLD20的外延的MLUT作為從MPLD20的外部的裝置接收作為邏輯動作用的數(shù)據(jù)的邏輯動作用地址LA并輸出邏輯動作用數(shù)據(jù)LD的MLUT工作。例如,例如,圖I所示的MLUT30a、30b從半導(dǎo)體裝置100的外部接收邏輯動作用地址LA,并向位于周圍的其他MLUT30d輸出邏輯動作用數(shù)據(jù)LD。此外,圖I所示的MLUT30e、30f從其他 MLUT30c、30d接收邏輯動作用地址LA,并向MPLD20的外部輸出邏輯動作用數(shù)據(jù)LD。
MLUT的邏輯動作用地址LA的地址線與相鄰的MLUT的邏輯動作用數(shù)據(jù)LD的數(shù)據(jù)線連接,例如,MLUT30C將從MLUT30a輸出的邏輯動作用數(shù)據(jù)作為邏輯動作用地址接收。這樣,MLUT的邏輯動作用地址或邏輯動作用數(shù)據(jù)是通過與位于周圍的MLUT之間的輸入輸出獲得的,這一點(diǎn)與各個MLUT單獨(dú)進(jìn)行連接的MLUT地址不同。
通過MPLD20的邏輯動作實(shí)現(xiàn)的邏輯通過存儲于MLUT30的真值表數(shù)據(jù)實(shí)現(xiàn)。一些 MLUT30作為身為AND電路、加法器等組合電路的邏輯部件工作。其他的MLUT作為將實(shí)現(xiàn)組合電路的MLUT30間進(jìn)行連接的連接部件工作。用于實(shí)現(xiàn)邏輯部件以及連接部件的真值表數(shù)據(jù)的改寫由通過上述存儲動作進(jìn)行的重構(gòu)來完成。
〔2〕MLUT
以下,對MLUT加以說明。
〔2. I〕MLUT 的第一例
圖4為表示MLUT的第一例的圖。圖4所示的MLUT30具有地址切換電路10a、地址譯碼器9、存儲元件40、輸出數(shù)據(jù)切換電路10b。在動作切換信號表示邏輯動作的情況下,圖 10所示的MLUT30以根據(jù)邏輯動作用地址LA來輸出邏輯動作用數(shù)據(jù)LD的方式工作。此外, 在動作切換信號表示存儲動作的情況下,MLUT30以根據(jù)存儲動作用地址來接收寫入數(shù)據(jù)或輸出讀出數(shù)據(jù)的方式工作。
地址切換電路IOa將輸入存儲動作用地址MA的η根存儲動作用地址信號線、輸入邏輯動作用地址LA的η根邏輯動作用地址輸入信號線和輸入動作切換信號的動作切換信號線連接起來。地址切換電路IOa以基于動作切換信號來向η根選擇地址信號線輸出存儲動作用地址MA或邏輯動作用地址LA的任一個的方式工作。像這樣,地址切換電路IOa選擇地址信號線是因?yàn)榇鎯υ?0為接受讀出動作和寫入動作的任一個動作的單端口型存儲元件。
圖4所示的地址譯碼器9對由地址切換電路IOa提供的從η根地址信號線接收的選擇地址信號進(jìn)行譯碼,并向2的η次方根的字線輸出譯碼信號。
nX2n個存儲元件配置于2的η次方根字線、η根寫入數(shù)據(jù)線和η個輸出位線的連接部分。存儲元件的詳細(xì)例將在后面使用圖5加以記述。
當(dāng)從η根輸出位線接收到信號時,輸出數(shù)據(jù)切換電路IOb以根據(jù)所輸入的動作切換信號來向η根讀出數(shù)據(jù)信號線輸出從存儲元件讀出的數(shù)據(jù),或向邏輯動作用信號線輸出讀出數(shù)據(jù)的方式工作。
〔2. 2〕MLUT的存儲元件
圖5為表示單端口型存儲元件的一例的圖。圖5所示的單端口型存儲元件為SRAM, 其能夠作為圖4所示的存儲元件使用。圖5所示的單端口 SRAM40具有第一以及第二 pMOS (positive channel Metal Oxide Semiconductor, p溝道金屬氧化物半導(dǎo)體場效應(yīng))晶體管 161、162 和第一 第四 nMOS (negative channel M0S, η 溝道 M0S)晶體管 163 166。
第一 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 (接地電壓端)連接。
第三nMOS晶體管165的漏極與第一位線BL連接。第三nMOS晶體管165的柵極與字線WL連接。第四nMOS晶體管166的漏極與第二位線qBL連接。第四nMOS晶體管166 的柵極與字線WL連接。
通過上述構(gòu)成,在寫入動作中,單端口存儲元件40通過字線WL的信號電平“H”來保持寫入位線BL以及寫入位線qBL的信號電平。
〔2. 3〕MLUT的邏輯動作
A.邏輯部件
圖6為表示作為邏輯部件工作的MLUT的一例的圖。圖6所示的MLUT30a、30b從邏輯動作用地址線AO A3接收邏輯動作用地址LA,向邏輯動作用數(shù)據(jù)線DO D3輸出邏輯動作用數(shù)據(jù)LD。另外,MLUT30a的邏輯動作用地址線A2與相鄰的MLUT30b的邏輯動作用數(shù)據(jù)線DO連接,MLUT30a接收從MLUT30b輸出的邏輯動作用數(shù)據(jù)LD作為邏輯動作用地址LA。 此外,MLUT30a的邏輯動作用數(shù)據(jù)線D2與MLUT30b的邏輯動作用地址線AO連接,MLUT30a 所輸出的邏輯動作用數(shù)據(jù)LD作為邏輯動作用地址LA被MLUT30b接收。這樣,MPLD之間的連結(jié)使用I對的地址線和數(shù)據(jù)線。以下,將如MLUT30a的邏輯動作用地址線A2和邏輯動作用數(shù)據(jù)線D2這樣的,用于MLUT的連結(jié)的地址線和數(shù)據(jù)線對稱為“AD對”。
另外,在圖6中,MLUT30a、30b所具有的AD對為4對,但如后面所述,AD對的數(shù)量并不限于4。
圖7為表示作為邏輯電路工作的MLUT的一例的圖。在本例中,將邏輯動作用地址線AO以及Al作為2輸入NOR電路701的輸入,將邏輯動作用地址線A2以及A3作為2輸入 NAND電路702的輸入。而且,構(gòu)成向2輸入NAND電路703輸入2輸入NOR電路的輸出和2 輸入NAND電路702的輸出,向數(shù)據(jù)線DO輸出2輸入NAND電路703的輸出的邏輯電路。
圖8為表示圖7所示的邏輯電路的真值表的圖。圖7的邏輯電路為4輸入,因此, 將輸入AO A3的所有輸入作為輸入使用。另一方面,輸出只有I個,因此,僅將輸出DO作為輸出使用。真值表的輸出Dl D3欄中記載有這表示可以是“O”或“I”的任一值。但是,實(shí)際上在為了進(jìn)行重構(gòu)而向MLUT寫入真值表數(shù)據(jù)時,這些欄中需要寫入“O”或 “I”的任一值。
B.連接部件的功能
圖9為表示作為連接部件工作的MLUT的一例的圖。在圖9中,作為連接部件的 MLUT以向數(shù)據(jù)線Dl輸出地址線AO的信號,向數(shù)據(jù)線D2輸出地址線Al的信號,向數(shù)據(jù)線 D3輸出邏輯動作用地址線A2的信號的方式工作。作為連接部件的MLUT還以向數(shù)據(jù)線Dl 輸出地址線A3的信號的方式工作。
圖10為表示圖9所示的連接部件的真值表的圖。圖9所示的連接部件為4輸入 4輸出。因此,使用了輸入AO A3的全部輸入和輸出DO D3的全部輸出。根據(jù)圖10所不的真值表,MLUT作為將輸入AO的信號向輸出Dl輸出,將輸入Al的信號向輸出D2輸出, 將輸入A2的信號向輸出D3輸出,將輸入A3的信號向輸出DO輸出的連接部件工作。
圖11為表示通過具有4個AD對的MLUT實(shí)現(xiàn)的連接部件的一例的圖。在圖11中, 單點(diǎn)劃線表示輸入到AD對O的信號被輸出至AD對I的信號流。雙點(diǎn)劃線表示輸入到第二 AD對ADA的信號被輸出至AD對2的信號流。虛線表示輸入到AD對2的信號被輸出至AD 對3的信號流。實(shí)線表示輸入至AD對3的信號被輸出至AD對O的信號流。
另外,在圖11中,MLUT30所具有的AD對為4對,但如后面所述,AD對的數(shù)量并不限于4。
C.邏輯部件與連接部件的組合功能
圖12為表示I個MLUT作為邏輯部件以及連接部件工作的一例的圖。在圖12所示的例子中,構(gòu)成將地址線AO以及Al作為2輸入NOR電路121的輸入,將2輸入NOR電路 121的輸出和邏輯動作用地址線A2作為2輸入NAND電路122的輸入,向數(shù)據(jù)線DO輸出2 輸入NAND電路122的輸出的邏輯電路。此外,同時構(gòu)成向數(shù)據(jù)線D2輸出地址線A3的信號的連接部件。
圖13中示出圖12所示的邏輯部件以及連接部件的真值表。圖12的邏輯動作使用輸入DO D3的3個輸入,并使用I個輸出DO作為輸出。另一方面,圖(a)的連接部件構(gòu)成將輸入A3的信號向輸出D2輸出的連接部件。
圖14為表示通過具有4個AD對的MLUT實(shí)現(xiàn)的邏輯動作以及連接部件的一例的圖。如上所述,MLUT30通過I個MLUT30實(shí)現(xiàn)3輸入I輸出的邏輯動作和I輸入I輸出的連接部件這2個動作。具體地講,邏輯動作將AD對O的地址線、AD對I的地址線和AD對 2的地址線作為輸入使用。而且,將AD對O的地址線作為輸出使用。此外,如虛線所示,連接部件把輸入到AD對3的信號向AD對2輸出。
另外,在具有N個AD對的MLUT中,能夠構(gòu)成具有N個輸入并具有N個輸出的任意的邏輯電路。而且,在具有N個AD對的MLUT中,能夠同時構(gòu)成合計(jì)具有I N的任意數(shù)的輸入數(shù)并具有I N的任意數(shù)的輸出數(shù)的任意的邏輯動作和連接部件。
〔2. 4〕具有 7 個 AD 對的 MLUT
使用圖15 圖17,對在具有7個AD對的MLUT上實(shí)現(xiàn)真值表的動作的一例加以說明。
圖15為表示由MLUT構(gòu)成的2位加法器的電路構(gòu)成的一例的圖。2位加法器通過將2個I位全加法器連接起來而構(gòu)成。在圖15中,2位加法器具有將輸入AO、BO以及Cin 作為輸入使用,并將輸出SO以及進(jìn)位輸出作為輸出使用的第一 I位全加法器。此外,具有將輸入Al、BI以及第一 I位全加法器的進(jìn)位作為輸入使用,并將輸出SI以及Cout作為輸出使用的第二I位全加法器。
第一 I位全加法器將輸入AO以及BO作為第一 2輸入XOR電路4. 401和第一 2 輸入AND電路152的輸入。將第一 2輸入XOR電路151的輸出以及輸入Cin作為第二 2輸入XOR電路153和第二 2輸入AND電路154的輸入。將第一 2輸入AND電路152的輸出以及第二 2輸入AND電路154的輸出作為第一 2輸入OR電路155的輸入。而且,將第二 2輸入XOR電路153的輸出作為輸出S0,將第一 2輸入OR電路155的輸出作為進(jìn)位輸出。
第二 I位全加法器將輸入Al以及BI作為第三2輸入XOR電路156和第三2輸入 AND電路157的輸入。將第三2輸入XOR電路156的輸出以及第一 2輸入OR電路155的輸出作為第四2輸入X0R158電路和第四2輸入AND電路159的輸入。將第三2輸入AND 電路157的輸出以及第四2輸入AND電路159的輸出作為第二 2輸入OR電路4. 410的輸入。而且,將第四2輸入XOR電路158的輸出作為輸出SI,將第二 2輸入OR電路160的輸出作為輸出Cout。
圖16為表不圖15的2位加法器動作的真值表的圖。圖15的2位加法器動作使用輸入A0、A1、B0、B1以及Cin的5個輸入。而且,使用輸出S0、SI以及Cout的3個輸出。
圖17為表示具有7個AD對的MLUT的一例的圖。為了將圖15以及圖16中記載的 2位加法器作為真值表在圖17所示的MLUT30中實(shí)現(xiàn),需要將5個AD對的邏輯控制用地址線作為輸入線使用,將3個AD對的邏輯控制用數(shù)據(jù)線作為輸出線使用。而且,2個AD對能夠用于連接部件。因此,在具有7個AD對的MLUT30中,能夠?qū)崿F(xiàn)2位加法器的邏輯動作, 并且實(shí)現(xiàn)2個連接部件。
例如,將AD對O用于輸入AO以及輸出S0,將AD對I用于輸入Al以及輸出SI,將 AD對2用于輸入Cin以及輸出Cout,將AD對3的地址線用于輸入B0。而且,能夠?qū)⒌谖?AD對AD4的地址線用于輸入BI。
加法器為在構(gòu)成四則運(yùn)算等運(yùn)算電路時使用得非常多的電路。此外,在通常的運(yùn)算處理中,能夠?qū)?位以上的數(shù)據(jù)進(jìn)行處理。因此,有利的是通過用I個MLUT來構(gòu)成由5 輸入3輸出構(gòu)成的2位加法器,MPLD的布局/布線效率將提高。即,通過用I個MLUT來構(gòu)成2位加法器,能夠增加可搭載于具有同一數(shù)量的MLUT的MPLD上的運(yùn)算電路的數(shù)量。而且,也可以準(zhǔn)備多位加法器以及多位乘法器等布線圖案固定了的邏輯電路,作為具有2位加法器的模塊。
此外,在具有7個AD對的MLUT中,若考慮到MPLD的布局/布線效率,則更加有利的是能夠在實(shí)現(xiàn)2位加法器的邏輯動作的基礎(chǔ)上,進(jìn)一步實(shí)現(xiàn)2路的連接部件。即,在執(zhí)行布局/布線算法時,可以在配置了 2位加法器的MLUT中進(jìn)一步附加地具有連接部件。因此,對配置于MLUT的真值表分別進(jìn)行布線時的自由度提高。另外,所謂布局/布線,由于 MLUT作為邏輯部件以及/或連接部件工作,因此向MLUT寫入真值表數(shù)據(jù)即意味著邏輯動作的布局以及/或MLUT間的布線。因此,將真值表數(shù)據(jù)的生成稱為“布局/布線”。
本例中,對在具有7個AD對的MLUT中同時實(shí)現(xiàn)2位加法器的邏輯動作和連接部件的實(shí)施方式進(jìn)行了說明。但是,在具有5個AD對的MLUT中,能夠?qū)崿F(xiàn)2位加法器的邏輯動作。此外,在具有6個AD對的MLUT中,能夠?qū)崿F(xiàn)2位加法器的邏輯動作和I個連接部件。 而且,在具有8個AD對的MLUT中,能夠?qū)崿F(xiàn)2位加法器的邏輯動作和3個連接部件。
此外,在具有9個AD對的MLUT中,能夠?qū)崿F(xiàn)4位加法器的邏輯動作。在具有10個 AD對的MLUT中,能夠?qū)崿F(xiàn)4位加法器的邏輯動作和I個連接部件。這樣,如果是具有5 10個左右的AD對的MLUT,能夠形成使布局/布線效率提高的構(gòu)成。
〔2. 5〕MLUT的物理配置
圖18A為表示具有7個AD對的MLUT的一例的圖。圖18A所示的MLUT30具有地址行譯碼器9c、地址列譯碼器9d和存儲元件40c。在圖18A所示的MLUT30中,輸入分別由 7個信號構(gòu)成的邏輯動作用地址LA和寫入數(shù)據(jù)WD,并輸出分別由7個信號構(gòu)成的讀出數(shù)據(jù) RD和邏輯動作用數(shù)據(jù)LD。地址切換電路10a、輸出數(shù)據(jù)切換電路IOb進(jìn)行與使用圖4說明的電路同樣的工作,因此省略其說明。
地址行譯碼器9c對m根信號輸入亦即邏輯動作用地址LA進(jìn)行譯碼,并向2的m 次方的字線輸出字選擇信號。存儲元件40c為2L個存儲元件塊(40c - 1,…,40c — 2L)。 各存儲元件塊具有nX 2m個存儲元件,并配置于2m根字線、η根寫入數(shù)據(jù)線和η個輸出位線的連接部分。m為N — L的整數(shù),L為小于η的整數(shù)。“n,m,L”例如為“7,5,2”或“7,4, 3”。
地址列譯碼器9d對L根信號輸入亦即邏輯動作用地址LA進(jìn)行譯碼,生成2的L 次方的塊選擇信號,并通過塊選擇信號,選擇上述2L個存儲元件塊的任意一個存儲元件塊的η個輸出位線。例如,在L = 2的情況下,存儲元件塊為22 = 4個,各存儲元件塊具有25 =32根字線以及輸出位線,所以,地址列譯碼器9d通過塊選擇信號選擇任意一個存儲元件塊的輸出位線32根。此外,在L = 3的情況下,存儲元件塊為23 = 8個,各存儲元件塊具有24 = 16根字線以及輸出位線,因此,地址列譯碼器9d通過塊選擇信號選擇任意一個存儲兀件塊的輸出位線16根。
通過設(shè)置地址列譯碼器9d并沿列方向擴(kuò)展存儲元件,能夠縮短輸出位線的長度。
圖18B為表示將2個圖18A所示的MLUT30組合而成的MLUT的平面布置圖。圖 18B所示的MLUT30包含圖18A所示的MLUT所具有的構(gòu)成。圖18B所示的MLUT30具有存儲邏輯控制部10c、地址行譯碼器9c 一 I以及9c 一 2、地址列譯碼器9d — I以及9d — 2、存儲兀件40c — I以及40c — 2、讀出驅(qū)動部Ila — I以及Ila — 2。
輸入從存儲邏輯控制部IOc輸出的7個選擇地址信號的7個選擇地址線分別連接于地址行譯碼器9c 一 I以及9c 一 2以及地址行譯碼器9d — I以及9d — 2。地址行譯碼器9c 一 I以及地址列譯碼器9d - I向存儲元件40c - I分別提供字選擇信號以及塊選擇信號。地址行譯碼器9c - 2以及地址列譯碼器9d - 2向存儲元件40c - 2分別提供字選擇信號以及塊選擇信號。
雖未作圖示,當(dāng)分別由7個信號構(gòu)成時,向圖18B所示的MLUT30中輸入邏輯動作用地址LA和寫入數(shù)據(jù)WD,而輸出分別由7個信號構(gòu)成的讀出數(shù)據(jù)RD和邏輯動作用數(shù)據(jù)LD。 雖未作圖示,還向圖18B所示的MLUT30中輸入存儲動作用地址MA和動作切換信號。
在存儲邏輯控制部IOc中配置有圖18A的地址切換電路IOa和輸出數(shù)據(jù)切換電路 IOb0存儲動作用地址MA、邏輯動作用地址LA、寫入數(shù)據(jù)WD、讀出數(shù)據(jù)RD和邏輯動作用數(shù)據(jù) LD分別借助于存儲邏輯控制部IOc針對MLUT30被進(jìn)行輸入輸出。
地址行譯碼器9c 一 I以及9c 一 2配置于存儲元件區(qū)域40c — I與存儲元件40c — 2之間。
第一以及第二讀出驅(qū)動部Ila以及Ilb分別配置于第一以及第二存儲元件區(qū)域 40c以及40d和存儲邏輯控制部IOc之間。第一以及第二讀出驅(qū)動部Ila以及Ilb構(gòu)成為對從配置于第一以及第二存儲元件區(qū)域40c以及40d的存儲元件40讀出的7個位信號進(jìn)行放大,并使讀出速度高速化。
在本例中,將輸入到地址行地址的選擇地址信號的數(shù)量設(shè)為4個或5個。通過將選擇地址信號的數(shù)量設(shè)為5以下,由此,字選擇信號的數(shù)量成為24 = 16根或25 = 32根,能夠縮短輸出位線的長度。因此,不需要一般的SRAM電路中必須的構(gòu)成要素亦即讀出放大器和預(yù)充電電路的電路構(gòu)成得以實(shí)現(xiàn)。圖18A或圖18B所示的MLUT30與一般的SRAM不同, 不必使存儲元件數(shù)的數(shù)量大規(guī)模化。
包含于MLUT的存儲元件的數(shù)量為至多10X210個左右。與作為一般作為數(shù)M位以上的大規(guī)模電路構(gòu)成的存儲裝置的SRAM存儲器相比,為非常小的電路。因此,在搭載于作為一般的SRAM存儲器使用的存儲裝置時,在細(xì)微化上不成問題的讀出放大器、預(yù)充電電路以及這些外圍電路的大小在MLUT的電路構(gòu)成中成為問題。配置于一般的SRAM存儲器等的存儲裝置中的讀出放大器以及預(yù)充電電路是為了防止布線層中產(chǎn)生的時間常數(shù)τ變大及信號的傳遞延遲時間變長而配置的電路。這是因?yàn)榈刂纷g碼器與存儲元件之間的布線長度較長。因此,通過將地址譯碼器與存儲元件之間的布線長度中產(chǎn)生的時間常數(shù)τ抑制到不影響MLUT的工作的程度,能夠形成不需要讀出放大器以及預(yù)充電電路的構(gòu)成。在圖18Α 以及圖18Β所示的例子中,通過將輸入到地址行譯碼器的選擇地址信號的數(shù)量設(shè)為5個以下,能夠?qū)⒌刂沸凶g碼器與存儲元件之間的布線長度抑制到不影響MLUT的工作的程度。
而且在本例中,地址行譯碼器9c配置于第一存儲元件區(qū)域40c與第二存儲元件區(qū)域40d之間。在一般的SRAM存儲器等的存儲裝置中,地址行譯碼器與存儲元件區(qū)域的一邊相接而配置。當(dāng)這樣配置了地址行譯碼器時,與地址行譯碼器相鄰的存儲元件和離地址行譯碼器最遠(yuǎn)的存儲元件的布線距離不同。因此,布線層中產(chǎn)生的時間常數(shù)τ不同,所以來自地址行譯碼器的信號傳遞延遲時間不同。如上所述,在本例中,形成沒有讀出放大器以及預(yù)充電電路的構(gòu)成,因此,理想的是成為縮小各存儲元件之間的信號傳遞延遲時間的差的構(gòu)成。所以,在本例中,將存儲元件區(qū)域劃分為具有相同大小的第一存儲元件區(qū)域40c和第二存儲元件區(qū)域40d,在此存儲元件區(qū)域之間配置地址行譯碼器9c。由此,能夠抑制各存儲元件之間的信號傳遞延遲時間。
在本例中,地址行譯碼器的選擇地址的數(shù)量為5個,但地址行譯碼器的選擇地址的數(shù)量可以設(shè)為6個以下的任意數(shù)。但是,在地址行譯碼器的數(shù)量為不適當(dāng)?shù)臄?shù)量的情況下,地址列譯碼器的布線長度有可能增大,有時不能構(gòu)成適當(dāng)?shù)碾娐?。對具?個AD對的 MLUT進(jìn)行了說明,而通過調(diào)整向地址行譯碼器以及地址列譯碼器進(jìn)行布線的選擇地址數(shù), 可以將AD對的數(shù)量設(shè)為5 10的任意數(shù)量。
〔2. 6〕MLUT 的第二例
在上述圖4 圖18B中,對作為單端口型存儲元件使用的MLUT進(jìn)行了說明,而對于以下所示的作為2端口型存儲元件使用MLUT也可適用。
圖19為表示MLUT的第二例的圖。圖19所示的MLUT30能夠同時進(jìn)行數(shù)據(jù)的寫入和讀出。圖19所示的MLUT30具有存儲動作用的地址譯碼器9a、邏輯動作用的地址譯碼器 9b和存儲元件40。與圖4所示的MLUT不同,圖19所示的MLUT能夠同時進(jìn)行邏輯動作和存儲動作。因此,與圖4所示的MLUT不同,圖19所示的MLUT30不需要動作切換選擇信號, 且不具有地址切換電路IOa以及輸出數(shù)據(jù)選擇電路,而另一方面則具有各個地址用地址譯碼器9a、9b。此外,與圖4所示的MLUT具有相同的構(gòu)成。另外,包含于圖18B的MLUT30的存儲元件為能夠進(jìn)行數(shù)據(jù)的寫入和讀出的2端口存儲元件。
〔2. 7〕2端口存儲元件
圖20為表示2端口存儲元件的一例的圖。在圖19所示的例子中,2端口存儲元件40B為SRAM,具有第一以及第二 pMOS晶體管501、502和第三 第八nMOS晶體管503 508。
如圖20所示,由多個MOS晶體管構(gòu)成的2端口 SRAM40與VDD、VSS、寫入字線WWL、 讀出字線RWL、第一寫入位線WBL、第二寫入位線qWBL、第一讀出位線RBL以及第二讀出位線 qRBL連接。施加于第一寫入位線WBL的信號為施加于第二寫入位線qWBL的信號的反相信號。同樣地,施加于第一讀出位線RBL的信號為施加于第二讀出位線qRBL的信號的反相信號。
第一 pMOS晶體管501的源極與第二 pMOS晶體管502的源極與VDD連接。第一 PMOS晶體管501的漏極與第一 nMOS晶體管503的源極、第二 pMOS晶體管的柵極502、第二 nMOS晶體管的柵極194、第三nMOS晶體管195的源極和第四nMOS晶體管506的源極連接。
第一 pMOS晶體管501的柵極與第一 nMOS晶體管503的柵極、第二 pMOS晶體管 502的漏極、第二 nMOS晶體管194的漏極、第五nMOS晶體管197的源極和第六nMOS晶體管198的源極連接。第一 nMOS晶體管503的漏極和第二 nMOS晶體管194的漏極與VSS連接。
第三nMOS晶體管195的漏極與第一寫入位線WBL連接。第三nMOS晶體管195的柵極與寫入字線WffL連接。第四nMOS晶體管506的漏極與第一讀出位線RBL連接。第四 nMOS晶體管506的柵極與讀出字線RWL連接。
第五nMOS晶體管197的漏極與第二寫入位線qWBL連接。第五nMOS晶體管197 的柵極與寫入字線WffL連接。第六nMOS晶體管198的漏極與第二讀出位線qRBL連接。第六nMOS晶體管198的柵極與讀出字線RWL連接。
通過上述構(gòu)成,在寫入動作中,2端口 SRAM40通過寫入字線WffL的信號電平“H”來保持第一寫入位線WBL以及第二寫入位線qWBL的信號電平。
通過上述構(gòu)成,在讀出動作中,2端口 SRAM40通過讀出字線RWL的信號電平“H”使第一讀出位線RBL以及第二讀出位線qRBL成為在2端口 SRAM40保持的信號電平。
這樣,存儲動作用地址MA以及邏輯動作用地址LA使存儲元件的I個字線活化,由此,能夠僅對ηX2n個存儲元件的一部分進(jìn)行存儲動作或邏輯動作。此外,存儲動作用地址 MA以及邏輯動作用地址LA與MLUT30內(nèi)的所有存儲元件相連著,因此,能夠?qū)Ζ荴 2n個存儲元件的所有存儲元件進(jìn)行存儲動作或邏輯動作。另外,具有2端口存儲元件的MLUT能夠同時進(jìn)行存儲動作和邏輯動作。
〔2. 8〕MLUT 的第三例
圖21為表示MLUT的第三例的圖。圖21所示的MLUT30具有地址譯碼器9a、地址譯碼器%、第一存儲元件40a、第二存儲元件40b和NOT電路171。圖21所示的MLUT30輸入存儲動作用地址MA、邏輯動作用地址LA、寫入數(shù)據(jù)WD和選擇信號,而輸出讀出數(shù)據(jù)RD和邏輯動作用數(shù)據(jù)LD。
第三例中的MLUT與第二例中的MLUT的不同點(diǎn)是第一存儲元件40a和第二存儲元件40b能夠通過選擇信號分別進(jìn)行不同的動作。即,能夠構(gòu)成為當(dāng)?shù)谝淮鎯υ?0a和第二存儲元件40b的一方作為邏輯動作用而被選擇時,選擇另一方作為存儲動作用。
NOT電路171具有輸入選擇信號的輸入端子和輸出選擇信號反相后的信號的輸出端子。
nX2n個第一以及第二存儲元件40具有2n個存儲動作用字端子(未作圖示)、2n 個邏輯動作用字端子(未作圖示)、n個寫入數(shù)據(jù)端子(未作圖示)、n個讀出數(shù)據(jù)端子(未作圖示)、n個邏輯動作用數(shù)據(jù)輸出端子(未作圖示)和選擇端子(未作圖示)。連接于存儲動作用字端子的存儲動作用字端子分別構(gòu)成為對η個存儲元件進(jìn)行選擇。同樣地,連接于邏輯動作用字端子的邏輯動作用字端子分別構(gòu)成為對η個存儲元件進(jìn)行選擇。向?qū)懭霐?shù)據(jù)端子輸入寫入數(shù)據(jù)WD。當(dāng)使MLUT進(jìn)行存儲動作時或在重構(gòu)MLUT時,使用寫入數(shù)據(jù)WD。但是,在讀出已寫入MLUT的真值表數(shù)據(jù)時不使用寫入數(shù)據(jù)WD。即,構(gòu)成為在讀出已寫入MLUT的真值表數(shù)據(jù)時,寫入數(shù)據(jù)WD不被施加于存儲元件,而是成為高阻抗輸入。讀出數(shù)據(jù)端子輸出存儲于通過存儲動作用字端子選擇的η個存儲元件中的數(shù)據(jù)。同樣地,邏輯動作用數(shù)據(jù)輸出端子輸出存儲于通過邏輯動作用字端子選擇的η個存儲元件的數(shù)據(jù)。
向第一存儲元件的選擇端子輸入選擇信號。向第二存儲元件的選擇信號輸入NOT 電路的輸出信號、即選擇信號反相后的信號。由此,構(gòu)成為在第一存儲元件與第二存儲元件的一方作為邏輯動作用被選擇時,選擇另一方作為存儲動作用。通過采用這樣的構(gòu)成,能夠?qū)崿F(xiàn)動態(tài)重構(gòu)。即,能夠?qū)崿F(xiàn)一方的存儲元件進(jìn)行邏輯動作,而另一方的存儲元件進(jìn)行存儲動作。
〔3〕MLUT 的構(gòu)造
對MLUT的構(gòu)造加以說明。首先,對配置于MLUT區(qū)域的各MLUT的配置構(gòu)造加以說明,接著,對MLUT的AD對的連線構(gòu)造加以說明。然后,最后對MLUT區(qū)域的構(gòu)造的I個實(shí)施方式加以說明。
〔3. I〕MLUT的配置構(gòu)造
在此,對配置于MLUT區(qū)域的各MLUT的配置構(gòu)造加以說明。首先,對MLUT的矩陣配置構(gòu)造加以說明,接著,對MLUT的交替配置構(gòu)造加以說明。
〔3. I. I〕MLUT的矩陣配置構(gòu)造
圖22為表示MLUT配置的第一例的俯視圖。參照圖22,對MLUT區(qū)域中的MLUT的配置的第一例加以說明。在圖22中,為了說明,將MLUT表示成圓形。但是,如上所述,在本發(fā)明的通常的實(shí)施方式中,MLUT的平面形狀為長方形或正方形。此外,在以下的說明中,有時將MLUT表示成圓形,但應(yīng)該理解為各MLUT為長方形或正方形。
在圖22中,將MLUT30配置成矩陣狀。MLUT區(qū)域8為半導(dǎo)體裝置中配置MLUT30 的區(qū)域。在MLUT區(qū)域8中,MLUT30以相同的距離間隔配置于第一方向,并以與第一方向的間隔相同或不同的間隔配置于與第一方向成直角的第二方向。通過這樣配置MLUT30,在對 MLUT30進(jìn)行近距離布線時,能夠規(guī)則地連線。另外,所謂近距離布線是指連接相鄰MLUT間的布線。
〔3. I. 2〕MLUT的交替配置構(gòu)造
圖23為表示MLUT的配置的第二例的俯視圖。參照圖23,對MLUT區(qū)域8中的MLUT 的配置的第二例加以說明。在圖23所示的第二例中,MLUT30以相同的距離間隔配置于第一方向,并以相同的間隔配置于與第一方向成直角的第二方向。此外,配置成具有以相同間隔配置成與第一以及第二方向不同方向的四邊形的MLUT30。在本說明書中,將這樣的配置構(gòu)造稱為交替配置構(gòu)造。另外,可以優(yōu)選地使第一或第二方向的MLUT間的距離與配置成四邊形的其他MLUT30之間的距離相同。此外,可以將配置成四邊形的MLUT30配置在由配置于第一方向的2個MLUT30和配置于第二方向的2個MLUT30構(gòu)成的長方形對角線的交點(diǎn)上。 該情況下,各MLUT30分別以相同的間隔配置于第一方向以及與第一方向垂直的第二方向。 此外,也可以以相同的間隔配置于與第一以及第二方向不同的第三以及第四方向。
(3. 2〕MLUT間的AD對連線構(gòu)造
〔3. 2. I〕AD對連線構(gòu)造
圖24為表示MLUT間的連線的一例的圖。在此所示的AD對是在使MLUT作為真值表工作時作為MPLD的輸入輸出信號線使用的。MLUT也分別具有在將MLUT作為存儲器電路使用時所使用的存儲動作用地址線、存儲動作用數(shù)據(jù)線以及控制信號線等其他布線。但是,為了簡化說明,在圖24中省略AD對以外的布線。參照圖24,對相鄰MLUT間的連線、SP 近距離布線的連線加以說明。另外,間隔布線是指對并非近距離布線的MLUT間進(jìn)行連線的 AD對的布線。在圖24中,具有6個AD對的MLUT30、與MLUT30相鄰的第一 MLUT30a、第二 MLUT30b、第三MLUT30c、第四MLUT30d、第五MLUT30e和第六MLUT30f以交替配置的方式被配置。此外,在圖24中,將平行于連結(jié)第一 MLUT30a與第四MLUT30d的直線的方向假定為 MLUT30的縱方向,將平行于連結(jié)第二 MLUT30b與第六MLUT30f的直線的方向假定為MLUT區(qū)域8的橫方向。
在本例中,將MLUT30所具有的各AD對分別與不同的MLUT進(jìn)行相鄰布線。S卩,第一 AD對與相鄰的第一 MLUT30a連線。第二 AD對與相鄰的第二 MLUT30b連線。第三AD對與相鄰的第三MLUT30C連線。第四AD對與相鄰的第四MLUT30d連線。第五AD對與相鄰的第五MLUT30e連線。第六AD對與相鄰的第六MLUT30f連線。
圖25為表示隔著相鄰的MLUT而隔開距離配置的2個MLUT的連接的一例的圖。 該情況下,MLUT30f作為對MLUT30a與MLUT30進(jìn)行連接的連接部件而工作。這樣,在將 MLUT30f作為連接隔開距離配置的MLUT30a與MLUT30的連接部件使用的情況下,MLUTf的真值表的一部分被用于MLUT30與30a之間的連接關(guān)系,因此,能夠通過MLUT30f中的真值表實(shí)現(xiàn)的邏輯電路的規(guī)模變小。如圖25所示,當(dāng)將相鄰的MLUT用作連接部件來連接隔開距離配置的MLUT30以及30a時,與圖24所示的MLUT相比,構(gòu)成所希望的邏輯電路所需的 MLUT的總量將增加。
圖26A 圖26D為表示構(gòu)成所希望的邏輯電路所需的MLUT數(shù)量的一例的圖。圖 27為表示作為通過AD對與相鄰的MLUT連接的MLUT構(gòu)造的密排配置構(gòu)造31A和作為通過 AD對連接被間隔配置的MLUT之間的MLUT構(gòu)造的非密排配置構(gòu)造31B的圖。所希望的邏輯電路是通過由自動布局布線工具將CLA加法器、RCA加法器、be加法器以及8字螺線LED 電路等的電路布局布線于具有200 1000左右的數(shù)量的MLUT的MPLD上來實(shí)現(xiàn)的。24
結(jié)果,在本比較中所使用的所有電路構(gòu)成中,無論使用任何大小的MPLD,與具有非密排配置構(gòu)造31B的MPLD相比,具有密排配置構(gòu)造31A的MPLD的非布局/布線效率均變高。因此,與具有非密排配置構(gòu)造31B的MPLD相比,具有密排配置構(gòu)造31A的MPLD能夠減少構(gòu)成所希望的邏輯電路的MLUT的總量。
圖28為表示密排配置構(gòu)造中的AD對的數(shù)量的一例的圖。在圖28中,對手動構(gòu)成 32位乘法電路的情況下的所需存儲器容量和關(guān)鍵路徑單元的數(shù)量進(jìn)行了計(jì)算。如圖所示, 當(dāng)MLUT所具備的AD對的數(shù)量為6以上時,關(guān)鍵路徑MLUT的數(shù)量將減少。此外,當(dāng)MLUT所具備的AD對的數(shù)量為6以上時,所需存儲器容量將增加。該結(jié)果表示在AD對的數(shù)量少的情況下,對MPLD20進(jìn)行所希望的邏輯電路的布局布線時,在分別作為邏輯電路工作的MLUT 間的布線中作為開關(guān)用而插入的MLUT的數(shù)量將增加。當(dāng)AD對的數(shù)量少時,能夠作為連接部件發(fā)揮作用的MLUT的數(shù)量將受限。因此,如果不大量地通過作為連接部件發(fā)揮作用的 MLUT,則有可能無法在作為邏輯電路工作的MLUT間進(jìn)行布線。結(jié)果,當(dāng)AD對的數(shù)量少時, 實(shí)現(xiàn)邏輯電路所需的MLUT數(shù)量有可能增加。在圖28的例子中,理想的是將MLUT所具有的 N個AD對中的5個AD對用于作為邏輯電路而構(gòu)成真值表。因此,優(yōu)選MLUT所具備的AD對的數(shù)量為5以上。
另一方面,可以預(yù)測到的是若增加MLUT所具備的AD對的數(shù)量,則在已經(jīng)布局/ 布線時實(shí)際使用的每個MLUT的AD對的數(shù)量將減少。而且,因此,布局/布線效率有可能降低。在圖28所示的通過手動進(jìn)行32位乘法電路的布局/布線的情況下,當(dāng)將AD對的數(shù)量設(shè)為8時,布局/布線所需的區(qū)域增至將AD對的數(shù)量設(shè)為6時的4倍。
〔3. 2. 2〕矩陣配置構(gòu)造中的AD對連線構(gòu)造
圖29為表示MLUT的AD對的連線構(gòu)造的一例的圖。MLUT30配置成矩陣狀,且分別具有6個AD對。在圖29中,將平行于連接MLUT30和MLUT30a的直線的方向假定為MLUT 區(qū)域8的縱向。而且,將平行于連接MLUT30和MLUT30C的直線的方向假定為MLUT區(qū)域8 的橫向。MLUT30具有與沿縱向配置的MLUT30a以及30b近距離布線的第一以及第二 AD 對、與沿橫向配置的MLUT30C以及30d近距離布線的第三以及第四AD對、分別與位于縱向的MLUT30的橫向相鄰的2個MLUT30e以及30f近距離布線的第五以及第六AD對。
這樣,在本例中,配置于某列的MLUT (例如,MLUT30)的2個AD對分別與在第一列方向相鄰的MLUT的橫向相鄰的2個MLUT近距離布線。而且,配置于與此列相鄰的列的MLUT (例如,MLUT30c以及30d)的2個AD對分別與在作為第一列方向的反方向的第二列方向相鄰的MLUT的橫向相鄰的2個MLUT近距離布線。通過這樣進(jìn)行近距離布線,能夠形成對相鄰的MLUT進(jìn)行連線的AD對在同一平面上不交叉的構(gòu)造。
另外,在該例子中,所有的MLUT的第五以及第六AD對分別與沿縱向配置的MLUT 的橫向相鄰的2個MLUT近距離布線。但是,也可以成為將該AD對與沿橫向配置的MLUT的縱向相鄰的MLUT近距離布線的構(gòu)造。例如,MLUT30的第五以及第六AD對可以分別與沿橫向配置的MLUT30的縱向相鄰的2個MLUT30e以及30g近距離布線。
〔3. 2. 3〕交替配置構(gòu)造中的AD對連線構(gòu)造
圖30為表示MLUT的AD對的連線構(gòu)造的其他例的圖。MLUT30分別以交替配置構(gòu)造被配置,并分別具有6個AD對。在圖30中,將平行于連接MLUT30和MLUT30a的直線的方向假定為MLUT區(qū)域8的縱向,將平行于連接MLUT30b和MLUT30f的直線的方向假定為MLUT區(qū)域8的橫向。
MLUT30具有與沿縱向配置的2個MLUT30a以及3d連線的第一以及第二 AD對和與4個MLUT30b、30c、30e以及30f近距離布線的第三、第四、第五以及第六AD對,其中,上述4個MLUT30b、30c、30e以及30f配置在與配置有MLUT30的列相鄰的列的兩列的相鄰位置。
在本例中,能夠形成將MLUT連線的AD對在同一平面上不交叉的構(gòu)造。而且,能夠使所有MLUT的AD對的連線構(gòu)造成為同樣的構(gòu)造。另外,在該例子中,所有MLUT的2個AD 對與沿縱向配置的MLUT連線,但也可以成為將該AD對與沿橫向配置的MLUT連線的構(gòu)造。 即,可以使MLUT30的第一以及第二 AD對不是與沿縱向配置的沿橫向配置的MLUT30a以及 3d近距離布線,而是與2個MLUT30h以及30k近距離布線。
(3. 2. 4〕具有D觸發(fā)器連線的MLUT的AD對連線構(gòu)造
圖31為表示MLUT的AD對的連線構(gòu)造的其他例的圖。MLUT分別以交替配置構(gòu)造被配置,并分別具有7個AD對。此外,MLUT分別與D觸發(fā)器13相鄰而配置。在MLUT所具有的7個AD對中,6個AD對與相鄰的6個MLUT分別近距離布線。剩下的I個AD對與相鄰的D觸發(fā)器13連線。能夠使近距離布線的6個AD對形成具有與圖30所示的連線相同的連線構(gòu)造的近距離布線。剩下的I個AD對中的地址線與D觸發(fā)器13的D輸入連線,數(shù)據(jù)線與Q輸出連線。對D觸發(fā)器13的所有CK輸入進(jìn)行連線,并能夠使所有D觸發(fā)器13以I 個時鐘信號進(jìn)行動作。此外,能夠按列對D觸發(fā)器13的CK輸入進(jìn)行連線,使得D觸發(fā)器13 按列以不同的時鐘信號進(jìn)行動作。此外,能夠?qū)觸發(fā)器13的CK輸入按8個或16個等任意數(shù)的組進(jìn)行連線,使D觸發(fā)器13在各組以不同的時鐘信號進(jìn)行動作。
在本例中,D觸發(fā)器與各MLUT的I個AD對連線,因此,能夠在MLUT區(qū)域形成時序電路。在僅以只具有構(gòu)成真值表的功能的MLUT構(gòu)成的MLUT區(qū)域中,可以構(gòu)成組合電路,但很難構(gòu)成時序電路。因此,在本例中,通過將D觸發(fā)器與各MLUT的I個AD對連線,能夠形成時序電路。
另外,在本例中,將D觸發(fā)器與AD對連線,但也可以連接置位復(fù)位觸發(fā)器、T觸發(fā)器或JK觸發(fā)器等其他觸發(fā)器。此外,也可以連接具有置位輸入、復(fù)位輸入或QB輸出等輸入輸出的D觸發(fā)器。而且,可以使與D觸發(fā)器的Q輸出連線的MLUT的數(shù)據(jù)線與D觸發(fā)器的QB 輸出連線。進(jìn)而,無需所有MLUT分別具有與D觸發(fā)器連線的AD對,可以成為在構(gòu)成MLUT 區(qū)域的MLUT中,僅規(guī)定比例的MLUT具有與D觸發(fā)器連線的AD對的構(gòu)造。此外,在以下的說明中,有時把使MLUT的I個AD對與D觸發(fā)器連線這一情況稱為D觸發(fā)器連線。
〔3. 2. 5〕具有間隔布線的情況下的MLUT的AD對連線構(gòu)造
圖32為表示MLUT的AD對的連線構(gòu)造的其他例的圖。MLUT30分別具有7個AD 對,并分別以交替配置構(gòu)造被配置。在MLUT30所具有的7個AD對中,6個AD對與相鄰的6 個MLUT30分別近距離布線。剩下的I個AD對與逐列改變了 I列的MLUT30間隔布線。
在本例中,MLUT30分別具有I個間隔布線,因此,與將MLUT30作為連接部件使用來將MLUT之間進(jìn)行連接相比,間隔布線能夠減少數(shù)據(jù)的傳播延遲時間。此外,在將邏輯電路在MLUT區(qū)域8上按邏輯電路信息進(jìn)行布局/布線時,間隔布線能夠提高布線的靈活性。 另外,間隔布線為并非近距離布線的MLUT間的連接布線。由此,通過與并非相鄰的MLUT的 MLUT連接,將產(chǎn)生上述間隔布線的效果。
另外,在本例中,所有MLUT分別具有被間隔布線的AD對,但也可以成為僅規(guī)定比例的MLUT具有進(jìn)行間隔布線的AD對的構(gòu)造。例如,可以將某種比例的MLUT的I個AD對作為間隔布線使用,而將其他MLUT的I個AD對與D觸發(fā)器連線。
〔3. 3〕MLUT區(qū)域的構(gòu)造
〔3. 3. I〕MLUT區(qū)域的整體構(gòu)造
圖33為表示MLUT的AD對的連線構(gòu)造的其他例的圖。參照圖33,對本例的MLUT 區(qū)域的整體構(gòu)造的一例加以說明。在本例中,MLUT區(qū)域8具有以15行X 30列的交替配置構(gòu)造被配置的450個MLUT30。MLUT分別具有7個AD對,并將6個AD對作為近距離布線使用。剩下的I個AD對用于間隔布線或D觸發(fā)器連線。在圖中,未連線有間隔布線的MLUT 與D觸發(fā)器連線。
在本例中,使用以15行X 30列的交替配置構(gòu)造被配置的具有7個AD對的MLUT, 對MLUT區(qū)域加以說明。但是,使用其他配置的MLUT能夠構(gòu)成MLUT區(qū)域的事實(shí)是被本領(lǐng)域技術(shù)人員明確理解的。此外,在配置于MLUT區(qū)域的MLUT中,連線有間隔布線的MLUT和與D 觸發(fā)器連線的MLUT的比例可以根據(jù)使用MPLD的用途以及功能來任意選擇。此外,在本例中,MLUT的配置構(gòu)造為交替配置構(gòu)造,但是即使在矩陣配置構(gòu)造中,也能夠具有與本例相同的連線構(gòu)造。即,也可以成為,在維持本例的布線構(gòu)造的同時,將MLUT的配置構(gòu)造從交替配置構(gòu)造在拓?fù)渖献儞Q為矩陣配置構(gòu)造而得到的構(gòu)造(參照圖29以及圖30)。
〔3. 3. 2〕MLUT 塊的構(gòu)造
圖34為表示具有MLUT的MLUT塊的一例的圖。在本例中,MLUT塊是將3行X 6列的MLUT作為I個塊而構(gòu)成的塊。各塊內(nèi)的MLUT分別根據(jù)基本相同的布線規(guī)則,進(jìn)行間隔布線或與D觸發(fā)器連線。
以下,記述基本的連線規(guī)則。
6個AD對用于近距離布線。該規(guī)則對于配置于MLUT區(qū)域8的端部的MLUT30也是相同的。因此,本例中的MLUT區(qū)域8具有作為近距離布線而配置的AD對并將其作為輸入輸出線AD對,通過這些AD對能夠與配置于半導(dǎo)體裝置100的其他構(gòu)成要素連線。
在包含于I個MLUT塊中的18個MLUT30中,6個MLUT將I個AD對與D觸發(fā)器連線。因此,本例中的MLUT區(qū)域成為三分之一數(shù)量的MLUT與D觸發(fā)器連線。具體地講,在圖 34中為被賦予符號“30F”的MLUT30。S卩,在圖34中為下行左起第2列以及第3列的MLUT、 中間行左起第5列以及第6列的MLUT、和上行左起第3列以及第6列的MLUT。
對包含在I個MLUT塊中的剩余的12個MLUT連線有間隔布線。間隔布線當(dāng)中的4 根以在沿縱向配置的MLUT之間連線的第一間隔布線圖案進(jìn)行連線。其他4根以在從左下至右上排列的MLUT之間連線的第二間隔布線圖案進(jìn)行連線。剩余的4根以在從右下至左上排列的MLUT之間連線的第三間隔布線圖案進(jìn)行連線。
以第一間隔布線圖案被連線的MLUT為下行左起第I列以及第4列的MLUT、中間行左起第I列的MLUT、和上行左起第4列的MLUT。在圖34中,這些MLUT分別被賦予符號 “30C”。下行左起第4列的MLUT和中間行左起第I列的MLUT分別與沿縱上方向離開的第5 個MLUT連線有間隔布線。下行左起第I列的MLUT和上行左起第4列的MLUT分別與沿縱下方向離開的第5個MLUT連線有間隔布線。
以第二間隔布線圖案被連線的MLUT為下行左起第6列的MLUT、中間行左起第2列以及第3行的MLUT和上行左起第5列的MLUT。在圖34中,這些MLUT分別被賦予符號 “30L”。下行左起第6列的MLUT和中間行左起第3列的MLUT分別與沿右上方向離開的第5 個MLUT連線有間隔布線。中間行左起第2列的MLUT和上行左起第5列的MLUT分別與沿左下方向離開的第5個MLUT連線有間隔布線。
以第三間隔布線圖 案被連線的MLUT為下行左起第5列的MLUT、中間行左起第4 行的MLUT和上行左起第I行以及第2列的MLUT。在圖34中,這些MLUT分別被賦予符號 “3R”。中間行左起第4列的MLUT和上行左起第I列的MLUT分別與沿左上方向離開的第5 個MLUT連線有間隔布線。下行左起第5列的MLUT和上行左起第2列的MLUT分別與沿右下方向離開的第5個MLUT連線有間隔布線。
圖35為表示具有15行X 30列的MLUT的MLUT區(qū)域中的近距離布線圖案的配置的一例的圖。在圖35中示出以圓形形狀表示的450個MLUT和分別對相鄰的6個MLUT之間進(jìn)行連線的近距離布線。位于MLUT區(qū)域8的端部的MLUT30所具有的若干個AD對未連線。如上所述,這些未連線的AD對能夠與輸入輸出電路部15或內(nèi)部總線電路部等半導(dǎo)體裝置內(nèi)的其他構(gòu)成部件連線。
圖36 圖38中示出本例中的MLUT區(qū)域的第一 第三間隔布線圖案的配置。以下,參照各圖,對第一 第三間隔布線圖案的配置的一例加以說明。
〔3. 3. 3〕第一間隔布線圖案的配置構(gòu)造
圖36為表示具有15行X30列的MLUT的MLUT區(qū)域的第一間隔布線圖案的配置的圖。在圖36中示出以圓形形狀表示的450個MLUT30、分別對相鄰的6個MLUT之間進(jìn)行連線的近距離布線和沿縱向每5個MLUT30進(jìn)行連線的第一間隔布線圖案。另外,在配置于應(yīng)該以第一間隔布線圖案連線有間隔布線的位置上的MLUT中,位于MLUT區(qū)域8的上端部以及下端部附近的若干個MLUT30未以第一間隔布線圖案連線有間隔布線。這些MLUT中應(yīng)該基于第一間隔布線的規(guī)則進(jìn)行連線的MLUT不存在于MLUT區(qū)域8上。因此,以后述的第四以及第五間隔布線圖案連線有間隔布線。
〔3. 3. 4〕第二間隔布線圖案的配置構(gòu)造
圖37為表示具有15行X30列的MLUT的MLUT區(qū)域的第二間隔布線圖案的配置的圖。在圖37中示出以圓形形狀表示的450個MLUT30、分別對相鄰的6個MLUT之間進(jìn)行連線的近距離布線和在從左下至右上排列的MLUT之間每5個MLUT進(jìn)行連線的第二間隔布線圖案。另外,與第一間隔布線圖案相同地,在配置于應(yīng)該以第二間隔布線圖案連線有間隔布線的位置的MLUT中,位于MLUT區(qū)域8的端部附近的若干個MLUT30以后述的第四以及第五間隔布線圖案連線有間隔布線。
〔3. 3. 5〕第三間隔布線圖案的配置構(gòu)造
圖38為表示具有15行X30列的MLUT的MLUT區(qū)域的第三間隔布線圖案的配置的圖。圖中示出以圓形形狀表示的450個MLUT30、分別對相鄰的6個MLUT之間進(jìn)行連線的近距離布線和在從右下至左上排列的MLUT之間每5個MLUT進(jìn)行連線的第三間隔布線圖案。另外,與第一以及第二間隔布線圖案相同地,在配置于應(yīng)該以第三間隔布線圖案連線有間隔布線的位置的MLUT30中,位于MLUT區(qū)域8的端部附近的若干個MLUT30以后述的第四以及第五間隔布線圖案連線有間隔布線。
〔3. 3. 6〕第四間隔布線圖案的配置構(gòu)造
圖39為表示具有15行X30列的MLUT的MLUT區(qū)域的第四間隔布線圖案的配置的圖。如上所述,第四間隔布線圖案的配置并不基于圖34所示的MLUT塊中所規(guī)定的連線規(guī)則,而是用來對位于MLUT區(qū)域8的端部附近的若干個MLUT30進(jìn)行連線。但是,第四間隔布線圖案被配置成與第一 第三隔離布線圖案的配置類似的配置。第四布線圖案的規(guī)則如以下所示。
首先,與第一 第三間隔布線圖案相同地,第四間隔布線圖案被配置為與沿縱向、 從左下至右上方向或從右下至左上方向的任意一個方向的MLUT所排列的方向平行。
接著,第四間隔布線圖案是沿任意一個方向按每4個分離的MLUT進(jìn)行MLUT的配置。為了遵照該規(guī)則,本來應(yīng)該以第一 第三間隔布線圖案進(jìn)行連線的若干個MLUT以第四間隔布線圖案進(jìn)行連線。例如,在圖38中,配置于上端行的左端列的MLUT為應(yīng)該以第一間隔布線圖案連線有間隔布線的MLUT,但是,卻以第四間隔布線圖案進(jìn)行連線。
這樣的第四隔離布線圖案具有與第一 第三隔離布線圖案類似的布線圖案,因此,能夠?qū)ο騇LUT區(qū)域8上的各MLUT30進(jìn)行邏輯電路信息的布局/布線時所使用的布局/布線算法的影響抑制到較低。
〔3. 3. 7〕第五間隔布線圖案的配置構(gòu)造
圖40為表示具有15行X30列的MLUT的MLUT區(qū)域的第五間隔布線圖案的配置的圖。通過第五間隔布線圖案連接的MLUT為不能以第一 第四間隔布線圖案進(jìn)行連線,且也不能以第四間隔布線圖案進(jìn)行連線的MLUT30。在本例的MLUT區(qū)域中,這些MLUT30也能夠借助于D觸發(fā)器進(jìn)行連線。
〔4〕搭載了 I個MPLD的半導(dǎo)體裝置
在此,對搭載了 I個MPLD的半導(dǎo)體裝置的例子加以說明。
〔4. I〕搭載了 I個MPLD的半導(dǎo)體裝置的配置構(gòu)造
圖41為表示搭載了 MPLD的半導(dǎo)體裝置的配置塊的一例的圖。半導(dǎo)體裝置100具有MPLD20和輸入輸出電路部15。輸入輸出電路部15具有用于從半導(dǎo)體裝置100的外部裝置輸入信號的輸入電路、用于從半導(dǎo)體裝置100的外部裝置輸出信號的輸出電路、電源用單元以及I / O端口。
輸入電路能夠分別與對配置于MPLD20內(nèi)的各MLUT30進(jìn)行選擇的地址線、對構(gòu)成各MLUT30的存儲元件40進(jìn)行選擇的地址線和用于向構(gòu)成各MLUT30的存儲元件40寫入存儲動作信息等的存儲動作用數(shù)據(jù)線連接。而且,輸入電路能夠與配置于MPLD20的端部且未與其他MLUT30連線的AD對的至少I個邏輯動作用地址線以及控制信號等連接。輸出電路能夠分別與存儲動作用數(shù)據(jù)線以及配置在MPLD20的端部且未與其他MLUT30連線的AD對的至少I個邏輯動作用數(shù)據(jù)線等連接。輸入電路以及輸出電路和MPLD20的各AD對能夠直接連接。此外,輸入電路以及輸出電路和MPLD20的AD對也能夠經(jīng)由緩沖電路進(jìn)行連接。通過插入緩沖電路能夠使信號傳遞速度提高。
MPLD能夠構(gòu)成多輸入多輸出的邏輯電路。例如參照圖33,具有30行X 15列的 MLUT區(qū)域8的MPLD20具有118個未連線的AD對。這些AD對可全部作為輸入輸出信號線使用。這就意味著,具有該MLUT區(qū)域8的MPLD20具有118根輸入信號線以及118根輸出信號線,并能夠平行地對64位等多位信號進(jìn)行邏輯運(yùn)算。因此,MPLD能夠?qū)崿F(xiàn)高速且多輸入多輸出的邏輯電路。此外,如上所述,MPLD具有規(guī)則配置的MLUT,因此,也能夠用于具有規(guī)則性的電路或真值表。
〔4. 2〕針對MPLD的布局/布線流程
在此,說明對搭載于半導(dǎo)體裝置的MPLD進(jìn)行布局/布線的流程的一例。
圖42為表示執(zhí)行MPLD的布局/布線的信息處理裝置的一例的圖。信息處理裝置 210具有運(yùn)算處理部211、輸入部212、輸出部213和存儲部214。運(yùn)算處理部211將已輸入到輸入部212的布局/布線用軟件、RTL (Register Transfer Level,寄存器傳輸級)描述等的電路描述(以下,也稱為網(wǎng)絡(luò)表)等的真值表數(shù)據(jù)存儲于存儲部214。此外,運(yùn)算處理部 211使用存儲于存儲部214的布局/布線用軟件,對存儲于存儲部214的電路描述執(zhí)行以下所示的布局/布線流程,并向輸出部213輸出。能夠?qū)雽?dǎo)體裝置100 (未圖示)連接至輸出部213,并能夠經(jīng)由輸出部213將包含運(yùn)算處理部211所執(zhí)行的布局/布線信息的位流數(shù)據(jù)寫入半導(dǎo)體裝置100。
圖43為表示信息處理裝置生成用于向MPLD布局/布線的位流數(shù)據(jù)的流程的一例的圖。首先,具有對網(wǎng)絡(luò)表進(jìn)行與工藝無關(guān)的邏輯最優(yōu)化(S201)、工藝映射(S202 )、布局 (S203)、布線(S204)的步驟。已被布局/布線的位流數(shù)據(jù)相當(dāng)于分別寫入MLUT30的邏輯電路信息,并通過MPLD20的存儲動作被寫入到各MLUT30所具備的存儲元件。以下,依次對各步驟加以說明。
〔4. 2. I〕與工藝無關(guān)的的邏輯最優(yōu)化
首先,說明對網(wǎng)絡(luò)表進(jìn)行與工藝無關(guān)的邏輯最優(yōu)化的步驟(S201)。在該步驟中,可以分離成加法器、減法器、乘法器以及除法器等運(yùn)算器部分和其他邏輯電路部分來進(jìn)行最優(yōu)化。
在從RTL描述分離成運(yùn)算器部分和其他邏輯電路部分時,通過提取RTL描述中所記載的運(yùn)算記號,能夠分離出運(yùn)算器部分。例如,在利用Verilog HDL記載了 RLT描述的情況下,通過提取表示加法的“ + ”、表示減法的“一”、表示乘法的“*”、表示除法的“ / ”以及表示余數(shù)運(yùn)算“ % ”等的運(yùn)算符,能夠從RTL描述中分離出運(yùn)算器部分。在使用與C語言類似的其他語言的情況下,也能夠通過相同的方法分離出運(yùn)算器部分。
可以以全加法器或半加法器作為基本單位來對運(yùn)算器部分進(jìn)行最優(yōu)化。當(dāng)將運(yùn)算器部分與其他邏輯電路部分一同進(jìn)行最優(yōu)化時,通過對NAND電路、XOR電路等基本門電路進(jìn)行組合,構(gòu)成運(yùn)算器。但是,在該情況下,當(dāng)進(jìn)行邏輯合成時,為了邏輯合成為各種門電路,構(gòu)成各種運(yùn)算器的電路可能會變得冗長。因此,通過將運(yùn)算器部分與其他邏輯電路部分分離、并將全加法器或半加法器等作為基本單位來進(jìn)行模塊合成,能夠高效地對運(yùn)算器部分進(jìn)行最優(yōu)化。
這里的所謂模塊合成是指將具有規(guī)則構(gòu)造的存儲器、運(yùn)算邏輯裝置(ALU)、乘法器以及加法器等數(shù)據(jù)總線系模塊等作為對象,并作為參數(shù)賦予模塊的功能和位寬等必要信息,來生成模塊模式。
例如,在通過具有5個以上的AD對的MLUT來構(gòu)成MPLD的情況下,可以將2位加法器作為基本單位,對運(yùn)算器部分進(jìn)行模塊合成。4位加法器可以由2個位加法器構(gòu)成。8 位加法器可以由4個位加法器構(gòu)成。
對于8位加法器等基本的運(yùn)算電路,能夠?qū)⒒?位加法器的布線信息存儲于存儲部214。由此,關(guān)于所存儲的運(yùn)算電路,則不需要后述的布線處理,能夠?qū)崿F(xiàn)處理的高速化。但是,運(yùn)算電路具有各種位數(shù)。此外,在加法器當(dāng)中,除了全加法器、半加法器,還存在被稱為“超前進(jìn)位(Carry look ahead)”的加法器。因此,使所有模式的運(yùn)算電路存儲于存儲部是不現(xiàn)實(shí)的。因此,可以將用于通過2位加法器構(gòu)成運(yùn)算電路的規(guī)定的布線規(guī)則存儲于存儲部214,并基于此布線規(guī)則構(gòu)成運(yùn)算電路。
對于其他的邏輯電路部分,使用用于通常的LSI設(shè)計(jì)或FPGA設(shè)計(jì)的一般方法。例如,執(zhí)行狀態(tài)機(jī)的狀態(tài)數(shù)的最小化、二級邏輯最優(yōu)化以及多級邏輯最優(yōu)化等處理。
〔4. 2. 2〕工藝映射
接下來,對信息處理裝置210進(jìn)行工藝映射以使進(jìn)行了與工藝無關(guān)的邏輯最優(yōu)化之后的網(wǎng)絡(luò)表成為適合于構(gòu)成MPLD的MLUT的網(wǎng)絡(luò)表的步驟(S202)加以說明。在一個例子中,工藝映射具有對進(jìn)行了與工藝無關(guān)的邏輯最優(yōu)化之后的網(wǎng)絡(luò)表進(jìn)行分解的第一步驟和對已通過第一步驟分解后的網(wǎng)絡(luò)表進(jìn)行覆蓋的第二步驟。
第一步驟是使邏輯電路的輸入以及輸出數(shù)量在K以下,以使構(gòu)成于MLUT的真值表中能夠包含I個邏輯電路的步驟。在MLUT的AD對的數(shù)量為N的情況下,輸入以及輸出數(shù)K 必須在AD對的數(shù)量N以下。在第一步驟中,可以使用內(nèi)核(Kernel)提取以及Roth, karp 分解(Roth — Karp decomposition)等。
第二步驟是為了對構(gòu)成于MLUT的真值表的數(shù)量進(jìn)行最優(yōu)化,而對通過第一步驟獲得的網(wǎng)絡(luò)表的若干個節(jié)點(diǎn)進(jìn)行覆蓋的步驟。該步驟中,在通過第一步驟而被分解的真值表中,將2個以上的真值表結(jié)合起來并將能夠包含在I個MLUT的真值表匯總成I個真值表。 由此,能夠?qū)?gòu)成于MLUT30的真值表的數(shù)量進(jìn)行最優(yōu)化。
優(yōu)選的是,在對組合電路進(jìn)行最優(yōu)化時,可以使最優(yōu)化后的組合電路所具有的輸入數(shù)以及輸出數(shù)小于MLUT所具有的AD對的數(shù)量。由此,能夠?qū)⑴渲糜薪M合電路的MLUT同時作為連接部件使用。另外,在構(gòu)成MPLD的MLUT具有6個以上的AD對的情況下,可以將輸入線以及輸出線的數(shù)量最優(yōu)至5個以下。這是為了通過具有5個輸入線以及輸出線而在 I個MLUT構(gòu)成2位加法器的真值表。
〔4. 2. 3〕布局
接下來,對信息處理裝置210將執(zhí)行了工藝映射后的網(wǎng)絡(luò)表配置于MPLD內(nèi)的各 MLUT的步驟(S203)加以說明。在執(zhí)行了工藝映射后的網(wǎng)絡(luò)表中記載根據(jù)MLUT具有的AD 對的數(shù)量所構(gòu)成的邏輯電路部的真值表與各MLUT所具有的AD對之間的連接關(guān)系。在本步驟中,將邏輯電路部的真值表分別配置于適當(dāng)位置的MLUT。作為具體的布局手法,與通常的 LSI設(shè)計(jì)同樣包括用于初始布局的構(gòu)成布局法(隨機(jī)法、對聯(lián)結(jié)法、成群展開法、以及最小割 (min-cut)法等),以及用于布局改善的重復(fù)改善法(斯坦伯格法、對交換法、廣義力向量松弛法(force directed relaxation)、以及模擬退火法等)等。
〔4. 2. 4〕布線
對最后基于執(zhí)行了工藝映射之后的網(wǎng)絡(luò)表,在已布局的MLUT之間進(jìn)行布線的步驟(S204)加以說明。根據(jù)執(zhí)行了工藝映射之后的網(wǎng)絡(luò)表,使用作為連接部件發(fā)揮作用的 MLUT在作為邏輯電路工作的MLUT所具有的AD對之間進(jìn)行布線。作為具體的布局手法,與通常的LSI設(shè)計(jì)同樣包括Lee算法以及線檢索算法等。結(jié)果,生成構(gòu)成真值表數(shù)據(jù)的位流數(shù)據(jù),該真值表數(shù)據(jù)將實(shí)現(xiàn)所希望的邏輯電路的網(wǎng)絡(luò)表布局/布線于MPLD上。
〔4. 3〕搭載了 I個MPLD的半導(dǎo)體裝置中的重構(gòu)
如到目前為止所說明的,MPLD具有能夠構(gòu)成可重構(gòu)邏輯電路的多個存儲元件。利用MPLD的該特性,在搭載了 MPLD的半導(dǎo)體裝置中,能夠?qū)懭隡PLD的邏輯電路信息進(jìn)行重構(gòu)。
例如,圖41中記載的搭載了 MPLD20的半導(dǎo)體裝置100中的重構(gòu)能夠使用圖42中記載的信息處理裝置210來實(shí)現(xiàn)。將構(gòu)成能夠?qū)懭隡PLD20的邏輯電路信息的多個位流數(shù)據(jù)存儲于信息處理裝置210的存儲部214。而且,通過信息處理裝置210向與信息處理裝置 210的輸出部213連接的半導(dǎo)體裝置100寫入位流數(shù)據(jù),能夠?qū)崿F(xiàn)MPLD20的重構(gòu)。
此外,圖41中記載的搭載了 MPLD20的半導(dǎo)體裝置100中的重構(gòu)也能夠通過使用與半導(dǎo)體裝置100搭載于同一基板的微處理器(未作圖示)和存儲裝置(未作圖示)來實(shí)現(xiàn)。
〔4. 4〕搭載了 I個MPLD的半導(dǎo)體裝置中的部分重構(gòu)
〔4. 4. I〕MPLD的部分重構(gòu)流程
說明對搭載于半導(dǎo)體裝置的MPLD進(jìn)行部分重構(gòu)的流程的一例。
圖44為表示對搭載于圖41所示的半導(dǎo)體裝置的MPLD進(jìn)行部分重構(gòu)的流程的一例的圖。首先,在步驟S211中,信息處理裝置210對已寫入MPLD的第一位流數(shù)據(jù)和執(zhí)行了部分重構(gòu)后的第二位流數(shù)據(jù)進(jìn)行比較。該比較是通過比較記載于各位流數(shù)據(jù)中的具有相同地址的MLUT之間的內(nèi)部所記載的真值表來進(jìn)行的;并且,通過比較與MLUT的各AD對連接的AD對符號等來進(jìn)行。能夠?qū)⒌谝晃涣鲾?shù)據(jù)和執(zhí)行了部分重構(gòu)后的第二位流數(shù)據(jù)存儲于存儲裝置。優(yōu)選的是,在生成第二位流數(shù)據(jù)時,能夠?qū)Φ谝晃涣鲾?shù)據(jù)與第二位流數(shù)據(jù)之間具有相同功能的MLUT賦予與第一位流數(shù)據(jù)相同的符號。接下來,在步驟S212中,確定第一位流數(shù)據(jù)與第二位流數(shù)據(jù)之間所記載的真值表數(shù)據(jù)不同的MLUT的地址,并將其存儲于存儲裝置。對于MLUT的地址,能夠在第一位流數(shù)據(jù)與第二位流數(shù)據(jù)之間將MPLD中位于相同位置的MLUT設(shè)為相同的地址。例如,在具有30行X 15列的MLUT區(qū)域的MPLD中,可以將位于左上頂點(diǎn)的MLUT的地址設(shè)為O號,將位于此MLUT右側(cè)的MLUT的地址設(shè)為I號,以下同樣地進(jìn)行重復(fù),將位于右下頂點(diǎn)的MLUT的地址設(shè)為449號。另外,可以具有在第一位流數(shù)據(jù)與第二位流數(shù)據(jù)的各MLUT地址和物理位置不對應(yīng)的情況下使兩者的相關(guān)性明確的裝置。例如,可以將表示相關(guān)關(guān)系的數(shù)據(jù)存儲于存儲裝置。接下來,在步驟S213中,信息處理裝置210向MPLD輸出在步驟S212所確定的MLUT的I個地址。具體地講,向MPLD20的行譯碼器12a和列譯碼器12b輸入地址。然后,在步驟S214,信息處理裝置210將地址被指定了的MLUT的第二位流數(shù)據(jù)所記載的真值表數(shù)據(jù)向MLUT寫入。因?yàn)橐呀?jīng)對向MLUT寫入數(shù)據(jù)的方法進(jìn)行了記述,所以在此省略其詳細(xì)內(nèi)容。
當(dāng)在第一位流數(shù)據(jù)與第二位流數(shù)據(jù)之間所記載的真值表數(shù)據(jù)不同的MLUT的地址還在存儲裝置中存儲有的情況下,返回步驟S213。當(dāng)沒有存儲其他的在第一位流數(shù)據(jù)與第二位流數(shù)據(jù)之間所記載的邏輯電路信息不同的MLUT30的地址的情況下,結(jié)束部分重構(gòu)。
〔4. 4. 2〕部分重構(gòu)的實(shí)施例
在此,基于具體的實(shí)施例說明部分重構(gòu)的優(yōu)點(diǎn)。實(shí)施例基于高速傅立葉變換中一般所使用的蝶形運(yùn)算。
圖45中示出通過蝶形運(yùn)算進(jìn)行8點(diǎn)離散傅立葉變換時的算法的一例。在此,f (O) f (7)為時間上的8個點(diǎn)。F (O) F (7)為離散傅立葉變換后的8個點(diǎn)。WO W3 為旋轉(zhuǎn)因子。在圖45中,箭頭線的交點(diǎn)表示進(jìn)行加法的點(diǎn)。此外,在箭頭線的交點(diǎn)處還附有“一 I”的記載的情況下,表示進(jìn)行減法的點(diǎn)。并且,在箭頭線上附有旋轉(zhuǎn)因子WO W3的情況下,表示乘以旋轉(zhuǎn)因子WO W3。因此,例如在階段Sljff (O)進(jìn)行加上將f (4)乘以WO后的值的加法運(yùn)算,并對f (O)進(jìn)行減去將f (4)乘以WO后的值的減法運(yùn)算。這樣, 蝶形運(yùn)算中,在各階段進(jìn)行常數(shù)乘法運(yùn)算。
一般來講,在通過邏輯電路實(shí)現(xiàn)常數(shù)乘法運(yùn)算的情況下,與構(gòu)成乘法電路相比,多通過移位電路和加法運(yùn)算來構(gòu)成常數(shù)乘法專用電路。這是因?yàn)榕c單純構(gòu)成乘法電路的情況相比,通過由移位電路和加法運(yùn)算來構(gòu)成常數(shù)乘法專用電路,能夠?qū)崿F(xiàn)運(yùn)算速度的高速化。此外,通過使用移位電路和加法運(yùn)算,能夠減少電路元件的數(shù)量,因此具有減少芯片面積的效果。例如,常數(shù)“3”乘以變量“a”的電路能夠如下式所示地通過移位電路和加法運(yùn)算來構(gòu)成。
3*a = a*2 + a = (a << I) + a
在此,表示乘法,“ + ”表示加法,“〈”表示移位電路。因此,算式“(a << I) + a”意味著將變量a移位至上2位的位,并對其結(jié)果加上變量a。
另一方面,離散傅立葉變換的旋轉(zhuǎn)因子WO W3根據(jù)使用電路的用途不同,可取各種值。因此,即使在構(gòu)成通過蝶形運(yùn)算來實(shí)現(xiàn)同樣的8點(diǎn)離散傅立葉變換的電路的情況下, 根據(jù)用途不同,需要構(gòu)成各種電路。例如,在旋轉(zhuǎn)因子W3為3的電路中,乘以旋轉(zhuǎn)因子W3 的電路如以下所示的算式那樣構(gòu)成。
3*a = a*2 + a = (a << I) + a
對此,在旋轉(zhuǎn)因子W3為4的電路中,乘以旋轉(zhuǎn)因子W3的電路如以下所示的算式那樣構(gòu)成。
4*a = a*2 + a*2 = (a << I) + (a << I)
在FPGA等以往的可重構(gòu)邏輯電路中,即使在像這樣僅一部分電路變更的情況下, 也需要再進(jìn)行布局/布線或需要改寫所有邏輯電路信息。但是,MPLD能夠確定邏輯電路信息已被變更的MLUT的地址,因此,能夠僅改寫邏輯電路信息已被變更的MLUT來進(jìn)行部分重構(gòu)。在該實(shí)施例中,能夠通過將構(gòu)成“+ a”的邏輯電路的MLUT改寫為構(gòu)成“+ (a << I)” 的邏輯電路的MLUT來進(jìn)行部分重構(gòu)。
〔5〕搭載了 I個MPLD和運(yùn)算處理部的半導(dǎo)體裝置
在此,對搭載了 I個MPLD和運(yùn)算處理部的半導(dǎo)體裝置的例子加以說明。
〔5. I〕搭載了 MPLD和運(yùn)算處理部的半導(dǎo)體裝置
圖46為表示搭載了 MPLD的半導(dǎo)體裝置的一例的圖。半導(dǎo)體裝置100具有MPLD20 和運(yùn)算處理部220。
運(yùn)算處理部220具有存儲部110、指令讀出部120、寄存器部130以及指令執(zhí)行部 140。運(yùn)算處理部220為通過執(zhí)行存儲于MPLD20的程序來進(jìn)行與MPLD20之間的數(shù)據(jù)的輸入輸出,并對從MPLD20接收到的數(shù)據(jù)進(jìn)行運(yùn)算的裝置。運(yùn)算處理部220例如為作為運(yùn)算處理裝置的MPU (Micro Processing Unit,微處理單元)。MPLD20能夠高速處理多輸入多輸出的邏輯運(yùn)算。因此,將運(yùn)算處理部220的功能限定為作為邏輯電路的部分控制的分支指令等的例外處理、作為MPLD20的狀態(tài)控制的MPLD20的重構(gòu)、或?qū)PLD20內(nèi)的SRAM作為存儲區(qū)域而進(jìn)行數(shù)據(jù)訪問等,由此,能夠形成8位、16位等位寬較窄的運(yùn)算處理裝置。
存儲部110為存儲指令或數(shù)據(jù)的存儲裝置。存儲部110存儲MPLD20要存儲的數(shù)據(jù)的一部分。存儲部110例如為I次高速緩沖存儲器。存儲部110例如為SRAM (Static Random Access Memory,靜態(tài)隨機(jī)訪問存儲器)。另外,在以下的說明中,將存儲部110作為 MPLD20的高位高速緩沖存儲器來加以說明,而如使用圖52在后面所述的那樣,在一實(shí)施方式中,運(yùn)算處理部220與存儲部26數(shù)據(jù)連接。此情況下,對于與利用下述MPLD20的存儲器功能的運(yùn)算處理部220之間的數(shù)據(jù)輸入輸出,在主存儲裝置中也相同。
存儲部110設(shè)于運(yùn)算處理部220的內(nèi)部,并位于比MPLD20更接近指令讀出部120 的位置。在指令讀出部120訪問存儲于存儲部110的數(shù)據(jù)的情況下(以下,稱為“高速緩存命中”),指令讀出部120能夠短時間訪問對象數(shù)據(jù)。另一方面,在指令讀出部120訪問未存儲于高速緩沖存儲器的數(shù)據(jù)的情況下(以下,稱為“高速緩存缺失”),因?yàn)橐獜奈挥诖鎯Σ?110的下層的MPLD20讀出數(shù)據(jù),所以對對象數(shù)據(jù)的訪問時間變長。因此,為了不產(chǎn)生高速緩存缺失,將來自運(yùn)算讀出部120的訪問頻度高的數(shù)據(jù)保存于存儲部110。
指令讀出部120從存儲部110讀出指令,并將所讀出的指令輸出至指令執(zhí)行部 140。
當(dāng)指令執(zhí)行部140從指令讀出部120接收到從存儲部110讀出的指令時,對存儲于寄存器130的數(shù)據(jù)執(zhí)行通過指令確定的處理。所謂與指令相應(yīng)的規(guī)定的指令處理例如為浮動小數(shù)點(diǎn)運(yùn)算、整數(shù)運(yùn)算、生成地址、執(zhí)行分支指令、將存儲于寄存器130的數(shù)據(jù)向存儲部110存儲的存儲動作、將存儲于存儲部110的數(shù)據(jù)加載至寄存器130的加載動作。指令執(zhí)行部140具有進(jìn)行浮動小數(shù)點(diǎn)運(yùn)算、整數(shù)運(yùn)算、地址生成、分支指令的執(zhí)行以及存儲或加載動作的執(zhí)行器,使用這些執(zhí)行器來執(zhí)行上述指令處理。指令執(zhí)行部140借助于輸入輸出部150,對MPLD20執(zhí)行數(shù)據(jù)的存儲或加載動作。
寄存器130例如存儲操作數(shù)、或?qū)PLD20進(jìn)行存儲或讀出動作時的地址、保存有作為指令執(zhí)行部140的執(zhí)行對象的指令的MPLD20的地址。
輸入輸出部150進(jìn)行與MPLD20之間的數(shù)據(jù)的輸入輸出。MPLD20與使用圖I 圖 3加以說明過的例子相同。輸入輸出部150中,MLUT30的邏輯動作用地址LA的地址線與自運(yùn)算處理部220的輸出端子DO而來的I個輸出信號線連接,并且MLUT30的邏輯動作用數(shù)據(jù)LD的數(shù)據(jù)線與向運(yùn)算處理部220的輸入端子IO進(jìn)行輸入的輸入信號線連接。這樣, 配置于MPLD20的外延的MLUT的至少一部分接收與運(yùn)算處理部220之間的邏輯動作用地址 LA,或輸出邏輯動作用數(shù)據(jù)LD。
如圖46所示,輸入輸出部150還與MPLD地址、存儲動作用地址MA、寫入數(shù)據(jù)WD、 讀出數(shù)據(jù)RD的信號線連接,通過這些數(shù)據(jù)的輸入輸出,對MPLD20進(jìn)行存儲動作。
如通過上述構(gòu)成所明確的那樣,運(yùn)算處理部220借助于輸入輸出部150將存儲動作用地址MA、MPLD地址、寫入數(shù)據(jù)WD輸出至MPLD20,由此,執(zhí)行使MPLD存儲動作產(chǎn)生的存儲動作,并借助于輸入輸出部150,將存儲動作用地址MA、MPLD地址輸出至MPLD20,由此來接收讀出數(shù)據(jù)RD。這樣,輸入輸出部150中進(jìn)行存儲動作用地址MA、MPLD地址、寫入數(shù)據(jù) WD、讀出數(shù)據(jù)RD的輸入輸出的部分作為存儲動作用的輸入輸出部工作。
此外,如通過上述構(gòu)成所明確的那樣,運(yùn)算處理部220借助于輸入輸出部150輸出邏輯動作用地址LA,并接收邏輯動作用數(shù)據(jù)LD,由此,接收MPLD的邏輯動作的結(jié)果。這樣, 輸入輸出部150中進(jìn)行邏輯動作用地址LA、邏輯動作用數(shù)據(jù)LD的輸入輸出的部分作為邏輯動作用的輸入輸出部工作。
圖47為概略地表示進(jìn)行運(yùn)算處理部與MPLD之間的數(shù)據(jù)的輸入輸出的輸入輸出部的一例的圖。包含于MPLD20的輸入輸出部21中,MLUT30的地址線與自運(yùn)算處理部220的輸出端子DO而來的I個輸出信號線連接,并且MLUT30的數(shù)據(jù)線與向運(yùn)算處理部220的輸入端子IO進(jìn)行輸入的輸入信號線連接。
按照運(yùn)算處理部220的輸入輸出位數(shù)的數(shù)量準(zhǔn)備運(yùn)算處理部220的邏輯動作用的輸入輸出信號線與MLUT30的地址或數(shù)據(jù)線的連接。例如,在運(yùn)算處理部220具有16位的輸出位寬的情況下,輸出信號線以及輸入信號線分別為16根,與這些信號線連接的MLUT的地址線以及數(shù)據(jù)線也為16根。
按照運(yùn)算處理部220的輸入輸出位數(shù)的數(shù)量準(zhǔn)備運(yùn)算處理部220的輸入輸出信號線與MLUT30的地址或數(shù)據(jù)線的連接。例如,在運(yùn)算處理部220具有16位的輸出位寬的情況下,輸出信號線以及輸入信號線分別為16根,與這些信號線連接的MLUT的地址線以及數(shù)據(jù)線也為16根。
這樣,通過不經(jīng)由總線連接電路而直接將運(yùn)算處理部220的輸入輸出信號線與 MLUT30的地址或數(shù)據(jù)線連接,能夠使運(yùn)算處理部220與MPLD20連接。由于在運(yùn)算處理部 220與MPLD20之間的連接中不借助于總線連接電路,因此無需通過總線仲裁電路來進(jìn)行主從設(shè)定。結(jié)果,能夠謀求運(yùn)算處理部220與MPLD20之間的信號的傳遞速度的提高。此外, 能夠在各連接之間插入緩沖電路。通過插入緩沖電路,能夠謀求信號的傳遞速度的進(jìn)一步提聞。
圖48為表示進(jìn)行運(yùn)算處理部與MPLD之間的數(shù)據(jù)的輸入輸出的輸入輸出部的其他例的圖。如圖48所示,運(yùn)算處理部220具有進(jìn)行與MPLD20之間的數(shù)據(jù)輸入輸出的輸入輸出部230。此外,MPLD20也具有進(jìn)行與運(yùn)算處理部220之間的數(shù)據(jù)輸入輸出的輸入輸出部21。輸入輸出部21輸入輸出部150,例如具有從MLUT30的AD對的地址線輸出地址的端口 AO A7以及從MLUT30的AD對的數(shù)據(jù)線輸入數(shù)據(jù)的端口 DO D7,并能夠?qū)PLD20的邏輯部件進(jìn)行數(shù)據(jù)輸入輸出。
輸入輸出部21還依據(jù)用于與運(yùn)算處理部220的輸入輸出部230進(jìn)行數(shù)據(jù)輸入輸出的規(guī)定的協(xié)議進(jìn)行傳遞控制。所謂依據(jù)規(guī)定的協(xié)議的傳遞控制為例如PCI Express等高速串行總線或并行總線等的總線控制。這樣,運(yùn)算處理部220與MPLD20能夠通過規(guī)定的總線進(jìn)行數(shù)據(jù)連接。
另外,圖48中,運(yùn)算處理裝置與I個MPLD20連接,但也能夠借助于輸入輸出部230 也與其他MPLD連接。而且,運(yùn)算處理部220還能夠借助于輸入輸出部230與第一 MPLD所具有的MLUT的地址線以及數(shù)據(jù)線和第二 MPLD所具有的MLUT的地址線以及數(shù)據(jù)線連接,對第一 MPLD進(jìn)行邏輯動作的數(shù)據(jù)輸入輸出,并對第二 MPLD進(jìn)行包括重構(gòu)在內(nèi)的存儲動作。 由此,運(yùn)算處理部220對第一 MPLD的輸入輸出部進(jìn)行輸出地址以及數(shù)據(jù)的控制,并對第二 MPLD的輸入輸出部進(jìn)行輸出地址及接收數(shù)據(jù)的控制。
圖49為表示同時進(jìn)行邏輯動作和存儲動作的MPLD以及運(yùn)算處理部的一例的圖。 如圖49所示的MPLD20的MLUT能夠如圖19所示的MLUT那樣同時進(jìn)行邏輯動作和存儲動作。因此,運(yùn)算處理部220對由作為MPLD內(nèi)的存儲動作對象的多個MLUT構(gòu)成的第一邏輯部進(jìn)行存儲動作,并對由作為MPLD內(nèi)的邏輯動作對象的多個MLUT構(gòu)成的第二邏輯部進(jìn)行邏輯動作。
圖50為表示多個MPLD以及運(yùn)算處理部的一例的圖。圖50所示的MPLD20A、20B 的MLUT不能如圖4所示的MLUT那樣同時進(jìn)行邏輯動作和存儲動作。因此,運(yùn)算處理部220 對包含作為存儲動作象的多個MLUT的第一MPLD20A進(jìn)行存儲動作,并對由作為邏輯動作對象的多個MLUT構(gòu)成的第二 MPLD20B進(jìn)行邏輯動作。
〔5. 2〕搭載了 MPLD與運(yùn)算處理部的半導(dǎo)體裝置的配置構(gòu)造
圖51為表示搭載了 MPLD的半導(dǎo)體裝置的其他例中的配置塊的一例的圖。半導(dǎo)體裝置100具有MPLD20、運(yùn)算處理部220和輸入輸出電路部15。輸入輸出電路部15與參照圖41加以說明的例子相同,因此,在此省略說明。運(yùn)算處理部220為使用圖46加以說明的結(jié)構(gòu)。
在本例中,MPLD地址信號線與存儲動作用地址信號線能夠與運(yùn)算處理部220連接。配置于MPLD20的端部并未與其他MLUT30連線的AD對的若干個與運(yùn)算處理部220連接。此外,其他若干個與輸入輸出電路部15連接。運(yùn)算處理部220、MPLD地址信號線和存儲動作用地址信號線能夠借助于內(nèi)部總線電路相連接、或能夠直接連接。對于運(yùn)算處理部 220與MLUT30的AD對之間的連接,能夠借助于內(nèi)部總線電路連接。此外,對于運(yùn)算處理部 220與MLUT30的AD對之間的連接,也能夠直接連接。與借助于內(nèi)部總線電路連接的情況相比較,對AD對進(jìn)行直接連接的情況能夠高速工作。這是因?yàn)闊o需總線仲裁電路動作。而且,運(yùn)算處理部220與MPLD20的各AD對也能夠借助于緩沖電路連接。通過插入緩沖電路, 能夠進(jìn)一步提高信號傳遞速度。
圖52中為表示搭載了 MPLD的半導(dǎo)體裝置的其他例中的配置構(gòu)造的一例的圖。參照圖52,本例中的半導(dǎo)體裝置100具有多路復(fù)用器22、A / D轉(zhuǎn)換器24、運(yùn)算處理部220、I 個 MPLD20、存儲部 26、M0SFET (Metal-Oxide-Semiconductor Field-EffectTransistor,金屬氧化物半導(dǎo)體場效應(yīng)晶體管)驅(qū)動器28。此外,從本例的半導(dǎo)體裝置100的控制對象物的檢測器輸出向多路復(fù)用器22輸入信號,MOSFET驅(qū)動器28的輸出被輸入至控制對象物的控制輸入。
多路復(fù)用器22從控制對象物的檢測器輸入32個或64個等適當(dāng)數(shù)量的模擬信號。 多路復(fù)用器22對所輸入的信號進(jìn)行時間分割并向A / D轉(zhuǎn)換器24輸出。A / D轉(zhuǎn)換器24 將已被進(jìn)行時間分割的模擬信號變換成數(shù)字信號,并向運(yùn)算處理部220和MPLD20輸出。已輸入來自A / D轉(zhuǎn)換器24的信號的運(yùn)算處理部220基于存儲于外部存儲裝置的軟件的控制,指示MPLD20對所輸入的信號進(jìn)行處理。此時,MPLD20進(jìn)行多輸入多輸出的運(yùn)算處理、 定型處理以及背景處理等。
此外,運(yùn)算處理部220向MPLD20發(fā)出信號處理方法的指令,并進(jìn)行從MPLD20輸入錯誤信號、報(bào)警信號等時的處理等非定型處理。通過對MPLD20的邏輯電路信息進(jìn)行重構(gòu), 運(yùn)算處理部220能夠使MPLD20執(zhí)行各種處理。在規(guī)定的處理結(jié)束后,運(yùn)算處理部220基于存儲于外部存儲裝置的軟件的控制,借助于MOSFET驅(qū)動器28向?qū)ο笪锟刂茖ο笪镙敵鰯?shù)據(jù)。由此,能夠形成從控制對象物的檢測器借助于本例的半導(dǎo)體裝置100至控制對象物的控制器的反饋回路。因此,能夠以少量零件構(gòu)成多系統(tǒng)的控制。
對本例的半導(dǎo)體裝置100的應(yīng)用例加以說明。作為應(yīng)用例,半導(dǎo)體裝置100進(jìn)行除去附著于汽車的車門后視鏡的雨滴的控制。該情況下,控制對象物的檢測器包括設(shè)置在設(shè)于汽車的駕駛員側(cè)的車門上的車門后視鏡、副駕駛側(cè)的車門后視鏡以及前窗玻璃等處的、分別配置數(shù)個的雨滴檢測器、設(shè)置于前窗玻璃或前蓋等的雨量檢測器等。此外,對于其他的輸入,還包括設(shè)置于車門后視鏡、前窗玻璃等的括水器的工作頻度、工作速度的信號等。被輸入這些信號的半導(dǎo)體裝置100根據(jù)存儲于其他存儲裝置的軟件來決定工作時間、工作周期、工作強(qiáng)度等。然后,根據(jù)決定,向與MOSFET驅(qū)動器28的輸出連接的括水器驅(qū)動用發(fā)動機(jī)輸出信號,以適當(dāng)?shù)臅r間、周期、強(qiáng)度驅(qū)動車門后視鏡的括水器。此外,在發(fā)生了某些故障的情況下,向與MOSFET驅(qū)動器28的輸出連接的LED驅(qū)動器輸入信號,為了向駕駛員發(fā)出警告而驅(qū)動LED。此時,向括水器驅(qū)動用電機(jī)輸出的信號的控制為定型處理,且為多位并列處理,因此,通過MPLD20來進(jìn)行運(yùn)算處理。此時,能夠根據(jù)必要對MPLD20的邏輯電路信息進(jìn)行重構(gòu)。另一方面,向MOSFET驅(qū)動器28輸出的警告信號的控制為非定型處理,因此,由運(yùn)算處理部220來進(jìn)行處理?!?. 3〕寫入MPLD的邏輯電路信息的動作合成流程 在此,說明把對搭載于半導(dǎo)體裝置的MPLD寫入的邏輯電路信息進(jìn)行動作合成的流程。〔5. 3. I〕關(guān)于動作合成一般來講,所謂的動作合成是指根據(jù)希望在設(shè)計(jì)對象的電路中進(jìn)行處理的算法、即動作描述,來生成此電路的RTL碼。圖53為表示動作合成的一例的圖。圖42所示的信息處理裝置210能夠執(zhí)行動作合成。參照圖53,在動作合成中,信息處理裝置210在步驟S221根據(jù)動作描述生成⑶FG(Control Data Flow Graph,數(shù)據(jù)控制流圖),在步驟S222對CDFG進(jìn)行調(diào)度,在步驟S223,為已調(diào)度的⑶FG進(jìn)行資源分配,在步驟S224,根據(jù)已進(jìn)行了資源分配的⑶FG生成MPU指令碼,在步驟S225生成RTL -⑶FG。另外,“MPU指令碼”為運(yùn)算處理部220的指令碼。對于動作描述,可以使用作為數(shù)字電路設(shè)計(jì)用硬件描述語言(HDL)的一種的VHDL(VHSIC (Very High Speed Integrated Circuits,甚高速集成電路)HardwareDescriptionLanguage,VHSIC硬件描述語言)。此外,動作描述也可以是通用性高的、即所謂高級語言(也稱為聞水平語目)。在此,聞級語目是編程語目中具有更接近自然語目并易于人理解的句法或概念的語言的總稱。作為具有代表性的高級語言的種類,包括BASIC、FORTRAN、COBOL、C語言、C + +、Java (注冊商標(biāo))、Pascal、Lisp、Prolog、Smalltalk 等。MPU指令碼為匯編語言或機(jī)器語言等的低級語言(也稱為低水平語言),能夠成為運(yùn)算處理部直接讀入的語言。MPU指令碼以軟件等形態(tài)存儲于存儲裝置等,并規(guī)定運(yùn)算處理部執(zhí)行的處理的內(nèi)容。MPU指令碼中包含記載于動作描述中的控制電路部分的一部分等。RTL-⑶FG可以是向C語言的描述中追加寄存器描述的語言或verilog HDL等硬件描述語言(HDL)等。RTL-⑶FG相當(dāng)于圖43所示的電路描述。圖42所示的信息處理裝置210能夠通過使用圖42以及圖43說明的布局/布線流程根據(jù)RTL —⑶FG生成位流數(shù)據(jù)。以下,依次對圖53所示的各步驟加以說明。〔5. 3. 2〕生成 CDFG 的步驟圖53所示的生成CDFG的步驟S221具有對動作描述執(zhí)行的控制流程和數(shù)據(jù)的流動進(jìn)行解析,并變換為與程序的流程圖類似的⑶FG的步驟。⑶FG (Control DataFlowGraph,數(shù)據(jù)控制流圖)表示動作描述中出現(xiàn)的數(shù)據(jù)流程(數(shù)據(jù)流)和各運(yùn)算的執(zhí)行順序的控制流程(控制流),并具有節(jié)點(diǎn)、輸入枝、輸出枝以及表示四則運(yùn)算等的各種運(yùn)算的種類的號碼。在將動作描述變換為CDFG時,進(jìn)行與在常數(shù)傳播、共同運(yùn)算去除等編譯程序的最優(yōu)化中所進(jìn)行的處理相同的處理。此外,也可以以提取動作描述中所內(nèi)在的并列性的方式一并實(shí)施變更流程圖的構(gòu)造的處理等。圖54為表示構(gòu)成邏輯電路X = (a + b) * (b + c)的CDFG的例子的圖。此算式為求取“a”與“b”的邏輯和、和“b”與“c”的邏輯和之間的邏輯積“X”的算式。參照圖54,brl br7表示數(shù)據(jù)信號或控制信號。節(jié)點(diǎn)brll brl3表示運(yùn)算。節(jié)點(diǎn)brll以及brl2分別表示“a”與“b”的邏輯和及“b”與“c”的邏輯和。節(jié)點(diǎn)brl3表示節(jié)點(diǎn)brll的輸出枝與節(jié)點(diǎn)brl2的輸出枝的邏輯積?!?. 3. 3〕調(diào)度步驟圖53所示的進(jìn)行調(diào)度的步驟S222為對整體的硬件量和總控制步驟數(shù)等時間限制加以考慮來具體確定執(zhí)行動作描述中的各運(yùn)算的控制步驟的步驟。即,調(diào)度是指確定何時執(zhí)行與CDFG的節(jié)點(diǎn)對應(yīng)的運(yùn)算。換言之,即確定以哪個時鐘步驟來執(zhí)行與CDFG的節(jié)點(diǎn)對應(yīng)的運(yùn)算。該情況下,對各運(yùn)算的延遲時間加以考慮,并以所有節(jié)點(diǎn)收于時鐘周期內(nèi)的方式 進(jìn)行調(diào)度。調(diào)度分為速度優(yōu)先調(diào)度和硬件量優(yōu)先調(diào)度。速度優(yōu)先調(diào)度是指給出整體的控制步驟數(shù)作為限制,并在此條件下以硬件量變小的方式來進(jìn)行調(diào)度。另一方面,在硬件量優(yōu)先調(diào)度中,給出可使用的硬件量的限制,并在此條件下以控制步驟數(shù)變?yōu)樽钚〉姆绞絹磉M(jìn)行調(diào)度。圖55為表示以速度優(yōu)先調(diào)度對圖54所示的CDFG進(jìn)行調(diào)度后的結(jié)果的圖。參照圖55,在步驟I中,執(zhí)行由圖54所示的⑶FG的節(jié)點(diǎn)cll表示的“a”與“b”的邏輯和、由節(jié)點(diǎn)cl2表示的“b”與“c”的邏輯和、由節(jié)點(diǎn)cl3表示的節(jié)點(diǎn)cll的輸出枝與節(jié)點(diǎn)cl2的輸出枝的邏輯積的所有運(yùn)算。這樣,在圖55所示的速度優(yōu)先調(diào)度中,能夠通過I個步驟來執(zhí)行給定的邏輯電路。但是,由節(jié)點(diǎn)cll表示的“a”與“b”的邏輯和及由節(jié)點(diǎn)cl2表示的“b”與“c”的邏輯和是通過同一步驟來執(zhí)行的,因此,需要2個邏輯和電路。圖56為表示以硬件量優(yōu)先調(diào)度對圖54所示的CDFG進(jìn)行調(diào)度后的結(jié)果的圖。參照圖56,在步驟I中,執(zhí)行圖54所示的⑶FG中由節(jié)點(diǎn)cll表示的“a”與“b”的邏輯和。然后,在步驟2中,執(zhí)行由節(jié)點(diǎn)cl2表示的“b”與“c”的邏輯和及由節(jié)點(diǎn)cl3表示的節(jié)點(diǎn)cll的輸出枝與節(jié)點(diǎn)cl2的輸出枝的邏輯積。這樣,與圖55所示的速度優(yōu)先調(diào)度中通過I個步驟來執(zhí)行給定的邏輯電路相對地,在硬件量優(yōu)先調(diào)度中,通過2個步驟來執(zhí)行給定的邏輯電路。因此,與速度優(yōu)先調(diào)度相比,在硬件量優(yōu)先調(diào)度中,處理時間將增加。但是,由節(jié)點(diǎn)cll表示的“a”與“b”的邏輯和及由節(jié)點(diǎn)cl2表示的“b”與“c”的邏輯和是由不同的步驟執(zhí)行的,因此,圖55所示的速度優(yōu)先調(diào)度需要2個邏輯和電路,與此相對,在硬件量優(yōu)先調(diào)度中,能夠僅通過I個邏輯和電路來執(zhí)行2個邏輯和運(yùn)算?!?. 3. 4〕資源分配步驟所謂資源分配是指,基于調(diào)度結(jié)果,為⑶FG的運(yùn)算節(jié)點(diǎn)分配運(yùn)算器,生成用于數(shù)據(jù)選擇的多路復(fù)用器和用于數(shù)據(jù)存儲的寄存器,并生成用于控制這些運(yùn)算器、寄存器以及多路復(fù)用器的控制器,通過使各部分彼此連接來合成電路。即,在資源分配步驟(S223)中,對表示CDFG的運(yùn)算的各節(jié)點(diǎn),基于數(shù)據(jù)的依存關(guān)系和所賦予的限制來進(jìn)行控制步驟的分配。此時,能夠一并進(jìn)行在所生成的邏輯電路中使用的MLUT數(shù)的估算。資源分配可以分成運(yùn)算器部分和控制部分來執(zhí)行。以下,依次對運(yùn)算器部分和控制部分加以說明。包含于運(yùn)算器部分的電路中有三類。第一類能夠由全加法器構(gòu)成。其中包含加法減法、乘法、計(jì)數(shù)、比較運(yùn)算等。第二類能夠由多路復(fù)用器構(gòu)成。其中包含多位多路復(fù)用器以及滾桶式移位器等。第三種能夠由存儲器電路構(gòu)成。其中包含查找表以及寄存器文件等。無論在任何種類的運(yùn)算器中,在進(jìn)行資源分配時,都是按步驟,即按狀態(tài)機(jī)的狀態(tài)插入寄存器電路。在此,狀態(tài)機(jī) 為根據(jù)已確定的條件,以已確定的順序?qū)︻A(yù)先確定的多個狀態(tài)進(jìn)行遷移的數(shù)字裝置。狀態(tài)機(jī)的狀態(tài)為如圖56所示的“步驟I”或“步驟2”等那樣的通過調(diào)度來規(guī)定的I個控制步驟。運(yùn)算器部分的資源分配是基于運(yùn)算器的種類和位數(shù)來執(zhí)行的。對于位數(shù),能夠通過C語言等高級語言的類型來確定位數(shù)。由此,能夠構(gòu)成與C語言等高級語言具有互換性的⑶FG。此外,在int、short、long等類型中,在認(rèn)為位寬較大的情況下,也可以通過擴(kuò)展指令為C語言的變量說明的部分規(guī)定位數(shù)。能夠基于這樣規(guī)定的位數(shù)確定各運(yùn)算器所需的MLUT的數(shù)量。在能夠通過多路復(fù)用器構(gòu)成的第一類的運(yùn)算器中,能夠選擇硬件量優(yōu)先的資源分配和速度優(yōu)先的資源分配中的任一個來進(jìn)行資源分配。例如,對于多位加法器,在硬件量優(yōu)先的資源分配中,通過對全加法器進(jìn)行多級組合,能夠構(gòu)成多位加法器。此外,在速度優(yōu)先的資源分配中,能夠構(gòu)成具有組合成多級的全加法器和超前進(jìn)位邏輯電路的多位加法器。對于通過具有5個以上的AD對的MLUT構(gòu)成的MPLD,在對構(gòu)成第一類運(yùn)算器的MLUT數(shù)進(jìn)行估算的情況下,能夠根據(jù)通過I個MLUT來構(gòu)成2位加法器這一情況來對MLUT數(shù)進(jìn)行估算。例如,能夠估算出4位加法器是由2個位加法器構(gòu)成的。此外,能夠估算出8位加法器是由4個位加法器構(gòu)成的。該情況下,各種加法器中所使用的MLUT數(shù)的估算將變得容易。能夠通過多路復(fù)用器構(gòu)成的第二類的運(yùn)算器能夠基于位數(shù)進(jìn)行資源分配。例如,在多位多路復(fù)用器中,通過在存儲部214中具有記載了與位數(shù)相應(yīng)的MLUT數(shù)而成的數(shù)據(jù),能夠謀求所使用MLUT數(shù)的估算的簡易化。能夠通過存儲器電路構(gòu)成的第三類的運(yùn)算器能夠?qū)⒏鱉LUT考慮成N位XN字的存儲器電路來進(jìn)行資源分配。在作為邏輯電路工作的MPLD中,在能夠使一部分的MLUT作為存儲器電路工作的情況下,可以僅使MPLD中作為第三類的運(yùn)算器工作的MLUT作為存儲器電路工作。由此,能夠在MPLD內(nèi)部混裝邏輯電路和存儲器電路。控制電路例如為C語言中的if語句、case語句以及函數(shù)調(diào)用語句等??刂齐娐返馁Y源分配能夠通過由2輸入NAND電路和NOT電路構(gòu)成的電路來進(jìn)行。這樣,通過使運(yùn)算電路和控制電路分開并將運(yùn)算電路分為第一 第三類來進(jìn)行資源分配,能夠執(zhí)行適合各電路構(gòu)成的資源分配??刂齐娐返墓浪隳軌蛲ㄟ^暫時對由2輸入NAND電路和NOT電路構(gòu)成的電路進(jìn)行邏輯合成,并對此電路進(jìn)行工藝映射來進(jìn)行。例如,if語句能夠通過具有2輸入NAND電路和NOT電路的比較電路來構(gòu)成?!?. 3. 5〕區(qū)域劃分對邏輯電路進(jìn)行資源分配并進(jìn)行運(yùn)算電路部分以及控制電路部分的MLUT數(shù)的估算之后,結(jié)果,有時會判斷為所估算的邏輯電路不能搭載于I個MPLD。該情況下,需要將邏輯電路劃分成能夠搭載于I個MPLD的多個邏輯塊。如上所述,MPLD為可重構(gòu)的邏輯電路。因此,在不能將邏輯電路搭載于I個MPLD的情況下,能夠?qū)⑦壿嬰娐穭澐殖煽纱钶d于I個MPLD的多個邏輯塊,并按劃分后的運(yùn)算器塊依次執(zhí)行處理。在本說明書中,將把運(yùn)算器部分以及控制部分等的邏輯電路劃分成能夠搭載于I個MPLD的大小稱為“區(qū)域劃分”。另外,關(guān)于區(qū)域劃分的說明中所使用的用語“邏輯電路”為由已進(jìn)行了資源分配的CDFG數(shù)據(jù)表示的邏輯電路,“邏輯塊”為將由已進(jìn)行了資源分配的CDFG數(shù)據(jù)構(gòu)成的邏輯電路劃分成適當(dāng)大小后的CDFG數(shù)據(jù)。圖57表示執(zhí)行被劃分成第一邏輯塊和第二邏輯塊的2個邏輯塊的邏輯電路的I個例子。在本例中,能夠通過搭載MPLD20和運(yùn)算處理部220的半導(dǎo)體裝置100及存儲裝置來執(zhí)行邏輯電路。此外,也能夠通過在搭載MPLD20和運(yùn)算處理部220的半導(dǎo)體裝置100進(jìn)一步搭載存儲部26來執(zhí)行。存儲裝置或存儲部與MPLD20的輸出連接,存儲第一邏輯塊、第二邏輯塊和第一邏輯塊的執(zhí)行結(jié)果。在步驟S231中,運(yùn)算處理部執(zhí)行已寫入MPLD的第一邏輯塊。第一邏輯塊能夠通過I個或多個狀態(tài)來構(gòu)成。在步驟S232中,運(yùn)算處理部將通過步驟S231執(zhí)行的第一邏輯塊的執(zhí)行結(jié)果存儲于存儲裝置。通過將第一邏輯塊的執(zhí)行結(jié)果存儲于存儲裝置,能夠在將MPLD從第一邏輯塊至第二邏輯塊進(jìn)行重構(gòu)的期間,將第一邏輯塊的執(zhí)行結(jié)果進(jìn)行保存,并作為第二邏輯塊的輸入使用。在步驟S233中,運(yùn)算處理部將已被寫入MPLD的第一邏輯塊重構(gòu)成第二邏輯塊。重構(gòu)時,可以改寫MPLD的所有MLUT,也可以選擇性地僅改寫在第一以及第二邏輯塊中所使用的MLUT。此外,也可以進(jìn)行對一部分MLUT進(jìn)行改寫的部分重構(gòu)。在步驟S234中,運(yùn)算處理部讀出在步驟S232中存儲至存儲裝置的第一邏輯塊的執(zhí)行結(jié)果,作為第二邏輯塊的輸入信號。在步驟S235中,運(yùn)算處理部將在步驟S234所讀出的第一邏輯塊的執(zhí)行結(jié)果作為第二邏輯塊的輸入信號而向MPLD的輸入端子輸入,并執(zhí)行第二邏輯塊。在本例中,將邏輯電路進(jìn)行區(qū)域劃分而成為2個邏輯塊,但是,能夠基于MPLD的大小與所估算的邏輯電路的大小的比較,將邏輯電路進(jìn)行區(qū)域劃分而成為適當(dāng)數(shù)量的邏輯塊。區(qū)域劃分能夠由圖42所示的信息處理裝置210來執(zhí)行。圖58為表示在資源分配時對邏輯電路進(jìn)行區(qū)域劃分的一例的圖。參照圖58,對圖42所示的信息處理裝置210將資源分配時所估算的邏輯電路劃分成多個邏輯塊的流程加以記述。在步驟S241,信息處理裝置210確定可使用的MLUT數(shù)。信息處理裝置210能夠?qū)⒈硎敬钶d于MPLD的MLUT與可使用的MLUT數(shù)的關(guān)系的數(shù)據(jù)等存儲于存儲部。能夠基于MPLD的布局/布線效率來生成該數(shù)據(jù)。能夠基于該數(shù)據(jù)來確定可使用的MLUT數(shù)。在步驟S242,信息處理裝置210生成搭載狀態(tài)的區(qū)域。在此,所謂區(qū)域是指把通過⑶FG的資源分配被劃分成各步驟的狀態(tài)的邏輯電路的I個或多個狀態(tài)進(jìn)行搭載的邏輯塊。在步驟S243中,信息處理裝置210將狀態(tài)搭載于區(qū)域。例如,在第一區(qū)域的最初的步驟中,將經(jīng)過資源分配后的第一狀態(tài)搭載于區(qū)域,在搭載了第一狀態(tài)之后的步驟中,搭載第二狀態(tài)。在步驟S244,信息處理裝置210對搭載于區(qū)域的所有狀態(tài)所使用的MLUT數(shù)進(jìn)行估算。能夠通過對經(jīng)過資源分配后的各狀態(tài)的MLUT數(shù)進(jìn)行合計(jì)來估算。在步驟S245,信息處理裝置210判斷是否還能將狀態(tài)搭載于區(qū)域。信息處理裝置210基于搭載于區(qū)域的所有狀態(tài)所使用的MLUT數(shù)的估算和可搭載于MPLD20的MLUT數(shù),判斷是否還能夠?qū)顟B(tài)搭載于區(qū)域。在信息處理裝置210判斷為還能將狀態(tài)搭載于區(qū)域時,處理將返回至步驟S243,并將下一個狀態(tài)搭載于區(qū)域。在信息處理裝置210判斷為不能再將狀態(tài)搭載于區(qū)域時,處理進(jìn)入步驟S246。此時,關(guān)于控制電路部的狀態(tài),信息處理裝置210需要判斷是將其搭載于區(qū)域還是不搭載于區(qū)域而是生成為MPU指令碼。在將控制電路部的狀態(tài)生成為MPU指令碼的情況下,信息處理裝置210判斷為不能再將狀態(tài)搭載于區(qū)域,此狀態(tài)并不搭載于區(qū)域,而是移至生成新的區(qū)域的處理。此外,為了生成為MPU指令碼,信息處理裝置210將控制電路部的狀態(tài)存儲于存儲部。在步驟S246,信息處理裝置210判斷是否有未處理的狀態(tài)。在存在未處理的狀態(tài)的情況下,處理返回到步驟S243,并新生成搭載狀態(tài)的區(qū)域。在不存在未處理的狀態(tài)的情況下,信息處理裝置210結(jié)束處理?!?. 3. 6〕生成MPU指令碼的步驟·
生成圖53所示的MPU指令碼的步驟S224為在進(jìn)行圖58所示的區(qū)域劃分時在步驟S241中根據(jù)被判斷為要作為MPU指令碼生成的控制電路部的狀態(tài)來生成MPU指令碼的步驟。如上所述在控制電路中,例如是C語言則包含if語句、case語句以及函數(shù)調(diào)用語句等。在步驟S224,信息處理裝置210將這些函數(shù)變換為運(yùn)算處理部可讀出的低級語言。在步驟S224中所生成的MPU指令碼能夠存儲于I個MPLD20和與運(yùn)算處理部220一同搭載于半導(dǎo)體裝置100的存儲部26中。此外,也能夠存儲于與半導(dǎo)體裝置100 —同使用的存儲裝置(未圖示)?!?. 3. 7〕生成 RTL — CDFG 的步驟生成圖53所示的RTL —⑶FG的步驟S225為根據(jù)在對⑶FG進(jìn)行資源分配的步驟S223中被進(jìn)行了資源分配的⑶FG來生成RTL級的⑶FG的步驟。在對⑶FG進(jìn)行資源分配的步驟S223中,在進(jìn)行了區(qū)域劃分的情況下,按區(qū)域劃分后的邏輯塊來生成RTL級的CDFG。在步驟S225中所生成的RTL —⑶FG能夠通過使用圖42及圖43說明的布局/布線流程而變換為適當(dāng)?shù)奈涣鲾?shù)據(jù)。在進(jìn)行了區(qū)域劃分的情況下,按區(qū)域劃分后的邏輯塊來生成位流數(shù)據(jù)。布局/布線后的I個或多個位流能夠存儲于MPLD和與運(yùn)算處理部一同搭載于半導(dǎo)體裝置的存儲部。此外,也能夠存儲于與半導(dǎo)體裝置一同使用的存儲裝置(未圖示)。在進(jìn)行了區(qū)域劃分的情況下,運(yùn)算處理部能夠使用該位流數(shù)據(jù),將多個邏輯塊重構(gòu)于MPLD上?!?. 4〕搭載了 I個MPLD和運(yùn)算處理部的半導(dǎo)體裝置中的重構(gòu)即使在圖51中記載的搭載了 I個MPLD20和運(yùn)算處理部220的半導(dǎo)體裝置100中,也能夠與圖41中記載的搭載了 I個MPLD20的半導(dǎo)體裝置100相同地對邏輯電路信息進(jìn)行重構(gòu)。圖59為表示向MLUT寫入邏輯電路信息等信息的順序的流程圖的一例。在步驟S247,運(yùn)算處理部220利用存儲動作用地址MA來選擇寫入邏輯電路信息等信息的存儲元件4。接著,在步驟248,運(yùn)算處理部220輸出要寫入存儲元件4的數(shù)據(jù)。在步驟249,判斷是否還存在要寫入的信息,在存在要寫入的信息的情況下,再次返回到步驟S247,并繼續(xù)寫入信息。在不存在要寫入的信息的情況下,結(jié)束寫入程序。信息的寫入能夠針對nX2n個存儲元件的所有存儲元件進(jìn)行,另外也能夠僅針對nX2n個存儲元件的一部分進(jìn)行。如上述那樣,能夠?qū)PLD20的邏輯電路信息進(jìn)行重構(gòu)。但是,圖51中記載的半導(dǎo)體裝置100在內(nèi)部具有運(yùn)算處理部220,因此,運(yùn)算處理部220能夠執(zhí)行與重構(gòu)有關(guān)的指令。該情況下,能夠不使用圖42中記載的信息處理裝置210或搭載有半導(dǎo)體裝置100的基板上的微處理器,而是由搭載于半導(dǎo)體裝置100的運(yùn)算處理部220來執(zhí)行重構(gòu)。因此,無需將半導(dǎo)體裝置100與用于重構(gòu)的信息處理裝置210或基板上的微處理器的輸入部連接。而且,因?yàn)榇钶d于半導(dǎo)體裝置100的運(yùn)算處理部220將邏輯電路信息寫入MPLD20,所以能夠高速動作。因此,圖51中記載的半導(dǎo)體裝置100,能夠進(jìn)行高速且簡便的重構(gòu)?!?. 5〕搭載了 I個MPLD和運(yùn)算處理部的半導(dǎo)體裝置中的部分重構(gòu)即使在圖51中記載的 搭載了 I個MPLD20和運(yùn)算處理部的半導(dǎo)體裝置100中,也能夠與圖41中記載的搭載了 I個MPLD20的半導(dǎo)體裝置100相同地對MPLD20的邏輯電路信息進(jìn)行部分重構(gòu)。即,利用與使用圖44說明過的流程相同的流程,能夠?qū)PLD20的邏輯電路信息進(jìn)行部分重構(gòu)。但是,圖51中記載的半導(dǎo)體裝置100在內(nèi)部具有運(yùn)算處理部220,因此,與上述重構(gòu)的情況相同地,能夠不使用信息處理裝置210或搭載半導(dǎo)體裝置100的基板上的微處理器,而是通過搭載于半導(dǎo)體裝置100的運(yùn)算處理部220來執(zhí)行部分重構(gòu)?!?〕搭載了 2個MPLD和運(yùn)算處理部的半導(dǎo)體裝置在此,對搭載了 2個MPLD和運(yùn)算處理部的半導(dǎo)體裝置的例子加以說明。〔6. I〕搭載了 2個MPLD和運(yùn)算處理部的半導(dǎo)體裝置圖60為表示搭載了 MPLD的半導(dǎo)體裝置的第一例中的配置構(gòu)造的圖。半導(dǎo)體裝置100具有第一 MPLD20a、第二 MPLD20b、運(yùn)算處理部220、輸入輸出電路部15。輸入輸出電路部15以及運(yùn)算處理部220與參照圖41說明的例子相同,因此,在此省略說明。第一 MPLD20a和第二 MPLD20b能夠分別單獨(dú)地工作。因?yàn)槭褂脠D51及圖52等說明了第一 MPLD20a及第二 MPLD20b與運(yùn)算處理部220之間的布線以及與輸入輸出電路部15之間的布線,所以在此省略說明。第一 MPLD20a與第二 MPLD20b之間能夠通過構(gòu)成各MPLD的MLUT所具有的AD對來直接連線。通過不借助于總線電路等而直接連接第一 MPLD20a和第二 MPLD20b,能夠使2個MPLD之間的信號處理高速化。圖61為表示搭載了 MPLD的半導(dǎo)體裝置的第二例中的配置構(gòu)造的圖。參照圖61,本例中的半導(dǎo)體裝置100具有第一 MPLD20a、第二 MPLD20b、運(yùn)算處理部220、輸入輸出電路部15和存儲部26。存儲部26存儲在第一 MPLD20a以及第二 MPLD20b中分別執(zhí)行的邏輯電路的執(zhí)行結(jié)果,并保存包含運(yùn)算處理部220所執(zhí)行的MPU指令碼的程序。通過在半導(dǎo)體裝置100中搭載存儲部26,以下說明的動態(tài)重構(gòu)的處理將變得容易。存儲部26與第一 MPLD20a、第二MPLD20b以及運(yùn)算處理部220連線,以存儲MPLD中的邏輯電路的執(zhí)行結(jié)果。圖62為表示半導(dǎo)體裝置的布線層的一例的剖面圖。半導(dǎo)體裝置100在形成有MOS晶體管等的電路元件(未圖示)的半導(dǎo)體基板160的上方具有布線層170。布線層170通過適當(dāng)連接配置于各布線層的多個布線來連接形成于電路基板上的電路元件的各端子(未圖示)。通過適當(dāng)連接半導(dǎo)體裝置100所具有的電路元件的各端子,半導(dǎo)體裝置100能夠?qū)崿F(xiàn)所希望的動作。布線層170具有第一布線層172、第二布線層174、第三布線層176以及第四布線層178的4層布線層。半導(dǎo)體基板160及第一 第四布線層172、174、176以及178借助于第一 第四過孔連接部171、173、175以及177相連接。第一 第四布線層172、174、176及178以及第一 第四過孔連接部171、173、175及177的層之間填充有由斜線表示的絕緣層180。如圖所示,第一布線層172形成為剖面為直線狀。一部分的第一布線層172以將形成于電路基板上的電路元件的2個端子之間連接的方式,借助于第一過孔連接部171被連接。其他的第一布線層172借助于第一過孔連接部171與形成于電路基板上的電路元件的端子連接,并借助于第二過孔連接部173與第二布線層174連接。 而且,其他的第一布線層172以將2個不同的第二布線層174之間連接的方式,借助于第二過孔連接部173被連接。在從上方觀察形成有電路元件的半導(dǎo)體基板的表面的情況下,以在垂直于第一布線層172的方向上形成大致直線狀的方式形成多個第二布線層174。一部分的第二布線層174以將2個不同的第一布線層172之間連接的方式,借助于第二過孔連接部173被連接。其他的第二布線層174借助于第二過孔連接部173與第一布線層172連接,并借助于第三過孔連接部175與第三布線層176連接。而且,其他的第二布線層174以將2個不同的第三布線層176之間連接的方式,借助于第三過孔連接部175被連接。在從上方觀察形成有電路元件的半導(dǎo)體基板的表面的情況下,以在平行于第一布線層172的方向上形成大致直線狀的方式形成多個第三布線層176。一部分的第三布線層176以將2個不同的第二布線層174之間連接的方式,借助于第三過孔連接部175被連接。其他的第三布線層176借助于第三過孔連接部175與第二布線層174連接,并借助于第四過孔連接部177與第四布線層178連接。而且,其他的第三布線層176以將2個不同的第四布線層之間連接的方式,借助于第四過孔連接部177被連接。一般地,在與第一布線層172以及第二布線層174相比較的情況下,第三布線層176形成為具有大的截面積。在從上方觀察形成有電路元件的半導(dǎo)體基板的表面的情況下,以在平行于第二布線層174的方向上形成略直線狀的方式形成多個第四布線層178。第四布線層178以將2個不同的第三布線層176之間連接的方式,借助于第四過孔連接部177被連接。一般地,以具有比第三布線層176具有更大的截面積的方式形成第四布線層178。第一 第四布線層172、174、176以及178由鋁以及作為阻擋金屬使用的銅等導(dǎo)電性材料形成。第一 第四過孔連接部171、173、175以及177也由鋁等的導(dǎo)電性材料形成。絕緣層160由二氧化硅等的絕緣體材料形成。這樣,在半導(dǎo)體裝置中,布線層的形成是為了分別將形成于半導(dǎo)體基板上的各電路元件的端子之間連接。在被稱為片上系統(tǒng)(以下,稱為S0C)的半導(dǎo)體裝置中,于半導(dǎo)體基板上搭載運(yùn)算處理部、存儲部、模擬一數(shù)字變換部、運(yùn)算放大器等的模擬電路部、邏輯電路部等的數(shù)字電路部以及輸入輸出電路部等。在不要求運(yùn)算處理部進(jìn)行高性能的處理的情況下,例如在是進(jìn)行8位、16位等的運(yùn)算處理的運(yùn)算處理部等的情況下,運(yùn)算處理部一般能夠通過4層左右的布線層來形成。此外,搭載于存儲部等的SOC的其他構(gòu)成要素一般也通過4層以下的布線層來形成。如上所述,MPLD具有具有CMOS晶體管的SRAM和能夠通過CMOS晶體管構(gòu)成的邏輯電路。因此,能夠通過使用SRAM等的存儲器電路技術(shù)和CMOS電路技術(shù)來制造MPLD。即使考慮到一般半導(dǎo)體裝置的集成度,這些技術(shù)也能夠通過3層或4層左右的布線層來形成。此外,因?yàn)镸PLD能夠作為開關(guān)功能使用,所以無需像FPGA那樣在MPLD設(shè)置連接通道區(qū)域。因此,可以期待MPLD具有與通過一般的CMOS電路技術(shù)制造的其他構(gòu)成要素相同程度的集成度。因此,MPLD也能夠通過3層或4層左右的布線層形成。這樣,MPLD的布線層能夠與搭載于SOC的其他構(gòu)成要素同樣地,通過4層以下的布線層來形成。這就意味著若考慮到半導(dǎo)體裝置的制造方面,則MPLD具有與SOC的親和性。即,意味著MPLD易于搭載于SOC半導(dǎo)體裝置。若考慮集成度,則FPGA等其他可重構(gòu)邏輯電路一般形成具有8層至10層左右的多層布線層的構(gòu)造。因此,即使在不需要對SOC電路部進(jìn)行多層布線的情況下,也需要對FPGA等可重構(gòu)邏輯電路進(jìn)行多層布線,所以,半導(dǎo)體裝置形成多層布線構(gòu)造。對此,如上所述,能夠使MPLD形成3層或4層左右的布線層構(gòu)造。因此,能夠基于SOC電路部的布線層構(gòu)造來確定半導(dǎo)體裝置的布線層構(gòu)造。例如,半導(dǎo)體裝置100的物理布線層數(shù)為4層以下?!?. 2〕搭載了 2個MPLD和運(yùn)算處理部的半導(dǎo)體裝置中的動態(tài)重構(gòu)
〔6. 2. I〕MPLD的動態(tài)重構(gòu)流程在此,對動態(tài)重構(gòu)搭載于半導(dǎo)體裝置的MPLD的流程的一例加以說明。圖63為表示對搭載于圖61所示的半導(dǎo)體裝置的MPLD進(jìn)行部分重構(gòu)的流程的一例的圖。在步驟S251,運(yùn)算處理部220向第一 MPLD20a或第二 MPLD20b的任一方或雙方的MPLD寫入邏輯電路信息。在此寫入的邏輯電路信息一般為使用圖42以及圖39說明過的位流數(shù)據(jù)。位流數(shù)據(jù)可以存儲在搭載于半導(dǎo)體裝置的存儲部,也可以存儲在與半導(dǎo)體裝置連接的存儲裝置。在向第一以及第二MPLD的雙方寫入邏輯電路信息的情況下,在最初的循環(huán)中,省略步驟S253。在步驟S252,運(yùn)算處理部使在步驟S251中寫入了邏輯電路信息的一方的MPLD的邏輯電路信息工作。運(yùn)算處理部將已寫入一方的MPLD的邏輯電路信息的動作結(jié)果存儲在搭載于半導(dǎo)體裝置的存儲部等的存儲裝置。由此,能夠?qū)⒁汛鎯Φ膭幼鹘Y(jié)果用作另一方的MPLD的輸入。此外,在2個MPLD的AD對被連接的情況下,即使在動作結(jié)束后,一方的MPLD也能夠保存動作結(jié)果,并通過來自運(yùn)算處理部的指令,將此動作結(jié)果作為輸入信號給予另一方的MPLD。在邏輯動作結(jié)束時,運(yùn)算處理部從該MPLD接收表示邏輯動作結(jié)束的標(biāo)志。在步驟S253,運(yùn)算處理部向未進(jìn)行邏輯動作的另一方的MPLD寫入邏輯電路信息。在寫入結(jié)束時,運(yùn)算處理部從該MPLD接收表示寫入結(jié)束的標(biāo)志。如上所述,在最初的循環(huán)中,能夠在使MPLD進(jìn)行邏輯動作之前,向雙方的MPLD同時寫入邏輯電路信息。在該情況下,運(yùn)算處理部也會在寫入結(jié)束時接收表示寫入結(jié)束的標(biāo)志。在步驟S254,當(dāng)運(yùn)算處理部接收表示一方的MPLD的邏輯動作結(jié)束的標(biāo)志和表示另一方的MPLD的寫入結(jié)束的標(biāo)志時,使寫入結(jié)束的另一方的MPLD的邏輯動作開始。在步驟S254中另一方的MPLD的邏輯動作開始之后,在步驟S255,運(yùn)算處理部判斷是否存在其他要寫入的邏輯電路信息。在存在其他要寫入的邏輯電路信息的情況下,處理返回到步驟S253。然后,開始向未進(jìn)行邏輯動作的MPLD寫入邏輯電路信息。在不存在其他要寫入的邏輯電路信息的情況下,運(yùn)算處理部在從MPLD接收到表示邏輯動作結(jié)束的標(biāo)志之后,結(jié)束處理。在此說明的動態(tài)重構(gòu)能夠使用通過圖53說明的MPU指令碼和根據(jù)經(jīng)過區(qū)域劃分之后的RTL -⑶FG所生成的多個位流來實(shí)現(xiàn)。運(yùn)算處理部根據(jù)運(yùn)算處理部指令碼來執(zhí)行MPLD的重構(gòu)、邏輯動作開始指令或未搭載于MPLD的控制電路。此外,能夠?qū)⒆鳛镸PLD的邏輯電路信息的位流數(shù)據(jù)設(shè)為根據(jù)經(jīng)過區(qū)域劃分之后的RTL -⑶FG所生成的位流。由此,在動作描述中所記載的數(shù)據(jù)處理動作通過作為硬件的搭載于半導(dǎo)體裝置的運(yùn)算處理部和MPLD來實(shí)現(xiàn)。因此,與通過作為軟件的動作描述使運(yùn)算處理部工作的情況相比,能夠更高速地工作?!?. 2. 2〕動態(tài)重構(gòu)的實(shí)施例在此,基于具體的實(shí)施例,對動態(tài)重構(gòu)的優(yōu)點(diǎn)加以說明。實(shí)施例關(guān)于作為共用密鑰加密方式之一的DES (Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))的加密。在此,在概略地對DES的加密計(jì)算加以記述之后,對通過本例中的半導(dǎo)體裝置進(jìn)行的DES計(jì)算的執(zhí)行方法加以說明?!?. 2. 2. I〕DES 的算法圖64為表示DES的計(jì)算算法的流程的一例的圖。DES將固定位(例如,64位)長的明碼電文作為輸入。DES為使用56位長的加密密鑰來按每64位的明碼電文塊進(jìn)行加密的塊密碼。加密密鑰為64位,但其中的8位用于奇偶校驗(yàn),因此算法上的實(shí)際的密鑰的長度 為56位。DES的加密密鑰為共用密鑰加密方式,對加密和解密使用同一密鑰。此外,在DES中,為使用F (Feistel)函數(shù)之類進(jìn)行置換和轉(zhuǎn)置的輪函數(shù),并使用F函數(shù)重復(fù)地進(jìn)行加密或譯碼的加密方式。在步驟S261,進(jìn)行初始轉(zhuǎn)置。初始轉(zhuǎn)置是指執(zhí)行位間的規(guī)定轉(zhuǎn)置。例如,初始轉(zhuǎn)置后的第I位的數(shù)據(jù)為輸入數(shù)據(jù)的第58位的數(shù)據(jù),初始轉(zhuǎn)置后的第2位的數(shù)據(jù)為輸入數(shù)據(jù)的第50位的數(shù)據(jù)。這樣,通過初始轉(zhuǎn)置,進(jìn)行64位的各數(shù)據(jù)的分類排序。在步驟S262,利用F函數(shù)處理初始轉(zhuǎn)置后的低位32位。通過圖65所示的流程對F函數(shù)的處理加以說明。圖65為表示F函數(shù)的算法的流程的圖。向F函數(shù)輸入進(jìn)行了初始轉(zhuǎn)置處理的數(shù)據(jù)的低位32位。在步驟S271,對所輸入的32位的數(shù)據(jù)進(jìn)行擴(kuò)展置換(expansionpermutation),生成48位的數(shù)據(jù)。接下來,在步驟S272,在擴(kuò)展置換之后的48位的數(shù)據(jù)與48位的循環(huán)密鑰之間進(jìn)行異或處理。在此,對循環(huán)密鑰加以說明。循環(huán)密鑰為通過一定的算法對共用密鑰進(jìn)行變換而成的,按I次DES加密中進(jìn)行16次的每個F函數(shù)處理而形成不同的密鑰。向循環(huán)密鑰的變換算法中包含轉(zhuǎn)置處理和循環(huán)移位處理。所謂S盒(substitution box)為將m位的輸入變換成η位輸出的函數(shù),并為2m的查找表。在步驟S273,對于在步驟S272中進(jìn)行了與循環(huán)密鑰之間的異或處理的48位數(shù)據(jù),通過由8個S盒進(jìn)行的變換,進(jìn)行將6位數(shù)據(jù)變換為4位數(shù)據(jù)的處理。結(jié)果,在通過S盒進(jìn)行處理之前,原本48位的數(shù)據(jù)經(jīng)S盒的處理變換為32位的數(shù)據(jù)。S盒是利用SI S8的分別具有規(guī)定值的真值表構(gòu)成的。SI為對低位6位的數(shù)據(jù)進(jìn)行變換的S盒,S2為對從低位第7位至第12位的數(shù)據(jù)進(jìn)行變換的S盒。以下同樣地,S7為對從第36位到第42位的數(shù)據(jù)進(jìn)行變換的S盒,S8為對從第43位至第48位的數(shù)據(jù)進(jìn)行變換的S盒。各S盒對2行X4列的行列分別分配4位的數(shù)據(jù)。S盒的2位的行由6位輸入數(shù)據(jù)的MSB (最高位,即第6位)的數(shù)據(jù)和LSB (最低位,即第I位)的數(shù)據(jù)構(gòu)成。S盒的4位的列由除了 6位輸入的MSB和LSB以外的中間的4位(第2位至第5位)數(shù)據(jù)構(gòu)成。將6位的輸入數(shù)據(jù)輸入具有這樣構(gòu)成的S盒,并輸出相應(yīng)的真值表的4位的值,由此,能夠?qū)?位的輸入數(shù)據(jù)變換成4位的輸出數(shù)據(jù)。在表I中示出作為S盒的例子的SI的S盒。[表 I]表1:S 盒(SI)表I :S 術(shù) ” I (SI)
權(quán)利要求
1.一種半導(dǎo)體裝置,其特征在于,包括N (N為2以上的整數(shù))根地址線、N根數(shù)據(jù)線和多個存儲部,各存儲部具有地址譯碼器和多個存儲元件,該地址譯碼器對從所述N根地址線輸入的地址進(jìn)行譯碼并向字線輸出字選擇信號,該多個存儲元件與所述字線和數(shù)據(jù)線連接,分別存儲構(gòu)成真值表的數(shù)據(jù),并根據(jù)從所述字線輸入的所述字選擇信號,向所述數(shù)據(jù)線輸出所述數(shù)據(jù)或從所述數(shù)據(jù)線輸入所述數(shù)據(jù),所述存儲部的N根地址線分別與所述存儲部的其他N個存儲部的數(shù)據(jù)線連接,并且所述存儲部的N根數(shù)據(jù)線分別與所述存儲部的其他N個存儲部的地址線連接。
2.根據(jù)權(quán)利要求I所述的半導(dǎo)體裝置,其中,所述N根地址線和所述N根數(shù)據(jù)線分別通過I根地址線和I根數(shù)據(jù)線形成一對。
3.根據(jù)權(quán)利要求I或2所述的半導(dǎo)體裝置,其中,還具有對所述多個存儲部進(jìn)行選擇的存儲部譯碼器。
4.根據(jù)權(quán)利要求I 3的任一項(xiàng)所述的半導(dǎo)體裝置,其中,具有順序電路,所述多個存儲部將所述N根數(shù)據(jù)線中的至少I根數(shù)據(jù)線與所述順序電路的信號輸入線連接,并將所述N根地址線中的至少I根地址線與所述順序電路的信號輸出線連接。
5.根據(jù)權(quán)利要求I 4的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述N為6 8的整數(shù)。
6.根據(jù)權(quán)利要求I 5的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述多個存儲部將所述N根數(shù)據(jù)線中的6根數(shù)據(jù)線分別與相鄰的其他6個存儲部的I 根數(shù)據(jù)線連接,并將所述N根地址線中的6根地址線分別與所述相鄰的其他6個存儲部的 I根數(shù)據(jù)線連接。
7.根據(jù)權(quán)利要求I 6的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述地址譯碼器分為行譯碼器和列譯碼器,所述行譯碼器對從M (M為5以下的整數(shù),L為N — 5的整數(shù))根地址線輸入的地址進(jìn)行譯碼,并向所述字線輸出字選擇信號,所述列譯碼器對從L根地址線輸入的地址進(jìn)行譯碼,并輸出對從所述多個存儲元件輸出的N根數(shù)據(jù)線進(jìn)行選擇的數(shù)據(jù)選擇信號。
8.根據(jù)權(quán)利要求I 7的任一項(xiàng)所述的半導(dǎo)體裝置,其中,與所述多個存儲部中的至少I個存儲部相鄰的其他N個存儲部中的2個存儲部自所述至少I個存儲部,沿著第一方向隔開第一距離而配置,所述相鄰的其他N個存儲部中的2個存儲部自所述至少I個存儲部,沿著與所述第一方向交差的第二方向隔開第二距離而配置,所述相鄰的其他N個存儲部中的2個存儲部自所述至少I個存儲部,沿著與所述第一方向和所述第二方向交差的第三方向隔開第三距離而配置,所述第一 第三距離以第一距離、第二距離、第三距離的順序變長。
9.根據(jù)權(quán)利要求I 8的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述第一方向與所述第二方向彼此正交。
10.根據(jù)權(quán)利要求I 9的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述多個存儲部的至少I個存儲部將I根地址線與相鄰的其他存儲部以外的存儲部的數(shù)據(jù)線連接。
11.根據(jù)權(quán)利要求6 10的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述多個存儲部的任一個自所述多個存儲部中的至少I個存儲部,沿著所述第一 第三方向的任一方向配置,所述多個存儲部的至少I個存儲部將I根地址線連接到配置于所述第一 第三距離的任一個的5倍的位置上的存儲部的數(shù)據(jù)線。
12.根據(jù)權(quán)利要求I 11的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述多個存儲部被作為可重構(gòu)的邏輯部件以及/或連接部件來使用。
13.根據(jù)權(quán)利要求I 12的任一項(xiàng)所述的半導(dǎo)體裝置,其中,還具有與存儲構(gòu)成所述真值表的數(shù)據(jù)的存儲裝置連接的輸入輸出部。
14.根據(jù)權(quán)利要求13所述的半導(dǎo)體裝置,其中,還具有存儲構(gòu)成所述真值表的數(shù)據(jù)的存儲裝置。
15.根據(jù)權(quán)利要求I 14的任一項(xiàng)所述的半導(dǎo)體裝置,其中,物理布線層數(shù)為4層以下。
16.一種半導(dǎo)體裝置,其特征在于,包括分別具有多個存儲部的第一以及第二邏輯部,各存儲部具有地址譯碼器和多個存儲元件,該地址譯碼器對從第一地址線輸入的存儲動作用地址或從第二地址線輸入的邏輯動作用地址進(jìn)行譯碼,并向字線輸出字選擇信號,該多個存儲元件與所述字線和數(shù)據(jù)線連接, 分別存儲構(gòu)成對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表的數(shù)據(jù),并根據(jù)從所述字線輸入的所述字選擇信號與輸入輸出所述數(shù)據(jù)的數(shù)據(jù)線連接;和運(yùn)算處理部,該運(yùn)算處理部具有與所述第一邏輯部所具有的存儲部的第一地址線及數(shù)據(jù)線連接的第一輸入輸出部;與所述第二邏輯部所具有的存儲部的第二地址線及數(shù)據(jù)線連接的第二輸入輸出部;以及對所述第一輸入輸出部進(jìn)行輸出存儲動作用地址以及數(shù)據(jù)的控制,并對所述第二輸入輸出部進(jìn)行輸出邏輯動作用地址且接收數(shù)據(jù)的控制的控制部。
17.根據(jù)權(quán)利要求16所述的半導(dǎo)體裝置,其中,包含于第一邏輯部或第二邏輯部的所述存儲部的邏輯動作用地址線分別與所述存儲部的其他存儲部的數(shù)據(jù)線連接,并且所述存儲部的數(shù)據(jù)線分別與所述存儲部的其他存儲部的邏輯動作用地址線連接。
18.根據(jù)權(quán)利要求16或17所述的半導(dǎo)體裝置,其中,包含于所述第一邏輯部以及所述第二邏輯部的所述多個存儲部是可重構(gòu)的。
19.根據(jù)權(quán)利要求16 18的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述第一邏輯部以及所述第二邏輯部分別具有對所述多個存儲部進(jìn)行選擇的存儲部譯碼器。
20.根據(jù)權(quán)利要求16 19的任一項(xiàng)所述的半導(dǎo)體裝置,其中,還具有與存儲構(gòu)成所述真值表的數(shù)據(jù)的存儲裝置連接的輸入輸出部。
21.根據(jù)權(quán)利要求16 20的任一項(xiàng)所述的半導(dǎo)體裝置,其中,還具有存儲構(gòu)成所述真值表的數(shù)據(jù)的存儲裝置。
22.根據(jù)權(quán)利要求16 21的任一項(xiàng)所述的半導(dǎo)體裝置,其中,物理布線層數(shù)為4層以下。
23.根據(jù)權(quán)利要求16 22的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述第一邏輯部所具有的所述存儲部的數(shù)量與所述第二邏輯部所具有的所述存儲部的數(shù)量是相同的。
24.根據(jù)權(quán)利要求16 23的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述地址譯碼器分為行譯碼器和列譯碼器,所述行譯碼器對從M (M為5以下的整數(shù),L為N — 5的整數(shù))根地址線輸入的地址進(jìn)行譯碼,并向所述字線輸出字選擇信號,所述列譯碼器對從L根地址線輸入的地址進(jìn)行譯碼,并輸出對從所述多個存儲元件輸出的N根數(shù)據(jù)線進(jìn)行選擇的數(shù)據(jù)選擇信號。
25.一種使用了運(yùn)算處理部的半導(dǎo)體裝置的控制方法,其特征在于,包括所述運(yùn)算處理部向第一邏輯部輸出對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表數(shù)據(jù)的步驟,其中所述第一邏輯部具有多個存儲部,各存儲部具有多個存儲元件;將所述對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表數(shù)據(jù)存儲于所述第一邏輯部的存儲部的步驟;所述運(yùn)算處理部向第二邏輯部輸出邏輯動作用地址的步驟,其中所述第一邏輯部具有多個存儲部,各存儲部具有多個存儲元件;所述第二邏輯部的存儲部從由所述邏輯動作用地址確定的存儲元件輸出數(shù)據(jù)的步驟; 所述運(yùn)算處理裝置從所述第二邏輯部接收數(shù)據(jù)的步驟。
26.根據(jù)權(quán)利要求25所述的控制方法,其中,所述運(yùn)算處理裝置包含于所述半導(dǎo)體裝置。
27.—種半導(dǎo)體裝置,其特征在于,包括對數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算處理部;和作為具有多個存儲部以及輸入輸出部的邏輯部的運(yùn)算處理部,各存儲部具有地址譯碼器和多個存儲元件,該地址譯碼器對從地址線輸入的地址進(jìn)行譯碼,并向所述字線輸出字選擇信號,該多個存儲元件與數(shù)據(jù)線和字線連接,分別存儲構(gòu)成對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表的數(shù)據(jù),并根據(jù)從所述字線輸入的所述字選擇信號與輸入輸出所述數(shù)據(jù)的數(shù)據(jù)線連接;所述輸入輸出部將所述運(yùn)算處理部的至少I個輸出信號線和所述地址線的至少I個進(jìn)行連接,并將所述運(yùn)算處理部的至少I個輸入信號線和所述數(shù)據(jù)線的至少I個進(jìn)行連接。
28.根據(jù)權(quán)利要求27所述的半導(dǎo)體裝置,其中,所述存儲部的地址線分別與所述存儲部的其他存儲部的數(shù)據(jù)線連接,并且所述存儲部的數(shù)據(jù)線分別與所述存儲部的其他存儲部的地址線連接。
29.根據(jù)權(quán)利要求26或27所述的半導(dǎo)體裝置,其中,所述多個存儲部是可重構(gòu)的。
30.根據(jù)權(quán)利要求26 29的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述邏輯部還具有對所述多個存儲部進(jìn)行選擇的存儲部譯碼器。
31.根據(jù)權(quán)利要求26 30的任一項(xiàng)所述的半導(dǎo)體裝置,其中,還具有與存儲構(gòu)成所述真值表的數(shù)據(jù)的存儲裝置連接的輸入輸出部。
32.根據(jù)權(quán)利要求26 31的任一項(xiàng)所述的半導(dǎo)體裝置,其中,還具有存儲構(gòu)成所述真值表的數(shù)據(jù)的存儲裝置。
33.根據(jù)權(quán)利要求26 32的任一項(xiàng)所述的半導(dǎo)體裝置,其中,物理布線層數(shù)為4層以下。
34.根據(jù)權(quán)利要求26 33的任一項(xiàng)所述的半導(dǎo)體裝置,其中,所述地址譯碼器分為行譯碼器和列譯碼器,所述行譯碼器對從M (M為5以下的整數(shù),L為N — 5的整數(shù))根地址線輸入的地址進(jìn)行譯碼,并向所述字線輸出字選擇信號,所述列譯碼器對從L根地址線輸入的地址進(jìn)行譯碼,并輸出對從所述多個存儲元件輸出的N根數(shù)據(jù)線進(jìn)行選擇的數(shù)據(jù)選擇信號。
35.一種使用了運(yùn)算處理部的半導(dǎo)體裝置的控制方法,其特征在于,包括所述運(yùn)算處理部向包含于所述運(yùn)算處理部的邏輯部輸出地址的步驟,其中,所述邏輯部具有多個存儲元件,各存儲元件分別存儲構(gòu)成對邏輯動作或連接關(guān)系進(jìn)行規(guī)定的真值表的數(shù)據(jù);所述邏輯部從與所述運(yùn)算處理部的至少I個輸出信號線連接的至少I個地址線接收所述地址的步驟;所述邏輯部從由所述地址確定的存儲元件輸出數(shù)據(jù)的步驟;所述邏輯部借助于與所述運(yùn)算處理部的至少I個輸入信號線連接的至少I個數(shù)據(jù)線, 向所述運(yùn)算處理部輸出所述數(shù)據(jù)的步驟。
36.根據(jù)權(quán)利要求35所述的控制方法,其中,所述邏輯部從與所述邏輯部內(nèi)的存儲部相連的至少I個數(shù)據(jù)線向所述運(yùn)算處理部的至少I個輸入信號線輸出所述讀出的數(shù)據(jù)。
37.根據(jù)權(quán)利要求35或36所述的控制方法,其中,所述運(yùn)算處理裝置包含于所述半導(dǎo)體裝置。
38.一種半導(dǎo)體裝置,其特征在于,包括多個可編程邏輯部,該多個可編程邏輯部分別具有多個存儲單元裝置,且當(dāng)向所述存儲單元裝置寫入真值表數(shù)據(jù)時,該多個可編程邏輯部作為邏輯部件或連接部件工作; 高速緩存部,該高速緩存部分別保持作為多個所述真值表數(shù)據(jù)的多個構(gòu)成信息;構(gòu)成控制部,在所述多個可編程邏輯部中的第一可編程邏輯部通過構(gòu)成分支邏輯的第一構(gòu)成信息而被重構(gòu)的情況下,該構(gòu)成控制部通過構(gòu)成所述分支邏輯的分支目的地電路的所述第二構(gòu)成信息對所述多個可編程邏輯部中的第二可編程邏輯部進(jìn)行重構(gòu)。
39.根據(jù)權(quán)利要求38所述的半導(dǎo)體裝置,其中,所述高速緩存部將表示運(yùn)算器的真值表數(shù)據(jù)亦即運(yùn)算器數(shù)據(jù)和表示狀態(tài)遷移的真值表數(shù)據(jù)亦即控制數(shù)據(jù)分開保持,所述構(gòu)成控制部從所述高速緩存部分別讀入所述控制數(shù)據(jù)和包含通過所述控制數(shù)據(jù)的狀態(tài)遷移表示的運(yùn)算器的所述運(yùn)算器數(shù)據(jù),并對所述可編程邏輯部進(jìn)行重構(gòu)。
40.根據(jù)權(quán)利要求38或39所述的半導(dǎo)體裝置,其特征在于,還具有包含所述高速緩存部所保持的控制數(shù)據(jù)的存儲部,所述構(gòu)成控制部接著所述高速緩存部所保持的控制數(shù)據(jù),從所述存儲部讀出用于重構(gòu)所述可編程邏輯部的控制數(shù)據(jù),并將該控制數(shù)據(jù)存儲至所述高速緩存部。
41.根據(jù)權(quán)利要求38 40的任一項(xiàng)所述的半導(dǎo)體裝置,其特征在于,存儲于所述存儲部的所述控制數(shù)據(jù)的真值表數(shù)據(jù)被壓縮,所述高速緩存部保持已壓縮的真值表數(shù)據(jù),所述構(gòu)成控制部對所述已壓縮的真值表數(shù)據(jù)進(jìn)行解壓縮,利用該解壓縮后的真值表數(shù)據(jù)來重構(gòu)所述可編程邏輯部。
42.根據(jù)權(quán)利要求I 4的任一項(xiàng)所述的半導(dǎo)體裝置,其中,在所述多個可編程邏輯部中的第一可編程邏輯部通過構(gòu)成分支邏輯的第三構(gòu)成信息被重構(gòu),根據(jù)利用已預(yù)測為所述第三構(gòu)成信息的分支邏輯的分支目的地電路的第四構(gòu)成信息所構(gòu)成的第二可編程邏輯部的運(yùn)算結(jié)果,所述第四構(gòu)成信息未構(gòu)成所述第三構(gòu)成信息的分支邏輯的分支目的地電路的情況下,所述構(gòu)成控制部利用包含所述分支邏輯的分支目的地的第五構(gòu)成信息來重構(gòu)所述第二可編程邏輯部以外的可編程邏輯部。
全文摘要
本發(fā)明的課題是試圖減少構(gòu)成所希望的邏輯電路的存儲元件塊的總量。本發(fā)明提供一種半導(dǎo)體裝置,包括N(N為2以上的整數(shù))根地址線、N根數(shù)據(jù)線和多個存儲部,各存儲部具有地址譯碼器和多個存儲元件,該地址譯碼器對從上述N根地址線輸入的地址進(jìn)行譯碼并向字線輸出字選擇信號,該多個存儲元件連接于上述字線與數(shù)據(jù)線,分別存儲構(gòu)成真值表的數(shù)據(jù),并根據(jù)從上述字線輸入的上述字選擇信號,與上述數(shù)據(jù)線進(jìn)行上述數(shù)據(jù)的輸入輸出,上述存儲部的N根地址線分別連接于上述存儲部的其他N個存儲部的數(shù)據(jù)線,并且上述存儲部的N根數(shù)據(jù)線分別連接于上述存儲部的其他N個存儲部的地址線。
文檔編號H03K19/173GK102948077SQ20118002896
公開日2013年2月27日 申請日期2011年6月13日 優(yōu)先權(quán)日2010年6月24日
發(fā)明者石黑隆, 佐藤正幸, 弘中哲夫, 稻木雅人, 島崎等 申請人:太陽誘電株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
固安县| 夏邑县| 正阳县| 淅川县| 凤城市| 新乐市| 田东县| 宁化县| 祁东县| 南宫市| 平泉县| 盘山县| 文安县| 伊宁市| 运城市| 岢岚县| 靖西县| 曲周县| 舞钢市| 白朗县| 黄平县| 灵山县| 涡阳县| 奉新县| 连平县| 东乡县| 雷州市| 随州市| 通化县| 华蓥市| 嘉义市| 化隆| 永新县| 藁城市| 扎赉特旗| 大埔区| 泽库县| 无为县| 黄龙县| 临邑县| 漾濞|