TWI746021B - 測試及配置fpga的系統與方法 - Google Patents
測試及配置fpga的系統與方法 Download PDFInfo
- Publication number
- TWI746021B TWI746021B TW109120881A TW109120881A TWI746021B TW I746021 B TWI746021 B TW I746021B TW 109120881 A TW109120881 A TW 109120881A TW 109120881 A TW109120881 A TW 109120881A TW I746021 B TWI746021 B TW I746021B
- Authority
- TW
- Taiwan
- Prior art keywords
- shift register
- lut
- flip
- configuration
- flop
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31701—Arrangements for setting the Unit Under Test [UUT] in a test mode
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31727—Clock circuits aspects, e.g. test clock circuit details, timing aspects for signal generation, circuits for testing clocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/28—Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
- H03K19/1774—Structural details of routing resources for global signals, e.g. clock, reset
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17764—Structural details of configuration resources for reliability
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
藉由使用佈置於移位暫存器中的數個正反器,可提供用於查找表(LUT)之配置值及FPGA中的可程式路由開關。此移位暫存器在工廠測試模式時可接收測試值,且在操作模式時可接收操作配置值(實作客戶對FPGA所需之任何功能性)。在移位暫存器之一端提供位元流,並被時控直到最後正反器接收到其值。亦可能在移位暫存器之另一端時控出值以將其與初始位元流比較,以為了識別儲存值(例如,由於輻射暴露)之訛誤。提出一時脈閘控架構用於載入資料至或讀取資料自特定選擇的移位暫存器。
Description
本發明相關於可程式邏輯裝置,且更明確相關於現場可程式閘陣列裝置。
FPGA係一種類型之可程式邏輯裝置。其通常係基於標準可程式邏輯區塊,佈置大量標準可程式邏輯區塊在一起以實作各種功能。
圖1概略地顯示最先進已知FPGA系統之實例。
舉例而言如上述在圖1所顯示,FPGA晶片10包含數個邏輯區塊11。該晶片亦包含數個輸入/輸出埠12。連接此些邏輯區塊11與輸入/輸出埠12的係數個軌道14。在此些軌道之連接點處提供數個可程式路由區13。在此些可程式路由區中提供開關,其受連接到各開關之記憶體單元中所儲存的邏輯值之控制可選擇性地連接任何對的相交軌道。在啟動系統時自非揮發性記憶體設定開關記憶體值。據此,藉由設定在開關記憶體中所需要的值,任何邏
輯區塊之任何連接可被耦合到任何其他邏輯區塊之任何連接、或任何輸入/輸出埠12。因此,藉由適當配置記憶體單元以定義各邏輯區塊之操作及用以建立邏輯區塊間適當連接之開關記憶體13,可實作任何想要功能性。
圖2進一步顯示最先進已知FPGA系統之元件細節。
圖2中所顯示之元件構成參照圖1之上述功能性的部分之部分實作的代表性實例。
如圖2所示,提供第一查找表(LUT)21和第二查找表(LUT)22、及數個進一步LUT(未示出)。第一LUT 21個別包含七個二輸入多工器211、212、213、214、215、216、217。第二LUT及進一步LUT被相似地配置。以級聯方式佈置此些多工器成三行,用以構成8個輸入多工器,而其輸出構成LUT之輸出。各在級聯佈置之第一行的多工器(211、213、215及217)皆具有總共八個輸入。此些八個輸入構成第一LUT 21之程式化輸入。各行之選擇輸入被聯繫在一起,用以構成LUT之三個資料輸入。第一LUT之資料輸入及資料輸出被連接到一組軌道2501、2502。該第二及進一步LUT之輸入及輸出相應於進一步軌道之網路而被連接(未示出)。在此方式中具有3個資料輸入之LUT傳統地被稱作「LUT3」。將第一LUT 21之八個程式化輸入的各者連接到個別靜態RAM記憶體裝置251、252、253、254、255、256、257、258。對應靜態RAM記憶體裝置提供於系統中所提供之其他LUT(未示出)及第二LUT 22之配置輸入。在操作中,此些記憶體
裝置251、252、253、254、255、256、257、258提供常數預判定邏輯值給各LUT之八個程式化輸入的各者。將各SRAM單元之內容概略地顯示為包含由兩個反向器組成之閂,各接收另一者之輸出,而提供由字線23切換之電晶體開關以賦能該閂中反向器之一的輸出上之值的選擇性輸出到連接到LUT 217之個別配置輸入之位元線,以及亦選擇性輸出到藉由使用其可設定該閂之值的資料線24。各記憶體裝置251、252、253、254、255、256、257、258之位元線被連接到選擇匯流排24,而各記憶體裝置251、252、253、254、255、256、257、258之字線被連接到資料匯流排23。在電路之啟動階段期間,各記憶體裝置251、252、253、254、255、256、257、258循序被定址,並且將所欲值設定給相關的閂。LUT之邏輯行為係回應於在其三個資料輸入上的任何二元值,可因此被定義為係必需的。此為FPGA技術之底層基本概念。然而應體認到包含兩個LUT3之單一邏輯區塊可實作之功能係有限的,但是藉由將如上述數個適當配置之LUT互連,可實作任何任意組合的功能。此互連係透過資料通道2501、2502及攜帶來自其他LUT的資料之進一步通道(未示出)之可程式互連而達成。同時如所顯示地通道2501、2502被垂直地佈置,並提供相交通道2501、2502之進一步通道2503。在通道2501及2503之個別線的相交處提供可程式開關單元26。考慮到兩線之相交,在開關單元處總共構成四個連接,開關單元包含6個電晶體開關,經佈置
以建立或打斷此些四個連接之任兩者之間的連接。藉由從個別靜態記憶體單元261、262、263、264、265、266接收之值,此些電晶體開關之各者被設定成打開或閉合(open or closed)。具有對應靜態記憶體裝置的進一步此類可程式開關單元被提供在許多或所有軌道相交處(未示出)。所示此些靜態記憶體裝置261、262、263、264、265、266係相似於記憶體裝置251、252、253、254、255、256、257、258,並且連接到相同位址及資料匯流排23及24,使得當電路在啟動階段期間時,LUT記憶體裝置及開關記憶體裝置兩者可被循序定址,並將所欲值設定給相關之閂,使得各LUT之行為及其到任何其他LUT之連接可視需要而配置。
WO2012/123243 A1、US7463056 B1、US6021513 A、US5432441 A、US8091001 B2、US5675589 A、及US5027355 A說明前述之特定態樣。
由Victor Olubunmi Aken’Ova著作、標題為「Bridging the Gap between Soft and Hard eFPGA Design(橋接軟式及硬式eFPGA設計之間的間隙)」之文章(可自網址https://www.ece.ubc.ca/~lemieux/publications/akenova-masc2005.pdf獲得)提供進一步背景資訊。
雖然所述方法具有高度彈性,但應體認到在LUT與記憶體單元之位址與資料匯流排之間的互連軌道佔據顯著量的空間。即使係圖2之高度精簡佈置,數個線被顯示為必需,並且此在任何真實實作中迅速地變成繁重的。因為
對實作電路中測試功能性之需要,此問題進一步加劇,所述測試是為了確定當製造完裝置後是否具有適當行為,其可能需要仍進一步特徵之添加。
根據第一態樣提供一種能夠實作邏輯功能的現場可程式閘陣列,該現場可程式閘陣列包含複數個硬體查找表,藉由使用複數個可程式開關,各個該查找表之選擇線或輸出與另一該查找表之選擇線或輸出為可程式地互連,此現場可程式閘陣列特徵在於進一步包含:複數個正反器,於移位暫存器配置中並構成程式化移位暫存器,各個查找表具有耦合到個別該正反器之輸出的至少一輸入,及各個該可程式開關耦合到進一步個別該正反器之輸出;及其中該現場可程式閘陣列係佈置以於第一模式中操作,其中以預定義測試值載入該程式化移位暫存器;及第二模式,其中以實作該邏輯功能之值載入該程式化移位暫存器。
藉由使用程式化移位暫存器將該FPGA程式化降低了專用於定址記憶體單元之晶片的空間,並藉由掃描鍊技術而改善可測試性,特別就工業規模生產目標而言。
根據該第一態樣之發展,在該程式化移位暫存器中的該第一正反器係與輸入多工器耦合,該輸入多工器對第一輸入接收該預定義測試值,且該值以第二輸入實作該邏輯功能,並且回應於模式選擇訊號,其適用以將該測試型樣或該資料位元流之任意者饋送到該第一正反器。
這表示特定實體資源可在二功能性之間共享,而沒有增加表面積。
根據該第一態樣之進一步發展,該程式化移位暫存器係複數個配置用以提供該現場可程式閘陣列之不同部分的此類程式化移位暫存器之一者。
由於針對組織到掃描鍊中採取模組化方法之可能性,故多個程式化移位暫存器增加測試之彈性;並且由於在任意時間時控較少之正反器,故導致功耗之降低。
根據該第一態樣之進一步發展,該複數個程式化移位暫存器經配置成並聯地在該第一模式中以該預定義測試值載入或在該第二模式中以實作該邏輯功能之該值載入。
並聯地載入多個程式化移位暫存器可降低初始化時間,並且由於時脈訊號之共享而限制總功耗。
根據該第一態樣之進一步發展,該複數個程式化移位暫存器經配置成串聯地在該第一模式中以該預定義測試值載入或在該第二模式中以實作該邏輯功能之該值載入。
串聯地載入多個程式化移位暫存器可簡化程式化,並限制總功耗。
根據該第一態樣之進一步發展,該現場可程式閘陣列進一步包含定址系統,從而使該複數個程式化移位暫存器之任意者可被獨立地或群組地定址,以使其能夠在該第一模式中以該預定義測試值載入或在該第二模式中以實作該邏輯功能之該值載入。
可獨立地或群組地定址程式化移位暫存器之可能性增
加彈性,並且由於可僅定址那些實際需要用於特定應用之程式化移位暫存器的可能性,初始化時間及功耗被降低。
根據該第一態樣之進一步發展,該定址系統包含與各個程式化移位暫存器或群組相關之個別可定址時脈閘,該時脈閘適用以提供時脈訊號到該程式化移位暫存器,其中當如此定址時該程式化移位暫存器與該時脈閘相關。
藉由使用時脈控制定址,可藉由限制時脈傳播來降低功耗。
根據該第一態樣之進一步發展,該現場可程式閘陣列進一步適用以實作操作之第三模式,其中在操作之該第二模式中載入該程式化移位暫存器中的實作該邏輯功能之該值被讀回該程式化移位暫存器,用於與實作針對第二模式載入之邏輯功能的值作比較。
將初始配置位元流與在操作階段後的正反器中實際配置比較之可能性提供用於偵測由於配置值之訛誤的錯誤結果之機構,舉例而言用於航空、軍事、或核工業應用中。
根據第二態樣提供一種操作FPGA之方法,該方法包含以下步驟:指示具有耦合到程式化移位暫存器之輸出的多工器以選擇接收實作測試協定之配置值的輸入及指示複數個LUT正反器以進入測試配置,其中各個該LUT正反器接收實作該測試協定之輸入,且其中該LUT正反器被連接作為移位暫存器。接著以屬於實作該測試協定之該配置值的LUT配置值來時控該程式化移位暫存器以載入其第一組元件並以屬於實作該測試協定之該配置值的路由開
關配置來時控該程式化移位暫存器以載入該移位暫存器之第二組元件。接著指示該複數個LUT正反器以進入操作配置,其中各個該LUT正反器從複數個LUT之該輸出個別地接收輸入,且資料輸入接著被應用到該複數個LUT。接著時控該LUT正反器以取樣各個該LUT之該輸出於個別該正反器之中,該輸出為回應於該測試協定及該資料輸入。接著指示該LUT正反器以進入測試配置,其中該LUT正反器被連接於LUT移位暫存器中,及被連接作為移位暫存器,並被時控以讀出該LUT移位暫存器之該值,其包含回應於該測試協定及該資料輸入的該LUT之該輸出。
根據第三態樣提供一種操作FPGA之方法,該方法包含以下步驟:指示具有耦合到程式化正反器之輸出的多工器以選擇接收實作邏輯功能之配置值的輸入,及指示該複數個LUT正反器以進入操作配置,其中各個該LUT正反器從LUT之該輸出個別地接收輸入。該方法接著繼續用以屬於實作該邏輯功能之該配置值的LUT配置值來時控該程式化移位暫存器以載入其第一組元件,及以屬於實作該邏輯功能之該配置值的路由開關配置來時控該程式化移位暫存器以載入該移位暫存器之第二組元件。
根據該第三態樣之發展,該方法包含以下進一步步驟:賦能第一程式化移位暫存器之該輸出作為該程式化移位暫存器,及重複該時控及指示之步驟用於進一步該程式化移位暫存器。
根據第四態樣,提供一種操作FPGA的方法,包含以下步驟:以實作邏輯功能之該LUT配置值時控第一程式化移位暫存器以讀出其第一組元件,及以實作邏輯功能之路由開關配置時控該第一程式化移位暫存器以讀出該移位暫存器之第二組元件。
根據該第四態樣之發展,該方法包含以下進一步步驟:賦能第一程式化移位暫存器之該輸出作為該程式化移位暫存器,及重複該時控之步驟用於進一步程式化移位暫存器。
根據該第四態樣之進一步發展,該方法包含以下進一步步驟:將實作邏輯功能之該LUT配置及實作邏輯功能作為該程式化移位暫存器之讀出之路由開關配置與實作邏輯功能之LUT配置及實作邏輯功能作為原始寫入該移位暫存器中之路由開關配置作比較。
根據本發明之第五態樣,提供適用以實作該第二或第三態樣之方法的步驟之電腦程式。
實作該方法於電腦程式中提供用於與FPGA介接之方便機制並於有彈性及標準化平台中實作本發明。
根據本發明之第六態樣,提供結合該第五態樣之電腦程式的電腦可讀取媒體。
10:FPGA晶片
11:邏輯區塊
12:輸入/輸出埠
13:開關記憶體
14:軌道
15:邏輯區塊
21:第一查找表
211:二輸入多工器
212:二輸入多工器
213:二輸入多工器
214:二輸入多工器
215:二輸入多工器
216:二輸入多工器
217:二輸入多工器
22:第二查找表
23:字線/資料匯流排
24:資料線/選擇匯流排
251:記憶體裝置
252:記憶體裝置
253:記憶體裝置
254:記憶體裝置
255:記憶體裝置
256:記憶體裝置
257:記憶體裝置
258:記憶體裝置
2501:資料通道
2502:資料通道
2503:資料通道
26:可程式開關單元
261:靜態記憶體單元
262:靜態記憶體單元
263:靜態記憶體單元
264:靜態記憶體單元
265:靜態記憶體單元
266:靜態記憶體單元
37:程式化移位暫存器
3701:正反器
3702:正反器
3703:正反器
3704:正反器
3705:正反器
3706:正反器
3707:D正反器
3708:D正反器
3709:D正反器
3710:D正反器
3711:D正反器
3712:D正反器
3713:D正反器
3714:D正反器
3715:D正反器
372:時脈線
38:多工器
381:輸入
382:輸入
41:操作單元
421:程式化移位暫存器
422:輸入連接
431:程式化移位暫存器
432:輸入連接
441:程式化移位暫存器
442:輸入連接
451:時脈
452:時脈
453:時脈
46:時脈線
48:多工器
481:多工器/選擇訊號
482:多工器
483:多工器
511:邏輯區塊/操作單元
512:邏輯區塊/操作單元
513:邏輯區塊/操作單元
514:邏輯區塊/操作單元
515:邏輯區塊/操作單元
516:邏輯區塊/操作單元
521:程式化移位暫存器
522:輸入連接
531:程式化移位暫存器
532:輸入連接
541:程式化移位暫存器
542:輸入連接
551:時脈
552:時脈
553:時脈
611:邏輯區塊/操作單元
612:邏輯區塊/操作單元
613:邏輯區塊/操作單元
614:邏輯區塊/操作單元
615:邏輯區塊/操作單元
616:邏輯區塊/操作單元
621:程式化移位暫存器
622:程式化移位暫存器
623:程式化移位暫存器
624:程式化移位暫存器
625:程式化移位暫存器
626:程式化移位暫存器
631:時脈閘
632:時脈閘
633:時脈閘
634:時脈閘
635:時脈閘
636:時脈閘
64:行解碼器
641:行選擇線
642:行選擇線
643:行選擇線
65:列解碼器
651:列選擇線
652:列選擇線
66:單一時脈分配網路
67:輸入線
681:AND閘
682:AND閘
683:AND閘
684:AND閘
685:AND閘
686:AND閘
691:OR閘
692:正反器
693:輸入
694:輸出
910:操作單元
911:查找表
912:查找表
913:多工器
914:多工器
915:正反器
916:正反器
917:輸入線
918:選擇線
919:時脈線
920:輸入
921:雙配置LUT正反器
922:雙配置LUT正反器
930:程式化移位暫存器
940:時脈閘
941:時脈
942:時脈線
943:輸入
950:AND閘
1301:邏輯裝置
1302:儲存裝置
1303:介面
1311:顯示器次系統
1312:鍵盤
1313:滑鼠
1314:揚聲器
1315:麥克風
1316:照相機
1317:印表機
1320:通訊次系統
1321:短程誘導通訊
1331:磁性記憶體
1332:光學記憶體
1333:半導體記憶體
1374:無線電話網路
1375:網際網路
1376:遠端伺服器
本發明之上述及其他特徵將參照隨附圖式而被說明,其中:
圖1概略地顯示最先進已知FPGA系統之實例;
圖2進一步顯示最先進已知FPGA系統之元件細節;
圖3顯示根據本發明之實施例的FPGA系統之元件;
圖4顯示用於FPGA電路之配置的第一配置;
圖5顯示用於FPGA電路之配置的第二配置;
圖6顯示用於FPGA電路之配置的第三配置;
圖7顯示適用於配置讀出的圖4之結構的修改;
圖8顯示適用於配置讀出的圖6之結構的修改;
圖9顯示根據進一步實施例之操作單元的進一步細節;
圖10顯示載入根據實施例的FPGA之方法;
圖11顯示操作根據實施例的FPGA之方法;
圖12顯示驗證根據進一步實施例的FPGA之方法;
圖13顯示適用於本發明之實施例實作的一般計算系統。
圖3顯示根據本發明之實施例的FPGA系統之元件。
圖3中所顯示之元件構成根據本發明之實施例並參照圖1之上述功能性的部分之部分實作的代表性實例。
如圖3所示,提供第一查找表(LUT)21和第二查找表(LUT)22、及數個進一步LUT(未示出)。第一LUT 21個別包含七個二輸入多工器211、212、213、214、215、216、217(參考符號自圖3省略)。第二LUT及進一步
LUT被相似地配置。以級聯方式佈置此些多工器成三行,用以構成8個輸入多工器,而其輸出構成LUT之輸出。各在級聯佈置之第一行的多工器(211、213、215及217)皆具有總共八個輸入。此些八個輸入構成第一LUT 21之程式化輸入。各行之選擇輸入被聯繫在一起,用以構成LUT之三個資料輸入。第一LUT之資料輸入及資料輸出被連接到一組軌道2501、2502。該第二及進一步LUT之輸入及輸出相應於進一步軌道之網路而被連接(未示出)。在此方式中具有3個資料輸入之LUT傳統地被稱作「LUT3」。
根據此實施例,將第一LUT 21之八個程式化輸入的各者個別地連接到D正反器3707、3708、3709、3710、3711、3712、3713、3714之Q終端。
相似地,由進一步D正反器(未示出)提供於系統中所提供之其他LUT(未示出)及第二LUT 22之配置輸入。藉由將各正反器之輸出Q連接到下一個正反器之輸入D,此些正反器被佈置成連同正反器3707、3708、3709、3710、3711、3712、3713、3714以構成程式化移位暫存器37,並且將各正反器之時脈輸入聯繫在一起於單一時脈線372中。在操作中,與參照圖2所述的SRAM裝置相同之方式,此些記憶體裝置提供常數預判定邏輯值給各LUT之八個程式化輸入的各者。
在電路之啟動階段期間,對應於程式化移位暫存器中各正反器的所欲最終值之碼字(codeword)被一位元接一
位元地輸入到程式化移位暫存器中的第一正反器3701,並且沿著程式化移位暫存器一次一位元地被時控,直到該第一位元到達最後正反器,且該第一正反器接收到其最終值。
圖3之系統實作相似於以上參照圖2所述之互連機制。然而根據此實施例,藉由從屬於程式化移位暫存器37之個別正反器3701、3702、3703、3704、3705、3706接收之值,可程式開關單元26之各電晶體開關被設定成打開或閉合(open or closed)。具有對應正反器裝置的進一步此類可程式開關單元被提供在許多或所有軌道相交處(未示出)。據此,在電路之啟動階段期間,對應於程式化移位暫存器中各正反器的所欲最終值以實作FPGA所需之任何邏輯功能之位元流被一位元接一位元地輸入到程式化移位暫存器中的第一正反器3701,並且沿著程式化移位暫存器一次一位元地被時控,直到該第一位元到達最後正反器,且該第一正反器接收到其最終值,藉此一次定義該路由開關及該LUT配置輸入之值。
圖3之系統進一步包含多工器38,其在兩輸入381及382之間切換。根據實施例,一輸入381可接收對應於將被載入到程式化移位暫存器37中以實作使用中的FPGA程式之設定值的設定流,亦即,任何任意位元序列並且可能被使用者需要,同時其他多工器輸入382可接收對應於針對在測試配置中不同系統組件所需之設定的設定流。
以D正反器替換SRAM記憶體單元暗示電晶體數量
之增加,並且因此違逆標準IC設計要件。
藉由採取正反器以控制路由開關及LUT配置輸入,變成有可能實作掃描鍊測試技術而無須添加專用於測試目的之額外正反器。此不僅抵消了上述電晶體數量之增加,亦進一步簡化了晶片設計,特別係有鑒於測試組件之路由及控制方面。
進一步地,藉由移除對用於大量SRAM單元之定址及資料匯流排之需求,可能可實質上節省晶片面積,其通常為了此些目的而被擱置。
據此,揭示一種能夠實作邏輯功能的現場可程式閘陣列,該現場可程式閘陣列包含複數個硬體查找表,藉由使用複數個可程式開關,各個該查找表之選擇線或輸出與另一該查找表之選擇線或輸出為可程式地互連,該現場可程式閘陣列特徵在於進一步包含:
複數個正反器,於程式化移位暫存器配置中,各個該查找表具有耦合到個別該正反器之輸出的至少一輸入,及各個該可程式開關耦合到進一步個別該正反器之輸出;及
其中該現場可程式閘陣列係佈置以於第一模式中操作,其中以預定義測試值載入該程式化移位暫存器;及第二模式,其中以實作該邏輯功能之值載入該程式化移位暫存器。
在該程式化移位暫存器中的第一正反器可能與輸入多工器耦合,該輸入多工器對第一輸入接收該預定義測試值,且該值以第二輸入實作該邏輯功能,並且回應於模式
選擇訊號,其適用以將該測試型樣或該資料位元流之任意者饋送到該第一正反器。
雖然圖3顯示單一程式化移位暫存器37,應體認到所提出之機制被縮放以結合更多LUT及可程式開關單元,可能係希望以實作多個或多維度的程式化移位暫存器。
據此,如參照圖3所述之該程式化移位暫存器可係複數個配置用以提供該現場可程式閘陣列之不同部分的此類程式化移位暫存器之一者。
此類複數個程式化移位暫存器可經配置成並聯地或串聯地在該第一模式中以該預定義測試值載入或在該第二模式中以實作該邏輯功能之該值載入。
熟悉該技術領域者將能體認到雖然圖3之系統已經被高度簡化,真正系統將在未背離本文說明準則之前提下為相當程度之更為複雜。特別而言,各邏輯區塊可包含多於一個的LUT,且可舉例而言用以支援擴充功能性或用以導入序列控制而進一步包含額外邏輯。數個此類邏輯區塊可被群組地被佈置在一起。
參照回圖1,雖然概略地顯示在操作模式中提供磚片(tile)之間連接性的軌道14,但為明顯地係未示出位址及資料匯流排23及24並且在真實裝置中上述兩者將佔據非常顯著的該裝置表面積。圖3之程式化移位暫存器佈置解決此問題,其係因為變得可以載入用於大量記憶體裝置之位元流到程式化移位暫存器中,而無須獨立地定址各記
憶體單元。此不僅在操作方面變簡單,亦就位址及匯流排軌道而言對表面積方面需求變小。然而應體認到不會希望提供結合每個配置單元的單一程式化移位暫存器給整個FPGA裝置,因為此類程式化移位暫存器會變得無法難以管理地長,故會對時脈管理、功耗等造成影響。同時有可能根據多個程式化移位暫存器而採取方法,其中各程式化移位暫存器管理用於晶片之特定部分之配置設定。在各個此類程式化移位暫存器(或程式化移位暫存器之群組)中的第一正反器可以相似於圖2之獨立記憶體單元之方式(或以其他方式)而被定址。各程式化移位暫存器之長度的選擇接著變成在一方面具有較簡單配置位元流分配之較長程式化移位暫存器與另一方面具有較複雜配置位元流分配之較短程式化移位暫存器之間的取捨,後者可能暗示較寬匯流排及/或更複雜之定址。在任何給定情況中的最佳取捨將取決於所使用之半導體技術,及取決於FPGA電路本身之各種特性。
圖4顯示用於FPGA電路之配置的第一配置;如所示,提供包含一或多LUT之操作單元41,可能具有輔助電路及對應可程式路由開關等。如所示,由三個程式化移位暫存器421、431及441提供配置值到此操作單元41;從三個輸入連接422、432、442接收輸入值;且各具有個別時脈451、452、453。線422、432、442各具有其個別輸入多工器481、482、483。其可被控制(例如受軟體控制)以在上述操作位元流或測試型樣之間作切換。在替代
實施例中,複數個程式化移位暫存器可自單一多工器接收輸入。藉由適當控制之多工解訊器,該多工器之輸出可被調度給個別程式化移位暫存器,或者可被定址用於以下實施例中所解釋之實例。
如所示,三個程式化移位暫存器僅具有五個正反器,然而將被體認到在作用實作(working implementation)中,程式化移位暫存器通常會係顯著更長的。作用實作通常將亦包含多於三個的程式化移位暫存器。程式化移位暫存器被顯示為全部都包含相同數量之正反器,然而在一些情況中,特定程式化移位暫存器可包含任何數量之正反器。
必須考慮到不同程式化移位暫存器之時控以確保該適當值到達各正反器。此暗示各程式化移位暫存器應接收到的時脈之數量相等於其長度並且不會更多,因為進一步脈衝將導致該值被繼續時控超出其適當目的地。針對此問題之一解決方法為定義全部的程式化移位暫存器為具有相同長度,如圖4所示。替代地,在定義不同長度之移位暫存器處,其可能與時脈管理電路相關聯,其適用以確保在初始化階段期間各移位暫存器接收到的時脈訊號之數量相等於其長度。仍根據進一步方法,各程式化移位暫存器可被提供時脈管理電路,其適用以認出指示目的用於該移位暫存器之位元流中特定位置(諸如位元流之起始或結束)的特別位元序列。當該時脈管理器偵測到此序列時,其將該時脈登入(clock entry)去能。此方法具有使各移位暫存器獨立之優點,並且使設計師具有定義任意大小之程式化
移位暫存器的自由。替代地,在程式化移位暫存器之訊號與時控之間的切換可能由軟體所驅動。
圖5顯示用於FPGA電路之配置的第二配置。如圖5所示,圍繞邏輯區塊511、512、513、514、515、516之矩陣建構FPGA,類似於圖1之FPGA一般。各行邏輯區塊被提供個別程式化移位暫存器,使得邏輯區塊511及512接收來自程式化移位暫存器521之配置值;使得邏輯區塊513及514接收來自程式化移位暫存器531之配置值;及使得邏輯區塊515及516接收來自程式化移位暫存器541之配置值。如所示,三個程式化移位暫存器各包含六個正反器,其中三個耦合到各邏輯區塊。在個別程式化移位暫存器中的所有正反器具有共同時脈輸入,而各程式化移位暫存器具有其個別時脈551、552、553。
如所示,三個程式化移位暫存器僅具有六個正反器,然而將被體認到在作用實作中,程式化移位暫存器通常會係顯著更長的。作用實作通常將亦包含多於三個的程式化移位暫存器。程式化移位暫存器被顯示為全部都包含相同數量之正反器,然而在一些情況中這可能係不可接受的設計限制,其中各程式化移位暫存器可包含任何數量之正反器。
必須考慮到不同程式化移位暫存器之時控以確保該適當值到達各正反器,有鑒於此以上參照圖4討論的類似措施係可應用的。
可例如對前述實施例所述的一般來實作操作位元流與
測試型樣之間的多工。操作位元流或測試型樣之分配(及個別時脈訊號)可在程式化移位暫存器之中被分配,例如對前述實施例所述的一般。
藉由實作程式化移位暫存器架構與邏輯區塊之布局(layout)之間的直接結構對應,提出了對配置位元流之產生之結構化方法,其有可能促進FPGA之程式化。
圖6顯示用於FPGA電路之配置的第二配置。如圖6所示,圍繞邏輯區塊611、612、613、614、615、616之矩陣建構FPGA,類似於圖5之FPGA一般。各邏輯區塊被提供個別程式化移位暫存器621、622、623、624、625、626。如所示,六個程式化移位暫存器621、622、623、624、625、626各包含三個正反器,提供用於其相關邏輯區塊之配置值。
各程式化移位暫存器之第一正反器接收其輸入於輸入線67上,其與各程式化移位暫存器之第一正反器之D輸入耦合在一起。
在各程式化移位暫存器中的所有正反器具有共同時脈輸入。
藉由個別時脈閘631、632、633、634、635、636,單一時脈分配網路66被耦合到各程式化移位暫存器之時脈線。此些時脈閘被顯示為各具有行選擇及列選擇輸入,由此在兩輸入上之同時邏輯高(logical high)閉合了將個別程式化移位暫存器之時脈線連接到時脈分配網路66之開關以接收時脈。
如所示有2列選擇線651及652,以及3行線641、642、643。各時脈閘之選擇輸入係連接到列選擇線及行選擇線之個別不同組合,使得藉由設定特定列選擇線及行選擇線成邏輯高,將啟動其行選擇輸入及列選擇輸入係連接到這兩選擇線之單一時脈閘。
由於只有當程式化移位暫存器接收到時脈輸入時,來自輸入線之資料值才會被傳播穿過該程式化移位暫存器,故藉由將時脈訊號導向到一選擇之程式化移位暫存器,有可能可以選擇性將任何具有單一輸入線67之程式化移位暫存器程式化。
列選擇線651、652被列解碼器65控制;且行選擇線641、642、643被行解碼器64控制。此些解碼器接收以輸入線67上之值協調的指令,用以將輸入線67上之值定址給任何其目的要給的程式化移位暫存器。如此,在初始化階段期間,圖6之電路將不僅接收到線67上之配置位元流及線66上之時脈,亦接收到在解碼器64及65處之定址位元流。
僅有正反器之子集(亦即,那些屬於在給定時間被程式化之邏輯區塊者)被時控之事實導致功耗之顯著降低。
將體認到在實作於FPGA中的真實系統中,許多邏輯區塊將被相似地配置以實作共同功能。本發明之一優勢在於將多於一個的程式化移位暫存器之時脈閘賦能係可行的,以使得可將相同配置值時控到一些並聯程式化移位暫存器中。此降低了FPGA之初始化時間並降低功耗。
如所示,三個程式化移位暫存器僅具有三個正反器,然而將被體認到在作用實作中,程式化移位暫存器通常會係顯著更長的。作用實作通常將亦包含多於六個邏輯區塊及對應地多於六個的程式化移位暫存器。程式化移位暫存器被顯示為全部都包含相同數量之正反器,然而由於各程式化移位暫存器被獨立地時控,故圖6之方法係等同的適用於其中各程式化移位暫存器可包含任何數量之正反器的佈置。
此位址功能性亦可藉由使用標準整合的時脈閘控單元,或其他者,而被實作。可對連同獨立定址之一組或全部的程式化移位暫存器的共同啟用提供特定實施例。
藉由實作程式化移位暫存器架構與邏輯區塊之布局(layout)之間的直接結構對應,提出了對配置位元流之產生之結構化方法,其有可能促進FPGA之程式化。
應體認到給定FPGA可被細分成被獨立程式化的區段,並且例如對圖4、5及6所描述的各種程式化移位暫存器架構之組合對照其不同部分係可行於相同FPGA中。
在若干應用中,可能係期望以將儲存在各種配置記憶體單元中的配置設定讀回。雖然基本上上述者可能被期待為相似於在系統初始化提供之配置位元流,但實際上存在其中可能不是如所述一般之特定情況。舉例而言,如在外太空、高空飛行、核電、及軍事應用中可能發生暴露到離子輻射,其可隨機地修改配置記憶體單元中的值,使在FPGA之接續處理結果被竄改。將原始位元流與從配置記
憶體位元讀出之儲存值作比較提供一種用於判定上述事件是否發生之機構。
如此,揭示一種現場可程式閘陣列,其包含定址系統,從而使該複數個程式化移位暫存器之任意者可被獨立地定址,以使其能夠在該第一模式中以該預定義測試值載入或在該第二模式中以實作該邏輯功能之該值載入。
此外,此定址系統考包含與各個程式化移位暫存器相關之個別可定址時脈閘,此時脈閘適用以提供時脈訊號到該程式化移位暫存器,其中當如此定址時該程式化移位暫存器與該時脈閘相關。
圖7顯示適用於配置讀出的圖4之結構的修改。如圖7所示,提供相同操作單元41,如參照圖4所述係與相同程式化移位暫存器421、431、441相關。如所示,在三個程式化移位暫存器之各者中的最後正反器不僅將其輸出提供到FPGA電路41之組件,亦提供到多工器48。多工器48因此接收到來自三個程式化移位暫存器421、431、441之各者的最後正反器之輸入。
在操作中,一旦FPGA之處理階段完成並且已產生結果,可能期望以將配置正反器之配置丟棄以確保與原始位元流之一致性,如以上所述。在需要此敘述內容處,程式化移位暫存器經由時脈線46被時控,並且被多工器48取樣的各程式化移位暫存器之輸出用以產生經多工之位元流,其一般而言應該與原始配置位元流相似。到乘法器之選擇訊號481可能僅導致在三乘以時脈線46上之時脈頻
率的三個輸入之循環選擇,或可能包含特定於各時脈之經程式化的序列,舉例而言其中程式化移位暫存器係為不同長度。
應被瞭解圖7之方法可簡單地適用於圖5之結構。
圖8顯示適用於配置讀出的圖6之結構的修改。如圖8所示,圍繞邏輯區塊611、612、613、614、615、616之相同矩陣建構FPGA,各邏輯區塊被提供個別程式化移位暫存器621、622、623、624、625、626及時脈閘631、632、633、634、635、636,如參照圖6所說明。如所示,該結構進一步包含六個AND閘681、682、683、684、685、686,各具有連接到六個程式化移位暫存器621、622、623、624、625、626之個別者的最後正反器之輸出的一個輸入。六個AND閘681、682、683、684、685、686的各者之第二輸入各連接到個別時脈閘631、632、633、634、635、636的AND閘之輸出。藉由此種方式,可定址時脈賦能機制亦可被使用以選擇性賦能操作單元用於輸出。六個AND閘之輸出各連接到六個輸入OR閘691之個別輸入,其輸出饋送到輸出正反器692之D輸入中。
在操作中,一旦FPGA之操作階段完成並且已產生結果,可能期望以將配置正反器之配置丟棄以確保與原始位元流之一致性,如以上所述。在此係需要處,賦能線被設定成邏輯高,使得經選擇AND閘將各程式化移位暫存器之最後正反器的輸出上之值傳送到OR閘691。哪個程式
化移位暫存器之值將要被輸出之時脈閘經由行解碼器64及列解碼器65(如同與上述用於配置位元流輸入一樣之方式)而被賦能,並且第一時脈到達經選擇程式化移位暫存器。若在經時控程式化移位暫存器中的最後正反器產生邏輯高,則此導致接收該值的個別AND閘用以輸出邏輯高,其被OR閘691傳送到輸出正反器692之D輸入,並且被儲存在那直到輸出正反器於輸入693上接收到時脈,於是該值被輸出在線694上。藉由此方式,如上述透過經由時脈閘賦能輸出,以協調的方式來時控該程式化移位暫存器及輸出正反器,儲存在各配置程式化移位暫存器中的值可被讀出並與原始位元流比較。
據此,該現場可程式閘陣列可進一步適用以實作操作之第三模式,其中在操作之該第二模式中載入該程式化移位暫存器中的實作該邏輯功能之該值被讀回該程式化移位暫存器。
應理解特定實施例可能就一系列用於將FPGA程式化之方法步驟而言而被說明。
雖然前述通常說明專用於路由開關或LUT配置之程式化移位暫存器,應體認如需要則在任何程式化移位暫存器中的任何正反器可耦合到任何FPGA元件。
圖9顯示根據進一步實施例之操作單元的進一步細節。
如圖9所示,提供對應於舉例而言參照前述實施例所描述的操作單元暫存器之操作單元910。此操作單元910
包含兩個LUT 911及912。各LUT 911、912之輸出係連接到個別多工器913、914。此些多工器913、914之輸出係連接到個別正反器915、916。個別多工器913、914與個別正反器915、916一同構成個別雙配置LUT正反器921、922。多工器913之第二輸入係連接到測試值輸入線917。多工器914之第二輸入係連接到LUT正反器916之輸出。該兩個多工器913、914之選擇輸入係連接在一起到測試模式選擇線918。各LUT正反器915、916之輸出供應操作單元910之輸出線。兩個LUT正反器915、916係被共同時脈線919驅動。LUT 911、912之各者具有三個資料輸入,其一同構成操作單元的6個資料輸入920。進一步提供程式化移位暫存器930,其對應於舉例而言參照前述實施例所描述的程式化移位暫存器。該程式化移位暫存器提供用於LUT 911、912與數個實質上參照前述實施例所說明的可程式路由開關(未示出)之配置值。藉由時脈閘940,時脈941被選擇連接到程式化移位暫存器930之時脈線942。時脈閘940被顯示為已賦能輸入,由此邏輯高閉合將程式化移位暫存器之時脈線連接到時脈941的開關用以接收時脈。時脈賦能輸入943亦係連接到程式化輸出AND閘950之一輸入,AND閘950之其他輸入被連接到程式化移位暫存器930中最後正反器的輸出。程式化移位暫存器之第一正反器構成程式化移位暫存器之資料輸入67。將體認到操作單元可包含任何數量的LUT,此些LUT可具有任意數量的輸入,並且無關該輸入之數量,該
LUT可具有複數個輸出,其若干者或全部可能與LUT正反器相關聯。如上述,當多工器913(及914)接收到適當選擇輸入時,兩個LUT正反器915、916(被參照為測試模式)構成LUT移位暫存器。此移位暫存器可包含任何數量的LUT正反器,包括於不同操作單元中的正反器。對照前述實施例所說明的各種配置之任意者皆同等的適用於圖9之佈置。
在操作中,此佈置支援測試FPGA之方法,如參照圖10所述。
圖10顯示載入根據實施例的FPGA之方法。
如在圖10所示,提供一種操作FPGA的方法,包含以下步驟。該方法開始於步驟1001,並繼續到步驟1002,該步驟係指示具有耦合到程式化移位暫存器930之輸出的多工器38以選擇接收實作測試協定之配置值的輸入381。
在步驟1003,指示複數個LUT正反器921、922以進入測試配置,其中各個該LUT正反器接收實作該測試協定之輸入,且其中該LUT正反器被連接作為LUT移位暫存器。
在步驟1004,以屬於實作該測試協定之該配置值的LUT配置值來時控該程式化移位暫存器930以載入其第一組元件;及以屬於實作該測試協定之該配置值的路由開關配置來時控該程式化移位暫存器以載入該移位暫存器之第二組元件。
應瞭解第一組移位暫存器元件與第二組移位暫存器元件可能散置(interspersed)於相同移位暫存器中。將值載入移位暫存器中會涉及將移位暫存器時控用以把相關配置值移動到其所欲最終位置。在一些情況中,可能係必需要使將被載入值的移位暫存器給定址。可能係期望以將值載入到複數個並聯或串聯移位暫存器中,在任意情況中並在繼續到下一步驟之前,該方法可在複數個移位暫存器之間迭代。
在步驟1005,指示該複數個LUT正反器921、922以進入操作配置,其中各個該LUT正反器921、922從複數個LUT之該輸出個別地接收輸入。
在步驟1006,將資料值應用到該複數個LUT(於輸入920上)。
在步驟1007,時控該LUT正反器以取樣各個該LUT之該輸出於個別該正反器之中,該輸出為回應於該測試協定及該資料輸入。
在步驟1008,指示該LUT正反器以進入測試配置,其中該LUT正反器被連接於LUT移位暫存器中,及被連接作為移位暫存器,及
在步驟1009,時控該LUT正反器以讀出該LUT移位暫存器之該值,其包含回應於該測試協定及該資料輸入的該LUT之該輸出,並在步驟1010將其終結。
一旦載入測試值,FPGA之行為將被評估以確認與預期之符合度。此測試程序之細節將取決於FPGA系統本身
性質,並且不在本發明之範圍內。
一般而言,上述測試模式僅係用於工廠設定中,以確保FPGA在製造之後係有完整功能性的。
在若干實施例中,複數個測試協定可被定義,在該情況中前述步驟可迭代複數次,各迭代依序載入不同測試協定。
在操作中,該圖9之佈置進一步支援操作FPGA之方法,如參照圖11所述。
圖11顯示操作根據實施例的FPGA之方法。
如在圖11所示,提供一種操作FPGA的方法,包含以下步驟。該方法開始於步驟1101,並繼續到步驟1102,該步驟係指示具有耦合到程式化正反器之輸出的多工器以選擇接收實作邏輯功能之配置值的輸入。
在步驟1103,指示複數個LUT正反器以進入操作配置,其中各個該LUT正反器從複數個LUT之該輸出個別地接收輸入。
在步驟1104,以屬於實作該邏輯功能之該配置值的LUT配置值時控該程式化移位暫存器以載入其第一組元件;及以屬於實作該邏輯功能之該配置值的路由開關配置時控該程式化移位暫存器以載入該移位暫存器之第二組元件,並在步驟1105將其終結。
根據圖11之實施例的發展,該方法可包含以下額外步驟:賦能來自複數個程式化移位暫存器的第一程式化移位暫存器之輸出;參照該第一程式化移位暫存器來實作圖
11之步驟;及接著重複此些步驟用於該複數個移位暫存器之各者。
在操作中,該圖9之佈置進一步支援驗證FPGA之方法。此方法可包含以下步驟:以實作邏輯功能之該LUT配置值時控該第一程式化移位暫存器以讀出其第一組元件;及以實作邏輯功能之路由開關配置時控該第一程式化移位暫存器以讀出該移位暫存器之第二組元件。
根據本實施例的發展,該方法可包含以下額外步驟:賦能來自複數個程式化移位暫存器的第一程式化移位暫存器之輸出;參照該第一程式化移位暫存器來實作上述內容;及接著重複此些步驟用於該複數個移位暫存器之各者。
圖12顯示驗證根據進一步實施例的FPGA之方法。
圖12之實施例係前述實施例之發展。
如在圖12所示,提供一種操作FPGA的方法,包含以下步驟。該方法開始於步驟1201,並繼續到步驟1202,該步驟包括:以實作邏輯功能之該LUT配置值時控該第一程式化移位暫存器以讀出其第一組元件;及以實作邏輯功能之路由開關配置時控該第一程式化移位暫存器以讀出該移位暫存器之第二組元件。該方法接著繼續到步驟1203,該步驟包括:將實作邏輯功能之該LUT配置及實作邏輯功能作為該移位暫存器之讀出之路由開關配置與實作邏輯功能之LUT配置及實作邏輯功能作為原始讀入該移位暫存器中之路由開關配置作比較,具例而言,根據
參照圖11所述之方法。該方法接著在步驟1204被終結。
在一般情況中,可以預期載入到移位暫存器中的位元流應該與自移位暫存器讀出的位元流相似。在其中兩者被發現係相似之情況中,該FPGA的操作狀態及對應結果可被視為被驗證過的。在其中載入到移位暫存器中的位元流與自移位暫存器讀出的位元流不相似之情況中,結果之若干者或全部必需被考慮為不健全的。
應體認的係參照圖10、11及12所述之步驟的不同組合可構成本發明之實施例。
在許多情況中,該方法步驟之若干者或全部可藉由使用電腦程式化被實作,與FPGA界接並提供適當位元流,如上文關於在操作之測試、操作及驗證模式期間所述。在若干情況中,此功能性之若干者或全部可被實作在與FPGA相同的晶片上,或被FPGA所屬之較大系統的部分執行。在其他情況中,此功能性可被測試或驗證系統提供,為了在製造之後的測試之目的或產生可疑結果或暴露到錯誤誘發條件之後的驗證之目的,該測試或驗證系統係與FPGA暫時性耦合。
在若干實施例中,本文所述方法與處理可被計算裝置整體或部分地實作。此些方法與處理可藉由使用電腦應用程式或服務、應用程式化介面(API)、程式館、及/或其他電腦程式產品,或此類實體之任意組合來實作。
圖13顯示適用於本發明之實施例實作的一般計算系統。
如圖13所示,系統包括邏輯裝置1301及儲存裝置1302。該系統可選地包括顯示器次系統1311;輸入次系統1312、1313、1315;通訊次系統1320;及/或其他未示出組件。
邏輯裝置1301包括一或多配置以執行指令的實體裝置。例如,邏輯裝置1301可被配置以執行係一或多應用、服務、程式、常式、程式館、物件、組件、資料結構、或其他邏輯構造之部分的指令。此類指令可被實作以執行任務(task)、實作資料類型、轉換一或多組件之狀態、達到技術效果、或否則得到所欲結果。
邏輯裝置1301可包括一或多配置以執行軟體指令的處理器。替代地或額外地,邏輯裝置可包括一或多配置以執行硬體或韌體指令的硬體或韌體邏輯裝置。邏輯裝置之處理器可能係單核心或多核心,並且在其上執行之指令可被配置用於循序、並行、及/或分散處理。邏輯裝置1301之獨立組件可選地被分散於二或更多獨立裝置內,其可被遠端定址及/或配置用於經協調處理。邏輯裝置1301之態樣可被虛擬化並被可遠端存取、網路連結並配置於雲端計算配置中的計算裝置執行。
儲存裝置1302包括一或多配置以保持指令的實體裝置,該指令可被邏輯裝置執行用以實作本文所述之方法與處理。當實作此類方法與處理時,儲存1302裝置之狀態可被轉換一例如用以保持不同資料。
儲存裝置1302可包括可卸除及/或內建式裝置。儲存
裝置1302可包含一或多類型的儲存裝置,包括光學記憶體(例如,CD、DVD、HD-DVD、藍光光碟等)、半導體記憶體(如,RAM、EPROM、EEPROM等)、及/或磁性記憶體(如,硬碟驅動器、軟碟驅動器、磁帶驅動器、MRAM等),等。儲存裝置可包括揮發性、非揮發性、動態、靜態、讀取/寫入、唯讀、隨機存取、依序存取、可定址位置、可定址檔案、及/或可定址內容裝置。
在特定佈置中,系統可包含適用以支援邏輯裝置1301及進一步系統組件之間的通訊之介面1303。舉例而言,額外系統組件可包含可卸除及/或內建式擴充儲存裝置。擴充儲存裝置可包含一或多類型的儲存裝置,包括光學記憶體1332(例如,CD、DVD、HD-DVD、藍光光碟等)、半導體記憶體1333(如,RAM、EPROM、EEPROM、快閃記憶體等)、及/或磁性記憶體1331(如,硬碟驅動器、軟碟驅動器、磁帶驅動器、MRAM等),等。此類擴充儲存裝置可包括揮發性、非揮發性、動態、靜態、讀取/寫入、唯讀、隨機存取、依序存取、可定址位置、可定址檔案、及/或可定址內容裝置。
將理解儲存裝置包括一或多實體裝置,並排除傳播訊號等。然而相對於被儲存在儲存裝置上,本文所述指令之態樣替代地可被通訊媒介(例如,電磁訊號、光學訊號等)傳播。
邏輯裝置1301及儲存裝置1302之態樣可一起被整合於一或多硬體邏輯組件中。舉例而言,此類硬體邏輯組件
可包括現場可程式閘陣列(FPGA)、程式及應用特定積體電路(PASIC/ASIC)、程式及應用特定標準產品(PSSP/ASSP)、系統單晶片(SOC)、及複雜可程式邏輯裝置(CPLD)。
術語「程式」可被使用以描述實作用以執行特定功能之計算系統之態樣。在一些情況中,可經由執行由儲存裝置保持的機器可讀取指令之邏輯裝置將程式實體化(instantiated)。將瞭解可從相同應用、服務、碼塊、物件、程式館、常式、API、功能等將不同模組實體化。相似地,相同程式可被不同應用、服務、碼塊、物件、程式館、常式、API、功能等實體化。術語「程式」可涵蓋獨立或群組地可執行檔案、資料檔案、程式庫、驅動器、劇本、資料庫記錄等。
特別地,圖13之系統可被使用以實作本發明之實施例。
舉例而言,實作參照圖10、11或12所說明步驟的程式可被儲存在儲存裝置1302中並被邏輯裝置1301執行。載入到移位暫存器或暫存器中的位元流可被邏輯裝置1301產生及/或儲存在儲存裝置1302或擴充儲存裝置1332、1333或1331中。經由通訊介面1320藉由邏輯裝置1301之動作,位元流可被載入到移位暫存器或暫存器中。從移位暫存器或暫存器讀取的位元流可經由通訊介面1320藉由邏輯裝置1301之動作而被擷取,及/或儲存在儲存裝置1302或擴充儲存裝置1332、1333或1331中。邏
輯裝置1301可擷取載入到移位暫存器或暫存器的位元流,可擷取在驗證模式中自移位暫存器或暫存器讀取的位元流,並執行比較以判定結果之有效性。
據此,本發明可體現於電腦程式之型態中。
將被體認的係如本文所使用之「服務」係橫跨多個用戶通信期可執行之應用程式。服務對一或多系統組件、程式、及/或其他服務係可用的。在若干實作中,服務可運行在一或多伺服器計算裝置上。
當被包括時,顯示器次系統1311可被使用以呈現由儲存裝置所保持之資料的視覺表現。此視覺表現可能係圖型使用者介面(GUI)之型態。如本文所述的方法及處理改變由儲存裝置1302保持之資料,並因此轉換儲存裝置1302之狀態,顯示器次系統1311之狀態可類似地被轉換以視覺上表示在基本資料(underlying data)中的改變。顯示器次系統1311可包括運用視覺上任何類型之技術的一或多顯示器裝置。此類顯示器裝置可與邏輯裝置及/或儲存裝置結合於共享外殼中,或者此類顯示器裝置可係週邊顯示器裝置。
當被包括時,輸入次系統可包含一或多使用者輸入裝置或與其界接,該使用者輸入裝置諸如係鍵盤1312、滑鼠1313、觸控螢幕1311、或遊戲控制器(未示出)。在若干實施例中,輸入次系統可包含所選自然使用者輸入(NUI)組件或與其界接。此類組件可是整合式或週邊的,並且輸入動作之引入及/或處理可能在板上或板外處理。
例示NUI組件可包括用於語音及/或聲音辨認之麥克風;用於機器視覺及/或姿勢辨認之紅外線、顏色、立體、及/或深度照相機;用於動態偵測及/或意圖辨認之頭部追蹤器、眼部追蹤器、加速計、及/或陀螺儀;以及用於評估腦部活動之電場感測組件。
當被包括時,通訊次系統1320可被配置以將計算系統與一或多其他計算裝置通訊地耦合。舉例而言,通訊模組可將計算裝置通訊地耦合到遠端服務,舉例而言,經由任何尺寸之網路(例如,個人區域網路、區域網路、廣域網路、或網際網路),該服務主控於遠端伺服器1376上。通訊次系統可包括與一或多不同通訊協定相容之有線及/或無線通訊裝置。作為非限定性實例,通訊次系統可被配置用於經由無線電話網路1374(或有線或無線區域或廣域網路)通訊。在若干實施例中,通訊次系統可允許計算系統以經由諸如網際網路1375之網路來發送及/或接收訊息到及/或自其他裝置。通訊次系統可額外地支援具有無源裝置的短程誘導通訊1321(NFC、RFID等)。
根據特定實施例,藉由使用佈置於移位暫存器中的數個正反器,可提供用於查找表(LUT)之配置值及FPGA中的可程式路由開關。此移位暫存器在工廠測試模式時可接收測試值,且在操作模式時可接收操作配置值(實作客戶對FPGA所需之任何功能性)。在移位暫存器之一端提供位元流,並被時控直到最後正反器接收到其值。亦可能在移位暫存器之另一端時控出值以將其與初始位元流比
較,以為了識別儲存值(例如,由於輻射暴露)之訛誤。提出一時脈閘控架構用於載入資料至或讀取資料自特定選擇的移位暫存器。
應瞭解本文所述該等配置及/或方法在本質上係例示性的,並且此些特定實施例或實例目的不在於被限制性地考慮,這是因為數種變異係可行的。本文所述之特定常式或方法可代表任意數量處理策略之一或多者。如此,所說明及/或描述之各種動作可於所說明及/或描述之序列(亦可在其它序列、並行、或被省略)中被執行。相似地,上述處理之順序可被改變。
本揭示之標的包括各種處理、系統及配置之所有新穎及非明顯組合和次組合,及包括本文所揭示之其他特徵、功能、動作、及/或性質,以及其任意及全部等效物。
21:第一查找表
22:第二查找表
26:可程式開關單元
37:程式化移位暫存器
38:多工器
212:二輸入多工器
214:二輸入多工器
216:二輸入多工器
372:時脈線
381:輸入
382:輸入
2501:資料通道
2502:資料通道
2503:資料通道
3701:正反器
3702:正反器
3703:正反器
3704:正反器
3705:正反器
3706:正反器
3707:D正反器
3708:D正反器
3709:D正反器
3710:D正反器
3711:D正反器
3712:D正反器
3713:D正反器
3714:D正反器
3715:D正反器
Claims (8)
- 一種操作現場可程式閘陣列(FPGA)的方法,包含以下步驟:指示具有耦合到程式化移位暫存器之輸出的多工器以選擇接收實作測試協定之配置值的輸入,指示複數個查找表(LUT)正反器以進入測試配置,其中各個該LUT正反器接收實作該測試協定之輸入,且其中該LUT正反器被連接作為移位暫存器,以屬於實作該測試協定之該配置值的LUT配置值時控該程式化移位暫存器以載入其第一組元件;以屬於實作該測試協定之該配置值的路由開關配置時控該程式化移位暫存器以載入該移位暫存器之第二組元件,指示該複數個LUT正反器以進入操作配置,其中各個該LUT正反器從複數個LUT之該輸出個別地接收輸入,將資料輸入應用到該複數個LUT,時控該LUT正反器以取樣各個該LUT之該輸出於個別該正反器之中,該輸出為回應於該測試協定及該資料輸入,指示該LUT正反器以進入到測試配置中,其中該LUT正反器被連接於LUT移位暫存器中,及被連接作為移位暫存器,及時控該LUT正反器以讀出該LUT移位暫存器之該值,其包含回應於該測試協定及該資料輸入的該LUT之該輸 出。
- 一種操作現場可程式閘陣列(FPGA)的方法,包含以下步驟:指示具有耦合到程式化正反器之輸出的多工器以選擇接收實作邏輯功能之配置值的輸入,指示該複數個查找表(LUT)正反器以進入操作配置,其中各個該LUT正反器從複數個LUT之該輸出個別地接收輸入,以屬於實作該邏輯功能之該配置值的LUT配置值時控該程式化移位暫存器以載入其第一組元件;以屬於實作該邏輯功能之該配置值的路由開關配置時控該程式化移位暫存器以載入該移位暫存器之第二組元件。
- 如請求項2的方法,包含以下進一步步驟:賦能第一程式化移位暫存器之該輸出作為該程式化移位暫存器,及重複該賦能、指示、及時控之步驟進一步用於該程式化移位暫存器。
- 一種操作現場可程式閘陣列(FPGA)的方法,包含以下步驟:以實作邏輯功能之查找表(LUT)配置值時控程式化移位暫存器以讀出其第一組元件;及以實作邏輯功能之路由開關配置時控該程式化移位暫存器以讀出該移位暫存器之第二組元件。
- 如請求項4的方法,包含以下進一步步驟:賦能第一程式化移位暫存器之該輸出作為該程式化移位暫存器,及重複該賦能及時控之步驟進一步用於該程式化移位暫存器。
- 如請求項5的方法,包含以下進一步步驟:將實作邏輯功能之該LUT配置及實作邏輯功能作為該程式化移位暫存器之讀出之路由開關配置與實作邏輯功能之LUT配置及實作邏輯功能作為原始讀入該移位暫存器中之路由開關配置作比較。
- 一種適用於實作如請求項2至6之任一項的步驟之電腦程式。
- 一種結合請求項7的電腦程式之電腦可讀取媒體。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP15306641.0A EP3157172B1 (en) | 2015-10-15 | 2015-10-15 | System and method for testing and configuration of an fpga |
| EP15306641.0 | 2015-10-15 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202040941A TW202040941A (zh) | 2020-11-01 |
| TWI746021B true TWI746021B (zh) | 2021-11-11 |
Family
ID=54360380
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109120881A TWI746021B (zh) | 2015-10-15 | 2016-10-13 | 測試及配置fpga的系統與方法 |
| TW105133080A TWI717399B (zh) | 2015-10-15 | 2016-10-13 | 測試及配置fpga的系統與方法 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW105133080A TWI717399B (zh) | 2015-10-15 | 2016-10-13 | 測試及配置fpga的系統與方法 |
Country Status (11)
| Country | Link |
|---|---|
| US (2) | US10295595B2 (zh) |
| EP (2) | EP3157172B1 (zh) |
| JP (2) | JP2018537871A (zh) |
| KR (1) | KR102564093B1 (zh) |
| CN (3) | CN108028654B (zh) |
| IL (1) | IL253219B (zh) |
| MY (1) | MY184901A (zh) |
| RU (1) | RU2733092C2 (zh) |
| SG (1) | SG11201705319YA (zh) |
| TW (2) | TWI746021B (zh) |
| WO (1) | WO2017063957A1 (zh) |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11625523B2 (en) | 2016-12-14 | 2023-04-11 | iCometrue Company Ltd. | Logic drive based on standard commodity FPGA IC chips |
| TW202537391A (zh) | 2016-12-14 | 2025-09-16 | 成真股份有限公司 | 標準大宗商品化現場可編程邏輯閘陣列(fpga)積體電路晶片組成之邏輯驅動器 |
| US10963001B1 (en) | 2017-04-18 | 2021-03-30 | Amazon Technologies, Inc. | Client configurable hardware logic and corresponding hardware clock metadata |
| US10447274B2 (en) | 2017-07-11 | 2019-10-15 | iCometrue Company Ltd. | Logic drive based on standard commodity FPGA IC chips using non-volatile memory cells |
| US10957679B2 (en) | 2017-08-08 | 2021-03-23 | iCometrue Company Ltd. | Logic drive based on standardized commodity programmable logic semiconductor IC chips |
| US10630296B2 (en) | 2017-09-12 | 2020-04-21 | iCometrue Company Ltd. | Logic drive with brain-like elasticity and integrality based on standard commodity FPGA IC chips using non-volatile memory cells |
| WO2019129389A1 (en) * | 2017-12-26 | 2019-07-04 | Silicon Mobility Sas | Flexible logic unit adapted for real-time task switching |
| US10608642B2 (en) | 2018-02-01 | 2020-03-31 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips comprising non-volatile radom access memory cells |
| US10623000B2 (en) | 2018-02-14 | 2020-04-14 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips |
| US10707873B2 (en) * | 2018-03-21 | 2020-07-07 | University Of Southern California | Superconducting magnetic field programmable gate array |
| US10608638B2 (en) | 2018-05-24 | 2020-03-31 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips |
| US12476637B2 (en) | 2018-05-24 | 2025-11-18 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips |
| US10892011B2 (en) | 2018-09-11 | 2021-01-12 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells |
| US11309334B2 (en) | 2018-09-11 | 2022-04-19 | iCometrue Company Ltd. | Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells |
| US10937762B2 (en) | 2018-10-04 | 2021-03-02 | iCometrue Company Ltd. | Logic drive based on multichip package using interconnection bridge |
| US11616046B2 (en) | 2018-11-02 | 2023-03-28 | iCometrue Company Ltd. | Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip |
| US11211334B2 (en) | 2018-11-18 | 2021-12-28 | iCometrue Company Ltd. | Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip |
| US10831507B2 (en) | 2018-11-21 | 2020-11-10 | SambaNova Systems, Inc. | Configuration load of a reconfigurable data processor |
| US11188497B2 (en) | 2018-11-21 | 2021-11-30 | SambaNova Systems, Inc. | Configuration unload of a reconfigurable data processor |
| CN109445876B (zh) * | 2018-12-12 | 2023-04-11 | 北京时代奥视科技有限公司 | Lut数据加载的方法及监视器 |
| EP3667529B1 (de) | 2018-12-14 | 2024-02-28 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration |
| US10698853B1 (en) | 2019-01-03 | 2020-06-30 | SambaNova Systems, Inc. | Virtualization of a reconfigurable data processor |
| US10768899B2 (en) | 2019-01-29 | 2020-09-08 | SambaNova Systems, Inc. | Matrix normal/transpose read and a reconfigurable data processor including same |
| CN109857024B (zh) * | 2019-02-01 | 2021-11-12 | 京微齐力(北京)科技有限公司 | 人工智能模块的单元性能测试方法和系统芯片 |
| US11386038B2 (en) | 2019-05-09 | 2022-07-12 | SambaNova Systems, Inc. | Control flow barrier and reconfigurable data processor |
| US10985154B2 (en) | 2019-07-02 | 2021-04-20 | iCometrue Company Ltd. | Logic drive based on multichip package comprising standard commodity FPGA IC chip with cryptography circuits |
| US11227838B2 (en) | 2019-07-02 | 2022-01-18 | iCometrue Company Ltd. | Logic drive based on multichip package comprising standard commodity FPGA IC chip with cooperating or supporting circuits |
| US11055141B2 (en) | 2019-07-08 | 2021-07-06 | SambaNova Systems, Inc. | Quiesce reconfigurable data processor |
| US11887930B2 (en) | 2019-08-05 | 2024-01-30 | iCometrue Company Ltd. | Vertical interconnect elevator based on through silicon vias |
| JP7037528B2 (ja) * | 2019-09-12 | 2022-03-16 | 株式会社東芝 | 集積回路およびそのテスト方法ならびに電子機器 |
| US11637056B2 (en) | 2019-09-20 | 2023-04-25 | iCometrue Company Ltd. | 3D chip package based on through-silicon-via interconnection elevator |
| CN111175637B (zh) * | 2020-01-09 | 2022-02-15 | 深圳市正宇兴电子有限公司 | 一种基于功能测试的光学soc芯片测试方法及系统 |
| US11037069B1 (en) * | 2020-01-17 | 2021-06-15 | Tegze P. Haraszti | Method for creating gates and circuits for greatly improved computing apparatus by using symbol transformer |
| US11600526B2 (en) | 2020-01-22 | 2023-03-07 | iCometrue Company Ltd. | Chip package based on through-silicon-via connector and silicon interconnection bridge |
| TWI734420B (zh) * | 2020-03-18 | 2021-07-21 | 國立成功大學 | 具掃描鍊架構與邏輯單元矩陣之測試晶片架構及其診斷方法 |
| US11809908B2 (en) | 2020-07-07 | 2023-11-07 | SambaNova Systems, Inc. | Runtime virtualization of reconfigurable data flow resources |
| US11782729B2 (en) | 2020-08-18 | 2023-10-10 | SambaNova Systems, Inc. | Runtime patching of configuration files |
| CN112147492B (zh) * | 2020-10-13 | 2022-03-22 | 无锡中微亿芯有限公司 | 一种查找表的新型可测试性结构 |
| CN114442736B (zh) * | 2020-11-02 | 2023-09-05 | 芯启源(上海)半导体科技有限公司 | 基于动态配置接口的时钟配置器、fpga系统 |
| CN112580069B (zh) * | 2020-12-05 | 2023-04-07 | 西安翔腾微电子科技有限公司 | 一种主机在线加载配置表权限获取的方法 |
| TW202240808A (zh) | 2021-01-08 | 2022-10-16 | 成真股份有限公司 | 使用於積體電路晶片封裝結構中的微型熱導管 |
| CN112861455B (zh) * | 2021-03-12 | 2022-05-17 | 上海先基半导体科技有限公司 | Fpga建模验证系统及方法 |
| CN113098597A (zh) * | 2021-03-31 | 2021-07-09 | 北京百度网讯科技有限公司 | 光保护装置以及光功率检测的方法 |
| US12176278B2 (en) | 2021-05-30 | 2024-12-24 | iCometrue Company Ltd. | 3D chip package based on vertical-through-via connector |
| US11556494B1 (en) | 2021-07-16 | 2023-01-17 | SambaNova Systems, Inc. | Defect repair for a reconfigurable data processor for homogeneous subarrays |
| US11327771B1 (en) | 2021-07-16 | 2022-05-10 | SambaNova Systems, Inc. | Defect repair circuits for a reconfigurable data processor |
| US11409540B1 (en) | 2021-07-16 | 2022-08-09 | SambaNova Systems, Inc. | Routing circuits for defect repair for a reconfigurable data processor |
| CN113505096B (zh) * | 2021-08-05 | 2022-10-18 | 北京极光星通科技有限公司 | 星载激光通信终端及其功耗控制方法 |
| US11736107B2 (en) * | 2021-08-19 | 2023-08-22 | Wuxi Esiontech Co., Ltd. | Field-programmable gate array (FPGA) for using configuration shift chain to implement multi-bitstream function |
| US20230187365A1 (en) | 2021-09-24 | 2023-06-15 | iCometrue Company Ltd. | Field Programmable Multichip Package Based on Field-Programmable-Gate-Array (FPGA) Integrated-Circuit (IC) Chip |
| US12268012B2 (en) | 2021-09-24 | 2025-04-01 | iCometrue Company Ltd. | Multi-output look-up table (LUT) for use in coarse-grained field-programmable-gate-array (FPGA) integrated-circuit (IC) chip |
| US11487694B1 (en) | 2021-12-17 | 2022-11-01 | SambaNova Systems, Inc. | Hot-plug events in a pool of reconfigurable data flow resources |
| CN116450425B (zh) * | 2022-11-24 | 2025-04-15 | 北京时代民芯科技有限公司 | 一种抗辐照FPGA内嵌PCIExpress IP核的测试电路和方法 |
| CN120405391B (zh) * | 2025-07-07 | 2025-10-03 | 珠海硅芯科技有限公司 | 基于eFPGA电路的集成电路的测试方法及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6118298A (en) * | 1996-11-22 | 2000-09-12 | Xilinx, Inc. | Structure for optionally cascading shift registers |
| US6384627B1 (en) * | 2001-02-16 | 2002-05-07 | Xilinx, Inc. | Logic block used as dynamically configurable logic function |
| US7804719B1 (en) * | 2005-06-14 | 2010-09-28 | Xilinx, Inc. | Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode |
| US7809521B1 (en) * | 2008-02-29 | 2010-10-05 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Precise delay measurement through combinatorial logic |
| US8890570B2 (en) * | 2011-12-12 | 2014-11-18 | Electronics And Telecommunications Research Institute | Switch block circuit in field programmable gate array |
Family Cites Families (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5365165A (en) | 1986-09-19 | 1994-11-15 | Actel Corporation | Testability architecture and techniques for programmable interconnect architecture |
| SU1578715A1 (ru) * | 1988-01-07 | 1990-07-15 | Предприятие П/Я Р-6120 | Тестопригодное цифровое устройство |
| US5027355A (en) | 1989-04-14 | 1991-06-25 | Control Data Corporation | Logic circuit and design method for improved testability |
| US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
| JPH03139863A (ja) * | 1989-10-25 | 1991-06-14 | Hitachi Ltd | 半導体集積回路 |
| JP2564044B2 (ja) * | 1991-02-27 | 1996-12-18 | 株式会社東芝 | プログラマブル論理回路 |
| JPH06148274A (ja) * | 1992-11-02 | 1994-05-27 | Kawasaki Steel Corp | 集積回路 |
| KR0148141B1 (ko) * | 1993-07-31 | 1998-09-15 | 김광호 | 블랭킹레벨조정방법 및 그 장치 |
| US5550843A (en) | 1994-04-01 | 1996-08-27 | Xilinx, Inc. | Programmable scan chain testing structure and method |
| US5654650A (en) * | 1995-12-11 | 1997-08-05 | Hewlett-Packard Company | High throughput FPGA control interface |
| US5867507A (en) | 1995-12-12 | 1999-02-02 | International Business Machines Corporation | Testable programmable gate array and associated LSSD/deterministic test methodology |
| US5760602A (en) * | 1996-01-17 | 1998-06-02 | Hewlett-Packard Company | Time multiplexing a plurality of configuration settings of a programmable switch element in a FPGA |
| US6011406A (en) * | 1997-10-28 | 2000-01-04 | Altera Corporation | Ultra-fast configuration mode for a programmable logic device |
| US6347387B1 (en) * | 1998-10-09 | 2002-02-12 | Agere Systems Guardian Corp. | Test circuits for testing inter-device FPGA links including a shift register configured from FPGA elements to form a shift block through said inter-device FPGA links |
| US6215327B1 (en) * | 1999-09-01 | 2001-04-10 | The United States Of America As Represented By The Secretary Of The Air Force | Molecular field programmable gate array |
| JP2001298357A (ja) * | 2000-04-13 | 2001-10-26 | Seiko Epson Corp | フィールド・プログラマブル・ゲートアレイ |
| US6470485B1 (en) * | 2000-10-18 | 2002-10-22 | Lattice Semiconductor Corporation | Scalable and parallel processing methods and structures for testing configurable interconnect network in FPGA device |
| JP3938308B2 (ja) * | 2001-12-28 | 2007-06-27 | 富士通株式会社 | プログラマブル論理デバイス |
| US7028281B1 (en) * | 2002-07-12 | 2006-04-11 | Lattice Semiconductor Corporation | FPGA with register-intensive architecture |
| US7111214B1 (en) * | 2002-10-09 | 2006-09-19 | Xilinx, Inc. | Circuits and methods for testing programmable logic devices using lookup tables and carry chains |
| DE102005023118B3 (de) * | 2005-05-19 | 2006-12-21 | Infineon Technologies Ag | Schaltungsanordnung zum Zuführen von Konfigurationsdaten in FPGA-Einrichtungen |
| US7463056B1 (en) | 2005-12-12 | 2008-12-09 | Xilinx, Inc. | Writeable shift register lookup table in FPGA with SRAM memory cells in lookup table reprogrammed by writing after initial configuration |
| US8195103B2 (en) * | 2006-02-15 | 2012-06-05 | Texas Instruments Incorporated | Linearization of a transmit amplifier |
| JP5035239B2 (ja) * | 2006-03-15 | 2012-09-26 | 日本電気株式会社 | 再構成可能デバイスのテストシステム及びその方法並びにそれに用いる再構成可能デバイス |
| US7362135B1 (en) * | 2006-10-04 | 2008-04-22 | Hyun-Taek Chang | Apparatus and method for clock skew adjustment in a programmable logic fabric |
| US8091001B2 (en) * | 2006-11-30 | 2012-01-03 | Quicklogic Corporation | FPGA programming structure for ATPG test coverage |
| US7925940B2 (en) * | 2007-10-17 | 2011-04-12 | Synopsys, Inc. | Enhancing speed of simulation of an IC design while testing scan circuitry |
| US20100124272A1 (en) * | 2008-11-19 | 2010-05-20 | Gene Fein | Coded pulse data transmission using a look-up table |
| CN101510775B (zh) * | 2009-03-20 | 2012-01-18 | 复旦大学 | 可进化数字电路及其进化方法 |
| CN101923440B (zh) * | 2009-06-15 | 2011-12-14 | 杭州中科微电子有限公司 | 一种高速异步数据采集系统 |
| US7859292B1 (en) * | 2009-07-14 | 2010-12-28 | United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Methods and circuitry for reconfigurable SEU/SET tolerance |
| US8040152B1 (en) * | 2010-02-02 | 2011-10-18 | Lattice Semiconductor Corporation | Separate configuration of I/O cells and logic core in a programmable logic device |
| IT1398937B1 (it) * | 2010-02-17 | 2013-03-28 | St Microelectronics Srl | Metodo per eseguire un testing elettrico di dispositivi elettronici |
| KR101681736B1 (ko) * | 2010-05-14 | 2016-12-02 | 삼성전자주식회사 | 입출력 래퍼들을 갖는 반도체 장치 |
| FR2972566B1 (fr) | 2011-03-11 | 2013-03-15 | Sas Adicsys Design | Système mono-puce comprenant un coeur programmable synthetisable et un procédé de fabrication d'un tel système |
| DE112012003335T5 (de) * | 2011-08-12 | 2014-04-30 | Denso Corp. | Integrierte Schaltung |
| US9121892B2 (en) * | 2012-08-13 | 2015-09-01 | Analog Devices Global | Semiconductor circuit and methodology for in-system scan testing |
| CN103914580B (zh) * | 2012-12-31 | 2017-07-11 | 复旦大学 | 一种用于fpga电路位流仿真的方法 |
| CN103632726B (zh) * | 2013-01-31 | 2017-02-08 | 中国科学院电子学研究所 | 一种基于可编程基本逻辑单元的数据移位寄存电路 |
| CN103236836B (zh) * | 2013-04-10 | 2016-03-16 | 中国科学院微电子研究所 | 具有mux模式的lut结构及与其相配套的eda优化方法 |
| JP6426437B2 (ja) * | 2013-11-22 | 2018-11-21 | 株式会社半導体エネルギー研究所 | 半導体装置 |
| JP6541376B2 (ja) * | 2014-03-13 | 2019-07-10 | 株式会社半導体エネルギー研究所 | プログラマブルロジックデバイスの動作方法 |
| US9576625B1 (en) * | 2015-10-08 | 2017-02-21 | Altera Corporation | Register initialization using multi-pass configuration |
-
2015
- 2015-10-15 EP EP15306641.0A patent/EP3157172B1/en active Active
- 2015-10-15 EP EP18192294.9A patent/EP3435545B1/en active Active
-
2016
- 2016-10-07 JP JP2017536024A patent/JP2018537871A/ja active Pending
- 2016-10-07 MY MYPI2017001004A patent/MY184901A/en unknown
- 2016-10-07 CN CN201680007693.4A patent/CN108028654B/zh active Active
- 2016-10-07 WO PCT/EP2016/074076 patent/WO2017063957A1/en not_active Ceased
- 2016-10-07 RU RU2017129272A patent/RU2733092C2/ru active
- 2016-10-07 CN CN202210218457.4A patent/CN114553215B/zh active Active
- 2016-10-07 SG SG11201705319YA patent/SG11201705319YA/en unknown
- 2016-10-07 US US15/540,997 patent/US10295595B2/en active Active
- 2016-10-07 CN CN202211257072.5A patent/CN115542139A/zh active Pending
- 2016-10-07 KR KR1020177022639A patent/KR102564093B1/ko active Active
- 2016-10-13 TW TW109120881A patent/TWI746021B/zh active
- 2016-10-13 TW TW105133080A patent/TWI717399B/zh active
-
2017
- 2017-06-28 IL IL253219A patent/IL253219B/en unknown
-
2019
- 2019-04-04 US US16/375,339 patent/US10746796B2/en active Active
-
2021
- 2021-04-30 JP JP2021077157A patent/JP7286706B2/ja active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6118298A (en) * | 1996-11-22 | 2000-09-12 | Xilinx, Inc. | Structure for optionally cascading shift registers |
| US6384627B1 (en) * | 2001-02-16 | 2002-05-07 | Xilinx, Inc. | Logic block used as dynamically configurable logic function |
| US7804719B1 (en) * | 2005-06-14 | 2010-09-28 | Xilinx, Inc. | Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode |
| US7809521B1 (en) * | 2008-02-29 | 2010-10-05 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Precise delay measurement through combinatorial logic |
| US8890570B2 (en) * | 2011-12-12 | 2014-11-18 | Electronics And Telecommunications Research Institute | Switch block circuit in field programmable gate array |
Also Published As
| Publication number | Publication date |
|---|---|
| US20190227120A1 (en) | 2019-07-25 |
| RU2733092C2 (ru) | 2020-09-29 |
| RU2017129272A3 (zh) | 2020-04-21 |
| TW202040941A (zh) | 2020-11-01 |
| CN115542139A (zh) | 2022-12-30 |
| EP3157172A1 (en) | 2017-04-19 |
| RU2017129272A (ru) | 2019-02-18 |
| TW201729542A (zh) | 2017-08-16 |
| US10746796B2 (en) | 2020-08-18 |
| EP3435545C0 (en) | 2023-06-07 |
| MY184901A (en) | 2021-04-30 |
| JP2021145339A (ja) | 2021-09-24 |
| IL253219B (en) | 2022-02-01 |
| US10295595B2 (en) | 2019-05-21 |
| CN114553215A (zh) | 2022-05-27 |
| CN108028654B (zh) | 2023-04-04 |
| US20180275193A1 (en) | 2018-09-27 |
| CN114553215B (zh) | 2026-03-17 |
| SG11201705319YA (en) | 2017-07-28 |
| EP3435545A1 (en) | 2019-01-30 |
| JP2018537871A (ja) | 2018-12-20 |
| CN108028654A (zh) | 2018-05-11 |
| TWI717399B (zh) | 2021-02-01 |
| CA2973530A1 (en) | 2017-04-20 |
| EP3435545B1 (en) | 2023-06-07 |
| EP3157172B1 (en) | 2018-11-28 |
| JP7286706B2 (ja) | 2023-06-05 |
| WO2017063957A1 (en) | 2017-04-20 |
| KR20180068895A (ko) | 2018-06-22 |
| KR102564093B1 (ko) | 2023-08-04 |
| IL253219A0 (en) | 2017-08-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI746021B (zh) | 測試及配置fpga的系統與方法 | |
| CN105629148B (zh) | 测试电路中的多个模块的测试方法和测试设备 | |
| EP3355196A1 (en) | Fpga and method of operation | |
| JP5818762B2 (ja) | プログラマブルロジックデバイス及びその検証方法 | |
| US8514643B2 (en) | Test mode initialization device and method | |
| US9621159B2 (en) | Reconfigurable semiconductor integrated circuit and electronic device | |
| CA2973530C (en) | System and method for testing and configuration of an fpga | |
| HK40079336A (zh) | 用於fpga的测试和配置的系统和方法 | |
| HK40003241A (zh) | 用於测试并配置fpga的系统以及方法 | |
| HK1236287A (zh) | 用於测试并配置fpga的系统以及方法 | |
| HK1236287A1 (zh) | 用於測試並配置fpga的系統以及方法 | |
| CN102087548B (zh) | 一种键盘模拟接口电路 | |
| US8228750B2 (en) | Low cost comparator design for memory BIST | |
| HK1236287B (zh) | 用於测试并配置fpga的系统以及方法 | |
| US9627090B1 (en) | RAM at speed flexible timing and setup control | |
| EP3376669A1 (en) | Fpga and method of fpga programming | |
| CN119493765A (zh) | 逻辑器件以及用于逻辑器件的定义和配置的系统和方法 | |
| US7679400B2 (en) | System and method for local generation of programming data in a programmable device | |
| JP2008176485A (ja) | 再構成可能な論理デバイスおよびそのデバッグシステム | |
| JP2006268651A (ja) | エミュレーション装置 |