<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)valon總線(xiàn)TLC5628自定義IP核的開(kāi)發(fā)

基于A(yíng)valon總線(xiàn)TLC5628自定義IP核的開(kāi)發(fā)

作者:史雪峰,傅華明,阿日貢巴彥爾 時(shí)間:2008-12-12 來(lái)源:現代電子技術(shù) 收藏

1 與IP核

本文引用地址:http://dyxdggzs.com/article/90192.htm

  可編程片上系統(System on Programmable Chip,),是公司提出的一種靈活、高效的SOC解決方案。他將處理器、存儲器、I/O口、LVDS、CDR等系統設計需要的功能模塊集成到一個(gè)可編程器件上,構成一個(gè)可編程的片上系統。他的實(shí)質(zhì)是SoC(System on Chip)技術(shù),與其他SOC技術(shù)相比,他的特點(diǎn)在于可編程性。

  設計的關(guān)鍵技術(shù)之一是IP核(Intellectual Property Core),即知識產(chǎn)權核。IP核是指將一些在數字電路中常用但比較復雜的功能塊,如SDRAM控制器、PCI接口都設計成參數可修改的模塊,供用戶(hù)直接調用。IP核有3個(gè)來(lái)源:EDA廠(chǎng)商提供、第三方提供、用戶(hù)自定義。一般,EDA廠(chǎng)商及第三方提供的IP核都是功能上比較通用,但在實(shí)際SoPC設計過(guò)程中,用戶(hù)常有特殊需求,這就要求用戶(hù)用自定義邏輯實(shí)現所需的功能,因此在SoPC設計中,如何靈活地加入用戶(hù)自定義邏輯就顯得尤為重要。

2 Avalon總線(xiàn)

  Avalon交換式總線(xiàn)是由開(kāi)發(fā)的一種專(zhuān)用的內部連線(xiàn)技術(shù)。Avalon交換式總線(xiàn)由SoPC Builder自動(dòng)生成,是一種理想的用于系統處理器和外設之間的內聯(lián)總線(xiàn),其定義的內聯(lián)線(xiàn)策略使得任何一個(gè)Avalon總線(xiàn)上的主外設都可以與任何一個(gè)從外設溝通。

  Avalon接口定義Avalon外設與Avalon交換結構之間的連接。Avalon接口是一個(gè)靈活的接口,工程師可以只使用系統所需的幾個(gè)信號進(jìn)行數據傳輸。Avalon接口的一些顯著(zhù)特性如下:

  (1)使用獨立的地址、數據、控制線(xiàn),提供與片上邏輯簡(jiǎn)單的接口;

  (2)支持最高達128位的數據寬度,支持不是2的偶數冪的數據寬度;

  (3)支持同步操作,所有Avalon外設的接口與Avalon交換結構的時(shí)鐘同步,不需要復雜的握手/應答機制;

  (4)支持動(dòng)態(tài)地址對齊,可處理具有不同數據寬度的外設之間的數據傳輸;

  (5)接口協(xié)議簡(jiǎn)單;資源占用少;

  (6)Avalon接口性能很高,可達到每個(gè)時(shí)鐘傳輸1次。

  Avalon總線(xiàn)為用戶(hù)提供了非常友好的接口,使系統搭建過(guò)程中的一些細節問(wèn)題得到屏蔽,大大減輕系統搭建的工作量。此外,Avalon總線(xiàn)的“從外設仲裁”機制,消除了帶寬瓶頸,實(shí)現了無(wú)與倫比的系統吞吐量。

