999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AMBA總線的IIC協議IP核設計與驗證

2014-07-01 23:45:10王建雄
微處理機 2014年1期
關鍵詞:程序設計

王建雄,肖 明,余 龍

(1.江蘇科技大學計算機學院,鎮江212003;2.東莞市泰斗微電子有限公司,東莞523808)

基于AMBA總線的IIC協議IP核設計與驗證

王建雄1,肖 明2,余 龍1

(1.江蘇科技大學計算機學院,鎮江212003;2.東莞市泰斗微電子有限公司,東莞523808)

介紹了一種基于AMBA總線verilog HDL實現的IIC主機模式的IP核設計。該模塊能夠在標準和快速模式下運行,能夠靈活配置為十位地址尋址或七位地址尋址模式。詳細說明了該IP核的架構,各部分設計及狀態轉換過程。最后該模塊通過了系統驗證,并在xilinx FPGA上轉化為硬件電路實現了所有功能。

AMBA總線;Verilog HDL語言;IIC協議;IP核

1 引 言

現如今,電子類產品向著小型化、智能化、低功耗、低成本、高可靠性的方向發展。IIC僅有兩根線就實現了器件之間的雙工通信,它有著接口簡單、可擴展性好、功耗低等特點,已經被廣泛應用于各類數字系統中。而片上系統(System on Chip,SoC)已逐漸成為超大規模集成電路的發展趨勢,由于系統與外部電路的通信是通過外圍接口實現的,因此設計一個穩定可靠的外圍通信接口的IP就變得非常重要。正是在此形勢下設計了基于AMBA總線的IIC協議IP核,并通過系統仿真和FPGA上以硬件方式實現和驗證了設計的正確性和可靠性。

2 IIC協議簡介

IIC(Inter IC)總線是Philips公司于1992年推出的用于芯片間連接的雙向串口總線協議。它已經被廣泛應用于視/音頻領域、IC卡行業、家用電器、通訊設備及各類電子產品中,在智能儀器、儀表和工業測控領域也得到了廣泛應用。

其電氣連接如圖1所示。

該協議使用一根數據線SDA和一根時鐘線SCL進行通信。時鐘由主機產生從機接收,主機在SCL低電平時發送數據到SDA上,從機在SCL為高電平時采樣SDA。在時鐘信號為高電平期間,數據線上的數據必須保持穩定,只有在時鐘線上的信號為低電平期間,數據線上信號才允許變化。

SDA上的數據格式分為起始條件、結束條件、重復起始條件、響應位和數據位。總線上每一個從器件都有一個唯一的標識地址。主機以一個起始條件加上從機地址尋址相應從機。當一次尋址失敗時,主機可以發送重復起始條件后繼續發送目標地址尋址從機。從機接收到自己的地址或者接收完一個字節的數據時必須將SDA拉低以給主機一個應答信號。主機接收完一個字節的從機數據時也必須給出應答信號。當傳輸完成時,由主機發送結束條件完成本次傳輸。一次完整的傳輸,其SDA和SCL上的電平如圖2所示。

圖1 SCL和SDA的電氣連接方式圖

圖2 一次完整的傳輸過程

在一次傳輸中,主機可以選擇七位或者十位尋址模式進行尋址,也可以選擇重復起始條件重新開始一次傳輸。當從機或主機處于忙狀態時可以選擇將SDA信號線拉低使IIC主機或從機處于等待狀態。

3 IIC協議IP核設計

該IP核實現了IIC協議的主機功能,可以靈活配置為標準和快速模式,支持7位和10位尋址模式,支持主、從機等待功能和重復起始條件尋址模式。

3.1 系統結構圖

系統結構如圖3所示。由圖3可以看出,其結構可以分為控制部分和數據通道部分及時鐘部分。控制部分分為控制單位、仲裁單元、中斷寄存器和控制寄存器,由于控制寄存器僅僅起到存儲控制命令的作用,故在此將其劃分為控制部分。數據通道部分分為FIFO、地址寄存器、移位寄存器、狀態寄存器。時鐘部分分為時鐘單元和波特率寄存器。

