《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NiosII的SOPC中EEPROM Controller Core的設計
基于NiosII的SOPC中EEPROM Controller Core的設計
摘要: 本文設計了基于NiosII的EEPROM Controller Core,設計包括了HDL語言描述的硬件部分和軟件驅動程序,并將Controller Core添加到SOPC Builder的庫中,最后下載到Stratix1S10的 FPGA上,通過讀寫函數對其進行了驗證。同時,本次設計也為開發其它基于SOPC的Controller Core提供了一個范例。
Abstract:
Key words :

  1  引言

  由于FPGA的出現,使得我們不需要承擔較大風險和較高的流片費用將小規模的或處于研發階段的芯片制成ASIC芯片了。而基于FPGA的SOC——SOPC(可編程片上系統),由于其可編程性,按照用戶特定需要構建的SOPC是一個在某種程度上替代SOC的較好方案。Altera公司為其FPGA開發了第二代軟核嵌入式處理器NiosII,同時開發了用以構建基于NiosII處理器的SOPC Builder,使得用戶可以通過自定義邏輯的方法方便地開發基于NiosII的SOPC系統。SOPC Builder集成在EDA工具QuartusII中,提供了NiosII處理器及一些常用外設接口,如DMA控制器, SDRAM控制器,SPI接口以及鎖相環PLL等等,對于一些庫中沒有提供的模塊用戶可以自己定義添加。在實際應用中,具有I2C接口的EEPROM有著廣泛的運用,本文就是在基于NiosII的SOPC中設計了一個EEPROM Controller Core,用Verilog HDL描述硬件邏輯部分,同時編寫相關驅動,下載到Stratix系列的 FPGA中實現了對片外EEPROM AT24C02的讀寫。 

  2 基于NiosII的Controller Core

  SOPC中的各模塊通過Altera公司開發的Avalon總線互連。任何一個掛接在Avalon總線上的模塊都必須符合Avalon總線規范,即包含特定的信號類型clk,reset,chipselect,write,writedata等,并滿足一定建立保持時間和等待周期的讀寫模式。一個典型模塊的Controller Core由硬件和驅動軟件兩部分構成。

  2.1硬件構成

  基于NiosII的Controller Core是用于構建SOPC的基本組件,它由HDL語言描述其硬件邏輯,一個典型的Controller Core由task logic(行為模塊),register  file(寄存器),interface(總線接口)三部分組成,它們在邏輯上的關聯關系如圖1所示:

Controller Core在邏輯上的關聯關系

圖1Controller Core在邏輯上的關聯關系

  interface是頂層模塊,與Avalon總線的直接接口;register file:通信模塊,對模塊內部寄存器讀寫的通道;task logic:行為模塊,實現模塊邏輯功能的核心部分。Avalon總線通過頂層接口模塊對寄存器進行操作,從而實現對行為模塊的訪問和控制。

  2.2 驅動軟件

  驅動軟件是系統提供給上層應用程序訪問底層硬件的通道,由一些特定名稱的文件夾和C文件組成,其典型結構和功能如下:

  (1)    inc/_regs.h頭文件是最底層的也是唯一的硬件接口,定義了與Controller Core相關的數據結構、常量和函數原形等。

  (2)    hal/inc/_routines.h頭文件包含了實現驅動功能的函數聲明等相關信息。

  (3)    hal/src/_routines.c示例程序包含了具體實現驅動功能的子函數,用于指導軟件開發人員使用該Controller Core。 

  3  EEPROM工作原理

  二線制EEPROM AT24C02是一種采用I2C接口的串行可電擦除可編程只讀存儲器。因其接線簡單且對數據修改具有足夠的靈活性,故得到了廣泛的應用。

  3.1 I2C總線規范

  I2C總線是由數據線SDA和時鐘線SCL構成,可發送和接收數據。I2C總線在傳輸數據的過程中共有三種基本類型信號,它們分別是開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。結束信號:SCL為高電平時,SDA由低電平向高電平跳變,結束傳送數據。應答信號:接收端在接收到8位數據后,需向發送端發出特定的低電平脈沖,表示已收到數據。

  3.2 二線制EEPROM工作原理

  基于NiosII的SOPC通過EEPROM Controller Core可對其進行讀寫操作,讀寫規則要遵循EEPROM的時序要求。

  (1)    EEPROM的寫操作

  如圖2所示,EEPROM Controller發出“啟動”信號后,緊接著發送4位I2C總線特征碼1010,和3位芯片地址碼xxx以及寫狀態位R/W=0。待接收到片外器件的應答信號ACK后,控制器將跟著發送EEPROM存儲單元地址和要寫入的數據。EEPROM每收到一個字節的數據,都要發送一個ACK應答信號返回給主機。隨后主機發送停止信號,對EEPROM寫一個字節的操作完成。

 

