<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 可復用SPI模塊IP核的設計與驗證

          可復用SPI模塊IP核的設計與驗證

          作者: 時間:2005-04-06 來源:網(wǎng)絡 收藏

          摘要:SoC是超大規(guī)模集成電路的發(fā)展趨勢和新世紀集成電路的主流。其復雜性以及快速完成設計、降低成本等要求,決定了系統(tǒng)級芯片的設計必須采用IP(Intellectual Property)復用的方法。本文介紹以IP設計方法,設計串行外設接口(Serial Peripheral Interface)的思路,用Verilog語言實現(xiàn),并經(jīng)FPGA驗證,通過TSMC(臺灣集成電路制造公司)的0.25μm工藝生產(chǎn)線流水實現(xiàn),完成預期功能。

          關(guān)鍵詞:SoC IP AMBA總線

          引言

          隨著集成電路設計技術(shù)和深亞微米制造技術(shù)的飛速發(fā)展,集成電路的規(guī)模越來越大,出現(xiàn)了片上系統(tǒng)SoC(System on Chip,又稱之為系統(tǒng)級芯片)。由于其在速度、功耗和成本方面的優(yōu)勢,發(fā)展勢頭迅猛。SoC芯片是一個復雜的系統(tǒng),為了在規(guī)定時間完成設計,并提高設計的可靠性,只有依賴基于IP復用的SoC設計方法。如何為SoC設計提供,成為SoC設計的基礎和難點。

          東南大學ASIC系統(tǒng)工程技術(shù)研究中心針對AMBA(Advanced Microcontroller Bus Architecutre,先進微控制器)總線規(guī)范開發(fā)了一款代號為Garfield的嵌入式微處理器。此微處理器除采用ARM公司ARM7TDMI內(nèi)核的硬IP外,其余采用了自己開發(fā)的軟IP。本文以串行外設接口為例,介紹基于復用的IP設計與驗證的一些經(jīng)驗。此SPI基于AMBA的APB(Advanced Peripheral Bus,先進外設總線)規(guī)范,可以不作修改地應用在任何符號AMBA總線規(guī)范的微處理器設計中。

          Garfield的總體架構(gòu)及SPI模塊在系統(tǒng)中所處的位置如圖1所示。

          1 可復用的SoC設計方法

          系統(tǒng)級芯片設計中,IP特指經(jīng)過驗證的各種超級宏單元模塊電路。VSIA(虛擬器件接口聯(lián)盟)根據(jù)設計層次,將IP劃分為三個層次:硬IP、軟IP和介于兩者之間的固IP。硬IP性能最優(yōu)但適應性較差,軟IP靈活性大、可移植性好。IP核必須具有以下特征:①可讀性;②設計的衍展性和工藝適應性;③可測性;④端口定義標準化;⑤版板保護。

          代碼編寫規(guī)則和可綜合的書寫規(guī)范是實現(xiàn)IP核的基礎,可保證IP軟核在任何EDA工具下編譯和綜合的正確性。為SoC集成時消除綜合產(chǎn)生的風險,我們制定了Verilog代碼的書寫規(guī)范,并要求有詳細的注釋,易于他人理解和修改??蓮陀肐P設計流程如圖2所示。

          為了容易地將IP集成到芯片中,需要標準化的接口或片上總線,VSIA在這方面作了一定的工作。另外,設計中要盡量將IP核接口部分與功能部分分開,單獨作為一模塊進行設計,當需要集成到其它互連協(xié)議中時,只需修改接口部分。為盡可能地提供靈活性,允許綜合時設置多個參數(shù)。

          在最終面向用戶的產(chǎn)品發(fā)布中,用戶手冊是非常重要的部分。這部分文檔將被用于IP核的選擇、集成和驗證,是一種非常專業(yè)化的文樓。它主要包括模塊系統(tǒng)結(jié)構(gòu)、功能框圖、輸入、輸入/輸出口、時序圖、調(diào)用方式、設計流程、測試指導、推薦使用和軟件編譯器和驅(qū)動程序、系統(tǒng)驗證指導、調(diào)試指導和該IP核版本歷史等。在可重用IP核產(chǎn)品發(fā)布中,還應包含該 IP核的多種仿真模型,以便用戶在進行評估、設計和系統(tǒng)測試時使用。IP核的仿真器模型一般可分為3個層次:①行為級模型,能夠仿真該IP核的全部功能,包括在算法級和指令集上的功能;②硬件級模型,能夠精確提供該IP核的功能和時序的仿真;③門級模型,提供硬核的帶有時序反標注信息的仿真模型。

          在實踐中,我們搜索出一套基于CVS(協(xié)作版本管理系統(tǒng))的版本管理和設計、驗證人員協(xié)同工作的制定流程,對RTL代碼作了盡可能全面的仿真,提供完備的測試矢量,保證了最終IP核的質(zhì)量,并按要求建立了標準、規(guī)范的文檔。

          2 SPI模塊IP核的設計

          串行外圍設備接口SPI(Serial Peripheral Interface)總線技術(shù)是Motorola公司推出的多種微處理器、微控制器以及外設間的一種全雙工、同步、串行數(shù)據(jù)接口標準。SPI總線量種三線總線,因其硬件功能很強,所以,與SPI有關(guān)的軟件就相當簡單,使CPU有更多的時間處理其它事務。

          2.1 SPI模塊的接口信號及時序要求

          (1)內(nèi)部總線接口

          AMBA規(guī)范是由ARM公司制定的片上總線規(guī)范,為SoC的設計提供了以下優(yōu)點:較好的可移植和可復用設計、低功耗設計、譏生能和結(jié)構(gòu)可移植的系統(tǒng)設計以及較好的可測性設計。SPI是APB總線上的Slave模塊。APB總線時序比較簡單,有興趣的讀者可以查閱ARM公司的《AMBA Specificetion》(Rev 2.0)。因此此SPI模塊支持3種DMA操作,所以除標準APB信號線外,還有3根與DMA模塊連接的請求信號線。

          圖3和圖4

          (2)SPI總線接口及時序

          SPI總線包括1根串行同步時鐘信號線以及2根數(shù)據(jù)線。

          SPI模塊為了和外設進行數(shù)據(jù)交換,根據(jù)外設工作要求,其輸出串行同步時鐘極性和相位可以進行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進行數(shù)據(jù)傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外設音時鐘相位和極性應該一致。SPI接口時序如圖3、圖4所示。

          2.2 SPI模塊功能設計

          根據(jù)功能定義及SPI的工作原理,將整個IP分為8個子模塊:APB接口模塊、時鐘分頻模塊、發(fā)送數(shù)據(jù)FIFO模塊、接收數(shù)據(jù)FIFO模塊、狀態(tài)機模塊、發(fā)送數(shù)據(jù)邏輯模塊、接收數(shù)據(jù)邏輯模塊以及中斷形式模塊。

          深入分析SPI的四種傳輸協(xié)議可以發(fā)現(xiàn),根據(jù)一種協(xié)議,只要對串行同步時鐘進行轉(zhuǎn)換,就能得到其余的三種協(xié)議。為了簡化設計規(guī)定,如果要連續(xù)傳輸多個數(shù)據(jù),在兩個數(shù)據(jù)傳輸之間插入一個串行時鐘的空閑等待,這樣狀態(tài)機只需兩種狀態(tài)(空閑和工作)就能正確工作。相比其它設計,在基本不降低性能的前提下,思路比較精煉、清晰。

          此SPI模塊有兩種工作方式:查詢方式和DMA方式。查詢方式通過處理器核監(jiān)視SPI的狀態(tài)寄存器來獲其所處的狀態(tài),從而決定下一步動作。DMA方式由DMA模塊控制數(shù)據(jù)在內(nèi)存和SPI間的交換,而不需要處理器核的參考,有效提高了總線利用率。

          3 EMA軟件仿真與FPGA驗證

          為了保證設計的魯棒性,運用多種方法對此IP的功能進行全面的仿真和驗證。

          首先進行EDA軟件仿真驗證。這種仿真包括RTL級和門級仿真驗證。RTL級仿真只是將代碼文件調(diào)入硬件描述語言的仿真軟件進行功能仿真,檢查邏輯功能是否正確。門級仿真包括布局布線前和布局布線后仿真。布局布線后仿真,可以獲得比較精確的時延參數(shù),能夠比較真實地反映芯片制造完成后,模塊在實際工作中的行為與性能,所以通過了此類仿真應認為模塊設計成功,可以進行流片。將RTL級代碼轉(zhuǎn)換成門級網(wǎng)表,使用的是Synopsys公司的綜合工具DC(Design Compiler)以及臺灣集成電路制造公司(TSMC)的0.25μm標準單元庫。

          在傳統(tǒng)的設計流程中進行功能驗證,首先需要通過寫測試矢量的方式給需要進行功能測試的模塊加激勵,然后通過觀察模塊的輸出結(jié)果,判斷模塊的功能是否正確。但是在寫測試矢量時,測試工程師是在自己對模塊功能理解的基礎上進行的。這樣就存在一個問題,測試矢量對模塊的激勵有可能是不完備的,還有可能是錯誤的,但測試矢量的激勵并沒有使錯誤體現(xiàn)出來;也有可能模塊的功能是正確的,誤報錯誤使難證過程變得非常低效。為避免以上問題,在模塊的功能驗證中,采用系統(tǒng)級驗證環(huán)境。該環(huán)境由IP總線、驅(qū)動器、監(jiān)視器、外部模塊和協(xié)調(diào)它們工作的腳本組成。組成系統(tǒng)的各模塊可以按需要加入環(huán)境。每次驗證過程就是相應的激勵作用于環(huán)境的過程。驗證結(jié)果由環(huán)境產(chǎn)生、檢驗和輸出。該驗證環(huán)境在SOLARIS5.8操作系統(tǒng)下,仿真器采用Synopsys公司的VCS,支持C/C++、Verilog和VHDL協(xié)同仿真,可以直接SPI模塊掛在驗證環(huán)境中,通過Verilog的$readmemh任務讀入軟件激勵進行驗證。

          在系統(tǒng)時鐘為66MHz,CPOL=1、CPHA=0下收發(fā)6字節(jié)數(shù)據(jù)的仿真結(jié)果如圖5、6所示。

          圖6

          SPI模塊的典型應用是:通過與帶SPI接口的觸摸屏控制芯片連接,提供對觸摸屏的支持。針對此目標,將SPI模塊及其它必要模塊加載到FPGA中進行硬件、軟件聯(lián)合調(diào)試,對實際電路進行驗證。我們選用了最常見的四線式電阻式觸摸屏,而觸摸屏控制芯片采用ADS7843。ADS7843是一個內(nèi)置12位模數(shù)轉(zhuǎn)換、低導通過電阻模擬開關(guān)的串行接口芯片,支持8和12位的A/D轉(zhuǎn)換精度。為了完成一次電極電壓切換和A/D轉(zhuǎn)換,微處理器需要先通過SPI接口往ADS7843發(fā)送控制字,轉(zhuǎn)換完成后再通過SPI接口讀出電壓轉(zhuǎn)換值。標準的一次轉(zhuǎn)換需要24個時鐘周期。典型的應用電路如圖7所示。

          SPI的FPGA驗證平臺包括ARM公司提供的Intergrator/LM-EP20K1000E和Intergrator/CM7TDMI開發(fā)驗證板以及Garfield II驗證電路板(自行設計)。其中Intergrator/CM7TDMI上的ARM7TDMI微處理器內(nèi)核作為整個開發(fā)系統(tǒng)的CPU。通過ARM Multi-ICE,將驗證必需的包括SPI在內(nèi)的所有模塊由JTAG口加載到Intergrator/LM-EP20K1000E板上Altera APEX20K系列的EP20K1000EFC672中。外圍電路由Garfield II驗證電路板(包含ADS7843)以及觸摸屏組成。在FPGA上通過軟硬件協(xié)同驗證,通過邏輯分析儀觀測SPI總線信號,也證明此SPI模塊性能良好。

          圖7

          另外,通過臺灣集成電路制造公司(TSMC),采用其0.25μm標準單元庫對該設計多次進行流水驗證,獲得的實際IP電路在樣機中工作十分穩(wěn)定。至此,IP的設計十分成功。當設計相似架構(gòu)的SoC芯片時,可根據(jù)需要配置相應參數(shù)后直接進行復用。

          結(jié)語

          建立經(jīng)過充分驗證的功能正確、性能良好的可復用IP模塊庫,是快速進行SoC設計的基礎和要求。設計可復用的IP,需要遵守一定的設計方法:完整、清晰的文檔;良好的代碼風格;詳細的注釋;精心設計的校驗環(huán)境;極高代碼覆蓋率的測試向量等。本文以SPI模塊IP為例,按照規(guī)范的流程和要求,進行了初步的嘗試,得到了較好的結(jié)果。



          關(guān)鍵詞: SPI 可復用 IP核 模塊

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();