李瑞娟 陸大同
(1.柳州職業(yè)技術(shù)學(xué)院,廣西 柳州 545006;2.百色職業(yè)學(xué)院,廣西 百色 533000)
電子設(shè)計(jì)自動(dòng)化(英文簡(jiǎn)稱 EDA,全稱為:Electronic Design Automation),它是一種集成計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)等技術(shù)的設(shè)計(jì)平臺(tái)。該平臺(tái)是對(duì)傳統(tǒng)的電子設(shè)計(jì)方法、工具等進(jìn)行徹底的變革與創(chuàng)新的產(chǎn)物,它的出現(xiàn)推動(dòng)了EDA的快速發(fā)展。作為一種設(shè)計(jì)平臺(tái),EDA具有良好的通用性,設(shè)計(jì)者可以在EDA軟件平臺(tái)上,利用硬件描述語言VHDL完成項(xiàng)目的整體設(shè)計(jì)工作,通過計(jì)算機(jī)自動(dòng)地完成邏輯編譯和化簡(jiǎn)任務(wù),最后實(shí)現(xiàn)項(xiàng)目的優(yōu)化、布局和仿真。EDA技術(shù)的出現(xiàn),對(duì)電子設(shè)計(jì)領(lǐng)域是一個(gè)革新的突破,通過EDA的應(yīng)用使得電路設(shè)計(jì)的效率和可操作性得到提高,大大減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。
開展EDA實(shí)驗(yàn)對(duì)提高使用者理解EDA設(shè)計(jì)的原理和方法、提高EDA應(yīng)用技術(shù)有著十分重要的輔助作用。然而,目前人們?cè)陂_展各種實(shí)驗(yàn)的過程中發(fā)現(xiàn),隨著人們需要進(jìn)行的實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)種類不一樣,所需要的實(shí)驗(yàn)平臺(tái)也完全不同。具體而言,主要分三類實(shí)驗(yàn)平臺(tái),分別是基于單片機(jī)的實(shí)驗(yàn)平臺(tái)、基于DSP的實(shí)驗(yàn)平臺(tái)和基于FPGA的實(shí)驗(yàn)平臺(tái)。這三類實(shí)驗(yàn)平臺(tái)側(cè)重點(diǎn)各不相同:基于單片機(jī)的實(shí)驗(yàn)平臺(tái)更多的是為用戶提供綜合性的計(jì)算和控制資源,使得用戶理解和掌握微控制器的運(yùn)行原理和能夠完成的基本的控制功能。基于DSP的實(shí)驗(yàn)平臺(tái)更多地是為用戶提供高性能的計(jì)算服務(wù),使用戶能夠?qū)崿F(xiàn)諸如圖像處理、高性能計(jì)算等一些典型的應(yīng)用服務(wù)。而基于FPGA的實(shí)驗(yàn)平臺(tái)則主要為用戶提供豐富的可編程邏輯資源,使用戶能夠根據(jù)實(shí)際的應(yīng)用需求靈活地開發(fā)各種組合或者時(shí)序邏輯電路,完成特定的應(yīng)用需求。然而,在這三類實(shí)驗(yàn)平臺(tái)中,其完成的功能和平臺(tái)結(jié)構(gòu)有很大的相似性。為了提高實(shí)驗(yàn)平臺(tái)的利用率,可以利用單片可編程邏輯器件強(qiáng)大而豐富的計(jì)算資源和控制資源,開發(fā)設(shè)計(jì)可重構(gòu)的EDA實(shí)驗(yàn)平臺(tái),以滿足用戶對(duì)這三類不同的實(shí)驗(yàn)平臺(tái)的應(yīng)用需求。
根據(jù)上述的實(shí)際情況,本文設(shè)計(jì)如圖 1所示的可重構(gòu)EDA實(shí)驗(yàn)平臺(tái),在該實(shí)驗(yàn)平臺(tái)中包含兩片F(xiàn)PGA芯片分別充當(dāng)主處理器和從處理器的功能,在FPGA芯片外圍包括由存儲(chǔ)芯片、兩片配置存儲(chǔ)芯片、線號(hào)驅(qū)動(dòng)電路、LCD接口、LED接口、鍵盤接口、鼠標(biāo)接口、RS232接口、I2C接口、SPI接口、網(wǎng)線接口、A/D轉(zhuǎn)換芯片以及JTAG電源模塊[1]。
從圖1可看出,可重構(gòu)EDA實(shí)驗(yàn)平臺(tái)從各芯片和電路模塊的連接關(guān)系,首先主處理芯片和從處理芯片之間通過IO接口實(shí)現(xiàn)數(shù)據(jù)的傳輸和交換,主 FPGA芯片主要完成可重構(gòu)EDACM平臺(tái)中的主要的計(jì)算和控制任務(wù),從處理芯片主要完成各種接口信號(hào)的數(shù)據(jù)結(jié)構(gòu)格式轉(zhuǎn)換及數(shù)據(jù)鎖存等功能,因此在硬件連線上主處理FPGA芯片分別連接主存儲(chǔ)器A/D轉(zhuǎn)換芯片、從處理FPGA芯片。
而從處理FPGA芯片連接的功能模塊包括有驅(qū)動(dòng)電路、LCD接口電路、LED接口、鍵盤接口、鼠標(biāo)接口、RS232接口、I2C接口、SPI接口和網(wǎng)線接口,除此之外JTAG接口和兩片配置存儲(chǔ)芯片分別連接主處理 FPGA芯片和從處理FPGA芯片。JTAG接口為兩片F(xiàn)PGA芯片程序下載及更新提供數(shù)據(jù)訪問通道,兩片配置存儲(chǔ)芯片分別存儲(chǔ)主 FPGA芯片和從FPGA芯片的運(yùn)行程序。
主處理FPGA芯片在運(yùn)行過程中既可以使用FPGA內(nèi)部自帶的存儲(chǔ)區(qū)域,也可以通過主存儲(chǔ)器存放 FPGA運(yùn)行過程中所需要的存儲(chǔ)空間,因此主處理 FPGA芯片和主存儲(chǔ)器之間構(gòu)成一個(gè)最小的核心處理單元,其功能類似于嵌入式實(shí)驗(yàn)平臺(tái)中的處理器和存儲(chǔ)器之間的關(guān)系。A / D轉(zhuǎn)換芯片為實(shí)驗(yàn)平臺(tái)提供模擬信號(hào)向數(shù)字信號(hào)轉(zhuǎn)換的功能,能夠使該EDA實(shí)驗(yàn)平臺(tái)完成一些需要對(duì)模擬信號(hào)采樣和處理的實(shí)驗(yàn)應(yīng)用場(chǎng)合,擴(kuò)大了可重構(gòu)EDA實(shí)驗(yàn)平臺(tái)的應(yīng)用范圍。從處理FPGA芯片連接的多種接口電路使得該EDA實(shí)驗(yàn)平臺(tái)能夠滿足不同的外圍接口電路模塊的連接和數(shù)據(jù)訪問等功能,為該實(shí)驗(yàn)平臺(tái)通過重構(gòu)滿足多樣化的實(shí)驗(yàn)應(yīng)用需求提供支持[2]。