3.2 各部分設計

3.2.1 控制部分設計

控制部分主要通過判斷控制寄存器、狀態寄存器的值和仲裁單元的狀態完成對數據通道部分的控制。控制部分的核心實現為狀態機,通過判斷各個條件實現狀態機的跳轉,從而產生相應控制信號控制數據通道部分中數據流的流動。控制部分控制地址寄存器中地址的裝載,移位寄存器中數據的移出,狀態寄存器的讀取和FIFO的讀寫控制。

圖3 系統結構圖

3.2.2 數據通道部分設計

數據通道部分主要實現數據的暫存和轉換。其中FIFO實現數據緩存,它能協調高速APB協議和低速IIC協議之間的通信。移位寄存器能實現數據的串并轉換。地址寄存器能實現地址的存儲和發送。狀態寄存器主要存儲IIC工作時的各狀態,用于控制部分狀態機的跳轉和傳送給CPU調試使用。

3.2.3 時鐘部分設計

時鐘模塊工作時,首先需要配置波特率寄存器。通過波特率寄存器中的值計算出SCL分頻出的時鐘頻率,其計算公式如下,DIV值由波特率寄存器中的值確定。

時鐘單元產生SCL時鐘并且采樣SCL線上信號。當SCL時鐘線被從機拉低時主機需要啟動等待功能。

3.3 IP核的狀態機設計

該IP核的邏輯狀態轉換如圖4所示,各個狀態的詳細說明如下。

圖4 邏輯狀態轉換圖

Idle狀態:當IIC沒有得到運行指令或程序被復位時,程序就處于idle狀態。在這個狀態時SDA和SCL對外輸出高電平。

start狀態:當控制寄存器的START位被置位時,程序由idle狀態跳轉到start狀態。程序位于該狀態時SCL輸出高電平,同時SDA產生一個由高到低的跳轉。

addr1狀態:在該狀態時會將地址寄存器中的七位地址或者十位地址的高位地址發送給從機,并且采樣SDA信號線判斷主機是否丟失仲裁。當地址均發送完并且沒有丟失仲裁時程序跳轉到ack_addr1狀態中。

ack_addr1狀態:程序在該狀態時會檢查是否有從機應答信號。如果SDA被拉低則表明從機接收地址正確。若從機地址為7位,則程序根據最低的位進行相應跳轉;若從機地址為10位,則程序跳轉到addr2狀態。如果SDA未被拉低,表明從機接收第一個字節有誤,程序跳到restart狀態。

addr2狀態:當從機地址是10位地址時,程序把10位地址的低八位發送出去并自動跳轉到ack_addr2狀態。

ack_addr2狀態:程序檢查SDA是否被拉低,若被拉低則根據跳轉,否則程序跳回restart狀態。

restart狀態:當控制寄存器的RESTRART位被置位或者發送FIFO非空而從機無應答或者程序處于ack_addr無應答時,程序都會跳轉到該狀態。程序處于此狀態時會向從機發送一個重復起始條件并自動跳轉到addr1狀態。

read狀態:主機在每個SCL的上升沿采樣SDA,并將采樣值存在移位寄存器中,當完成一個byte的接收時將移位寄存器中的值存入FIFO,并且程序跳到ack_read狀態。

ack_read狀態:當完成一個byte的接收并且主機還要繼續接收數據時,主機需要發送一個響應給從機并且跳入read狀態,否則程序跳轉到stop狀態。

write狀態:主機將FIFO中的數據以byte為單位發給從機,發送完后自動跳轉到ack_write狀態。

ack_write狀態:當FIFO非空,并且檢測到從機的應答時程序跳回write狀態,當FIFO為空時程序跳轉到stop狀態。

stop狀態:SCL為低電平并且SDA從低電平翻轉到高電平,完成一個結束狀態的傳輸。

