《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于IP核復(fù)用的微處理器FSPLCSOC模塊
基于IP核復(fù)用的微處理器FSPLCSOC模塊
摘要:  隨著芯片集成程度的飛速提高,,IC產(chǎn)業(yè)中形成了以片上系統(tǒng)SOC(System-on-Chip)技術(shù)為主的設(shè)計(jì)方式,。一個(gè)電子系統(tǒng)或分系統(tǒng)可以完全集成在一個(gè)芯片上,同時(shí)IC設(shè)計(jì)能力和EDA工具卻相對(duì)落后于半導(dǎo)體工藝技術(shù)的發(fā)展,,兩者之間日益加劇的差距已經(jīng)成為SOC技術(shù)發(fā)展過(guò)程中一個(gè)突出的障礙,。采用基于IP復(fù)用技術(shù)進(jìn)行設(shè)計(jì)是減小這一差距惟一有效的途徑,IP復(fù)用技術(shù)包括兩個(gè)方面的內(nèi)容:IP核生成和IP核復(fù)用,。
關(guān)鍵詞: SOC AVR單片機(jī) IP核 AT90S1200
Abstract:
Key words :

     1 引言

 文中采用IP核復(fù)用方法和SOC技術(shù)基于AVR 8位微處理器AT90S1200IP Core設(shè)計(jì)專(zhuān)用PLC微處理器FSPLCSOC模塊,。
  隨著芯片集成程度的飛速提高,,IC產(chǎn)業(yè)中形成了以片上系統(tǒng)SOC(System-on-Chip)技術(shù)為主的設(shè)計(jì)方式,。一個(gè)電子系統(tǒng)或分系統(tǒng)可以完全集成在一個(gè)芯片上,同時(shí)IC設(shè)計(jì)能力和EDA工具卻相對(duì)落后于半導(dǎo)體工藝技術(shù)的發(fā)展,,兩者之間日益加劇的差距已經(jīng)成為SOC技術(shù)發(fā)展過(guò)程中一個(gè)突出的障礙。采用基于IP復(fù)用技術(shù)進(jìn)行設(shè)計(jì)是減小這一差距惟一有效的途徑,,IP復(fù)用技術(shù)包括兩個(gè)方面的內(nèi)容:IP核生成和IP核復(fù)用,。
 
  2  IP核復(fù)用
  IP核復(fù)用(IP Core Reuse)是指在集成電路設(shè)計(jì)過(guò)程中,,通過(guò)繼承,、共享或購(gòu)買(mǎi)所需的知識(shí)產(chǎn)權(quán)內(nèi)核(第三方IP核),然后再利用EDA工具進(jìn)行設(shè)計(jì),、綜合和驗(yàn)證,。IP核是IP復(fù)用的載體和核心內(nèi)容,基于應(yīng)用需求,、規(guī)范協(xié)議和行業(yè)標(biāo)準(zhǔn)的不同,,IP核的內(nèi)容也是千差萬(wàn)別的,。在IC產(chǎn)業(yè)中,,IP核被定義為用于ASIC,, ASSP,, PLD等芯片中,且預(yù)先定義好功能,、經(jīng)過(guò)驗(yàn)證的,、可重復(fù)利用的電路功能模塊,,如PCI接口核、ADC核,,F(xiàn)IR濾波器核、SDRAM控制器核等,。根據(jù)IC設(shè)計(jì)層次的不同,。IP核分為以下三類(lèi):軟IP(Soft IP)、硬IP(Hard IP),,固IP (Firm IP)。文中主要涉及到軟IP核設(shè)計(jì)和復(fù)用,。軟IP是可類(lèi)比、綜合的硬件描述語(yǔ)言(HDL)模型,,通常是可綜合的RTL模型,,包括邏輯描述、網(wǎng)表和測(cè)試的文檔(Testbench),。軟IP設(shè)計(jì)周期短,、投人少,與工藝無(wú)關(guān),,可靈活修改,,在設(shè)計(jì)中只須對(duì)時(shí)序、面積和功耗進(jìn)行修正,,可復(fù)用性最高,。基于軟核的設(shè)計(jì)(Soft Core-based design)是一種非常實(shí)用的SoC設(shè)計(jì)方法,。它將系統(tǒng)的功能劃分為不同的軟核,,包括微處理器、ALU、ROM,、PC,、ROM,、I/0等,。由于軟IP核僅提供能夠綜合的HDL描述,,因此復(fù)用前需要深人地了解HDL文件描述的RTL模型,采用適當(dāng)工藝技術(shù)的標(biāo)準(zhǔn)單元庫(kù),再重新進(jìn)行綜合,、布局布線(xiàn),、后仿真提取網(wǎng)表,、驗(yàn)證時(shí)序等反復(fù)工作,最后集成到SoC設(shè)計(jì)中,,因此SoC設(shè)計(jì)即生成的IP核和第三方復(fù)用IP核集成整合,。
  3  FSPLC微處理器IP核設(shè)計(jì)
  3.1 IP軟核生成
  文中基于AVR8位微處理器分析實(shí)際PLC梯形圖及其指令表,設(shè)計(jì)邏輯處理器LP,、布爾處理器BP,、存儲(chǔ)器位接口MBI等3個(gè)模塊用于提高PLC執(zhí)行速度,,下面以邏輯處理器LP單元模塊為例,描述IP軟核生成,。PLC梯形圖包括8種基本電路:左分支觸點(diǎn)LBC/非觸點(diǎn)LBCN,,右分支觸點(diǎn)RBC/非觸點(diǎn)RBCN,, 雙分支觸點(diǎn)DBC/非觸點(diǎn)DBCN,不分支觸點(diǎn)NBC/不分支非觸點(diǎn)NBCN,。文中根據(jù)這8種基本電路設(shè)計(jì)一個(gè)16xl6觸點(diǎn)矩陣電路,即邏輯處理器LP單元,,矩陣中各個(gè)觸點(diǎn)由電子電路模擬PLC梯形圖基本電路,。在任何一個(gè)觸點(diǎn)上包括橫線(xiàn)輸入、豎線(xiàn)輸入,、引出輸出線(xiàn)圈。觸點(diǎn)矩陣*有256個(gè)橫線(xiàn)輸入圈節(jié)點(diǎn)hi,,240個(gè)豎線(xiàn)輸入圈節(jié)點(diǎn)vi,256個(gè)輸出線(xiàn)圈Io,。當(dāng)一行超過(guò)16時(shí),,轉(zhuǎn)向下一行,以此構(gòu)成矩陣電路,,如hi[i],,vi[i],lo[i]表示某個(gè)觸點(diǎn)的橫線(xiàn)輸入,、豎線(xiàn)輸入,、輸出,那么其同行的下一個(gè)觸點(diǎn)的橫線(xiàn)輸入,、豎線(xiàn)輸入,、輸出分別為hi[i+ 1]、vi[i+1],、lo[i+1],,其同列的下一個(gè)觸點(diǎn)hi[i+16]、vi[i+16],、lo[i+16],,那么輸出觸點(diǎn)的表達(dá)式為
 
  I0[i]=I0[i-1]hi[i]+vi[i-16]lo[i-16]+vi[i]lo[i+16-1]hi[ i+16] 。
  以此各個(gè)觸點(diǎn)彼此互相連接組成處理梯形圖的觸點(diǎn)矩陣,。如圖1所示,。
  圖1   LP單元觸點(diǎn)電子電路模擬
 
  邏輯處理器LP采用Verilog描述,借助Model-Sim進(jìn)行功能仿真,,驗(yàn)證模塊功能的正確性,。LP單元功能仿真波形如圖2所示。
  圖2   LP單元功能仿真波形
 
  驗(yàn)證功能正確后,,借助Synosys的綜合工具Synplify Pro對(duì)模塊進(jìn)行綜合。綜合包括Compiling,、Mapping,、Optimization。綜合時(shí)將經(jīng)ModelSim,。功能仿真驗(yàn)證的源代碼調(diào)人Synplify Pro,,執(zhí)行Compiler,編譯后,,創(chuàng)建約束文件,。sdc,編輯約束文件對(duì)模塊添加約束條件,包括時(shí)鐘,、面積,、扇人扇出、延時(shí)等,,添加約束后執(zhí)行綜合,,產(chǎn)生網(wǎng)表文件。EDF,。根據(jù)綜合后給出的,。log文件觀察Constraint文件中的約束條件是否滿(mǎn)足需要,例如按照給出的“Worst Path Information,,修改約束以滿(mǎn)足Worst Path的要求,。綜合完成后在Quartus Ⅱ4。0展開(kāi)網(wǎng)表文件,,布局布線(xiàn)后編譯形成,。sof文件,將此文件下級(jí)到Alters Nios開(kāi)發(fā)板進(jìn)行驗(yàn)證,,驗(yàn)證正確后再借助ModelSim進(jìn)行時(shí)序驗(yàn)證,。
 
  3.2 AVR IP核復(fù)用
  AVR 8位微處理器AT90S1200 IP核由opencores。org提供,。整個(gè)微處理器IP核包括ALU,、PC、SRAM,、IR,、ROM、I/0,,控制等”個(gè)模塊,,可以分成3個(gè)單元;取指單元,、執(zhí)行單元和I/0單元,。指令執(zhí)行時(shí),,取指單元負(fù)責(zé)取出下一個(gè)指令,,執(zhí)行單元負(fù)責(zé)執(zhí)行當(dāng)前指令,而LO單元負(fù)資和外界的連接,。取指單元和執(zhí)行單元組成微處理器的CPU,。
 
  整個(gè)AVRIP核包括許多寄存器:指令寄存器、指令備份寄存器,、程序計(jì)數(shù)器,、通用寄存器,、存儲(chǔ)地址寄存器(MAR),1/O口控制寄存器等,。整個(gè)系統(tǒng)的工作就是基于這些寄存器之間的數(shù)據(jù)傳輸,。設(shè)計(jì)所有的寄存器以及它們之間的組合邏輯及其連接就是系統(tǒng)的數(shù)據(jù)通道設(shè)計(jì)??刂颇K決定怎樣進(jìn)行寄存器傳愉,。數(shù)據(jù)通道和控制單元組成了整個(gè)微處理器。
 
  對(duì)于AT90S12001P核復(fù)用,,考慮到IP核在SoC中集成整合,,首先須徹底了解所復(fù)用核的架構(gòu)和指令集,借助ModelSim進(jìn)行功能仿真,,建立Testbench平臺(tái)測(cè)試波形驗(yàn)證功能的正確性,,如圖3所示。編譯無(wú)誤且功能正確后借助Synplify Pro對(duì)IP核飾代碼進(jìn)行邏輯綜合,,如果VHDL程序正確無(wú)誤并且其編程風(fēng)格符合Synplify Pro綜合要求,,Synplify Pro將產(chǎn)生一個(gè)網(wǎng)表文件(。EDF文件),,再借助QuartusA4,。0和ModelSim分別進(jìn)行FPGA驗(yàn)證和時(shí)序驗(yàn)證,此過(guò)程不斷循環(huán),,直至復(fù)用的微處理器IP核沒(méi)有任何錯(cuò)誤,。
  圖3    AVRIP復(fù)用測(cè)試平臺(tái)Testbench框圖

  4 FSPLC微處理器核SOC設(shè)計(jì)
  4.1 SOC硬件結(jié)構(gòu)
  根據(jù)FSPLCSOC系統(tǒng)功能定義,設(shè)計(jì)完成FSPLC微處理器硬件結(jié)構(gòu),,如圖4所示,。
  圖4    FSPLCSOC硬件結(jié)構(gòu)框圖
 
  FSPLCSOC由AT90S1200、布爾處理器BP,、存儲(chǔ)器位接口MBI,、邏輯處理器LP,CAN總線(xiàn)1,。0接口CBI,、底板總線(xiàn)接口BBI等6個(gè)模塊組成。AT90S1200模塊是SOC的核心,,實(shí)現(xiàn)PLC指令的執(zhí)行,;BP模塊由兩個(gè)位累加器和一個(gè)位邏輯堆淺BLS組成,該結(jié)構(gòu)可以有效處理IEC61131-3(國(guó)際電工委員會(huì)制訂的基于Windows編程語(yǔ)言標(biāo)準(zhǔn))PLC指令表語(yǔ)句中復(fù)雜的嵌套邏輯運(yùn)算,,使運(yùn)行頻率最高的位指令達(dá)到最大的執(zhí)行速度,;存儲(chǔ)器位接口模塊由一個(gè)存儲(chǔ)器位尋址接口邏輯和一個(gè)8選1選擇器組成,,為布爾處理器和數(shù)據(jù)存儲(chǔ)器之間的位訪間接口,;CAN總線(xiàn)1,。0接口CBI模塊和外部基于Atmega8515的USB-CAN適配器相連,通過(guò)此適配器FSPLC可以和其他帶有CAN接口的PLC實(shí)現(xiàn)CAN通訊,;通過(guò)底板總線(xiàn)接口BBI模塊可以在FSPLC片外擴(kuò)展模塊,,最多可以達(dá)到8個(gè),包括I/0擴(kuò)展模塊,、AID模塊,、D/A模塊、計(jì)數(shù)模塊等,。其中AT90S1200,,MBI,LP,,CBI,,BBI模塊通過(guò)內(nèi)部總線(xiàn)連接,BP通過(guò)MBI模塊轉(zhuǎn)換實(shí)現(xiàn)和其他模塊的連接,。
 
  4.2 FSPLCSOC仿真,、綜合、驗(yàn)證
 
  由于SOC設(shè)計(jì)是一種面向IP核集成的設(shè)計(jì),,整合后的SOC模塊同第三方IP核復(fù)用一樣需要進(jìn)行模塊的仿真,、綜合和驗(yàn)證。FSPLC SOC同復(fù)用AT90SI200核一樣借助ModelSim進(jìn)行功能仿真和驗(yàn)證后時(shí)序仿真,,借助Synplify Pro進(jìn)行綜合,。
 
  下面具體描述FSPLCSOC的驗(yàn)證,SOC設(shè)計(jì)中包含了系統(tǒng)設(shè)計(jì)和模塊設(shè)計(jì),,因此SOC驗(yàn)證一般包含了模塊驗(yàn)證,、芯片驗(yàn)證和系統(tǒng)驗(yàn)證三個(gè)部分。由于FSPLCSOC涉及到的主要是數(shù)字IP核,,文中采用Altera NioslI開(kāi)發(fā)板作為設(shè)計(jì)的驗(yàn)證平臺(tái),,該開(kāi)發(fā)板帶有一個(gè)20多萬(wàn)門(mén)的Altera EP20K200EFC484-2的FPGA芯片、撥碼開(kāi)關(guān),、數(shù)碼顯示器等,,用一個(gè)實(shí)際PLC應(yīng)用程序在此開(kāi)發(fā)板上對(duì)FSPLCSOC進(jìn)行了可行性驗(yàn)證,同時(shí)通過(guò)對(duì)AVR編譯器Avral,。0的編譯代碼變量中增加PLC指令代碼,,使之能夠?qū)L(:指令進(jìn)行編譯。圖5,,圖6分別為PLC控制程序的梯形圖及其匯編程序,。
  圖5     PLC控制程序的梯形圖
  開(kāi)發(fā)板的撥碼開(kāi)關(guān)SWl的1、2,、3,、4來(lái)模擬上述開(kāi)關(guān)的閉合,,觀察數(shù)碼顯示器Dl數(shù)碼段明暗,驗(yàn)證設(shè)計(jì)的可行性,。FSPLCSOC在Altera Nios開(kāi)發(fā)板的FPGA芯片上進(jìn)行了可行性驗(yàn)證,,獲得了理想的運(yùn)行效果:在33MHz晶振下,執(zhí)行基本邏輯指令速度為0,。09μ/條,,達(dá)到了國(guó)際上大中型PLC的處理速度。
  圖6     PSPLC匯編程序
  5 結(jié)束語(yǔ)
  目前IC產(chǎn)業(yè)中,,SOC已成為最主要的集成電路設(shè)計(jì)方法8位RISC微處理器芯片設(shè)計(jì)正在向SOC化發(fā)展,,通過(guò)IP核復(fù)用方法以縮短周期、降低成本,、提高效率,。文中基于IP核復(fù)用和SOC技術(shù)借助ModelSim、Synplify Pro,、QuartusⅡ等EDA軟件設(shè)計(jì)了擁有自主知識(shí)產(chǎn)權(quán)的專(zhuān)用PLC微處理器SOC模塊FSPLC,,在復(fù)用了第三方AVRAT90SI200IP核基礎(chǔ)上集成了自行設(shè)計(jì)的LP、BP,、MBI,、CBI、BBI等模塊,,具有快速處理PLC梯形圖程序,、快速處理IL語(yǔ)句表中復(fù)雜的嵌套邏輯運(yùn)算、PLC之間CAN總線(xiàn)通訊等優(yōu)點(diǎn),。最后采用Altera NiosII作為驗(yàn)證平臺(tái),,對(duì)實(shí)際的PLC應(yīng)用程序做了可行性驗(yàn)證,獲得了理想的效果,。
此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。