圖1 可重構(gòu)EDA實(shí)驗(yàn)平臺(tái)內(nèi)部結(jié)構(gòu)圖
下面將結(jié)合EDA實(shí)驗(yàn)平臺(tái)的工作流程,介紹EDA實(shí)驗(yàn)平臺(tái)的整體工作流程及各功能模塊的作用。
第一,當(dāng)用戶需要開展電機(jī)驅(qū)動(dòng)實(shí)驗(yàn)時(shí),可以通過對(duì)可重構(gòu)EDA實(shí)驗(yàn)平臺(tái)中主處理FPGA芯片和從處理FPGA芯片的程序進(jìn)行設(shè)計(jì)和加載。主處理FPGA芯片完成電機(jī)驅(qū)動(dòng)控制的主體功能,從處理FPGA芯片則完成將主處理FPGA芯片計(jì)算得到的相關(guān)控制參數(shù)進(jìn)行格式轉(zhuǎn)換,傳輸至驅(qū)動(dòng)電路。而驅(qū)動(dòng)電路根據(jù)收到的信號(hào)進(jìn)行放大之后,對(duì)驅(qū)動(dòng)電機(jī)進(jìn)行控制,從而實(shí)現(xiàn)利用可重構(gòu)實(shí)驗(yàn)平臺(tái)完成電機(jī)驅(qū)動(dòng)的實(shí)驗(yàn)內(nèi)容。
第二,當(dāng)用戶需要使用可重構(gòu)實(shí)驗(yàn)平臺(tái)完成對(duì)LCD、LED等典型顯示設(shè)備進(jìn)行訪問和控制時(shí),可以對(duì)可重構(gòu)實(shí)驗(yàn)平臺(tái)中的主處理FPGA芯片和從處理FPGA芯片分別進(jìn)行設(shè)計(jì),并加載所設(shè)計(jì)的程序,由主處理FPGA芯片完成對(duì)LCD、LED等顯示模塊的相關(guān)數(shù)據(jù)處理和控制的功能。從處理FPGA芯片則完成從主處理FPGA芯片接收的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,分別傳輸至LCD和LED信號(hào)接口。其中,將信號(hào)傳輸?shù)絃ED信號(hào)接口時(shí),其控制過程相對(duì)簡(jiǎn)單,只需要將控制信號(hào)直接送到LED顯示燈的信號(hào)線上即可實(shí)現(xiàn)對(duì)LED顯示燈的控制。而對(duì)LCD信號(hào)的控制則需要在從處理FPGA芯片上開發(fā)LCD的接口電路程序,通過可編程邏輯期間運(yùn)行接口電路程序,實(shí)現(xiàn)對(duì) LCD訪問接口協(xié)議和數(shù)據(jù)格式的轉(zhuǎn)換,從而實(shí)現(xiàn)對(duì)LCD的訪問與控制[3]。
第三,當(dāng)用戶需要使用可重構(gòu)EDA實(shí)驗(yàn)平臺(tái)進(jìn)行數(shù)據(jù)通信實(shí)驗(yàn)時(shí),由用戶開發(fā)和設(shè)計(jì)主處理 FPGA程序和從處理FPGA程序。其中,主處理FPGA程序完成數(shù)據(jù)通信中的數(shù)據(jù)準(zhǔn)備及數(shù)據(jù)接收后的相關(guān)處理工作,而從處理FPGA芯片則完成數(shù)據(jù)接口格式及信號(hào)時(shí)序的轉(zhuǎn)換。通過 SPI數(shù)據(jù)總線協(xié)議,從 FPGA接口芯片將需要根據(jù)數(shù)據(jù)訪問協(xié)議實(shí)現(xiàn)對(duì)該數(shù)據(jù)通信訪問協(xié)議的模擬和實(shí)現(xiàn),使得主FPGA芯片能夠按規(guī)定的數(shù)據(jù)訪問協(xié)議實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)訪問功能。
第四,當(dāng)用戶需要進(jìn)行圖像處理的綜合實(shí)驗(yàn)時(shí),可以由用戶開發(fā)主處理FPGA程序,并加載至FPGA芯片中。根據(jù)運(yùn)算規(guī)模和計(jì)算任務(wù)的復(fù)雜程度,決定是否需要使用可重構(gòu)EDA主存儲(chǔ)器資源。如果用戶開發(fā)的圖像處理程序相對(duì)簡(jiǎn)單,計(jì)算復(fù)雜度不高,則該圖像處理程序完全在FPGA中完成。其所需要的計(jì)算存儲(chǔ)空間,由FPGA中的可編程邏輯單元進(jìn)行模擬實(shí)現(xiàn)。如果用戶需要完成的圖像處理程序相對(duì)較為復(fù)雜,需要較大規(guī)模的存儲(chǔ)空間進(jìn)行支持,則用戶設(shè)計(jì)的圖像處理程序可以將主存儲(chǔ)器中所提供的存儲(chǔ)資源作為訪問空間,最終實(shí)現(xiàn)圖像處理實(shí)驗(yàn)的各種計(jì)算要求。
第五,當(dāng)用戶需要使用該可重構(gòu)實(shí)驗(yàn)平臺(tái)完成溫度控制相關(guān)實(shí)驗(yàn)時(shí),可以由用戶設(shè)計(jì)主處理 FPGA程序和從處理FPGA程序,并分別加載至兩個(gè)FPGA芯片中,通過A/D轉(zhuǎn)換芯片對(duì)目標(biāo)區(qū)域溫度進(jìn)行采樣,并將采樣得到的結(jié)果進(jìn)行數(shù)據(jù)轉(zhuǎn)換,并傳輸至主處理FPGA程序根據(jù)所收到的溫度數(shù)值進(jìn)行相關(guān)的控制預(yù)處理。得到的控制結(jié)果傳輸至從處理FPGA芯片,由從處理FPGA芯片按照一定的格式轉(zhuǎn)換,最終通過驅(qū)動(dòng)電路送至相關(guān)的控制單元,實(shí)現(xiàn)溫度的連續(xù)控制目標(biāo)[4]。其中,主處理FPGA芯片和A/D芯片之間的連接關(guān)系原理關(guān)系如圖2所示。

