文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.172005
中文引用格式: 劉焱,,周圣澤,羅軍,,等. 基于FPGA的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2017,43(12):21-24,,28.
英文引用格式: Liu Yan,,Zhou Shengze,Luo Jun,,et al. Hardware implementation of parallel-to-serial circuit based on FPGA[J].Application of Electronic Technique,,2017,,43(12):21-24,28.
0 引言
并串轉(zhuǎn)換電路作為一種重要的數(shù)字信號(hào)傳輸途徑,,在SPI、I2C,、UART等接口協(xié)議及高速SERDES,、PCIE等通信接口上具有廣泛的應(yīng)用。在近年來(lái)的集成電路發(fā)展中,,針對(duì)并串轉(zhuǎn)換電路的設(shè)計(jì)主要有三種途徑,,分別是采用集成電路定制的設(shè)計(jì)方式、基于可編程邏輯陣列(Field Programmable Gate Array,,F(xiàn)PGA)的設(shè)計(jì)方式以及采用軟件的設(shè)計(jì)方式,。基于集成電路定制的并串轉(zhuǎn)換電路設(shè)計(jì)方式由于流片成本高昂,,通常僅應(yīng)用在一些對(duì)傳輸速率要求非常高的場(chǎng)合,,如1.25 Gbps的并串轉(zhuǎn)換集成電路[1-2]、2.5 Gbps的PCIE并串轉(zhuǎn)換電路[3],、1.25 GHz的差分收發(fā)芯片[4]以及4G高速并串轉(zhuǎn)換電路[5]等,。而采用軟件的并串轉(zhuǎn)換設(shè)計(jì)方式通常只適應(yīng)于傳輸速率要求較低的場(chǎng)合,同時(shí)由于軟件設(shè)計(jì)方式通常要占用處理器的時(shí)間,,在頻繁通信的場(chǎng)合會(huì)降低處理器的性能,。基于FPGA的并串轉(zhuǎn)換電路實(shí)現(xiàn)由于能夠很好的在成本和性能之間取得一個(gè)折中,,因而獲得了廣泛的發(fā)展,,如在SPI[6]、I2C[7-8]等接口協(xié)議中的應(yīng)用,。
在基于FPGA的并串轉(zhuǎn)換電路實(shí)現(xiàn)中,,采用計(jì)數(shù)器的方法來(lái)實(shí)現(xiàn)并串轉(zhuǎn)換電路是應(yīng)用最多的方法,如孫志雄等采用計(jì)數(shù)器的方法實(shí)現(xiàn)了16位輸入/8位數(shù)據(jù)輸出的并串轉(zhuǎn)換電路設(shè)計(jì)及仿真[9],,王沖等采用計(jì)數(shù)器的方法實(shí)現(xiàn)了9位的并串轉(zhuǎn)換電路設(shè)計(jì)[10],,王鵬等采用計(jì)數(shù)器的方法實(shí)現(xiàn)了N位的并串轉(zhuǎn)換電路設(shè)計(jì)[11],,薛沛祥等采用計(jì)數(shù)器的方法實(shí)現(xiàn)了任意位的并串轉(zhuǎn)換電路設(shè)計(jì)[12]。由于在基于FPGA的設(shè)計(jì)中,,資源使用與速度是一對(duì)矛盾體,,因而如何根據(jù)具體的應(yīng)用需求以最小的資源來(lái)獲得最大的性能是工程設(shè)計(jì)的目標(biāo)[13]。
針對(duì)不同的應(yīng)用需求,,基于FPGA對(duì)不同的并串轉(zhuǎn)換電路進(jìn)行了硬件實(shí)現(xiàn),分別比較分析了采用移位寄存器,、計(jì)數(shù)器及組合邏輯條件判定三種并串轉(zhuǎn)換硬件電路結(jié)構(gòu)的資源消耗與速度性能,,并通過(guò)設(shè)計(jì)仿真對(duì)并串轉(zhuǎn)換硬件電路的功能進(jìn)行了驗(yàn)證。實(shí)驗(yàn)結(jié)果表明采用移位寄存器的并串轉(zhuǎn)換電路實(shí)現(xiàn)方法具有最優(yōu)的速度性能表現(xiàn),,可適應(yīng)于高速應(yīng)用的領(lǐng)域,。采用計(jì)數(shù)器的并串轉(zhuǎn)換電路實(shí)現(xiàn)方法具有最優(yōu)的性價(jià)比表現(xiàn),具有資源與速度的綜合能力優(yōu)勢(shì),。采用組合邏輯條件判定的并串轉(zhuǎn)換電路實(shí)現(xiàn)方法在一些對(duì)寄存器資源有嚴(yán)格限定的場(chǎng)合具有較高的應(yīng)用價(jià)值,。
1 硬件實(shí)現(xiàn)結(jié)構(gòu)
資源和性能是硬件電路結(jié)構(gòu)的一對(duì)矛盾體,如何設(shè)計(jì)更好的硬件電路結(jié)構(gòu)使其資源使用更小,、性能更高成為研究者的追求目標(biāo),。基于FPGA的并串轉(zhuǎn)換電路有不同的硬件實(shí)現(xiàn)結(jié)構(gòu),,為了在其資源使用和性能之間找到一個(gè)最優(yōu)的平衡,,分析比較了三種不同的并串轉(zhuǎn)換電路硬件結(jié)構(gòu),分別如圖1,、圖2和圖3所示,。
方法1的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)結(jié)構(gòu)采用了移位寄存器的設(shè)計(jì)方案,通過(guò)設(shè)計(jì)N個(gè)移位寄存器,,并初始化為0,,在每個(gè)時(shí)鐘周期左移一個(gè)寄存器(置1),來(lái)控制串行輸出數(shù)據(jù)的位寬,。這種設(shè)計(jì)方案由于組合邏輯設(shè)計(jì)較少,,因而關(guān)鍵路徑的延遲理論上會(huì)更短,整個(gè)硬件電路的速度會(huì)更高,。
方法2的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)結(jié)構(gòu)采用了計(jì)數(shù)器累加的設(shè)計(jì)方案,,通過(guò)設(shè)計(jì)一個(gè)位寬為log2N的計(jì)數(shù)器,進(jìn)行N次累加后來(lái)控制串行輸出數(shù)據(jù)的位寬,。這種設(shè)計(jì)方案減少了寄存器資源的使用量,,其關(guān)鍵路徑由組合邏輯的加法器決定,關(guān)鍵路徑延遲會(huì)比方法1更長(zhǎng)一些,。
方法3的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)結(jié)構(gòu)采用了組合邏輯條件判定的設(shè)計(jì)方案,,通過(guò)對(duì)N位并行輸入的數(shù)據(jù)依據(jù)奇偶特性進(jìn)行位與及位或組合邏輯判定,,進(jìn)而來(lái)對(duì)串行輸出數(shù)據(jù)的位寬進(jìn)行控制。這種設(shè)計(jì)方案在硬件描述語(yǔ)言代碼上顯得更簡(jiǎn)單點(diǎn),,其寄存器資源使用與方法2相差不大,,但由于采用了更多的組合邏輯運(yùn)算,因而其關(guān)鍵路徑延遲在三種方法中應(yīng)當(dāng)是最長(zhǎng)的,。
2 設(shè)計(jì)仿真驗(yàn)證
并串轉(zhuǎn)換硬件電路采用模塊化和層次化的設(shè)計(jì)思路,,基于相同的代碼設(shè)計(jì)層次(如圖4所示)對(duì)三種不同的硬件實(shí)現(xiàn)結(jié)構(gòu)進(jìn)行設(shè)計(jì),以便盡可能地對(duì)模塊進(jìn)行復(fù)用,。在代碼設(shè)計(jì)層次中,,并行輸入數(shù)據(jù)的位寬由參數(shù)文件進(jìn)行定義,頂層仿真文件和硬件電路實(shí)現(xiàn)文件通過(guò)對(duì)參數(shù)文件進(jìn)行引用來(lái)實(shí)現(xiàn)參數(shù)的傳遞,。
設(shè)計(jì)仿真流程如圖5所示,,采用Verilog硬件描述語(yǔ)言對(duì)上述三種不同的并串轉(zhuǎn)換硬件電路結(jié)構(gòu)進(jìn)行了設(shè)計(jì)實(shí)現(xiàn),并基于Quartus Prime 16.0,、Modelsim SE 10.2c及Debussy 5.4v9對(duì)設(shè)計(jì)電路進(jìn)行了綜合,、仿真和驗(yàn)證。圖6展示了采用方法2并串轉(zhuǎn)換硬件電路結(jié)構(gòu)的功能仿真結(jié)果,,仿真結(jié)果表明并串轉(zhuǎn)換硬件電路設(shè)計(jì)達(dá)到了預(yù)期的功能,。
3 實(shí)驗(yàn)結(jié)果及分析
為了對(duì)不同硬件電路結(jié)構(gòu)的資源使用和性能進(jìn)行分析,實(shí)驗(yàn)選取了不同位寬的并行輸入數(shù)據(jù)進(jìn)行了綜合,。圖7中展示了不同硬件實(shí)現(xiàn)方法消耗的邏輯資源隨數(shù)據(jù)位寬變化的影響,,從圖中可以發(fā)現(xiàn)隨著硬件結(jié)構(gòu)位寬的線性增加,其硬件實(shí)現(xiàn)消耗的邏輯資源也在線性增加,。同時(shí),,方法1消耗的邏輯資源最多、方法3其次,、方法2最少,。這是由它們的硬件實(shí)現(xiàn)結(jié)構(gòu)決定的,方法1中采用了移位寄存器的實(shí)現(xiàn)結(jié)構(gòu),,相比于方法2中采用的計(jì)數(shù)器實(shí)現(xiàn)結(jié)構(gòu)在同等數(shù)據(jù)位寬條件下需要更多的邏輯資源來(lái)表征數(shù)據(jù)狀態(tài)的變化,。而方法3中采用的是組合邏輯條件判定硬件實(shí)現(xiàn)結(jié)構(gòu),相比方法2使用了更多的邏輯資源,,但比方法1的邏輯資源使用量要低,。
不同硬件實(shí)現(xiàn)方法寄存器資源隨位寬的變化如圖8所示,當(dāng)數(shù)據(jù)位寬越大時(shí),,其消耗的寄存器資源更多,。其中,方法1由于采用了移位寄存器的實(shí)現(xiàn)結(jié)構(gòu),消耗的寄存器資源最多,。而方法2和方法3中消耗的寄存器資源相差不大,。
不同硬件實(shí)現(xiàn)方法最高綜合速度隨位寬的變化如圖9所示。隨著位寬的增加,,其消耗的邏輯與寄存器資源越來(lái)越多,,能夠工作的最高工作頻率也逐漸降低。從圖中可以發(fā)現(xiàn),,方法3的最高工作頻率相對(duì)最低,,這是由于方法3中采用了組合邏輯條件判定硬件實(shí)現(xiàn)結(jié)構(gòu),其關(guān)鍵路徑延遲相對(duì)最長(zhǎng),。
為了從成本和性能兩個(gè)方面對(duì)方法1,、方法2和方法3的硬件實(shí)現(xiàn)結(jié)構(gòu)進(jìn)行綜合的比較和評(píng)估,采用式(1)所示的加權(quán)等效評(píng)估方法,。式(1)中S∈{Cost_A,Cost_R,,Speed},,其中Cost_A和Cost_R分別表示某種硬件實(shí)現(xiàn)結(jié)構(gòu)消耗的等效邏輯資源及寄存器資源。Speed則表示某種硬件實(shí)現(xiàn)結(jié)構(gòu)通過(guò)綜合工具綜合后能夠達(dá)到的最高綜合速度,。N表示不同位寬硬件結(jié)構(gòu)的總個(gè)數(shù),,其中n=1,2,,…,,N。an表示在第n中位寬條件下硬件實(shí)現(xiàn)結(jié)構(gòu)消耗的資源或者綜合的性能,。
采用式(1)所示的評(píng)估方法對(duì)不同的硬件實(shí)現(xiàn)方法進(jìn)行等效評(píng)估,,比較結(jié)果如表1所示。從表中可以看出,,方法1具有最高的性能優(yōu)勢(shì),,但其消耗的資源也是最多的。表1中同時(shí)列出了不同硬件實(shí)現(xiàn)結(jié)構(gòu)速度與成本的比值,,方法2具有最好的效費(fèi)比,,其在單位邏輯資源和單位寄存器資源下能夠貢獻(xiàn)最多的速度性能。
通過(guò)上述對(duì)不同硬件實(shí)現(xiàn)結(jié)構(gòu)的對(duì)比及分析,,可以發(fā)現(xiàn)方法2在硬件實(shí)現(xiàn)結(jié)構(gòu)的成本與性能之間具有最優(yōu)的平衡特性,,因而可以在SPI、I2C,、UART等接口協(xié)議以及集成電路老化試驗(yàn)激勵(lì)加載等對(duì)速度要求不高的領(lǐng)域中廣泛應(yīng)用,。同時(shí),在對(duì)傳輸速率要求很高的應(yīng)用領(lǐng)域中,則需要優(yōu)先選擇方法1的硬件實(shí)現(xiàn)結(jié)構(gòu),。
4 結(jié)論
并串轉(zhuǎn)換電路在集成電路芯片驅(qū)動(dòng),、老化試驗(yàn)信號(hào)激勵(lì)、SPI,、I2C及UART等接口協(xié)議數(shù)據(jù)傳輸領(lǐng)域具有廣泛的應(yīng)用,,基于FPGA的并串轉(zhuǎn)換電路實(shí)現(xiàn)由于具備可編程、靈活等特點(diǎn)在集成電路測(cè)試驗(yàn)證中獲得了更多的關(guān)注,。針對(duì)基于FPGA的并串轉(zhuǎn)換電路資源使用和性能之間的矛盾,,對(duì)比分析了三種不同方法的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)結(jié)構(gòu)。實(shí)驗(yàn)結(jié)果表明采用計(jì)數(shù)器的并串轉(zhuǎn)換硬件電路結(jié)構(gòu)在資源使用和性能之間具有最好的性價(jià)比,,采用移位寄存器的并串轉(zhuǎn)換電路結(jié)構(gòu)具有最優(yōu)的速度表現(xiàn),。
參考文獻(xiàn)
[1] 趙文虎,王志功,,吳微,,等.1.25 Gbps并串轉(zhuǎn)換CMOS集成電路[J].固體電子學(xué)研究與進(jìn)展,2003,,23(1):73-78.
[2] 郭亞煒,,張占鵬,章奕民,,等.一種1.25 Gbps CMOS以太網(wǎng)串并/并串轉(zhuǎn)換電路[J].微電子學(xué),,2003,33(1):54-55,,59.
[3] 黃佳.高性能2.5 Gbps PCI Express并串轉(zhuǎn)換電路的設(shè)計(jì)[J].廣西師范學(xué)院學(xué)報(bào)(自然科學(xué)版),,2009,26(3):55-59.
[4] 楊毓軍,,王永祿,,周述濤.一種超高速并串轉(zhuǎn)換電路的新實(shí)現(xiàn)方式[J].微電子學(xué),2006,,36(2):145-147,,153.
[5] 朱正,邱祖江,,任俊彥,,等.一種全CMOS工藝吉比特以太網(wǎng)串并-并串轉(zhuǎn)換電路[J].通信學(xué)報(bào),2002,,23(1):70-76.
[6] 王玨文,,金偉信,蔡一兵,,等.基于FPGA的SPI總線接口的實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),,2010,(14):102-104.
[7] 張家會(huì),熊先越,,曾麗珍.基于FPGA的I2C總線設(shè)計(jì)[J].光通信技術(shù),,2011 (9):40-41.
[8] 鐘小敏,王小峰.I2C總線接口協(xié)議設(shè)計(jì)與FPGA實(shí)現(xiàn)[J].現(xiàn)代導(dǎo)航,,2016 (4):291-294.
[9] 孫志雄,,謝海霞.基于FPGA的高速串并/并串轉(zhuǎn)換器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,,37(8):151-152.
[10] 王沖,,汪寶祥.基于FPGA的串行通訊接口設(shè)計(jì)[J].微處理機(jī),2016 (3):73-76,,80.
[11] 王鵬,,程蕓,董書(shū)莉.基于FPGA的多格式數(shù)據(jù)傳輸設(shè)計(jì)[J].電子測(cè)量技術(shù),,2014,,37(1):70-75.
[12] 薛沛祥,宋志剛,,李墩泰.基于串行通信的任意位數(shù)據(jù)傳輸?shù)膙erilog實(shí)現(xiàn)方式[J].電子科學(xué)技術(shù),,2014,1(1):50-54.
[13] JUN L,,QIJUN H,SHENG C,,et al.High throughput Cholesky decomposition based on FPGA[C].6th International Congress on Image and Signal Processing,,2013:1649-1653.
作者信息:
劉 焱,周圣澤,,羅 軍,,王小強(qiáng),羅宏偉
(工業(yè)和信息化部電子第五研究所,,廣東 廣州510610)