EEPROM的寫操作

  (2)    EEPROM的讀操作

  如圖3所示,EEPROM的讀操作包括寫地址和讀數據兩步??刂破魇紫劝l送一個“啟動”信號和控制字節(包括器件地址和讀寫狀態位R/W=0)到EEPROM,通過寫操作設置EEPROM存儲單元地址。接著控制器再發送一個“啟動”信號和控制字節(此時R/W=1),啟動讀操作,EEPROM收到信息后將指定單元的數據到發送到SDA線上,控制器收到數據后返回一個NACK信號給EEPROM,隨后發送停止信號。

EEPROM的讀操作

  4  EEPROM Controller Core的設計

  4. 1 硬件部分的設計

  (1) task logic的設計

  本設計的task logic行為模塊是基于NiosII的EEPROM Controller邏輯功能的核心部分,要實現通過NiosII系統對EEPROM進行讀寫,就要按照I2C總線規范及EEPROM的讀寫要求來設計Controller Core。有限狀態機是時序電路設計中經常采用的方式,是許多數字電路設計的核心。所以,我們采用狀態機來實現控制器的核心邏輯部分。根據串行EEPROM的讀寫操作時序可知,用5個狀態時鐘可以完成寫操作,用7個狀態時鐘可以完成讀操作。讀寫狀態中有幾個狀態是一致的,用一個嵌套的狀態機即可。狀態轉移圖如圖4所示。

狀態轉移圖

圖4 狀態轉移圖

 ?。?)register file的設計

  register file實際上是NiosII處理器通過軟件對硬件進行訪問和控制的通道,它由一系列寄存器組成,并規定了如何對其進行讀寫。Register file中的寄存器是根據task logic中需要完成的特定邏輯功能來設定的,task logic中的數據通過register file中的寄存器傳輸。本次設計中,register file中設定了控制字、地址及數據存儲器ctrl_reg,addr_reg,wr_reg,讀取數據存儲器rd_reg,其寬度都為8位。

 ?。?)Interface的設計

  Interface接口模塊是與Avalon總線接口的一個top頂層模塊,主要功能是對task logic模塊和register file模塊進行例化和封裝,使其輸入輸出信號完全符合Avalon總線信號規范,和外接模塊的信號規范。本設計中,與Avalon總線接口的信號是:clk, resetn, avalon_chip_select, address, read, write, write_data, read_data;與外接EEPROM接口的信號是:sda, scl。

  如圖5是EEPROM Controller Core硬件部分設計的modelsim仿真圖,根據器件規則,模擬Avalon總線端連續寫控制字、地址及數據寄存器,Controller模塊根據所寫的內容將數據發送到SDA線上,實現對EEPROM的讀寫。

EEPROM Controller Core硬件部分設計的modelsim仿真圖

圖5 EEPROM Controller Core硬件部分設計的modelsim仿真圖

  4. 2 軟件部分的設計

  EEPROM controller core的硬件部分設計好后,還需要編寫相關的驅動程序才能添加到SOPC中使用。其驅動設計如下:

  (1)inc中的altera_avalon_ eeprom _regs.h頭文件根據NiosII提供的系統讀寫函數, 定義了讀寫寄存器的函數原型,如下所示:

  #define IOWR_ALTERA_AVALON_EEPROM_CTRL_WRITE(base, data)   IOWR(base, 0, data)

  #define IORD_ALTERA_AVALON_EEPROM_DATA_READ(base)         IORD(base, 4)

 ?。?)src中的altera_avalon_eeprom_routines.c文件,對altera_avalon_eeprom_regs.h中定義的基本函數進行調用,編寫了實現對EEPROM任意地址讀寫數據的函數,其中寫函數的代碼如下:

  void altera_avalon_eeprom_write(unsigned int address,alt_u8 ctrl_write,alt_u8 addr_write,alt_u8 data_write)

  {

   IOWR_ALTERA_AVALON_EEPROM_CTRL_WRITE(address, ctrl_write);

 

   IOWR_ALTERA_AVALON_EEPROM_ADDR_WRITE(address, addr_write);

   IOWR_ALTERA_AVALON_EEPROM_DATA_WRITE(address, data_write);

  }

  5  EEPROM Controller Core的添加

  首先,用SOPC Builder中的new component edit添加設計好的Controller Core,將HDL語言描述的文件和驅動軟件添加如圖6所示,并根據Avalon總線傳輸規范設置相關的信號線及傳輸參數。完成后就可將Controller Core添加到SOPC工程,并將其編譯下載到FPGA器件中。