圖2 FPGA與A/D芯片的連接原理圖
上述設(shè)計(jì)的可重構(gòu)EDA實(shí)驗(yàn)平臺(tái)的組成結(jié)構(gòu)及所提供的功能,在性能方面相對(duì)于目前傳統(tǒng)的EDA實(shí)驗(yàn)平臺(tái)具有以下優(yōu)勢(shì):
(1)實(shí)驗(yàn)平臺(tái)具有更為廣泛的應(yīng)用范圍。實(shí)驗(yàn)平臺(tái)能夠通過對(duì)組重 FPGA芯片功能的重構(gòu),使得該實(shí)驗(yàn)平臺(tái)應(yīng)用特點(diǎn)能夠分別滿足嵌入式實(shí)驗(yàn)平臺(tái)、DSP實(shí)驗(yàn)平臺(tái)和FPGA實(shí)驗(yàn)平臺(tái)的應(yīng)用場(chǎng)合,極大地?cái)U(kuò)大了實(shí)驗(yàn)平臺(tái)的應(yīng)用范圍。
(2)應(yīng)用上述設(shè)計(jì)的 EDA實(shí)驗(yàn)平臺(tái)能夠同時(shí)連接種類多樣的外圍電路模塊,為該實(shí)驗(yàn)平臺(tái)進(jìn)行多樣化的實(shí)驗(yàn)內(nèi)容開設(shè)提供了良好的硬件支持。
(3)應(yīng)用上述設(shè)計(jì)的重構(gòu) EDA實(shí)驗(yàn)平臺(tái),能夠?qū)⒍喾N實(shí)驗(yàn)內(nèi)容合并在一個(gè)實(shí)驗(yàn)平臺(tái)上進(jìn)行實(shí)驗(yàn)和訓(xùn)練,極大地降低了用戶購買實(shí)驗(yàn)平臺(tái)的成本,提高了實(shí)驗(yàn)平臺(tái)的應(yīng)用效率。
目前,常見的EDA試驗(yàn)平臺(tái)往往是采用基于可編程邏輯器件設(shè)計(jì)的實(shí)驗(yàn)平臺(tái),這種試驗(yàn)平臺(tái)其設(shè)計(jì)目的是為了實(shí)現(xiàn)一些常見的EDA實(shí)驗(yàn)的驗(yàn)證及訓(xùn)練功能,為用戶學(xué)習(xí)和掌握EDA程序編寫、調(diào)試及設(shè)計(jì)相關(guān)的模擬和訓(xùn)練環(huán)境,使得用戶理解EDA設(shè)計(jì)的基本原理,掌握EDA設(shè)計(jì)的基本方法和技巧。由于當(dāng)前EDA實(shí)驗(yàn)平臺(tái)在設(shè)計(jì)上主要是從EDA開發(fā)和設(shè)計(jì)所面臨的問題而提供相應(yīng)的實(shí)驗(yàn)及訓(xùn)練環(huán)境,因此目前的EDA實(shí)驗(yàn)平臺(tái)一般只適合于對(duì)可編程邏輯器件學(xué)習(xí)、訓(xùn)練和研究使用。然而目前用戶在進(jìn)行EDA學(xué)習(xí)過程中往往也會(huì)涉及到嵌入式實(shí)驗(yàn)和圖線處理等相關(guān)的實(shí)驗(yàn)和應(yīng)用,而為了開展這些相關(guān)實(shí)驗(yàn),用戶往往需要實(shí)驗(yàn)平臺(tái)來完成,其中嵌入式實(shí)驗(yàn)平臺(tái)更多的是強(qiáng)調(diào)為用戶提供豐富的外側(cè)接口和控制資源, 使得用戶能夠在這種平臺(tái)中完成一些復(fù)雜的控制實(shí)驗(yàn)的功能,而針對(duì)圖像處理的實(shí)驗(yàn)一般需要基于DSP的實(shí)驗(yàn)平臺(tái),使得用戶能夠開發(fā)及實(shí)現(xiàn)高效能的圖像處理程序,針對(duì)目前EDA實(shí)驗(yàn)平臺(tái)所能夠提供的功能相對(duì)單一,應(yīng)用范圍比較局限的情況,本文提出一種可重構(gòu)的EDA實(shí)驗(yàn)平臺(tái),充分利用EDA實(shí)驗(yàn)平臺(tái)中FPGA可重構(gòu)的特性,針對(duì)用戶的不同需求將 FPGA進(jìn)行重構(gòu)設(shè)計(jì),使其在用戶不同的應(yīng)用場(chǎng)合中發(fā)揮不同的控制或計(jì)算作用,將EDA實(shí)驗(yàn)平臺(tái)改造為具有嵌入式實(shí)驗(yàn)平臺(tái)、DSP實(shí)驗(yàn)平臺(tái)等多種功能特性的可重構(gòu)實(shí)驗(yàn)平臺(tái)。
[1] 潘梅勇,李瑞娟.可重構(gòu)的 EDA 實(shí)驗(yàn)平臺(tái)[P].中國:CN203149961U, 2013-08-21.
[2] 黃力.高職嵌入式系統(tǒng)教學(xué)與實(shí)踐研究[J].柳州職業(yè)技術(shù)學(xué)院學(xué)報(bào).2010,10(1):81-84
[3] 潘梅勇,李瑞娟.基于ChipScope的EDA調(diào)試過程輔助分析裝置[P].中國:CN203149573U,2013-08-21.
[4] 潘梅勇,李瑞娟.基于FPGA芯片的EDA綜合實(shí)驗(yàn)平臺(tái)[P].中國:CN203149572U,2013-08-21.