4 IP驗證

4.1 驗證平臺介紹

驗證該模塊,需要搭建一個testbench平臺,該平臺由激勵模塊、APB主機模型、DUT、輸出響應模型、監視器、比較器等組成,各模塊介紹如下。

激勵模塊:激勵模塊的主要功能是提供給測試平臺各種case以使IP運行于不同的狀態。在驗證該模塊中使用的測試用例如表1所示。

表1 驗證測試用例表

APB主機模型:APB主機模型主要模擬APB的總線時序,使激勵數據能按APB的協議要求傳輸給被測設計。

DUT(Design Under Test):即被測的IP設計。

輸出響應模型:其主要功能是對被測設計輸出的數據按照協議做出應答,在該設計中選擇的輸出響應模型有IIC從機模型和EEPROM。

監視器:監視器監視輸入和輸出協議中的位傳輸,以及起始、結束、復位等條件的正確性。如果檢測到數據與期望數據不一致,那么測試平臺就給出錯誤報告信息。

比較器:比較器的主要功能是檢測輸入和輸出各數據,并比較其是否正確。如果發送數據和測試數據不正確,那么測試平臺將生成測試錯誤報告。

4.2 測試用例介紹

以上測試用例主要測試了該IP模塊在正常和異常情況下對發送的命令是否能做出正確響應和處理。在使用測試用例對DUT進行測試的時候要根據設計的功能點全面考慮需要測試的功能,并加入一些極端情況下的測試激勵。

4.3 驗證結果

當驗證完成后,該設計在synopsis公司的VCS上進行覆蓋率統計。其覆蓋率統計如圖5所示。

圖5 IP的驗證統計覆蓋率

上圖中各覆蓋率沒有達到100%的原因分析如下:

(1)由于case語句中各條件已完備,導致default分支不能被覆蓋到,所以行覆蓋率沒有達到100%。

(2)由于設計中增加的一些保護性代碼,在一般驗證中難以滿足該情景,故導致條件覆蓋率不能到達100%。

(3)由于該設計中某些位的值按功能不會變化,故翻轉覆蓋率不能實現100%的覆蓋。

(4)FIFO模塊的讀寫使能不能同時有效。

5 仿真與實現

該設計通過測試平臺的驗證后并在VCS上進行了仿真,其仿真結果完全滿足預期設計,如圖6所示。

圖6 IIC仿真波形圖

然后該設計在XILINX公司的ISE軟件上進行了編譯、映射和綜合生成最終的bit文件下載到FPGA板上。下載好了的FPGA與單片機模擬的IIC從機進行通信,FPGA寫單片機數據12345678 9ABCDEF1 5A5A5A5A 00000005,其結果如圖7所示。單片機接收FPGA的數據,用示波器觀察其波形如圖8所示。

6 結束語

基于IP的SOC模塊化設計能讓產品以更快的速度推向市場,而且一個精心設計并經過多次驗證過的IP其可靠性和資源利用率都會很高。該設計采用可重用的Verilog HDL代碼編碼風格,并最終通過Xilinx FPGA驗證。經驗證其性能完全滿足預期要求,其實現不依賴具體的FPGA和AISC工藝。

圖7 IIC從機接收到數據圖

圖8 示波器觀察波形圖

[1]wayne wolf著,現代VLSI設計:基于IP核的設計(第4版)[M].李東生等譯,北京:電子工業出版社,2011-07.

[2]ciletti,M.D著.Verilog HDL高級數字設計[M].張雅倚等譯,北京:電子工業出版社,2005-01.

[3]ARM Limited.AMBA Specification Rev2.0[S].1999.05.

[4]Philips semiconductors.THE I2C-BUSSPECIFICATION VERSION 2.1[S].2000.01.

[5]俞偉,徐寧儀,羅飛,等.IIC總線控制器IP核設計[J].世界科技研究與發展,2005(1):18-21.