3 用戶(hù)自定義IP核的開(kāi)發(fā)流程

  用戶(hù)自定義IP核按照對Avalon總線(xiàn)操作的不同可分為Avalon Master外設、Avalon Slaver外設及AvalonStreaming外設。用戶(hù)開(kāi)發(fā)的外設大多為Avalon Slaver外設,Avalon Master和Avalon Streaming外設的開(kāi)發(fā)比Avalon Slaver外設要復雜,但開(kāi)發(fā)流程相同。一個(gè)典型的Avalon外設的開(kāi)發(fā)步驟如下:

  (1)規劃元件的硬件功能。如果采用微控制器來(lái)控制該元件,則規劃訪(fǎng)問(wèn)該硬件的應用程序接口(API);

  (2)在硬件和軟件要求的基礎上,定義一個(gè)恰當的Avalon接口(一般為Avalon從端口);

  (3)使用硬件描述語(yǔ)言描述硬件邏輯。一個(gè)典型元件的硬件架構一般3部分組成:接口模塊(avalon interface)作為頂層模塊,定義總線(xiàn)接口信號;寄存器文件模塊(register file)完成該元件與外部信號進(jìn)行通信,提供訪(fǎng)問(wèn)與控制元件的邏輯界面;行為模塊(task logic)實(shí)現元件的硬件功能。片上總線(xiàn)AvaIon從端口的信號都不是必須的,一個(gè)典型的Avalon從端口所包含的信號如表1所示。

 

  (4)單獨驗證元件的硬件功能;

  (5)寫(xiě)用于描述寄存器的C頭文件來(lái)為軟件定義硬件寄存器映像;

  (6)寫(xiě)元件的驅動(dòng)軟件;

  (7)把通過(guò)測試的源代碼使用元件編輯器封裝硬件HDL和軟件文件,完成元件定制。

4 TLC5628自定義IP核的開(kāi)發(fā)

4.1 TLC5628 D/A轉換器

  TLC5628是TI公司生產(chǎn)的8位8通道串行D/A轉換器,采用5 V單電源供電,輸出電壓范圍可編程。輸出電壓編程范圍由RNG位控制,當RNG位為1時(shí),輸出電壓范圍為0~2×Vref;當RNG位為0時(shí),輸出電壓范圍為0~Uref。A2A1A0位表示D/A輸出通道選擇,000~111分別對應第1~8通道,D7~D0是輸出數據位。TLC5628D/A轉換器時(shí)序圖見(jiàn)圖1。

4.2 硬件部分構建

4.2.1 接口模塊的設計

  根據TLC5628 D/A的功能描述,該模塊所需的Avalon總線(xiàn)輸入信號為chipselect,CLK,address,write,write-data及reset信號,是一個(gè)典型的只向Avalon總線(xiàn)寫(xiě)數據的模塊。而模塊輸出則為dac_clk,dac_data,dac_load及dac_ldac信號,分別對應TLC5628 D/A的串行輸入時(shí)鐘,串行輸入數據,串行載入及更新輸出控制,其對應框圖(也即TLC5628 D/A與Avalon總線(xiàn)的接口圖)如圖2所示,該接口模塊定義了總線(xiàn)接口信號,作為頂層模塊。

 

  Avalon總線(xiàn)接口設計文件的端口說(shuō)明部分如下:

 

4.2.2 寄存器文件模塊

  寄存器文件模塊實(shí)現該元件與外部信號進(jìn)行通信,提供了訪(fǎng)問(wèn)與控制元件的邏輯界面。

 

  在寄存器文件中,Avalon總線(xiàn)的地址信號(address)為2位,address為00表示分頻寄存器,用以產(chǎn)生串行D/A的輸入時(shí)鐘,32位分頻寄存器數據位只寫(xiě);address為01表示數據寄存器,32位數據寄存器數據位只可寫(xiě),address為10和11位保留。

  Avalon總線(xiàn)數據信號在chipselect和write信號的控制下,向寄存器寫(xiě)入分頻數和數據位。當向分頻寄存器寫(xiě)入數據時(shí),32位數據表示分頻數;當向數據寄存器寫(xiě)入32位數據時(shí),保留后12位數據(8位數據位+RNG位+3位通道選擇位)。該控制過(guò)程由同步有限狀態(tài)機實(shí)現。

