文獻(xiàn)標(biāo)識碼: 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ù)字信號傳輸途徑,在SPI、I2C、UART等接口協(xié)議及高速SERDES、PCIE等通信接口上具有廣泛的應(yīng)用。在近年來的集成電路發(fā)展中,針對并串轉(zhuǎn)換電路的設(shè)計主要有三種途徑,分別是采用集成電路定制的設(shè)計方式、基于可編程邏輯陣列(Field Programmable Gate Array,F(xiàn)PGA)的設(shè)計方式以及采用軟件的設(shè)計方式?;诩呻娐范ㄖ频牟⒋D(zhuǎn)換電路設(shè)計方式由于流片成本高昂,通常僅應(yī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è)計方式通常只適應(yīng)于傳輸速率要求較低的場合,同時由于軟件設(shè)計方式通常要占用處理器的時間,在頻繁通信的場合會降低處理器的性能?;贔PGA的并串轉(zhuǎn)換電路實(shí)現(xiàn)由于能夠很好的在成本和性能之間取得一個折中,因而獲得了廣泛的發(fā)展,如在SPI[6]、I2C[7-8]等接口協(xié)議中的應(yīng)用。
在基于FPGA的并串轉(zhuǎn)換電路實(shí)現(xiàn)中,采用計數(shù)器的方法來實(shí)現(xiàn)并串轉(zhuǎn)換電路是應(yīng)用最多的方法,如孫志雄等采用計數(shù)器的方法實(shí)現(xiàn)了16位輸入/8位數(shù)據(jù)輸出的并串轉(zhuǎn)換電路設(shè)計及仿真[9],王沖等采用計數(shù)器的方法實(shí)現(xiàn)了9位的并串轉(zhuǎn)換電路設(shè)計[10],王鵬等采用計數(shù)器的方法實(shí)現(xiàn)了N位的并串轉(zhuǎn)換電路設(shè)計[11],薛沛祥等采用計數(shù)器的方法實(shí)現(xiàn)了任意位的并串轉(zhuǎn)換電路設(shè)計[12]。由于在基于FPGA的設(shè)計中,資源使用與速度是一對矛盾體,因而如何根據(jù)具體的應(yīng)用需求以最小的資源來獲得最大的性能是工程設(shè)計的目標(biāo)[13]。
針對不同的應(yīng)用需求,基于FPGA對不同的并串轉(zhuǎn)換電路進(jìn)行了硬件實(shí)現(xiàn),分別比較分析了采用移位寄存器、計數(shù)器及組合邏輯條件判定三種并串轉(zhuǎn)換硬件電路結(jié)構(gòu)的資源消耗與速度性能,并通過設(shè)計仿真對并串轉(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)域。采用計數(shù)器的并串轉(zhuǎn)換電路實(shí)現(xiàn)方法具有最優(yōu)的性價比表現(xiàn),具有資源與速度的綜合能力優(yōu)勢。采用組合邏輯條件判定的并串轉(zhuǎn)換電路實(shí)現(xiàn)方法在一些對寄存器資源有嚴(yán)格限定的場合具有較高的應(yīng)用價值。
1 硬件實(shí)現(xiàn)結(jié)構(gòu)
資源和性能是硬件電路結(jié)構(gòu)的一對矛盾體,如何設(shè)計更好的硬件電路結(jié)構(gòu)使其資源使用更小、性能更高成為研究者的追求目標(biāo)。基于FPGA的并串轉(zhuǎn)換電路有不同的硬件實(shí)現(xiàn)結(jié)構(gòu),為了在其資源使用和性能之間找到一個最優(yōu)的平衡,分析比較了三種不同的并串轉(zhuǎn)換電路硬件結(jié)構(gòu),分別如圖1、圖2和圖3所示。
方法1的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)結(jié)構(gòu)采用了移位寄存器的設(shè)計方案,通過設(shè)計N個移位寄存器,并初始化為0,在每個時鐘周期左移一個寄存器(置1),來控制串行輸出數(shù)據(jù)的位寬。這種設(shè)計方案由于組合邏輯設(shè)計較少,因而關(guān)鍵路徑的延遲理論上會更短,整個硬件電路的速度會更高。
方法2的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)結(jié)構(gòu)采用了計數(shù)器累加的設(shè)計方案,通過設(shè)計一個位寬為log2N的計數(shù)器,進(jìn)行N次累加后來控制串行輸出數(shù)據(jù)的位寬。這種設(shè)計方案減少了寄存器資源的使用量,其關(guān)鍵路徑由組合邏輯的加法器決定,關(guān)鍵路徑延遲會比方法1更長一些。
方法3的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)結(jié)構(gòu)采用了組合邏輯條件判定的設(shè)計方案,通過對N位并行輸入的數(shù)據(jù)依據(jù)奇偶特性進(jìn)行位與及位或組合邏輯判定,進(jìn)而來對串行輸出數(shù)據(jù)的位寬進(jìn)行控制。這種設(shè)計方案在硬件描述語言代碼上顯得更簡單點(diǎn),其寄存器資源使用與方法2相差不大,但由于采用了更多的組合邏輯運(yùn)算,因而其關(guān)鍵路徑延遲在三種方法中應(yīng)當(dāng)是最長的。
2 設(shè)計仿真驗(yàn)證
并串轉(zhuǎn)換硬件電路采用模塊化和層次化的設(shè)計思路,基于相同的代碼設(shè)計層次(如圖4所示)對三種不同的硬件實(shí)現(xiàn)結(jié)構(gòu)進(jìn)行設(shè)計,以便盡可能地對模塊進(jìn)行復(fù)用。在代碼設(shè)計層次中,并行輸入數(shù)據(jù)的位寬由參數(shù)文件進(jìn)行定義,頂層仿真文件和硬件電路實(shí)現(xiàn)文件通過對參數(shù)文件進(jìn)行引用來實(shí)現(xiàn)參數(shù)的傳遞。
設(shè)計仿真流程如圖5所示,采用Verilog硬件描述語言對上述三種不同的并串轉(zhuǎn)換硬件電路結(jié)構(gòu)進(jìn)行了設(shè)計實(shí)現(xiàn),并基于Quartus Prime 16.0、Modelsim SE 10.2c及Debussy 5.4v9對設(shè)計電路進(jìn)行了綜合、仿真和驗(yàn)證。圖6展示了采用方法2并串轉(zhuǎn)換硬件電路結(jié)構(gòu)的功能仿真結(jié)果,仿真結(jié)果表明并串轉(zhuǎn)換硬件電路設(shè)計達(dá)到了預(yù)期的功能。
3 實(shí)驗(yàn)結(jié)果及分析
為了對不同硬件電路結(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)消耗的邏輯資源也在線性增加。同時,方法1消耗的邏輯資源最多、方法3其次、方法2最少。這是由它們的硬件實(shí)現(xiàn)結(jié)構(gòu)決定的,方法1中采用了移位寄存器的實(shí)現(xiàn)結(jié)構(gòu),相比于方法2中采用的計數(shù)器實(shí)現(xiàn)結(jié)構(gòu)在同等數(shù)據(jù)位寬條件下需要更多的邏輯資源來表征數(shù)據(jù)狀態(tài)的變化。而方法3中采用的是組合邏輯條件判定硬件實(shí)現(xiàn)結(jié)構(gòu),相比方法2使用了更多的邏輯資源,但比方法1的邏輯資源使用量要低。
不同硬件實(shí)現(xiàn)方法寄存器資源隨位寬的變化如圖8所示,當(dāng)數(shù)據(jù)位寬越大時,其消耗的寄存器資源更多。其中,方法1由于采用了移位寄存器的實(shí)現(xiàn)結(jié)構(gòu),消耗的寄存器資源最多。而方法2和方法3中消耗的寄存器資源相差不大。
不同硬件實(shí)現(xiàn)方法最高綜合速度隨位寬的變化如圖9所示。隨著位寬的增加,其消耗的邏輯與寄存器資源越來越多,能夠工作的最高工作頻率也逐漸降低。從圖中可以發(fā)現(xiàn),方法3的最高工作頻率相對最低,這是由于方法3中采用了組合邏輯條件判定硬件實(shí)現(xiàn)結(jié)構(gòu),其關(guān)鍵路徑延遲相對最長。
為了從成本和性能兩個方面對方法1、方法2和方法3的硬件實(shí)現(xiàn)結(jié)構(gòu)進(jìn)行綜合的比較和評估,采用式(1)所示的加權(quán)等效評估方法。式(1)中S∈{Cost_A,Cost_R,Speed},其中Cost_A和Cost_R分別表示某種硬件實(shí)現(xiàn)結(jié)構(gòu)消耗的等效邏輯資源及寄存器資源。Speed則表示某種硬件實(shí)現(xiàn)結(jié)構(gòu)通過綜合工具綜合后能夠達(dá)到的最高綜合速度。N表示不同位寬硬件結(jié)構(gòu)的總個數(shù),其中n=1,2,…,N。an表示在第n中位寬條件下硬件實(shí)現(xiàn)結(jié)構(gòu)消耗的資源或者綜合的性能。
采用式(1)所示的評估方法對不同的硬件實(shí)現(xiàn)方法進(jìn)行等效評估,比較結(jié)果如表1所示。從表中可以看出,方法1具有最高的性能優(yōu)勢,但其消耗的資源也是最多的。表1中同時列出了不同硬件實(shí)現(xiàn)結(jié)構(gòu)速度與成本的比值,方法2具有最好的效費(fèi)比,其在單位邏輯資源和單位寄存器資源下能夠貢獻(xiàn)最多的速度性能。
通過上述對不同硬件實(shí)現(xiàn)結(jié)構(gòu)的對比及分析,可以發(fā)現(xiàn)方法2在硬件實(shí)現(xiàn)結(jié)構(gòu)的成本與性能之間具有最優(yōu)的平衡特性,因而可以在SPI、I2C、UART等接口協(xié)議以及集成電路老化試驗(yàn)激勵加載等對速度要求不高的領(lǐng)域中廣泛應(yīng)用。同時,在對傳輸速率要求很高的應(yīng)用領(lǐng)域中,則需要優(yōu)先選擇方法1的硬件實(shí)現(xiàn)結(jié)構(gòu)。
4 結(jié)論
并串轉(zhuǎn)換電路在集成電路芯片驅(qū)動、老化試驗(yàn)信號激勵、SPI、I2C及UART等接口協(xié)議數(shù)據(jù)傳輸領(lǐng)域具有廣泛的應(yīng)用,基于FPGA的并串轉(zhuǎn)換電路實(shí)現(xiàn)由于具備可編程、靈活等特點(diǎn)在集成電路測試驗(yàn)證中獲得了更多的關(guān)注。針對基于FPGA的并串轉(zhuǎn)換電路資源使用和性能之間的矛盾,對比分析了三種不同方法的并串轉(zhuǎn)換電路硬件實(shí)現(xiàn)結(jié)構(gòu)。實(shí)驗(yàn)結(jié)果表明采用計數(shù)器的并串轉(zhuǎn)換硬件電路結(jié)構(gòu)在資源使用和性能之間具有最好的性價比,采用移位寄存器的并串轉(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].廣西師范學(xué)院學(xué)報(自然科學(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é)報,2002,23(1):70-76.
[6] 王玨文,金偉信,蔡一兵,等.基于FPGA的SPI總線接口的實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2010,(14):102-104.
[7] 張家會,熊先越,曾麗珍.基于FPGA的I2C總線設(shè)計[J].光通信技術(shù),2011 (9):40-41.
[8] 鐘小敏,王小峰.I2C總線接口協(xié)議設(shè)計與FPGA實(shí)現(xiàn)[J].現(xiàn)代導(dǎo)航,2016 (4):291-294.
[9] 孫志雄,謝海霞.基于FPGA的高速串并/并串轉(zhuǎn)換器設(shè)計[J].現(xiàn)代電子技術(shù),2014,37(8):151-152.
[10] 王沖,汪寶祥.基于FPGA的串行通訊接口設(shè)計[J].微處理機(jī),2016 (3):73-76,80.
[11] 王鵬,程蕓,董書莉.基于FPGA的多格式數(shù)據(jù)傳輸設(shè)計[J].電子測量技術(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)