[6]王前,屋淑泉,劉喜英.基于FPGA的IIC總線接口實現方法[J].微電子技術,2002(2):22-24.

[7]田耘,徐文波,著.Xilinx FPGA開發實用教程[M].北京:清華大學出版社,2008-11.

Design and Verification of IP Core of IIC Protocol Based on AMBA Bus

WANG Jian-xiong1,XIAO Ming2,YU Long1

(1.School of Computer Science,Jiangsu University of Science and Technology,Zhenjiang 212003,China;2.Techtotop Micro-electronics Company of Dongguan City,Dongguan 523808,China)

This article describes an IP core design of IIC master,base on AMBA bus,which implements by verilog HDL.The module can runs in standard mode and quick mode,and it can be flexibly configured to be ten bit or seven bit addressing mode.This article describes the structure of IP core,and its design and status conversion process.Finally,the module has passed the system-level verification and all functions have been implemented in Xilinx FPGA hardware.

AMBA Bus;Verilog HDL;IIC protocol;IP core

10.3969/j.issn.1002-2279.2014.01.002

TN492

:B

:1002-2279(2014)01-0004-05

王建雄(1988-),男,四川巴中人,碩士研究生,主研方向:數字集成電路設計。

2013-09-30

猜你喜歡
程序設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 国产高清自拍视频| 亚洲人成网18禁| 精品国产黑色丝袜高跟鞋| 国产清纯在线一区二区WWW| 婷婷午夜影院| 国产真实乱子伦精品视手机观看| 色综合日本| 国产va在线| 亚洲精品中文字幕午夜| 手机永久AV在线播放| 国产玖玖玖精品视频| 日韩黄色在线| 中国国产A一级毛片| 免费人成网站在线观看欧美| 欧美视频在线第一页| 亚洲精品无码成人片在线观看| 露脸真实国语乱在线观看| …亚洲 欧洲 另类 春色| 无码免费的亚洲视频| 伊人91视频| jijzzizz老师出水喷水喷出| 国产精品免费电影| 欧美精品xx| 亚洲自拍另类| 精品一区二区三区自慰喷水| 亚洲美女久久| 亚洲色图综合在线| 国产成人啪视频一区二区三区| 亚洲综合中文字幕国产精品欧美 | 精品三级在线| 毛片久久久| 国产精品视频3p| 伊人久久婷婷| 91亚洲影院| 女人18毛片久久| 熟女成人国产精品视频| 亚洲性日韩精品一区二区| 播五月综合| 最近最新中文字幕免费的一页| 亚洲国产精品一区二区第一页免 | 欧美日韩亚洲综合在线观看| 久久窝窝国产精品午夜看片| 人妻中文字幕无码久久一区| 欧美在线精品怡红院| 欧美成人精品在线| 国产永久在线视频| 亚洲综合经典在线一区二区| 亚洲日韩在线满18点击进入| 91青青视频| 国产在线观看91精品| 制服丝袜无码每日更新| 国产成人精品高清在线| 71pao成人国产永久免费视频| 热久久国产| 狠狠色成人综合首页| 日韩成人免费网站| 精品精品国产高清A毛片| 国产剧情一区二区| 福利视频久久| 欧美一级视频免费| 国产精品亚洲一区二区三区在线观看| 日本91视频| 国内a级毛片| 国产一区二区精品福利 | 亚洲欧洲天堂色AV| 国产精欧美一区二区三区| www.亚洲天堂| 综合人妻久久一区二区精品| www.99在线观看| 久久久久久国产精品mv| 1769国产精品免费视频| 亚洲综合狠狠| 伊人国产无码高清视频| 伊人色在线视频| jizz国产在线| 久久精品女人天堂aaa| 亚洲国产精品一区二区高清无码久久| 日韩色图在线观看| 18禁不卡免费网站| 三级欧美在线| 亚洲国产一成久久精品国产成人综合| 黄片在线永久|