• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Verilog HDL的IIC總線IP核設(shè)計

      2015-02-28 17:38:48朱誠誠石晶晶
      電子器件 2015年6期
      關(guān)鍵詞:狀態(tài)機低電平總線

      朱誠誠,石晶晶,陳 斯,張 萌

      (1.東南大學(xué)電子科學(xué)與工程學(xué)院,南京 211189;2.東南大學(xué)國家ASIC中心,南京 210096)

      IIC總線是PHILIPS公司開發(fā)的一種實用、雙向、同步串行通信標(biāo)準(zhǔn)[1-2],目的在于解決各個串行設(shè)備間的通信,具有接口線數(shù)目少、通信效率高等優(yōu)點。通用的IIC總線接口器件在視頻處理、移動通信等領(lǐng)域的應(yīng)用已經(jīng)非常普遍。除此之外,IIC總線接口器件,如帶IIC總線RAM,ROM,A/D,D/A等,也越來越多地應(yīng)用于計算機及自動化控制系統(tǒng)中。

      設(shè)計的IIC總線IP核僅需要兩條總線線路,一條串行數(shù)據(jù)總線SDA,一條串行時鐘總線SCL。連接到相同總線的IC數(shù)量只受總線的最大容量400 pF限制,是一種多主機總線[3]。串行8 bit雙向數(shù)據(jù)傳輸位速率,在標(biāo)準(zhǔn)模式之下可達到100 kbit/s,快速模式之下可達400 kbit/s,高速模式下可達到3.4 Mbit/s。從設(shè)計IIC總線的頂層模塊開始,在實現(xiàn)IIC總線傳輸?shù)娜抗δ苤?,將IIC總線模塊以固核的形式封裝?;谒O(shè)計的IIC總線IP核,只需將外部PAD引線端與IP核接口相連就可以很便捷地進行IIC通信。

      采用硬件描述語言(HDL)[4-5]進行IP核設(shè)計,硬件描述語言是一種形式化方法來描述數(shù)字電路和設(shè)計數(shù)字邏輯系統(tǒng)的語言,它是硬件設(shè)計人員與EDA工具之間溝通的橋梁,用來編寫設(shè)計文件,建立電子系統(tǒng)行為級的模擬類型。之所以選擇Veril?og HDL,是因為Verilog HDL更加簡潔明了,靈活高效,完成同一功能Verilog HDL的程序條數(shù)一般只為VHDL的1/3。此外,Verilog HDL在底層描述,即開關(guān)級描述方面比VHDL功能更強。

      此外,在Xilinx ISE V13.4設(shè)計平臺上進行IIC總線IP核的設(shè)計,設(shè)計更加便利化。

      1 IIC總線的IP核設(shè)計

      1.1 IIC總線的接口設(shè)計

      IIC總線接口主要包括以下4大單元,其框圖如圖1所示,圖中SDA為串行數(shù)據(jù)線,SCL為串行時鐘線,Data為傳輸數(shù)據(jù),CLK為處理器時鐘頻率。

      分頻器 由FPGA的鎖相環(huán)輸出的穩(wěn)定時鐘信號,由于頻率很高,所以必須經(jīng)過分頻模塊從而輸出滿足IIC總線要求的傳輸速率。

      IIC總線接口控制時序邏輯塊 IIC總線數(shù)據(jù)傳輸?shù)乃袝r序控制邏輯都由它產(chǎn)生,是這個IIC模塊的核心。

      數(shù)據(jù)鎖存器 根據(jù)讀寫使能信號(r/w)存儲IIC己接收的或待發(fā)送的數(shù)據(jù)。

      移位寄存器 在時序控制邏輯模塊的控制下,根據(jù)讀寫使能信號(r/w)對數(shù)據(jù)進行正確地處理。

      圖1 IIC總線接口框圖

      1.2 讀寫功能的實現(xiàn)

      寫操作[6-7]過程:

      ①主端向總線發(fā)送一個開始信號;

      ②主端向總線發(fā)出需要寫數(shù)據(jù)器件的器件地址以及寫信號并等待器件產(chǎn)生應(yīng)答信號;

      ③主端向總線發(fā)送所要寫的存儲地址并等待設(shè)備產(chǎn)生應(yīng)答信號;

      ④主端向總線發(fā)送所要寫的數(shù)據(jù);

      ⑤等待器件產(chǎn)生應(yīng)答信號,主端向總線發(fā)送結(jié)束信號,完成一個字節(jié)的寫過程。

      IIC總線寫操作的功能是將數(shù)據(jù)寫入到總線上,即將并行數(shù)據(jù)裝換為串行數(shù)據(jù)。

      讀操作過程:

      ①主端向總線發(fā)送開始信號;

      ②主端向總線發(fā)送要讀數(shù)據(jù)器件地址以及寫信號并等待器件產(chǎn)生應(yīng)答信號;

      ③主端向總線發(fā)送所要讀數(shù)據(jù)的地址并等待產(chǎn)生應(yīng)答信號;

      ④主端向總線發(fā)送開始信號和所需讀數(shù)據(jù)器件的器件地址以及讀信號并等待器件產(chǎn)生應(yīng)答信號;

      ⑤主端按從高到低位的順序接收總線上的數(shù)據(jù);

      ⑥產(chǎn)生停止信號結(jié)束數(shù)據(jù)的讀取。

      IIC總線的讀操作的功能是讀取總線上的串行數(shù)據(jù),即將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。

      1.3 IP核設(shè)計

      設(shè)計的IIC總線的單主IP核,能夠?qū)崿F(xiàn)讀寫操作及連續(xù)地址的讀或?qū)懖僮鳎▓D2),由于它是單主模式,故總線沒有競爭與仲裁。

      圖2 IIC總線IP核簡圖

      IP(Intellectual Property),即知識產(chǎn)權(quán)。它是一段硬件描述語言程序,具有特定電路功能,是指可用來生成 ASIC(Application Specific Integrated Cir?cuit)和PLD的邏輯功能塊,且該程序與集成電路工藝無關(guān),它可以移植到不同的半導(dǎo)體工藝所生產(chǎn)的集成電路芯片。本文設(shè)計的IP核中,rst_n為復(fù)位信號,當(dāng)rst_n為低電平時,IIC總線處于空閑狀態(tài),此時無數(shù)據(jù)的傳輸;syn_sign為同步信號,當(dāng)syn_sign為高電平時,IIC總線可以進行數(shù)據(jù)的傳輸,否則,IIC總線處于空閑狀態(tài);Byte_Write為寫信號,當(dāng)其為低電平時,IIC總線可以進行寫操作;Byte_Red為低電平時,IIC總線可以進行讀操作;Page_Write為低電平時,IIC總線可以進行連寫操作;Page_Red為低電平時,IIC總線可以進行連讀操作。

      1.4 IIC總線狀態(tài)機轉(zhuǎn)換

      由IIC總線傳輸協(xié)議可知,IIC在傳輸過程中存在著幾個固定的狀態(tài)[8],因此采用同步狀態(tài)機來設(shè)計IIC模塊。主狀態(tài)機從的大的方面共有5個狀態(tài):空閑,開始,發(fā)送數(shù)據(jù),接收數(shù)據(jù),停止。

      所設(shè)計的總線狀態(tài)機轉(zhuǎn)移圖如圖3示。

      圖3 狀態(tài)機的轉(zhuǎn)換示意圖

      當(dāng)無數(shù)據(jù)傳輸時,IIC總線處于空閑狀態(tài)(Idle),IIC總線在起始信號(Start)的觸發(fā)下,開始進行數(shù)據(jù)的傳輸。首先,總線接受器件地址,在得到應(yīng)答信號(Ack)后,傳輸數(shù)據(jù)存儲地址,在接到應(yīng)答信號后,開始傳輸數(shù)據(jù)(Data)。若無連寫(W_page)、連讀(R_page)信號的輸入,總線在讀寫后將會處于空閑狀態(tài),并等待下一次起始信號。

      基于這種狀態(tài)機的轉(zhuǎn)換,總線按照設(shè)計者的要求進行數(shù)據(jù)傳輸。

      2 仿真和實現(xiàn)

      采用自上而下的流程對IIC總線主模塊進行設(shè)計,對所有模塊用Verilog HDL語言進行描述,在ISE V13.4和Basys2設(shè)計平臺上進行仿真與硬件驗證。ISE V13.4是Xilinx公司的FPGA集成開發(fā)環(huán)境,不僅包括邏輯設(shè)計所需的一切,還具有大量簡便易用的內(nèi)置式工具和向?qū)В沟肐/O分配、功耗分析,HDL仿真等步驟變得簡單而直觀。圍繞著Xilinx Spartan-3E現(xiàn)場可編程門陣列,Basys2板提供完整的、隨時可用的硬件適合電路實現(xiàn)從基本邏輯器件到復(fù)雜的控制器。擁有一系列板上I/O設(shè)備和所有需要支持的FPGA電路,可以創(chuàng)造無數(shù)無需任何其他元件的設(shè)計。

      2.1 仿真檢測

      首先,將寫操作信號Byte_write置0,主端檢測到寫信號后,開始寫操作,在往總線上寫入器件地址并接收應(yīng)答信號后,主端向總線寫入數(shù)據(jù)01 001 110,圖4為寫操作仿真圖。

      通過仿真波形,我們從模塊正確寫入一個字節(jié)01 001 110。

      將讀操作信號Byte_read置0,主端檢測到讀信號后,開始讀操作,在完成偽寫操作后,主端從總線讀出數(shù)據(jù)01 100 101。

      通過仿真波形可以看出,我們可以從總線讀出一個字節(jié)01 100 101。

      仿真結(jié)果與理論結(jié)果相一致,數(shù)據(jù)傳輸速率達到100 kbit/s,快速模式下可達到400 kbit/s,高速模式3.4 Mbit/s。

      圖4 寫操作仿真

      圖5 讀操作仿真

      2.2 硬件測試

      仿真完成后,在ISE13.4設(shè)計平臺上進行綜合布線,并采用Basys2中進行硬件測試,將復(fù)位信號置0,同步信號置1,寫信號置0,將主端寫入的總線數(shù)據(jù)通過Basys2的LED燈進行顯示,圖6為寫操作。

      通過LED顯示,我們成功向總線寫入一個字節(jié)0 100 1110。

      將復(fù)位信號置0,同步信號置1,讀信號置0。

      并將從總線上讀出的數(shù)據(jù)通過Basys2的LED燈進行顯示,圖7為讀操作。

      圖6 硬件寫操作

      圖7 硬件讀操作

      通過LED顯示,我們成功讀出總線上一個字節(jié)01 100 101。

      仿真、硬件檢測結(jié)果與IIC總線傳輸數(shù)據(jù)的預(yù)期結(jié)果相一致,從而說明了我們IIC總線設(shè)計的成功。最后,在ISE設(shè)計平臺上將IIC總線模塊進行封裝,形成只有接口的IP固核。

      3 結(jié)束語

      采用Verilog HDL語言設(shè)計了一個IIC總線的單主模式的IP核,給出了一種模塊化和層次化的完整設(shè)計方法。該IP核具有通用的接口和簡單的操作時序,并且全部設(shè)計由Verilog HDL語言實現(xiàn)。無需代碼修改就可以在片上系統(tǒng)的接口設(shè)計中使用,實現(xiàn)對IIC總線的支持,具有良好的移植性。

      與近期的同類IIC總線IP核設(shè)計相比較,有別于Altera的Quartus II平臺的設(shè)計,在Xilinx ISE V13.4設(shè)計平臺上進行IP核的設(shè)計。ISE V13.4提供了便捷地IP核設(shè)計環(huán)境及仿真環(huán)境,進而使得設(shè)計便利化。此外,ISE為Xilinx公司的開發(fā)環(huán)境,Xilinx的產(chǎn)品市場占有率更高,因此,在ISE平臺上設(shè)計使得所完成的產(chǎn)品更具實用性。

      設(shè)計的IP核既體現(xiàn)了良好的可移植性,又體現(xiàn)了芯片設(shè)計的模塊化思想。利用成熟的IP核進行新產(chǎn)品的開發(fā)可大大縮短設(shè)計周期,提高產(chǎn)品的可靠性,為新產(chǎn)品贏得市場契機。

      [1]張延偉,楊金巖,葛愛學(xué),等.Verilog HDL程序設(shè)計實例詳解[M].人民郵電出版社,2008:132-160.

      [2]Philips Semiconductors.The IIC-Bus Specification[M]Version 2.1,2001:6-19.

      [3]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].2版.北京:高等教育出版社,6.1,2008:13-18.

      [4]劉欲曉,方強,黃宛寧,等.EDA技術(shù)與VHDL電路開發(fā)應(yīng)用實踐[M].北京:電子工業(yè)出版社,2009:221-240.

      [5]張延偉,楊金巖,葛愛學(xué)等.Verilog HDL程序設(shè)計實例詳解[M].人民郵電出版社,2008:132-160.

      [6]趙輝.IIC總線技術(shù)及其應(yīng)用實例[J].微型電腦應(yīng)用,2005,21(4):61.

      [7]劉福奇,劉波.Verilog HDL應(yīng)用程序設(shè)計實例精講[M].北京:電子工業(yè)出版社,2009:434-444.

      [8]陳旭.FPGA技術(shù)發(fā)展研究[J].半導(dǎo)體技術(shù),2006,(4):1-3.

      朱誠誠(1992-),男,漢族,安徽淮南人,本科生,就讀于東南大學(xué)電子科學(xué)與工程學(xué)院,ccz2498466@163.com;

      張 萌(1964-),男,漢族,研究員,東南大學(xué)ASIC中心,主要從事數(shù)字信號處理,集成電路設(shè)計,通信系統(tǒng)等,zmeng@seu.edu.cn。

      猜你喜歡
      狀態(tài)機低電平總線
      數(shù)字電路中“邏輯非”的用法辨析
      鐵道車輛高/低電平信號智能發(fā)生器設(shè)計
      基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
      2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
      基于PCI Express總線的xHC與FPGA的直接通信
      機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
      多通道ARINC429總線檢查儀
      基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計
      河南科技(2014年16期)2014-02-27 14:13:22
      集成電路靜態(tài)參數(shù)測試
      微處理機(2012年5期)2012-07-25 03:21:06
      FPGA設(shè)計中狀態(tài)機安全性研究
      开封市| 修武县| 阳信县| 南皮县| 长白| 文昌市| 平陆县| 平潭县| 上犹县| 冕宁县| 彭泽县| 桃源县| 类乌齐县| 高青县| 勐海县| 安顺市| 黄梅县| 芦山县| 登封市| 平乡县| 台中县| 潞西市| 汨罗市| 宣恩县| 邓州市| 郸城县| 井冈山市| 任丘市| 白河县| 建阳市| 石景山区| 井研县| 铁岭县| 绿春县| 浙江省| 元阳县| 轮台县| 龙游县| 兴义市| 临漳县| 郓城县|