HDL語言描述的文件和驅動軟件添加

圖6 HDL語言描述的文件和驅動軟件添加

  同時,在NiosII IDE環境中,我們可以編寫用戶應用程序,使用自己添加的器件了。在此,我們調用altera_avalon_eeprom_routines.c定義的函數編寫了簡單的測試程序,對EEPROM的目標地

 

址寫入數據并從該地址將數據讀出,在console控制臺中讀出結果正確。

 

  6  結語

  本文設計了基于NiosII的EEPROM Controller Core,設計包括了HDL語言描述的硬件部分和軟件驅動程序,并將Controller Core添加到SOPC Builder的庫中,最后下載到Stratix1S10的 FPGA上,通過讀寫函數對其進行了驗證。同時,本次設計也為開發其它基于SOPC的Controller Core提供了一個范例。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          黄色成人精品网站| 国产精品一区二区三区久久| 国产精品视频一二三| 欧美在线free| 精品96久久久久久中文字幕无| 在线观看欧美日本| 一本大道久久精品懂色aⅴ| 亚洲国产成人精品久久| 狠狠狠色丁香婷婷综合激情| 国产欧美日韩免费| 亚洲女同性videos| 欧美日本一区二区高清播放视频| 久久精品夜色噜噜亚洲a∨| 亚洲一区二区在线免费观看| 欧美日韩国产色站一区二区三区| 国产欧美日韩一区二区三区在线观看| 欧美国产亚洲精品久久久8v| 国产视频一区三区| 午夜精品久久久久久久99黑人| 欧美网站在线观看| 欧美日韩中文另类| 欧美夫妇交换俱乐部在线观看| 久久久久久亚洲精品中文字幕| 欧美在线视频a| 欧美va天堂va视频va在线| 国产精品亚洲综合色区韩国| 国色天香一区二区| 国产精品jvid在线观看蜜臀| 亚洲欧美在线免费| 国产自产高清不卡| 亚洲自拍偷拍麻豆| 久久久欧美精品sm网站| 亚洲影院在线观看| 国产欧美精品久久| 欧美日韩不卡一区| 裸体女人亚洲精品一区| 亚洲人体大胆视频| 欧美日韩另类一区| 欧美一区二区三区免费观看| 亚洲综合日本| 久久一区二区三区超碰国产精品| 老司机凹凸av亚洲导航| 国产精品免费看片| 最新精品在线| 国产精品99久久久久久有的能看| 久久亚洲美女| 欧美在线亚洲一区| 中文欧美字幕免费| 在线看无码的免费网站| 国产欧美一区二区三区久久人妖| 99精品视频一区二区三区| 欧美第十八页| 国产欧美日韩麻豆91| 国产精品伦理| 亚洲欧美一区二区在线观看| 红桃视频欧美| 欧美一级在线亚洲天堂| 欧美视频日韩视频在线观看| 亚洲欧美亚洲| 国内精品免费在线观看| 国产精品亚洲产品| 国产一区二区三区免费观看| 激情欧美日韩一区| 国产精品日韩久久久久| 久久女同精品一区二区| 亚洲视频一区在线| 免费精品99久久国产综合精品| 国产精品一区二区欧美| 最新69国产成人精品视频免费| 亚洲国产一区二区三区青草影视| 亚洲国产成人精品久久久国产成人一区| 久久精品国产亚洲aⅴ| 亚洲综合电影一区二区三区| 欧美日韩国产a| 久久综合久久久| 免费欧美日韩国产三级电影| 亚洲欧美日韩一区二区| 在线视频精品一区| 欧美激情综合| 国产精品欧美日韩| 香蕉久久夜色精品国产使用方法| 国产精品久久久久aaaa樱花| 一区二区日韩欧美| 欧美成人国产va精品日本一级| 欧美午夜电影在线| 国内自拍视频一区二区三区| 性欧美1819性猛交| 一区二区三区 在线观看视频| 在线成人国产| 欧美日韩另类国产亚洲欧美一级| 激情久久一区| 一区二区三区视频在线观看| 国产日韩欧美一区在线| 国产精品国产三级国产aⅴ入口| 亚洲成色www久久网站| 久久精品国产69国产精品亚洲| 国产精品美女一区二区在线观看| 免费欧美电影| 国产精品99久久久久久久久久久久| 亚洲一级高清| 欧美日韩三区| 欧美日韩在线播放一区二区| 午夜一区不卡| 欧美夜福利tv在线| 国产伦一区二区三区色一情| 亚洲第一成人在线| 嫩草成人www欧美| 亚洲区中文字幕| 国产精品亚洲片夜色在线| 亚洲欧洲三级| 欧美大片一区二区三区| 性久久久久久久久| 欧美人成在线| 久久精品免费播放| 亚洲精品一区在线观看| 欧美国产综合视频| 亚洲制服欧美中文字幕中文字幕| 国产亚洲精品高潮| 蜜臀va亚洲va欧美va天堂| 久久精品91久久香蕉加勒比| 欧美精品色一区二区三区| 午夜精品亚洲一区二区三区嫩草| 亚洲午夜性刺激影院| 国产欧美午夜| 欧美高清不卡在线| 欧美精品一区视频| 国产精品日日做人人爱| 亚洲第一黄网| 国产一本一道久久香蕉| 国产精品一区视频| 欧美顶级少妇做爰| 免费试看一区| 欧美日本久久| 中文网丁香综合网| 一区二区日韩伦理片| 欧美黑人一区二区三区| 亚洲国产日韩欧美在线99| 欧美日韩亚洲91| 国产精品高清在线观看| 在线视频一区观看| 久久久国产亚洲精品| 久久久免费精品视频| 国产精品一区二区久久久| 狠狠色丁香婷婷综合久久片| 国产日韩欧美一区二区| 国产精品白丝jk黑袜喷水| 欧美精品v国产精品v日韩精品| 亚洲在线一区二区三区| 亚洲二区在线观看| 欧美亚洲一区三区| 欧美日韩国产精品一区二区亚洲| 久久久久久伊人| 亚洲一区二区伦理| 国产亚洲永久域名| 国产一区二区三区久久| 国语自产精品视频在线看抢先版结局| 一本一本久久a久久精品综合麻豆| 亚洲精品日韩综合观看成人91| 亚洲尤物视频在线| 狼人社综合社区| 欧美激情久久久| 欧美日韩视频免费播放| 中文久久乱码一区二区| 狠狠88综合久久久久综合网| 国产午夜精品在线| 日韩网站在线观看| 国产亚洲精品一区二555| 激情综合网址| 这里只有精品丝袜| 欧美日韩中国免费专区在线看| 欧美二区在线看| 91久久综合| 欧美国产日本韩| 亚洲一区二区三区乱码aⅴ| 亚洲天堂av综合网| 欧美在线一级视频| 国内视频一区| 欧美深夜福利| 欧美日韩国产色综合一二三四| 国产精品啊啊啊| 国产午夜精品理论片a级探花| 亚洲日本在线视频观看| 欧美日韩福利在线观看| 一本色道久久综合亚洲91| 激情综合在线| 欧美三级日韩三级国产三级| 国产嫩草影院久久久久| 国产一区视频在线观看免费| 久久久蜜桃一区二区人| 亚洲毛片在线观看.| 美女露胸一区二区三区| 韩国成人精品a∨在线观看| 一区二区日韩精品| 国产亚洲欧美一区在线观看| 亚洲国产小视频| 国产精品毛片高清在线完整版| 亚洲美女精品久久| 99re6这里只有精品| 亚洲最新视频在线播放| 亚洲欧美国产视频| 亚洲女性喷水在线观看一区| 香蕉国产精品偷在线观看不卡| 欧美福利一区二区三区| 国产亚洲一级高清| 久久本道综合色狠狠五月| 欧美日韩一区二区免费在线观看| 免费成人小视频| 国产日韩av一区二区| 一区二区三区导航| 日韩一级成人av| 亚洲人妖在线| 亚洲一区二区三区在线播放| 久久久蜜桃一区二区人| 国产精品日韩欧美综合| 1024日韩| 黄色日韩网站| 欧美高清在线一区二区| 欧美二区视频| 久久久综合网| 国产视频一区在线观看一区免费| 午夜在线观看欧美| 久久久久久91香蕉国产| 国产欧美三级| 欧美日韩国产色综合一二三四| 在线观看日韩av先锋影音电影院| 性8sex亚洲区入口| 亚洲高清在线观看| 国产精品欧美激情| 激情偷拍久久| 午夜精品三级视频福利| 久久国产精品久久精品国产| 国产综合色产| 亚洲国产日韩欧美在线动漫| 国产精品v欧美精品v日本精品动漫| 一区二区三区精品视频在线观看| 久久久久成人精品免费播放动漫| 欧美一区二区三区视频免费播放| 亚洲国产高清在线观看视频| 国内外成人免费激情在线视频| 欧美在线看片| 久久资源av| 亚洲中午字幕| 欧美国产国产综合| 激情视频一区二区三区| 激情文学综合丁香| 国产日韩欧美综合一区| 国产精品欧美经典| 亚洲激情偷拍| 亚洲国产专区校园欧美| 欧美在线视频在线播放完整版免费观看| 亚洲成人在线| 一本到高清视频免费精品| 性娇小13――14欧美| 欧美国产三区| 亚洲人成绝费网站色www| 美女网站在线免费欧美精品| 国产精品久久7| 91久久国产自产拍夜夜嗨| 中文一区二区在线观看| 国产一区二区三区最好精华液| 国产精品麻豆欧美日韩ww| 欧美亚州一区二区三区| 精品动漫3d一区二区三区| 欧美日韩在线一区二区三区| 国产有码一区二区| 欧美精品亚洲精品| 亚洲黄色片网站| 亚洲天堂成人在线视频| 午夜视黄欧洲亚洲| 美女国内精品自产拍在线播放| 亚洲欧美日韩一区二区三区在线观看| 欧美香蕉视频| 猫咪成人在线观看| 91久久久久久久久久久久久| 免费观看在线综合| 亚洲另类一区二区| 亚洲国产mv| 在线观看91精品国产麻豆| 久久成人18免费网站| 在线亚洲精品| 欧美一区二区三区在线免费观看| 亚洲欧美日韩第一区| 国产一区二区你懂的| 国产精品素人视频| 亚洲激情第一页| 亚洲国产专区校园欧美| 午夜精品久久久久99热蜜桃导演| 亚洲色在线视频| 一区二区三区精品在线| 欧美精品福利| 欧美区二区三区| 一区二区激情小说| 欧美精品国产精品日韩精品| 久久岛国电影| 久久久另类综合| 亚洲天堂av图片| 午夜精品久久久久久久久久久| 久久久777| 欧美国产精品劲爆| 欧美午夜不卡在线观看免费| 欧美77777| 欧美日本三级| 亚洲一区二区三区在线看| 国产精品久久久久免费a∨| 香蕉久久一区二区不卡无毒影院| 欧美国产欧美综合| 你懂的成人av| 国产一区二区高清视频| 蜜桃av噜噜一区二区三区| 亚洲免费观看高清完整版在线观看熊| 欧美日本簧片| 欧美日韩四区| 亚洲无线一线二线三线区别av| 欧美激情精品久久久久久黑人| 久久久久久噜噜噜久久久精品| 久久午夜影视| 亚洲国产精品热久久| 久久精品国产99国产精品澳门| 在线视频免费在线观看一区二区| 国产亚洲视频在线观看| 国产精品视频免费一区| 久久久www成人免费无遮挡大片| 久久精品一本| 欧美一区二区三区喷汁尤物| 午夜精品久久久久久久久久久| 日韩一区二区精品| 欧美日韩在线播放一区| 久久xxxx精品视频|