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

基于Avalon總線TLC5628自定義IP核的開發

2008-04-12 00:00:00史雪峰傅華明阿日貢巴彥爾
現代電子技術 2008年4期

摘 要:簡要介紹SoPC及Avalon總線,詳細闡述基于Avalon總線TLC5628自定義IP核的開發流程。在軟硬件設計通過測試后利用SoPC Builder提供的“元件編輯器”進行TLC5628自定義IP核的封裝和發布。TLC5628自定義IP核的開發及發布對其他用戶在使用TLC5628進行項目開發時能明顯縮短研發周期、降低工作強度。此外,對開發較復雜的IP核具有一定的借鑒作用。

關鍵詞:可編程片上系統;Avalon總線;自定義IP核;TLC5628數/模轉換器

中圖分類號:

文獻標識碼:B

文章編號:1004—373X(2008)04—084—03

1 SoPC與IP核

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

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

2 Avalon總線

Avalon交換式總線是由Altera開發的一種專用的內部連線技術。Avalon交換式總線由SoPC Builder自動生成,是一種理想的用于系統處理器和外設之間的內聯總線,其定義的內聯線策略使得任何一個Avalon總線上的主外設都可以與任何一個從外設溝通。

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

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

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

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

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

(5)接口協議簡單;資源占用少;

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

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

3 用戶自定義IP核的開發流程

用戶自定義IP核按照對Avalon總線操作的不同可分為Avalon Master外設、Avalon Slaver外設及AValonStreaming外設。用戶開發的外設大多為Avalon Slaver外設,Avalon Master和Avalon Streaming外設的開發比Avalon Slaver外設要復雜,但開發流程相同。一個典型的Avalon外設的開發步驟如下:

(1)規劃元件的硬件功能。如果采用微控制器來控制該元件,則規劃訪問該硬件的應用程序接口(API);

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

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

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

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

(6)寫元件的驅動軟件;

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

4 TLC5628自定義IP核的開發

4.1 TLC5628 D/A轉換器

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

4.2硬件部分構建

4.2.1接口模塊的設計

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

4.2.2寄存器文件模塊

寄存器文件模塊實現該元件與外部信號進行通信,提供了訪問與控制元件的邏輯界面。

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

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

4.2.3 行為模塊的實現

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

4.3軟件設計

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

#define IOWR_AVALON_TLC5628_CLOCK_DIVIDER(base.data)IOWR(base,O,data)

#define IOWR_AVALON_TLC5628_DATA(base.data) IOWR(base,1,data)

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

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

4.4封裝和發布

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

5 結 語

在SoPC設計中,設計人員可以靈活方便地加入IP核,減輕工程師開發負擔,避免重復勞動。本文通過介紹基于Avalon總線TLC5628自定義IP核的開發詳細闡述SoPC設計環境下用戶自定義IP核的開發流程,對于開發較復雜IP核有一定的借鑒作用。

主站蜘蛛池模板: 日本影院一区| 欧美日韩亚洲国产| 91精品国产一区自在线拍| 欧美性色综合网| 日本精品中文字幕在线不卡| 成人欧美日韩| 视频一本大道香蕉久在线播放| av无码久久精品| 国产精品网址在线观看你懂的| 日本www在线视频| 97se亚洲综合在线韩国专区福利| 综合五月天网| 亚洲va精品中文字幕| 美女扒开下面流白浆在线试听 | 国产精品第三页在线看| 91亚瑟视频| 国产精品乱偷免费视频| 三上悠亚在线精品二区| 91亚洲视频下载| 毛片久久网站小视频| 欧洲欧美人成免费全部视频| 制服丝袜国产精品| 国产精品视频猛进猛出| 男人天堂伊人网| 福利在线一区| 无码中文AⅤ在线观看| 国产成人精品一区二区| 朝桐光一区二区| 欧美色图第一页| 亚洲精品777| 91蝌蚪视频在线观看| 草草线在成年免费视频2| 国产三级视频网站| 国产第二十一页| 国产视频资源在线观看| 国产美女在线观看| 成人噜噜噜视频在线观看| 色亚洲激情综合精品无码视频 | 亚洲精品桃花岛av在线| 露脸一二三区国语对白| 毛片久久久| 波多野结衣无码AV在线| 国产精品一区在线麻豆| 毛片久久网站小视频| a级毛片免费看| 99久久精品免费视频| 亚洲视频在线网| 亚洲欧美天堂网| 亚洲Va中文字幕久久一区| 一级毛片中文字幕| 在线观看亚洲人成网站| 高清不卡毛片| 国产97视频在线观看| 婷婷激情五月网| 国产丝袜91| 亚洲天堂免费观看| 91久久天天躁狠狠躁夜夜| 国产特级毛片aaaaaa| 五月婷婷中文字幕| 国产香蕉国产精品偷在线观看| 亚洲精品在线91| 无码中字出轨中文人妻中文中| 美女毛片在线| 国产毛片久久国产| 久久精品只有这里有| 欧美精品亚洲精品日韩专区va| 2020国产免费久久精品99| 秘书高跟黑色丝袜国产91在线| YW尤物AV无码国产在线观看| 国产精品刺激对白在线| 亚洲精品无码不卡在线播放| 国产色婷婷| 99精品高清在线播放| 久久久久人妻精品一区三寸蜜桃| 全裸无码专区| 日韩二区三区无| 亚洲中字无码AV电影在线观看| 日韩在线播放欧美字幕| 国产第一福利影院| yjizz视频最新网站在线| 亚洲美女一区| 97久久精品人人做人人爽|