自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
可復用SPI模塊IP核的設計與驗證
可復用SPI模塊IP核的設計與驗證
 更新時間:2008-8-18 10:08:23  點擊數(shù):24
【字體: 字體顏色

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

關鍵詞 SoC 可復用IP SPI AMBA總線

引言

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

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

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


圖1  Garfield的總體架構(gòu)

1  可復用IP核的SoC設計方法

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

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


圖2  可復用IP核設計流程

  為了容易地將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)總線技術是Motorola公司推出的多種微處理器、微控制器以及外設間的一種全雙工、同步、串行數(shù)據(jù)接口標準[4]。SPI總線是一種三線總線,因其硬件功能很強,所以,與SPI有關的軟件就相當簡單,使CPU有更多的時間處理其它事務。

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

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

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

(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所示[4]。


圖3  CPHA=0時SPI總線數(shù)據(jù)傳輸時序


圖4  CPHA=1時SPI總線數(shù)據(jù)傳輸時序

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  EDA軟件仿真與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)出來;也有可能模塊的功能是正確的,誤報錯誤使驗證過程變得非常低效[5]。為避免以上問題,在模塊的功能驗證中,采用系統(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所示。

[1] [2] [3]  下一頁
  • 上一篇: 核數(shù)據(jù)采集系統(tǒng)中的100Mbps以太網(wǎng)控制模塊
  • 下一篇: 基于復雜度的嵌入式軟件功耗模型
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1