4.2.3 行為模塊的實(shí)現

  行為模塊實(shí)現元件的硬件功能,接收來(lái)自Avalon總線(xiàn)的數據,在寫(xiě)使能信號的控制下,向TLC5628 D/A輸入寄存器寫(xiě)入通道選擇及數據位。數據的發(fā)送及存儲由同步有限狀態(tài)機實(shí)現。在寫(xiě)數據信號使能時(shí),輸入數據在串行時(shí)鐘的控制下依次寫(xiě)入數據寄存器,當12位數據全部寫(xiě)入后,內部標志位dac_dat_send_finish置位,數據發(fā)送完成,進(jìn)入數據鎖存狀態(tài),此時(shí)置位Load信號(LDAC信號一直為低),DAC更新輸出數據。在QuartusⅡ6.0環(huán)境下,基于EPlC6Q240C8器件的仿真波形如圖3所示。

 

4.3 軟件設計

  軟件設計包括寄存器頭文件的設計、驅動(dòng)軟件及測試程序的設計。寄存器頭文件avalon_tlc5628_regs.h定義了對TLC5628的寄存器進(jìn)行寫(xiě)操作的宏。IORD和IOWR是硬件抽象層(HAL)提供的2個(gè)訪(fǎng)問(wèn)寄存器的C語(yǔ)言宏。下面2行代碼分別是對分頻寄存器和數據寄存器的寫(xiě)操作宏。

 

  驅動(dòng)軟件包括avalon_tlc5628.h和avaIon_tIc5628.c文件。avalon_tlc5628.h定義了驅動(dòng)函數的原型及常量,avalon_tlc5628.c則實(shí)現驅動(dòng)函數的功能。avalon_tlc5628.c中定義了2個(gè)函數,一個(gè)是TLC5628初始化函數avalon_tlc5628_init(),完成TLC5628初始化,設置串行時(shí)鐘、通道選擇、電壓輸出范圍編程及數據初始化;另一個(gè)是TLC5628輸出數據更新函數avalon_tlc5628_update_data(),用以改變輸出的通道數和電壓值。

  測試程序調用驅動(dòng)函數對硬件設計和軟件設計進(jìn)行測試。如:avalon_tic5628_init(TLC5628_BASE,250,0x0),設置TLC5628的串行輸入時(shí)鐘為100 kHz;avalon_tlc5628_update_data(TLC5628_BASE,0x340),設置TLC5628的第二輸出通道DACB輸出的電壓為2×VREF/4。

4.4 封裝和發(fā)布

  在軟件和硬件設計完成后,通過(guò)SoPC Builder提供的“元件編輯器”進(jìn)行封裝。當HDL文件加入后,指定接口模塊為頂層模塊,同時(shí)指定端口說(shuō)明中的信號類(lèi)型。如CLK被指定為“clk”類(lèi)型,address被指定為“address”類(lèi)型,dac_lclk,dac_load,dac_data及dac_ldac被指定為“export”類(lèi)型。之后,SoPC Builder會(huì )在當前目錄下生成tlc5628_avalon_interface子目錄。子目錄中包含class.ptf文件、腳本文件及源代碼文件。這樣,TLC5628 IP核的封裝和發(fā)布就完成,其他用戶(hù)也就可以共享TLC5628 IP核。

5 結語(yǔ)

  在SoPC設計中,設計人員可以靈活方便地加入IP核,減輕工程師開(kāi)發(fā)負擔,避免重復勞動(dòng)。本文通過(guò)介紹基于A(yíng)valon總線(xiàn)TLC5628自定義IP核的開(kāi)發(fā)詳細闡述SoPC設計環(huán)境下用戶(hù)自定義IP核的開(kāi)發(fā)流程,對于開(kāi)發(fā)較復雜IP核有一定的借鑒作用。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程




關(guān)鍵詞: Altera SoPC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>