TWI826040B - 量子電路設計方法及裝置 - Google Patents
量子電路設計方法及裝置 Download PDFInfo
- Publication number
- TWI826040B TWI826040B TW111138615A TW111138615A TWI826040B TW I826040 B TWI826040 B TW I826040B TW 111138615 A TW111138615 A TW 111138615A TW 111138615 A TW111138615 A TW 111138615A TW I826040 B TWI826040 B TW I826040B
- Authority
- TW
- Taiwan
- Prior art keywords
- quantum
- polynomial
- input
- output
- circuit
- Prior art date
Links
- 238000013461 design Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 21
- 239000002096 quantum dot Substances 0.000 claims description 57
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000005259 measurement Methods 0.000 claims description 6
- 241000630665 Hada Species 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 13
- 239000011159 matrix material Substances 0.000 description 7
- 239000013598 vector Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005040 ion trap Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000002887 superconductor Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/20—Models of quantum computing, e.g. quantum circuits or universal quantum computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/40—Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Error Detection And Correction (AREA)
- Logic Circuits (AREA)
Abstract
一種量子電路設計方法及裝置。在所述裝置中提供多個邏
輯閘與多個量子電路的對應關係,每一邏輯閘對應至其中一個量子電路,各量子電路具有輸入多項式與輸出多項式。在取得邏輯閘架構之後,自對應關係中,獲得邏輯閘架構所包括的每一邏輯閘所對應的每一量子電路及其對應的輸入多項式與輸出多項式。之後,基於所獲得的每一量子電路及其對應的輸入多項式與輸出多項式,獲得量子組合運算電路。
Description
本發明是有關於一種量子邏輯運算的方法及裝置,且特別是有關於一種量子電路設計方法及裝置。
量子電腦(Quantum computer)是一種使用量子邏輯進行通用計算的裝置。量子計算用來儲存數據的物件是量子位元,它使用量子演算法來進行數據操作。比起傳統電腦,量子電腦的運算是指數性加速。例如,10個量子位元(Qubits)可以加速1024(210)倍,20個量子位元可以加速百萬(220)倍。目前IBM有提供免費的軟體設計環境(例如Qiskit),可以讓先期研究者進行模擬驗證。
量子閘是量子電路的基礎,就像傳統邏輯閘跟一般數位線路之間的關係。量子閘常使用矩陣表示,操作K個量子位元的閘可以用2K×2K的矩陣表示。一個量子閘的輸入量子位元跟輸出量子位元兩者的數量必須要相等。量子閘的操作可以用代表量子閘的矩陣與代表量子位元狀態的向量作相乘來表示。傳統量子設計是一門很複雜的學問,其是利用向量與矩陣的運算來推導,當量
子位元的數量變多時,會變成難以思考與理解。n個量子位元,會有2n軸的向量與(2n)2的矩陣元素的運算。現有量子電路的實現與設計,缺乏固定有效的方法。例如,大都是依照各自應用狀況來做特殊設計,改變應用後不一定可設計出來,且方法差異也很大。據此,如何讓複雜的問題簡單化為目前待解決的課題之一。
本發明提供一種量子電路設計方法及裝置,可實現任意邏輯運算,大幅縮短設計時間。採用多項式的好處是,充分表現了巨量平行的運算。以三個量子位元A、B、C的設計而言,由於每個量子位元可以是0或1(以下標來表示),因此會有A0B0C0、A0B0C1、A0B1C0、...、A1B1C1的這8項多項式所組成的多項式運算,等於有8台電腦同時做相同的運算。同理,若有n個量子位元,就會有2n項同時做運算。經過本方法所實現出來的量子組合電路,雖然只有一個,但卻能同時處理2n種不同輸入狀況的運算。這樣的思考方式,才能讓原本矩陣與向量的運算被簡化,也能保持巨量平行運算的優勢。目前所使用的訊號表示式A⊕B之類的,雖然簡單,但會讓人喪失巨量平行的思維,而無法將任意的大型邏輯運算實現出來。
本發明的量子電路設計方法,利用處理器執行下述步驟,包括:提供多個邏輯閘與多個量子電路的對應關係,每一邏輯閘對應至其中一個量子電路,各量子電路具有輸入多項式與輸出多項
式;取得邏輯閘架構;自對應關係中,獲得邏輯閘架構所包括的每一邏輯閘所對應的每一量子電路及其對應的輸入多項式與輸出多項式;以及基於所獲得的每一量子電路及其對應的輸入多項式與輸出多項式,獲得量子組合運算電路。
本發明的一種量子電路設計裝置,包括:儲存設備,包括對應關係資料庫、查詢模組以及轉換模組,其中對應關係資料庫包括多個邏輯閘與多個量子電路的對應關係,每一邏輯閘對應至其中一個量子電路,各量子電路具有輸入多項式與輸出多項式;以及處理器,耦接至儲存設備,且經配置以取得邏輯閘架構;透過查詢模組,自對應關係中,獲得邏輯閘架構所包括的每一邏輯閘所對應的每一量子電路及其對應的輸入多項式與輸出多項式;以及透過轉換模組,基於所獲得的每一量子電路及其對應的輸入多項式與輸出多項式,獲得量子組合運算電路。
基於上述,本揭露支援量子電路的設計,可實現任意邏輯,應用於高維度優化,進而解決高維度運算與優化的問題。
100:量子電路設計裝置
110:處理器
120:儲存設備
121:對應關係資料庫
123:查詢模組
125:轉換模組
310~350、611、621、711~715:量子電路
311、321、331、341、351、411、511:輸入多項式
313、323、333、343、353、413、513:輸出多項式
410~430、510~530:量子閘
610、G1~G3:AND閘
620:OR閘
701:加法器
721、722:虛線框選部分
A~E、q3~q8、x、y、z:量子位元(輸入位元、輸出位元)
H:哈達瑪閘
S205~S220:量子電路設計方法的步驟
圖1是依照本發明一實施例的量子電路設計裝置的方塊圖。
圖2是依照本發明一實施例的量子電路設計方法的流程圖。
圖3是依照本發明一實施例的量子邏輯閘對應關係的示意圖。
圖4是依照本發明一實施例的CNOT閘的延伸設計的量子閘。
圖5是依照本發明一實施例的CCNOT閘的延伸設計的量子閘。
圖6A是依照本發明一實施例的邏輯閘架構的示意圖。
圖6B是依照本發明一實施例的由圖6A的邏輯閘架構所轉換的量子組合運算電路的示意圖。
圖7A是依照本發明另一實施例的邏輯閘架構的示意圖。
圖7B是依照本發明另一實施例的由圖7A的邏輯閘架構所轉換的量子組合運算電路的示意圖。
圖1是依照本發明一實施例的量子電路設計裝置的方塊圖。請參照圖1,量子電路設計裝置100包括:處理器110以及儲存設備120。處理器110耦接至儲存設備120。
處理器110例如為中央處理單元(Central Processing Unit,CPU)、物理處理單元(Physics Processing Unit,PPU)、可程式化之微處理器(Microprocessor)、嵌入式控制晶片、數位訊號處理器(Digital Signal Processor,DSP)、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)或其他類似裝置。
儲存設備120例如是任意型式的固定式或可移動式隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-
Only Memory,ROM)、快閃記憶體(Flash memory)、硬碟或其他類似裝置或這些裝置的組合。儲存設備120包括對應關係資料庫121、查詢模組123以及轉換模組125。查詢模組123以及轉換模組125是由一或多個程式碼片段所組成,上述程式碼片段在被安裝後,會由處理器110來執行。
對應關係資料庫121記錄了多個邏輯閘與多個量子電路的對應關係。一個邏輯閘對應至一個量子電路,每一個量子電路具有對應的輸入多項式與輸出多項式。另外,對應關係資料庫121中還包括其他量子閘對應的輸入多項式與輸出多項式。輸入多項式與輸出多項式描述了各量子電路對應的真值表中所有的邏輯組合。在一實施例中,輸入多項式包括多組輸入邏輯值,輸出多項式包括分別對應於所述多組輸入值的多組輸出邏輯值。在本實施例中,利用多項式原理來代表每一次的輸入與輸出的狀態,因此,將量子電路的所有邏輯運算都以多項式來代換,取代傳統用向量與矩陣運算的方式。
圖2是依照本發明一實施例的量子電路設計方法的流程圖。請參照圖1及圖2,在步驟S205中,提供多個邏輯閘與多個量子電路的對應關係。在此,對應關係資料庫121中記錄了邏輯閘與量子電路的對應關係。例如,事先在對應關係資料庫121先建立好各個量子電路及其對應的輸入多項式與輸出多項式,以便於後續來使用。
目前常見的量子閘有阿達馬閘(Hadamard gate)、泡利-X
閘(Pauli-X gate)、泡利-Y閘(Pauli-Y gate)、泡利-Z閘(Pauli-Z gate)、互換閘(Swap gate)、受控反閘(Controlled-NOT gate,CNOT)、托佛利閘(Toffoli gate)(又被稱作CCNOT閘(Controlled-Controlled-NOT gate)、相位偏移閘(Phase shift gate)。有些量子閘僅需要輸入一個量子位元(Qubit)即可執行,有些量子閘則要輸入多個量子位元。
圖3是依照本發明一實施例的量子邏輯閘對應關係的示意圖。請參照圖3,量子電路310對應至AND閘(具有兩個輸入位元與一個輸出位元)。在此,使用CCNOT閘(輸入與輸出具有三個量子位元)來實現AND閘操作。量子位元A、B作為控制位元,量子位元C作為目標位元C。“C0”表示量子位元C的初始狀態設定為0。當兩個控制位元(量子位元A、B)的輸入邏輯值皆為1,則目標位元(量子位元C)的輸出邏輯值會反向。量子位元A、B用以實現AND閘的兩個輸入位元,使用量子位元C用以實現AND閘的一個輸出位元。量子電路310的真值表如表1所示。
在本實施例中,如表1所示,量子電路310的輸入量子位元包括4組輸入邏輯值,輸出量子位元對應包括4組輸出邏輯值。這些邏輯值組合以多項式方式儲存在量子電路310對應的暫存器中。如圖3所示,輸入多項式311為“A0B0C0+A0B1C0+A1B0C0+A1B1C0”,對應的輸出多項式313為“A0B0C0+A0B1C0+A1B0C0+A1B1C1”。以“+”來做為不同組輸入/輸出邏輯值(一個項對應一組輸入邏輯值)的分隔,以下標來表示對應的邏輯值。例如,“A0B0C0”表示量子位元A、B、C的輸入邏輯值(或輸出邏輯值)皆為0,以此類推。
量子電路320對應至NAND閘(具有兩個輸入位元與一個輸出位元),其使用一個CCNOT閘(輸入與輸出具有三個量子位元)以及一個Pauli-X閘來實現。除了兩個控制位元(量子位元A、B)的輸入邏輯值皆為1的情況下目標位元(量子位元C)的輸出邏輯值不反向,其他情況皆會使目標位元(量子位元C)的輸出邏輯值反向。與量子電路310類似,量子電路320亦具有一對應的暫存器,其包括描述了量子電路320對應的真值表中所有的邏輯組合的輸入多項式321(包括4組輸入邏輯值)以及輸出多項式323(包括4組輸出邏輯值)。
量子電路330對應至OR閘(具有兩個輸入位元與一個輸出位元),其使用一個CCNOT閘(輸入與輸出具有三個量子位元)以及5個Pauli-X閘來實現。除了兩個控制位元(量子位元A、B)的輸入邏輯值皆為0的情況下目標位元(量子位元C)的輸出
邏輯值不反向,其他情況皆會使目標位元(量子位元C)的輸出邏輯值反向。與量子電路310類似,量子電路330亦具有對應的暫存器,其包括描述了量子電路330對應的真值表中所有的邏輯組合的輸入多項式331(包括4組輸入邏輯值)以及輸出多項式333(包括4組輸出邏輯值)。
量子電路340對應至NOR閘(具有兩個輸入位元與一個輸出位元),其使用一個CCNOT閘(輸入與輸出具有三個量子位元)以及4個Pauli-X閘來實現。量子電路340只會在兩個控制位元(量子位元A、B)的輸入邏輯值皆為0的情況下,使得目標位元(量子位元C)的輸出邏輯值反向。與量子電路310類似,量子電路340亦具有對應的暫存器,其包括描述了量子電路340對應的真值表中所有的邏輯組合的輸入多項式341(包括4組輸入邏輯值)以及輸出多項式343(包括4組輸出邏輯值)。
量子電路350對應至NOT閘(具有一個輸入位元與一個輸出位元),其使用一個Pauli-X閘來實現。Pauli-X閘操作一個量子位元,即輸入與輸出僅包括一個量子位元A。輸入邏輯值為0,則輸出邏輯值為1。量子電路350具有對應的暫存器,其包括輸入多項式351以及輸出多項式353。在此,輸入多項式351以及輸出多項式353的表述方式仍以三個量子位元來表示,由於量子電路350的輸入與輸出僅包括一個量子位元A,故輸入多項式351以及輸出多項式353中不被改變的量子位元B、C皆例示表述為B0、C0。即輸入多項式351為“A0B0C0”,輸出多項式353為“A1B0C0”。
在圖3中僅列出5個邏輯閘分別對應的量子電路310~350。然,在此僅為舉例說明,在其他實施例中還包括有其他的邏輯閘與量子電路的對應關係。需說明的是,量子閘的量子位元的標記僅是為了便於說明,在不同實施例中的所使用的量子位元的標記並不一定通用,須視使用情況來判斷。
接著返回圖2,在步驟S210中,取得邏輯閘架構。在一實施例中,邏輯閘架構可以是將設計好的暫存器傳輸級(register-transfer level,RTL)程式碼經由電子設計自動化(Electronic design automation,EDA)軟體來獲得。RTL主要特色是大量的使用暫存器與算術邏輯單元(Arithmetic logic unit,ALU)來描述電路。設計工程師一般使用硬體描述語言(hardware description language,HDL)將積體電路所需的邏輯以程式碼明確地描述每個區塊的內部功能。在另一實施例中,也可以直接採用邏輯閘架構。
接著,在步驟S215中,透過查詢模組123自對應關係中,獲得邏輯閘架構所包括的每一邏輯閘所對應的每一量子電路及其對應的輸入多項式與輸出多項式。之後,在步驟S220中,透過轉換模組125基於所獲得的每一量子電路及其對應的輸入多項式與輸出多項式,獲得量子組合運算電路。輸入多項式與輸出多項式中的一個項就代表一個狀態,每次推導,只要專注於同一個狀態下的邏輯運算就好,不用去考慮其他狀態的運算。
在此,採用2n項的多項式來運算,可以讓處理器110更快速推導。輸入多項式與輸出多項式的2n項各項之間為獨立運算,
不互相干擾,也就是在計算某一項時,要當成其它項不存在。例如,以輸入多項式311以及輸出多項式313而言,在針對第一項的計算時,僅會考慮輸入多項式311中的“A0B0C0”以及輸出多項式313中的“A0B0C0”,而不考慮輸入多項式311的“A0B1C0+A1B0C0+A1B1C0”以及輸出多項式313的“A0B1C0+A1B0C0+A1B1C1”。
在本揭露中,利用CNOT閘以及CCNOT閘可以簡化很多的設計,底下再舉例說明。
圖4是依照本發明一實施例的CNOT閘的延伸設計的量子閘。請參照圖4,CNOT閘的輸入與輸出具有2個量子位元,量子位元B作為控制位元,量子位元A作為目標位元。可根據不同的邏輯設計來決定目標位元(量子位元A)的輸出。量子閘410用以實現XOR閘,量子閘420用以實現Fan-out閘,量子閘430用以實現Fan-out bar閘。
量子閘410設計為:輸出的量子位元A=A⊕B,⊕為XOR運算符號。量子閘410的訊號表示式為“CNOT(B,A)→B,A⊕B”。量子閘420設計為:輸入的量子位元A為0(記為A0),輸出的量子位元A=B。量子閘420的訊號表示式為“CNOT(B,A0)→B,B”。量子閘430設計為:輸入的量子位元A為1(記為A1),輸出的量子位元。量子閘430的訊號表示式為“CNOT(B,A1)→B,”。
另,量子閘410亦可搭配多項式表示式來使用,即,輸入多項式411(A0B0+A0B1+A1B0+A1B1)以及輸出多項式413(A0B0+A1B1+A1B0+A0B1),其描述了量子閘410的真值表中所有可能出
現的邏輯值。相似地,量子閘420與量子閘430也可搭配多項式表示式來使用(在此省略未繪示)。
圖5是依照本發明一實施例的CCNOT閘的延伸設計的量子閘。請參照圖5,CCNOT閘的輸入與輸出具有3個量子位元,量子位元B、C作為控制位元,量子位元A作為目標位元。可根據不同的邏輯設計來決定目標位元(量子位元A)的輸出。量子閘510用以實現XOR閘,量子閘520用以實現AND閘,量子閘530用以實現NAND閘。
量子閘510設計為:經過量子運算後,輸出的量子位元B、C不變,輸出的量子位元A=A⊕(BC),即,輸入的量子位元B=C=1時,輸出的量子位元A才會反向,其他狀況下輸出的量子位元A不變。量子閘510的訊號表示式為“CCNOT(B,C,A)→B,C,A⊕(BC)”。量子閘520設計為:輸入的量子位元A為0(記為A0),輸出的量子位元A=BC,即,輸入的量子位元B與C兩者執行AND運算後的結果。量子閘520的訊號表示式為“CCNOT(B,C,A0)→B,C,BC”。量子閘530設計為:輸入的量子位元A為1(記為A1),輸出的量子位元,即,輸入的量子位元B與C兩者執行NAND運算後的結果。量子閘530的訊號表示式為“CCNOT(B,C,A1)→B,C,”。
另,量子閘510亦可搭配多項式表示式來使用,即,輸入多項式511(A0B0C0+A0B0C1+A0B1C0+A0B1C1+A1B0C0+A1B0C1+A1B1C0+A1B1C1)以及輸出多項式513(A0B0C0+A0B0C1+A0B1C0+
A1B1C1+A1B0C0+A1B0C1+A1B1C0+A0B1C1),其描述了量子閘510的真值表中所有可能出現的邏輯值。相似地,量子閘520與量子閘530也可搭配多項式表示式來使用(在此省略未繪示)。
基於上述圖4及圖5,CNOT閘以及CCNOT閘可以分別產生三種不同的量子閘410~430、510~530,再搭配Pauli-X閘(可產生例如量子電路350的應用),這7種量子閘便能夠來組合,以實現任意邏輯閘的運算。基於這7種量子閘多項式表示式或訊號表示式,更容易進入量子邏輯設計的領域,而不會被太多不同量子閘與不同的物理特性給迷惑或混淆。
圖6A是依照本發明一實施例的邏輯閘架構的示意圖。圖6B是依照本發明一實施例的由圖6A的邏輯閘架構所轉換的量子組合運算電路的示意圖。圖6A的邏輯閘架構是由下述表2所列的RTL程式碼經EDA軟體轉換而得。在此,為便於說明,圖6A的邏輯閘的輸入位元、輸出位元的標記與圖6B的輸入量子位元、輸出量子位元的標記採用相同標記以表示其對應關係。
圖6A所示的邏輯閘架構包括AND閘610以及OR閘620。AND閘610具有兩個輸入位元(B、C)與一個輸出位元(D)。OR閘620具有兩個輸入位元(A、D)與一個輸出位元(E)。
針對AND閘610以及OR閘620在對應關係資料庫121中查詢,而獲得圖6B所示的量子電路611(對應參照圖3中的量子電路310)及量子電路621(對應參照圖3中的量子電路330)及其對應的輸入多項式與輸出多項式,進而組合獲得量子組合運算電路。
接著,基於圖6A的邏輯閘架構所包括的AND閘610以及OR閘620各自的輸入位元與輸出位元,在量子組合運算電路中加入對應的主要量子位元(A、B、C)與輔助量子位元(D、E),並且基於主要量子位元加入對應的哈達碼閘H。
主要量子位元會經過哈達碼閘H,從n種狀態會變成2n種可能狀態(例如,10個量子位元會有210=1024種的狀態),這是為了讓量子可以做巨量平行的設計機制。如圖6B所示,主要量子位元A、B、C可同時輸入(A0,B0,C0)、(A0,B0,C1)、(A0,B1,C0)、(A0,B1,C1)、…、(A1,B1,C1)這8種狀態,一次讓量子電腦全部計算完成。輔助量子位元D、E是指內部運算,所需要增加的量子位元,並無法再提升量子運算的平行度。輔助量子位元作為邏輯運算的輸出,後續運算的邏輯閘越多,則需要的輔助量子位元也越多。只有主要量子位元有指數性加速的效果,輔助量子位元並沒有。
圖6B所示的A0、B0、C0、D0、E0是指尚未激發前,各量子位元的起始狀態都是0。所以設計完成的結果,就如圖6B所示的電路圖所示。若想讓A0變成A1,則需要在圖6B的量子組合運算電路中再加一個NOT閘。
圖7A是依照本發明另一實施例的邏輯閘架構的示意圖。圖7B是依照本發明另一實施例的由圖7A的邏輯閘架構所轉換的量子組合運算電路的示意圖。圖7A的邏輯閘架構是由下述表3所列的RTL程式碼經EDA軟體轉換而得。在此,為便於說明,圖7A的邏輯閘的輸入位元、輸出位元的標記與圖7B的輸入量子位元、輸出量子位元的標記採用相同標記以表示其對應關係。
圖7A所示的邏輯閘架構包括三個AND閘G1、G2、G3以及一個加法器701。AND閘G1包括兩個輸入位元,即量子位元y、z,且其輸出(高位元a[1])作為加法器701的輸入的量子位元
q5。AND閘G2包括兩個輸入位元,即量子位元x、y,且其輸出(低位元a[0])作為加法器701的輸入的量子位元q4。AND閘G3包括兩個輸入位元,即量子位元x、z,且其輸出(高位元b[1]、低位元b[0])作為加法器701的輸入的量子位元q6、q7。
加法器701為二位元的漣波加法器(ripple adder),其輸入位元包括量子位元q4~q7以及一個進位輸入(carry-in)的量子位元q3,而輸出位元包括量子位元q6、q7以及一個進位輸出(carry-out)的量子位元q8。在此示例中並未使用到量子位元q3,因此量子位元q3設為0。
針對AND閘G1、G2、G3以及二位元的加法器701在對應關係資料庫121中查詢,而獲得圖7B所示的量子電路712、711、713及量子電路715及其對應的輸入多項式與輸出多項式,進而組合獲得量子組合運算電路。
接著,基於圖7A的邏輯閘架構所包括的AND閘G1、G2、G3以及二位元的加法器701各自的輸入位元與輸出位元,在量子組合運算電路中加入對應的主要量子位元(x、y、z)與輔助量子位元(q3~q8),並且基於主要量子位元x、y、z加入對應的哈達碼閘H。在圖7A中還另外加入量子電路714(Fan-out閘)。在量子電路715中,虛線框選部分721、722為低位元的加法(a[0]+b[0]),其他部分則是高位元的加法(a[1]+b[1])。
在獲得如圖6B、圖7B所示的量子組合運算電路之後,利用量測電路來量測量子組合運算電路的運算結果。量測電路有
很多種不同的實現方式,較常見的就是把週期、平均或極值測量出來。例如,利用量子傅立葉轉換(Quantum Fourier Transform,QFT)電路來做為量測電路以量測週期。例如,加入統計機率的量測電路來量測平均。例如,加入數位類比轉換器(digital to analog converter,DAC)將量子數位轉成類比,以便於後續處理。
綜上所述,本揭露將量子電路的所有邏輯運算都以多項式來代換,取代傳統用向量與矩陣運算的方式。輸入多項式與輸出多項式有助於量子巨量平行運算時的逐項推導。本揭露不再客製化設計,而是沿用原本半導體數位晶片的設計流程,快速設計,容易改變與實現任意邏輯。並且,本揭露是在電路與設計流程上的改善,並非在物理特性上的改善,可應用於邏輯設計,使用各種不同量子電腦的物理實現,如離子阱(ion trap)量子電腦、低溫超導量子電腦,矽製程量子電腦、光量子電腦等。
S205~S220:量子電路設計方法的步驟
Claims (12)
- 一種量子電路設計方法,利用一處理器執行下述步驟,包括: 提供多個邏輯閘與多個量子電路的對應關係,每一該些邏輯閘對應至該些量子電路其中一個,每一該些量子電路具有一輸入多項式與一輸出多項式; 取得一邏輯閘架構; 自該對應關係中,獲得該邏輯閘架構所包括的每一邏輯閘所對應的每一量子電路及其對應的該輸入多項式與該輸出多項式;以及 基於所獲得的每一量子電路及其對應的該輸入多項式與該輸出多項式,獲得一量子組合運算電路。
- 如請求項1所述的量子電路設計方法,其中在獲得該量子組合運算電路之後,更包括: 基於該邏輯閘架構所包括的每一邏輯閘的輸入位元與輸出位元,在該量子組合運算電路中加入對應的主要量子位元與輔助量子位元,並且基於所述主要量子位元加入對應的哈達碼閘。
- 如請求項1所述的量子電路設計方法,更包括: 將一暫存器傳輸級程式碼轉換為該邏輯閘架構。
- 如請求項1所述的量子電路設計方法,其中該輸入多項式與該輸出多項式描述了每一該些量子電路對應的真值表中所有的邏輯組合, 該輸入多項式包括多組輸入邏輯值,該輸出多項式包括分別對應於所述多組輸入邏輯值的多組輸出邏輯值。
- 如請求項1所述的量子電路設計方法,其中該量子組合運算電路的每一量子電路搭配使用一暫存器,該暫存器用以儲存對應的量子電路的該輸入多項式與該輸出多項式。
- 如請求項1所述的量子電路設計方法,其中在獲得該量子組合運算電路之後,更包括: 利用一量測電路來量測該量子組合運算電路的運算結果。
- 一種量子電路設計裝置,包括: 一儲存設備,包括一對應關係資料庫、一查詢模組以及一轉換模組,其中該對應關係資料庫包括多個邏輯閘與多個量子電路的對應關係,每一該些邏輯閘對應至該些量子電路其中一個,每一該些量子電路具有一輸入多項式與一輸出多項式;以及 一處理器,耦接至該儲存設備,且經配置以: 取得一邏輯閘架構; 透過該查詢模組,自該對應關係中,獲得該邏輯閘架構所包括的每一邏輯閘所對應的每一量子電路及其對應的該輸入多項式與該輸出多項式;以及 透過該轉換模組,基於所獲得的每一量子電路及其對應的該輸入多項式與該輸出多項式,獲得一量子組合運算電路。
- 如請求項7所述的量子電路設計裝置,其中該處理器經配置以: 基於該邏輯閘架構所包括的每一邏輯閘的輸入位元與輸出位元,在該量子組合運算電路中加入對應的主要量子位元與輔助量子位元,並且基於所述主要量子位元加入對應的哈達碼閘。
- 如請求項7所述的量子電路設計裝置,其中該處理器經配置以: 將一暫存器傳輸級程式碼轉換為該邏輯閘架構。
- 如請求項7所述的量子電路設計裝置,其中該輸入多項式與該輸出多項式描述了每一該些量子電路對應的真值表中所有的邏輯組合, 該輸入多項式包括多組輸入邏輯值,該輸出多項式包括分別對應於所述多組輸入邏輯值的多組輸出邏輯值。
- 如請求項7所述的量子電路設計裝置,其中該處理器經配置以: 利用一量測電路來量測該量子組合運算電路的運算結果。
- 如請求項7所述的量子電路設計裝置,其中該量子組合運算電路的每一量子電路搭配使用一暫存器,該暫存器用以儲存對應的量子電路的該輸入多項式與該輸出多項式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111138615A TWI826040B (zh) | 2022-10-12 | 2022-10-12 | 量子電路設計方法及裝置 |
CN202211512039.2A CN117875437A (zh) | 2022-10-12 | 2022-11-29 | 先进电路设计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111138615A TWI826040B (zh) | 2022-10-12 | 2022-10-12 | 量子電路設計方法及裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI826040B true TWI826040B (zh) | 2023-12-11 |
TW202416182A TW202416182A (zh) | 2024-04-16 |
Family
ID=90053258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111138615A TWI826040B (zh) | 2022-10-12 | 2022-10-12 | 量子電路設計方法及裝置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117875437A (zh) |
TW (1) | TWI826040B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8897449B1 (en) * | 2011-09-12 | 2014-11-25 | Quantum Valley Investment Fund LP | Quantum computing on encrypted data |
US20200074035A1 (en) * | 2018-08-29 | 2020-03-05 | International Business Machines Corporation | Design optimization of quantum circuits |
TW202123097A (zh) * | 2019-10-30 | 2021-06-16 | 美商札帕塔運算股份有限公司 | 用於參數有效電路訓練的混合量子-經典電腦系統 |
CN113313261A (zh) * | 2021-06-08 | 2021-08-27 | 北京百度网讯科技有限公司 | 函数处理方法、装置及电子设备 |
TW202133056A (zh) * | 2020-02-21 | 2021-09-01 | 國立政治大學 | 基於量子運算的真亂數產生方法 |
CN114330733A (zh) * | 2021-12-31 | 2022-04-12 | 郑州信大先进技术研究院 | 基于Grover搜索算法的二元整系数多项式无约束优化方法 |
-
2022
- 2022-10-12 TW TW111138615A patent/TWI826040B/zh active
- 2022-11-29 CN CN202211512039.2A patent/CN117875437A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8897449B1 (en) * | 2011-09-12 | 2014-11-25 | Quantum Valley Investment Fund LP | Quantum computing on encrypted data |
US20200074035A1 (en) * | 2018-08-29 | 2020-03-05 | International Business Machines Corporation | Design optimization of quantum circuits |
TW202123097A (zh) * | 2019-10-30 | 2021-06-16 | 美商札帕塔運算股份有限公司 | 用於參數有效電路訓練的混合量子-經典電腦系統 |
TW202133056A (zh) * | 2020-02-21 | 2021-09-01 | 國立政治大學 | 基於量子運算的真亂數產生方法 |
CN113313261A (zh) * | 2021-06-08 | 2021-08-27 | 北京百度网讯科技有限公司 | 函数处理方法、装置及电子设备 |
CN114330733A (zh) * | 2021-12-31 | 2022-04-12 | 郑州信大先进技术研究院 | 基于Grover搜索算法的二元整系数多项式无约束优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117875437A (zh) | 2024-04-12 |
TW202416182A (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Smithson et al. | Efficient CMOS invertible logic using stochastic computing | |
Sousa | Nonconventional computer arithmetic circuits, systems and applications | |
Safaei et al. | System-on-a-chip (SoC)-based hardware acceleration for an online sequential extreme learning machine (OS-ELM) | |
US20220253319A1 (en) | Hardware Unit for Performing Matrix Multiplication with Clock Gating | |
CN111310928A (zh) | 通用量子比较电路的实现方法 | |
Sutradhar et al. | Look-up-table based processing-in-memory architecture with programmable precision-scaling for deep learning applications | |
Hagouel et al. | Quantum computers: Registers, gates and algorithms | |
Reis et al. | A fast and energy efficient computing-in-memory architecture for few-shot learning applications | |
Jia et al. | An energy-efficient Bayesian neural network implementation using stochastic computing method | |
Nobari et al. | FPGA-based implementation of deep neural network using stochastic computing | |
Chu et al. | A high-performance design of generalized pipeline cellular array | |
TWI826040B (zh) | 量子電路設計方法及裝置 | |
US20200218674A1 (en) | Sorting memory address requests for parallel memory access using input address match masks | |
Bhat et al. | Design and analysis of 3× 3 reversible quantum gates | |
Khan | A recursive method for synthesizing quantum/reversible quaternary parallel adder/subtractor with look-ahead carry | |
Kheirandish et al. | Efficient designs of reversible sequential circuits | |
Zhao et al. | Configurable memory with a multilevel shared structure enabling in-memory computing | |
Majumder et al. | Investigation on Quine McCluskey method: A decimal manipulation based novel approach for the minimization of Boolean function | |
Shahidi et al. | A new method for reversible circuit synthesis using a Simulated Annealing algorithm and don’t-cares | |
US11455144B1 (en) | Softmax calculation and architecture using a modified coordinate rotation digital computer (CORDIC) approach | |
Madenda et al. | New Approach of Signed Binary Numbers Multiplication and Its Implementation on FPGA | |
JP2022007590A (ja) | 量子計算機、プログラム、量子計算方法及び量子回路 | |
KR102658003B1 (ko) | 효율성이 향상된 양자 가산기 및 가산 방법 | |
Nia | Design of an optimized reversible ternary and binary bidirectional and normalization barrel shifters for floating point arithmetic | |
US11775312B2 (en) | Look-up table containing processor-in-memory cluster for data-intensive applications |