輸入/輸出電路串行轉並行的裝置及方法
2023-08-07 10:45:01 1
專利名稱:輸入/輸出電路串行轉並行的裝置及方法
技術領域:
本發明涉及一種關於輸入/輸出(I/O)電路的裝置及方法,特別是指I/O電路中串行轉並行(serial to parallel)的裝置及方法。
背景技術:
一般集成電路(Integrated circuit,IC)在製造完成後,其引腳(pin)數目也就固定了,且同時由於片上體系(SOCsystem on a chip)的趨勢使然,因此部分引腳必須共用,以達到縮小IC尺寸的目的。因此在引腳有限以及SOC趨勢下,單一引腳多功能化(multifunction)是必然的結果。
如圖1所示,一個利用具有單一引腳多功能概念所設計的IC的一個引腳可以同時擁有許多功能,但同時間又只能有一種功能可以存在(亦即同時間只能選擇其中一所述功能來使用該引腳),如這一來必須等到這一功能執行完畢後才能切換到下一個功能。相較於沒有多功能引腳的IC其速度較慢,因此只適合在較慢速的總線中使用;此外,上述結構還需要另外提供一引腳當作引腳選擇(chip select)之用,用以進行功能切換。
一般為了解決輸出引腳不夠的問題,可能會利用順序邏輯電路(sequential logic circuit)的方式(如圖2A)來擴充引腳。一個I/O電路可由數個順序邏輯電路組合而成,每一個順序邏輯電路可以處理1位的數據,若需要擴增輸出的數目,則只需要增加順序邏輯電路的數目即可(如圖2B所示)。每一個順序邏輯電路包含有一個D觸發器(D-type flip-flop)以及一個D型鎖存器(D-type Latch)。一個M位的輸入數據流I(I0...IM-3IM-2IM-1),依其位順序每次輸入一位的輸入數據至第一個順序邏輯電路的D觸發器中,當D觸發器收到一批輸入數據後,會將前一次收到的輸入數據傳送至下一級的D觸發器中;當輸入數據流I(I0...IM-3IM-2IM-1)輸入完畢後,經時鐘信號CLK觸發,將已寫入的輸入數據流I(I0...IM-3IM-2IM-1)分別輸出至對應的D型鎖存器鎖存,最後經由另一個時鐘信號Load的觸發,將數據流I(I0...IM-3IM-2IM-1)輸出。
其中M大於或等於順序邏輯電路的數目。
舉例來說,如圖2C所示為一8位的I/O電路200,由8個順序邏輯電路所組成,首先第一個順序邏輯電路210的D觸發器D0接收M位輸入數據流I(I0...IM-3IM-2IM-1)(M>=8)的第一批輸入數據I0當作其輸入數據;接著當第二批輸入數據I1輸入至第一D觸發器D0,此時I0被傳送至第二個順序邏輯電路220的D觸發器D2當作其輸入數據,接著第三批輸入數據I2輸入至第一D觸發器D1後,I1被傳送至第二D觸發器D1,而I0被傳送至第三D觸發器D2...依此類推;等到輸入數據流I(I0...IM-3IM-2IM-1)(M>=8)都輸入完畢後,經由時鐘信號CLK的觸發,將輸入數據分別輸出至對應的D型鎖存器(如第一D觸發器D0對應第一選通鎖存器DG0),由對應的選通鎖存器分別鎖存其輸入數據;最後再經由時鐘信號Load的觸發,將輸入數據流I(I0...IM-3IM-2IM-1)(M>=8)同時輸出。其中當輸入數據流I(I0...IM-3IM-2IM-1)(M>=8)寫入前,可以先利用一個清除信號CLR將先前寫入D觸發器的輸入數據清除乾淨。由表一的輸入與輸出狀態所示可以發現,系統必須至少寫滿8位後才會輸出數據。
圖3表示現有I/O電路的工作流程圖,其步驟如下所述步驟310輸入一清除信號CLR以清除先前所寫入的輸入數據;步驟320將輸入數據流I(I0...IM-3IM-2IM-1)(M>=8)依位順序,每次一位輸入至第一個D觸發器,且當下一批輸入數據輸入時,前一批的輸入數據會被往前推至下一級D觸發器;步驟330當輸入數據流I(I0...IM-3IM-2IM-1)(M>=8)輸入完畢後,經由時鐘信號CLK的觸發,將輸入數據分別輸出至對應的D型鎖存器並鎖存;以及步驟340經時鐘信號Load的觸發,將D型鎖存器所鎖存的輸入數據流I輸出。
由上述可以發現,順序邏輯電路以串聯的方式擴充輸出引腳,用以解決IC輸出引腳不夠用的方法,但這種方式每次都必須等到順序邏輯電路全部寫滿之後才能一次輸出,因此速度還是很慢。
發明內容
本發明提供了一種I/O電路串行轉並行的裝置及方法,使得IC電路在擴充輸出引腳之餘,尚且可以快速有效率的將輸入數據傳送出去。
本發明優選實施例的串行轉並行的I/O電路包括有M個順序邏輯電路串聯,每一個順序邏輯電路可處理1位的數據,並可視需要增加順序邏輯電路的數目,用以擴充I/O數量。每一個順序邏輯電路皆包含有兩個D觸發器,分別用以接收一輸入數據以及一啟用控制信號;一多工器,用以選擇輸出數據的類型;以及一D型鎖存器,用以將數據鎖存後再輸出。
本發明優選實施例的I/O電路串行轉並行的方法如下首先將一N位的輸入數據流依位高低,以每次一位依序輸入至系統中;其次,系統根據同步輸入的啟用控制信號的狀態(高電平或低電平),決定要輸出輸入數據或輸出前一次輸出的反饋數據(維持不變)。
圖1為一具有引腳多功能概念的IC輸出示意2A為一順序邏輯電路示意2B為一數個順序邏輯電路組合的I/O電路示意2C為一8位I/O電路示意3為一I/O電路工作流程4A為本發明的串行轉並行I/O電路示意圖(1)圖4B為本發明的串行轉並行I/O電路示意圖(2)圖5為本發明的I/O電路串行轉並行的方法流程6為本發明的8位I/O電路串行轉並行的方法流程圖表一為一8位I/O電路的輸出輸入狀態圖表二為多工器的真值表表三為本發明的一8位I/O電路的輸出輸入狀態示標號簡單說明2008位的I/O電路210第一個順序邏輯電路310清除先前寫入的數據320將輸入數據流I輸入至第一個D觸發器330時鐘信號CLK觸發後,將輸入數據流I輸出至對應的D型鎖存器340時鐘信號Load觸發後,將D型鎖存器所鎖存的輸入數據流I輸出400串行轉並行I/O電路410第一移位寄存器
420第二移位寄存器SL順序邏輯電路(SL0、SL1、...、SLM-1)D1第一D觸發器(D10、D11、...、D1M-1)D2第二D觸發器(D20、D21、...、D2M-1)MUX多工器(MUX0、MUX1、...、MUXM-1)DGD型鎖存器(DG0、DG1、...、DGM-1)I輸入數據流(I0...IN-3IN-2IN-1)E啟用信號流(E0...EN-3EN-2EN-1)CLR清除信號CLK時鐘信號Load時鐘信號510清除先前寫入的數據520輸入一輸入數據流I以及一啟用控制信號流E530時鐘信號CLK觸發後,輸入數據流I以及啟用控制信號流E依序輸入第一個第一D觸發器以及第一個第二D觸發器540時鐘信號CLK再次觸發後,先前所獲得的輸入數據傳送至下一級的第一D觸發器和對應的多工器的輸入端,而啟用控制信號傳送至下一級的第二D觸發器和對應的多工器MUX的啟用控制信號接收端550多工器根據啟用控制信號的狀態選擇要輸出輸入數據或是反饋數據560將多工器所選擇的數據傳送至對應D型鎖存器鎖存570時鐘信號Load觸發後,將所選擇的數據輸出,並反饋至對應的多工器具體實施方式
本發明提供了一種I/O電路串行轉並行的裝置及方法,使得I/O電路無需等待即可將輸入數據流快速輸出。以下將列舉一優選實施例說明,然而本領域技術人員皆知此僅為一舉例,而並非用以限定發明本身,有關此發明的優選實施例詳敘如下。
圖4A表示本發明優選實施列的I/O電路串行轉並行裝置400,圖4B則表示圖4A的細部結構圖。圖4B所示的電路包括有M個順序邏輯電路SL(SL0、SL1、...、SLM-1);每一個順序邏輯電路皆包括有一第一D觸發器D1(D10、D11、...、D1M-1),用以接收1位的輸入數據,此外每一個第一D觸發器的輸出連接到下一級第一D觸發器的輸入(例如第一個第一D觸發器D10的輸出連接至第二個第一D觸發器D11的輸入);一第二D觸發器D2(D20、D21、...、D2M-1),用以接收1位的啟用控制信號,此外每一個第二D觸發器的輸出連接到下一級第二D觸發器的輸入(例如第一個第二D觸發器D20的輸出連接至第二個第二D觸發器D21的輸入);一多工器MUX(MUX0、MUX1、...、MUXM-1),包含有兩個輸入端,一輸入端連接至對應第一D觸發器的輸出,用以接收第一D觸發器所接收的輸入數據(例如第一個第一D觸發器D10連接至第一個多工器MUX0,將其所接收的輸入數據傳送至第一個多工器MUX0),此外多工器MUX還有一啟用控制信號接收端,連接至對應的第二個D觸發器的輸出,用以接收第二個D觸發器所接收的啟用控制信號(例如第一個多工器MUX0連接至第一個第二D觸發器D20,接收第一個第二D觸發器D20所傳送出的啟用控制信號);以及一D型鎖存器DG(DG0、DG1、...、DGM-1),連接至對應的多工器,用以將對應多工器所選擇的數據輸出,且其所輸出的數據會反饋至多工器的另一個輸入端,當作反饋數據以在下一批輸入數據輸入時,作為數據輸出的選擇(例如第一個D型鎖存器DG0連接至第一個多工器MUX0,輸出第一個多工器MUX0所選擇的數據,並將其輸出的數據反饋至第一個多工器MUX0的另一輸入端)。如圖4B所示,M個第一D觸發器D1(D10、D11、...、D1M-1)組合成一第一移位寄存器410,而M個第二D觸發器D2(D20、D21、...、D2M-1)組合成一第二移位寄存器420。
本發明的I/O電路串行轉並行的方法,包括有首先對分別對所有的第一D觸發器D1(D10、D11、...、D1M-1)以及所有的第二D觸發器D2(D20、D21、...、D2M-1)輸入一清除信號CLR,以清除先前所輸入的信號,此時所有的第一D觸發器D1(D10、D11、...、D1M-1)中的數據為空(Null),而所有的第二D觸發器D2(D20、D21、...、D2M-1)中的啟用控制信號為低電平(0),因此系統會選擇保持原來的輸出狀態(多工器的真值表如表二所示,當啟用控制信號為高電平(1)時,多工器選擇輸入數據當作其輸出,而當啟用控制信號為低電平(0)時,多工器選擇反饋數據當作其輸出);接著同時輸入一個N位的輸入數據流I(I0...IN-3IN-2IN-1),以及一個N位的啟用控制信號流E(E0...EN-3EN-2EN-1),輸入數據流I以及啟用控制信號E依照位順序的高低,每次輸入1位至第一個第一D觸發器D11以及第一個第二D觸發器D20中,且此二個信號皆由一時鐘信號CLK所控制。
當時鐘信號CLK觸發時,則第一個第一D觸發器D10接收到第一批輸入數據I0,同時第一個第二D觸發器D20接收到第一批啟用控制信號E0。當時鐘信號CLK再次觸發時,第二批輸入數據I1以及第二批啟用控制信號E1分別輸入第一個第一D觸發器D10以及第一個第二D觸發器D20,而I0同時輸出至第一個多工器MUX0的一輸入端以及第二個第一D觸發器D11,E0同時輸出至第一個多工器MUX0的啟用控制信號接收端與第二個第二D觸發器D21。此時第一個多工器MUX0根據所接收到啟用控制信號E0的狀態(假設E0為高電平(1))選擇輸出I0,而後將I0傳送至第一個D型鎖存器DG0鎖存,等到時鐘信號Load觸發後將I0輸出,同時I0反饋至第一個多工器MUX0的另一輸入端以當反饋數據,作為下一批數據輸出的選擇。
接著,當時鐘信號CLK再次觸發時,第三批輸入數據I2與第三批啟用控制信號E2分別輸入第一個第一D觸發器D10以及第一個第二D觸發器D20,而I1同時輸出至第一個多工器MUX0的一輸入端以及第二個第一D觸發器D11,E1同時輸出至第一個多工器MUX0的啟用控制信號接收端與第二個第二D觸發器D21,而I0同時輸出至第二個多工器MUX1的一輸入端以及第三個第一D觸發器D12,E0同時輸出至第二個多工器MUX1的啟用控制信號接收端與第三個第二D觸發器D22。此時第一個多工器MUX0根據所接收到啟用控制信號E1的狀態,來選擇要輸出輸入數據I1或是反饋數據I0(亦即若第一個多工器MUX0所接收到的啟用控制信號E1為高電平(1)則選擇輸出I1;若為低電平(0)則選擇輸出I0)。同樣,第二個多工器MUX1也會根據所接收到啟用控制信號E0的狀態,來選擇輸出數據(I0或是先前反饋的輸出數據),最後將第一個多工器MUX0以及第二個多工器MUX1所選擇的數據,分別傳送至第一個D型鎖存器DG0以及第二個D型鎖存器DG1而鎖存,等到時鐘信號Load再次觸發後同時輸出,且其輸出的數據分別反饋至第一個多工器MUX0以及第二個多工器MUX1的另一輸入端,當作反饋數據並作為下一批數據輸出的選擇。往後的數據輸入狀況可依此類推,但應注意的是,M與N皆為大於1的正整數。
圖5表示本發明優選實施例的工作流程圖,其步驟如下所述步驟510輸入清除信號CLR;步驟520輸入一輸入數據流I(I0...IN-3IN-2IN-1)以及一啟用控制信號流E(E0...EN-3EN-2EN-1);步驟530時鐘信號CLK觸發,以使數據流I以及啟用控制信號流E可依照位高低,以每次1位的方式依序輸入第一個第一D觸發器D10以及第一個第二D觸發器D20;步驟540時鐘信號CLK再次觸發,以使先前所獲得的輸入數據Ia(0≤a≤N-1,a為整數)傳送至下一級的第一D觸發器和對應的多工器的輸入端,而啟用控制信號Ea(0≤a≤N-1,a為整數)則傳送至下一級的第二D觸發器和對應的多工器MUX的啟用控制信號接收端;步驟550當對應的多工器MUX收到輸入數據Ia(0≤a≤N-1,a為整數)以及啟用控制信號Ea(0≤a≤N-1,a為整數)後,多工器MUX根據啟用控制信號Ea(0≤a≤N-1,a為整數)的狀態,以選擇要輸出輸入數據Ia(0≤a≤N-1)或是選擇先前所反饋的反饋數據Ia-1(0≤a≤N-1,a為整數);步驟560將多工器MUX所選擇的數據(Ia或Ia-1)傳送至對應D型鎖存器DG鎖存;以及步驟570時鐘信號Load觸發,將所選擇的數據輸出,並反饋至對應的多工器MUX。
以一8位的I/O電路串行轉並行為例,這一8位的串行轉並行I/O電路包含有八個串聯的順序邏輯電路SL(SL0、SL1、SL2、SL3、SL4、SL5、SL6、SL7),包含八個第一D觸發器D1(D10、D11、D12、D13、D14、D15、D16、D17);八個第二D觸發器D2(D20、D21、D22、D23、D24、D25、D26、D27);八個多工器MUX(MUX0、MUX1、MUX2、MUX3、MUX4、MUX5、MUX6、MUX7);以及八個D型鎖存器DG(DG0、DG1、DG2、DG3、DG4、DG5、DG6、DG7)。此外還包括一N位的輸入數據流I(I0...IN-3IN-2IN-1)、一N位的啟用控制信號流E(E0...EN-3EN-2EN-1)、一清除信號CLR、一時鐘信號CLK以及一時鐘信號Load。
其流程圖如圖6所示步驟602輸入清除信號CLR;步驟604N位的輸入數據流I(I0...IN-3IN-2IN-1)以及N位的啟用控制信號流E(E0...EN-3EN-2EN-1)等候輸入;步驟606設定初始值a=0(0 a N-1);步驟608經由時鐘信號CLK的觸發,以使輸入信號Ia以及啟用控制信號Ea分別同步輸入至D10以及D20;步驟610判斷a是否為0。若a為0則執行步驟612,否則執行步驟616;步驟612令a=a+1;
步驟614判斷a是否大於N-1,若是則輸入結束,若否則跳回步驟608;步驟616設定初始值b=a-1且k=0;步驟618將Ib輸入至MUXk以及D1k+1,而Eb則輸入至MUXk以及D2k+1;步驟620判斷b是否為0。若b不為0則執行步驟622,否則執行步驟624;步驟622令b=b-1且k=k+1,隨後跳至步驟618以及步驟620;步驟624多工器根據各自獲得的啟用控制信號,選擇輸入數據或是反饋數據其中之一;步驟626時鐘信號Load觸發,將被選擇的數據送至對應的D型鎖存器存儲;以及步驟628時鐘信號Load再次觸發,以將數據輸出並反饋至對應的多工器。
由表三的8位I/O電路輸出與輸入狀態表可以發現,若只更改一位的數據,則相較於現有技術要寫滿8位數據後才能輸出,本發明的I/O效率提升8倍(只需原來時間的1/8);若欲更改二位的數據,則相較於現有技術,本發明的I/O效率提升4倍(只需原來時間的1/4)。
本發明提供的I/O電路串行轉並行的裝置及方法,無需要等待順序邏輯電路寫滿數據後才一次輸入,也就是說,每輸入一位的數據後,系統可立即輸出,如這一來,只需要將所需要數據位數目輸入完畢即可,因此相較於現有技術必須將順序邏輯電路寫滿後才輸出,速度較快,可以節省時間,提升I/O的效率。
本發明雖以8位I/O電路的優選實施列闡明如上,然而其並分用以限定本發明的精神與發明實體僅止於上述實施例,其可包含任何位的I/O電路,皆涵蓋在本發明的精神之中。所以,在不脫離本發明的精神與範圍內所作的修改,均應包含在所提出的權利要求範圍中。
表1
表2
表權利要求
1.一種順序邏輯電路,包括有一選擇元件,包括有一第一輸入端,用以接收第一輸入信號;一第二輸入端,用以接收第二輸入信號;一啟用控制信號接收端,用以接收一啟用控制信號,以決定該選擇元件選擇該第一輸入信號或該第二輸入信號;以及一輸入端;一第一存儲元件,其輸出端連接至該選擇元件的該第一輸入端,用以將該第一存儲元件的該輸入端所接收的輸入數據傳送至該選擇元件當做該第一輸入信號;一第二存儲元件,其輸出端連接至該選擇元件的該啟用控制信號接收端,用以將該第一存儲元件的該輸入端所接收的該啟用控制信號傳送至該選擇元件;以及一第三存儲元件,其輸入端連接至該選擇元件的輸出端,用以將該選擇元件所選擇的數據加以輸出,並將該選擇元件所輸出的該數據反饋至該選擇元件的該第二輸入端,用以當做下一批數據信號輸出的第二輸入信號選擇。
2.如權利要求1所述的順序邏輯電路,其中當該啟用控制信號為高電平時,該選擇元件選擇該第一輸入信號,用以選擇該第一存儲元件所選擇的該數據當作該第三存儲元件的輸出。
3.一種串行轉並行的輸入/輸出電路,包括有多個選擇元件,其中每一個存儲元件包括有一第一輸入端,用以接收第一輸入信號;一第二輸入端,用以接收第二輸入信號;一啟用控制信號接收端,用以接收一啟用控制信號,決定該選擇元件選擇該第一輸入信號或該第二輸入信號;以及一輸入端;多個第一存儲元件,用以分別接收一輸入數據,其中每一個該第一存儲元件的輸出端分別連接至下一個該第一存儲元件的輸入端,同時連接至對應其中之一該多個選擇元件的該第一輸入端,用以將該第一輸入端所接收的輸入數據傳送至對應的該選擇元件當做該第一輸入信號;多個第二存儲元件,用以分別接收一啟用控制信號,其中每一個該第二存儲元件的輸出端分別連接至下一個該第二存儲元件的輸入端,同時連接至對應其中之一該多個選擇元件的該啟用控制信號接收端,用以將該第二存儲元件所接收的該啟用控制信號傳送至對應的該選擇元件;以及多個第三存儲元件,其中每一個該第三存儲元件的輸入端分別連接至對應其中之一該多個選擇元件的輸出端,用以將對應的該選擇元件所選擇的數據輸出,並將該選擇元件所輸出的數據信號反饋至對應的該選擇元件的該第二輸入端,用以當做下一批該數據信號輸出的該第二輸入信號選擇;其中,該輸入數據信號流的位依序輸入至該第一存儲元件,且當接收到該輸入數據信號後可立即輸出,無需等到該多個第一存儲元件全數寫入數據完畢後才輸出。
4.如權利要求3所述的串行轉並行的輸入/輸出電路,其中當下一個該輸入數據輸入時,該第一存儲元件將已接收到的該輸入數據傳送至下一級的該第一存儲元件。
5.如權利要求3所述的串行轉並行的輸入/輸出電路,其中該啟用控制信號流的依照位高低每次1位依序輸入該第二存儲元件當作為該啟用控制信號,且當下一個啟用控制信號輸入時,該第二存儲元件將已接收到的該啟用控制信號傳送至下一級的該第二存儲元件。
6.如權利要求1所述的串行轉並行的輸入/輸出電路,其中當該第二存儲元件所接收到的啟用信號為高電平時,則對應的該選擇元件選擇該第一輸入信號,用以選擇對應的該第一存儲元件所接收的該輸入數據當作該第三存儲元件的輸出;以及當該第二存儲元件所接收到的啟用信號為低電平時,則對應的該選擇元件選擇該第二輸入信號,用以選擇前一批輸出反饋的反饋數據當作該第三存儲元件的輸出,以使該第三存儲元件的輸出維持不變。
7.一種輸入/輸出電路串行轉並行的方法,包括有輸入一輸入數據;輸入一啟用控制信號;選擇一數據;以及輸出該數據;其中,該輸入數據為一輸入數據流的其中一位,且該輸入數據流依照位高低依序輸入至一串行轉並行的輸入/輸出電路系統中,且每輸入一位的輸入數據,該串行轉並行的輸入/輸出電路系統會立即輸出該輸入數據,無需等待該串行轉並行的輸入/輸出電路系統將全數的該輸入數據寫入完畢後才輸出。
8.如權利要求7所述的輸入/輸出電路串行轉並行的方法,其中前一批輸出的數據會反饋至該串行轉並行的輸入/輸出電路系統中,且該串行轉並行的輸入/輸出電路系統選擇輸出該輸入數據或是選擇輸出該反饋數據。
9.如權利要求7所述的輸入/輸出存儲電路串行轉並行的方法,其中該啟用控制信號為一啟用控制信號流的其中一位,且該啟用控制信號流依照位高低依序輸入至該串行轉並行的輸入/輸出電路系統中。
10.如權利要求7所述的輸入/輸出電路串行轉並行的方法,其中當該啟用控制信號為高電平時,該串行轉並行的輸入/輸出電路系統選擇該輸入數據當作其輸出;以及當該啟用控制信號為低電平時,該串行轉並行的輸入/輸出電路系統選擇該反饋數據當作其輸出,亦即輸出為持不變。
全文摘要
本發明的串行轉並行I/O電路裝置包括有M個順序邏輯電路;每一個順序邏輯電路皆包括有一第一D觸發器,用以接收一位的輸入數據,此外每一個第一D觸發器的輸出連接到下一級第一D觸發器的輸入;一第二D觸發器,用以接收一位的啟用控制信號,此外每一個第二D觸發器的輸出連接到下一級第二D觸發器的輸入;一多工器,包含有兩個輸入端與一啟用控制信號接收端,一輸入端接收第一D觸發器所接收的輸入數據,該啟用控制信號接收端,用以接收第二個D觸發器所接收的啟用控制信號;以及一D型選通鎖存器,用以將數據輸出,且其所輸出的數據會反饋至多工器的另一個輸入端,用以當做下一批數據輸入時,數據輸出的選擇。
文檔編號H03M9/00GK1808910SQ20061000502
公開日2006年7月26日 申請日期2006年1月18日 優先權日2005年8月26日
發明者李政道 申請人:威盛電子股份有限公司