基于IP復(fù)用設(shè)計(jì)的微處理器FSPLCSOC模塊
1 引言
本文引用地址:http://www.ex-cimer.com/article/151836.htm文中采用IP核復(fù)用方法和SOC技術(shù)基于AVR 8位微處理器AT90S1200IP Core設(shè)計(jì)專用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ā)展過程中一個(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ì)過程中,通過繼承、共享或購(gòu)買所需的知識(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)容也是千差萬別的。在IC產(chǎn)業(yè)中,IP核被定義為用于ASIC, ASSP, PLD等芯片中,且預(yù)先定義好功能、經(jīng)過驗(yàn)證的、可重復(fù)利用的電路功能模塊,如PCI接口核、ADC核,F(xiàn)IR濾波器核、SDRAM控制器核等。根據(jù)IC設(shè)計(jì)層次的不同。IP核分為以下三類:軟IP(Soft IP)、硬IP(Hard IP),固IP (Firm IP)。文中主要涉及到軟IP核設(shè)計(jì)和復(fù)用。軟IP是可類比、綜合的硬件描述語言(HDL)模型,通常是可綜合的RTL模型,包括邏輯描述、網(wǎng)表和測(cè)試的文檔(Testbench)。軟IP設(shè)計(jì)周期短、投人少,與工藝無關(guān),可靈活修改,在設(shè)計(jì)中只須對(duì)時(shí)序、面積和功耗進(jìn)行修正,可復(fù)用性最高?;谲浐说脑O(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)行綜合、布局布線、后仿真提取網(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)上包括橫線輸入、豎線輸入、引出輸出線圈。觸點(diǎn)矩陣中共有256個(gè)橫線輸入圈節(jié)點(diǎn)hi,240個(gè)豎線輸入圈節(jié)點(diǎn)vi,256個(gè)輸出線圈Io。當(dāng)一行超過16時(shí),轉(zhuǎn)向下一行,以此構(gòu)成矩陣電路,如hi[i],vi[i],lo[i]表示某個(gè)觸點(diǎn)的橫線輸入、豎線輸入、輸出,那么其同行的下一個(gè)觸點(diǎ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文件中的約束條件是否滿足需要,例如按照給出的“Worst Path Information,修改約束以滿足Worst Path的要求。綜合完成后在Quartus Ⅱ4。0展開網(wǎng)表文件,布局布線后編譯形成。sof文件,將此文件下級(jí)到Alters Nios開發(fā)板進(jìn)行驗(yàn)證,驗(yàn)證正確后再借助ModelSim進(jìn)行時(shí)序驗(yàn)證。
3.2 AVRIP核復(fù)用
AVR8位微處理器AT90S1200IP核由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所示。編譯無誤且功能正確后借助Synplify Pro對(duì)IP核飾代碼進(jìn)行邏輯綜合,如果VHDL程序正確無誤并且其編程風(fēng)格符合Synplify Pro綜合要求,Synplify Pro將產(chǎn)生一個(gè)網(wǎng)表文件(。EDF文件),再借助QuartusA4。0和ModelSim分別進(jìn)行FPGA驗(yàn)證和時(shí)序驗(yàn)證,此過程不斷循環(huán),直至復(fù)用的微處理器IP核沒有任何錯(cuò)誤。
圖3 AVRIP復(fù)用測(cè)試平臺(tái)Testbench框圖
評(píng)論